From 699b6090bbbe2b8ed0a85b01f0df79a965bd6183 Mon Sep 17 00:00:00 2001 From: catouse Date: Thu, 21 Nov 2024 07:01:15 +0000 Subject: [PATCH] deploy: 38504121f71d9011b497d915124415b5776940c2 --- dev/404.html | 6 +- ...mE.js => guide_start_index.md.Fxg9MjfX.js} | 34 +- ... => guide_start_index.md.Fxg9MjfX.lean.js} | 34 +- dev/guide/config/base/color.html | 6 +- dev/guide/config/base/font.html | 6 +- dev/guide/config/base/rounded.html | 6 +- dev/guide/config/base/screens.html | 6 +- dev/guide/config/base/shadow.html | 6 +- dev/guide/config/base/spacing.html | 6 +- dev/guide/customize/build.html | 6 +- dev/guide/customize/dev.html | 6 +- dev/guide/customize/exts-lib.html | 6 +- dev/guide/index.html | 6 +- dev/guide/start/compatibility.html | 6 +- dev/guide/start/index.html | 10 +- dev/guide/start/intro.html | 6 +- dev/guide/start/tutorial.html | 6 +- dev/hashmap.json | 2 +- dev/index.html | 6 +- dev/lib/basic/core/cash.html | 6 +- dev/lib/basic/core/component.html | 6 +- dev/lib/basic/core/css-component.html | 6 +- dev/lib/basic/core/react.html | 6 +- dev/lib/basic/core/zui-create.html | 8 +- dev/lib/basic/core/zui-on.html | 8 +- dev/lib/basic/core/zui-toggle.html | 8 +- dev/lib/components/alert/index.html | 6 +- dev/lib/components/avatar-group/index.html | 8 +- dev/lib/components/avatar/index.html | 8 +- dev/lib/components/breadcrumb/index.html | 6 +- dev/lib/components/btn-group/index.html | 6 +- dev/lib/components/button/index.html | 8 +- dev/lib/components/calendar/index.html | 6 +- dev/lib/components/color-picker/index.html | 8 +- dev/lib/components/contextmenu/index.html | 6 +- dev/lib/components/dashboard/index.html | 6 +- dev/lib/components/dropdown/index.html | 8 +- dev/lib/components/dtable/index.html | 6 +- dev/lib/components/dtable/plugins.html | 6 +- dev/lib/components/file-selector/index.html | 8 +- dev/lib/components/kanban/index.html | 6 +- dev/lib/components/label/index.html | 6 +- dev/lib/components/menu/index.html | 6 +- dev/lib/components/menu/js.html | 6 +- dev/lib/components/messager/index.html | 6 +- dev/lib/components/modal/index.html | 8 +- dev/lib/components/modal/trigger.html | 16 +- dev/lib/components/nav/index.html | 10 +- dev/lib/components/nav/js.html | 6 +- dev/lib/components/pager/index.html | 8 +- dev/lib/components/pager/js.html | 6 +- dev/lib/components/panel/index.html | 8 +- dev/lib/components/progress-circle/index.html | 8 +- dev/lib/components/progress/index.html | 8 +- dev/lib/components/scrollbar/index.html | 8 +- dev/lib/components/search-box/index.html | 8 +- dev/lib/components/table/index.html | 10 +- dev/lib/components/tabs/index.html | 6 +- dev/lib/components/toolbar/index.html | 8 +- dev/lib/components/toolbar/js.html | 6 +- dev/lib/components/tooltip/index.html | 8 +- dev/lib/components/tree/index.html | 6 +- dev/lib/components/upload-imgs/index.html | 6 +- dev/lib/components/upload/index.html | 6 +- dev/lib/forms/checkbox/index.html | 8 +- dev/lib/forms/checkbox/switch.html | 8 +- dev/lib/forms/datetime-picker/date.html | 8 +- dev/lib/forms/datetime-picker/datetime.html | 8 +- dev/lib/forms/datetime-picker/time.html | 8 +- dev/lib/forms/form-control/index.html | 8 +- dev/lib/forms/form/index.html | 6 +- dev/lib/forms/input-control/index.html | 8 +- dev/lib/forms/input-group/index.html | 8 +- dev/lib/forms/picker/index.html | 8 +- dev/lib/helpers/helpers/date-helper.html | 6 +- dev/lib/helpers/helpers/string-helper.html | 6 +- dev/lib/helpers/store/index.html | 6 +- dev/lib/index.html | 6 +- dev/public/zui/icons/fontawesome-license.html | 6 +- dev/themes/index.html | 6 +- .../backgrounds/utilities/index.html | 6 +- .../borders/utilities/border-color.html | 6 +- .../borders/utilities/border-radius.html | 6 +- .../borders/utilities/border-width.html | 6 +- dev/utilities/borders/utilities/divider.html | 6 +- .../borders/utilities/ring-color.html | 6 +- .../borders/utilities/ring-offset.html | 6 +- .../borders/utilities/ring-width.html | 6 +- .../effects/utilities/animation.html | 6 +- dev/utilities/effects/utilities/filter.html | 6 +- dev/utilities/effects/utilities/opacity.html | 6 +- dev/utilities/effects/utilities/shadow.html | 6 +- .../effects/utilities/transform.html | 6 +- .../effects/utilities/transition.html | 6 +- .../flex/utilities/align-content.html | 6 +- dev/utilities/flex/utilities/align-items.html | 6 +- dev/utilities/flex/utilities/align-self.html | 6 +- dev/utilities/flex/utilities/basis.html | 6 +- dev/utilities/flex/utilities/direction.html | 6 +- dev/utilities/flex/utilities/flex.html | 6 +- dev/utilities/flex/utilities/gap.html | 6 +- dev/utilities/flex/utilities/grow.html | 6 +- .../flex/utilities/justify-content.html | 6 +- dev/utilities/flex/utilities/order.html | 6 +- dev/utilities/flex/utilities/shrink.html | 6 +- dev/utilities/flex/utilities/wrap.html | 6 +- dev/utilities/index.html | 6 +- .../interactivity/utilities/cursor.html | 8 +- .../interactivity/utilities/disabled.html | 8 +- .../interactivity/utilities/loading.html | 8 +- .../utilities/pointer-events.html | 8 +- .../interactivity/utilities/scroll.html | 6 +- .../interactivity/utilities/state.html | 8 +- .../interactivity/utilities/user-select.html | 8 +- .../layout/utilities/aspect-ratio.html | 8 +- dev/utilities/layout/utilities/container.html | 8 +- dev/utilities/layout/utilities/display.html | 6 +- dev/utilities/layout/utilities/floats.html | 8 +- .../layout/utilities/object-fit.html | 8 +- dev/utilities/layout/utilities/overflow.html | 8 +- dev/utilities/layout/utilities/position.html | 8 +- .../utilities/top-right-bottom-left.html | 6 +- .../layout/utilities/visibility.html | 8 +- dev/utilities/layout/utilities/z-index.html | 8 +- dev/utilities/sizing/utilities/height.html | 6 +- dev/utilities/sizing/utilities/width.html | 6 +- dev/utilities/skin/utilities/ghost.html | 8 +- dev/utilities/skin/utilities/outline.html | 8 +- dev/utilities/skin/utilities/pale.html | 8 +- dev/utilities/skin/utilities/solid.html | 8 +- dev/utilities/skin/utilities/surface.html | 8 +- dev/utilities/spacing/utilities/margin.html | 8 +- dev/utilities/spacing/utilities/padding.html | 8 +- dev/utilities/spacing/utilities/space.html | 8 +- .../typography/utilities/font-family.html | 8 +- .../typography/utilities/font-size.html | 6 +- .../typography/utilities/font-weight.html | 8 +- .../typography/utilities/leading.html | 8 +- .../typography/utilities/line-clamp.html | 8 +- .../typography/utilities/list-style.html | 8 +- .../typography/utilities/text-align.html | 8 +- .../typography/utilities/text-color.html | 6 +- .../typography/utilities/text-decoration.html | 8 +- .../typography/utilities/text-overflow.html | 8 +- .../typography/utilities/text-transform.html | 8 +- .../typography/utilities/vertical-align.html | 8 +- .../typography/utilities/whitespace.html | 14 +- .../typography/utilities/word-break.html | 12 +- dev/zui-3.0.0.zip | Bin 1059263 -> 1059280 bytes dev/zui/zui.esm.js | 857 +++++++++--------- dev/zui/zui.esm.js.map | 2 +- dev/zui/zui.js | 8 +- dev/zui/zui.js.map | 2 +- 153 files changed, 982 insertions(+), 981 deletions(-) rename dev/assets/{guide_start_index.md.BjTcZfmE.js => guide_start_index.md.Fxg9MjfX.js} (93%) rename dev/assets/{guide_start_index.md.BjTcZfmE.lean.js => guide_start_index.md.Fxg9MjfX.lean.js} (83%) diff --git a/dev/404.html b/dev/404.html index 1d83708762..e77f9c6b9d 100644 --- a/dev/404.html +++ b/dev/404.html @@ -11,14 +11,14 @@ - - + +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/assets/guide_start_index.md.BjTcZfmE.js b/dev/assets/guide_start_index.md.Fxg9MjfX.js similarity index 93% rename from dev/assets/guide_start_index.md.BjTcZfmE.js rename to dev/assets/guide_start_index.md.Fxg9MjfX.js index 82616ece07..c08c05002d 100644 --- a/dev/assets/guide_start_index.md.BjTcZfmE.js +++ b/dev/assets/guide_start_index.md.Fxg9MjfX.js @@ -14,7 +14,7 @@ import{c as d,k as s,m as r,a as i,t as l,I as h,w as n,R as a,D as p,o as g,f a <a class="btn" href="/">访问 ZUI 网站</a> <script src="./zui/zui.js"></script> </body> -</html>

使用 CDN

使用 CDN 可以快速使用 ZUI,与下载使用基本一样,只需要将相关资源文件替换为 CDN 上的地址即可:

`,6),m={class:"vp-code-group vp-adaptive-theme"},B=a('
',1),b={class:"blocks"},v={class:"language-html vp-adaptive-theme active"},S=s("button",{title:"Copy Code",class:"copy"},null,-1),I=s("span",{class:"lang"},"html",-1),P={class:"shiki shiki-themes github-light github-dark vp-code"},q=a('<!doctype html>',1),z=a('<html lang="zh-CN">',1),V=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),N=a(' <meta charset="utf-8">',1),f=a(' <meta name="viewport" content="width=device-width, initial-scale=1">',1),w=a(' <title>ZUI</title>',1),R={class:"line highlighted"},U=a(' <link rel="stylesheet" href=',7),j={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},x=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),Z=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),J=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),M=a(' <h1>ZUI is awesome!</h1>',1),H=a(' <a class="btn" href="/">访问 ZUI 网站</a>',1),$={class:"line highlighted"},K=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),L=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),O=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Y=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),G={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Q=a(' crossorigin="anonymous"></script>',6),W=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),X=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),ss={class:"language-html vp-adaptive-theme"},is=s("button",{title:"Copy Code",class:"copy"},null,-1),as=s("span",{class:"lang"},"html",-1),ts={class:"shiki shiki-themes github-light github-dark vp-code"},hs=a('<!doctype html>',1),ns=a('<html lang="zh-CN">',1),ls=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ks=a(' <meta charset="utf-8">',1),ps=a(' <meta name="viewport" content="width=device-width, initial-scale=1">',1),es=a(' <title>ZUI</title>',1),Es={class:"line highlighted"},ds=a(' <link rel="stylesheet" href=',7),rs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},gs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),_s=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),os=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ys=a(' <h1>ZUI is awesome!</h1>',1),cs=a(' <a class="btn" href="/">访问 ZUI 网站</a>',1),Fs={class:"line highlighted"},us=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Cs=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),As=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Ts=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Ds={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},ms=a(' crossorigin="anonymous"></script>',6),Bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),vs={class:"language-html vp-adaptive-theme"},Ss=s("button",{title:"Copy Code",class:"copy"},null,-1),Is=s("span",{class:"lang"},"html",-1),Ps={class:"shiki shiki-themes github-light github-dark vp-code"},qs=a('<!doctype html>',1),zs=a('<html lang="zh-CN">',1),Vs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Ns=a(' <meta charset="utf-8">',1),fs=a(' <meta name="viewport" content="width=device-width, initial-scale=1">',1),ws=a(' <title>ZUI</title>',1),Rs={class:"line highlighted"},Us=a(' <link rel="stylesheet" href=',7),js={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},xs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),Zs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Js=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Ms=a(' <h1>ZUI is awesome!</h1>',1),Hs=a(' <a class="btn" href="/">访问 ZUI 网站</a>',1),$s={class:"line highlighted"},Ks=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Ls=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),Os=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Ys=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Gs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Qs=a(' crossorigin="anonymous"></script>',6),Ws=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Xs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),si=a(`

使用 JS 组件

无论是下载还是使用 CDN,导入 zui.js 之后,你就可以使用 ZUI 中的 JS 组件了,ZUI 提供的所有 JS 辅助方法和组件类都在全局对象 zui 上进行访问,例如:

html
<nav id="myNav"></nav>
+</html>

使用 CDN

使用 CDN 可以快速使用 ZUI,与下载使用基本一样,只需要将相关资源文件替换为 CDN 上的地址即可:

`,6),m={class:"vp-code-group vp-adaptive-theme"},B=a('
',1),b={class:"blocks"},v={class:"language-html vp-adaptive-theme active"},S=s("button",{title:"Copy Code",class:"copy"},null,-1),I=s("span",{class:"lang"},"html",-1),q={class:"shiki shiki-themes github-light github-dark vp-code"},P=a('<!doctype html>',1),V=a('<html lang="zh-CN">',1),z=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),N=a(' <meta charset="utf-8">',1),f=a(' <meta name="viewport" content="width=device-width, initial-scale=1">',1),w=a(' <title>ZUI</title>',1),R={class:"line highlighted"},Z=a(' <link rel="stylesheet" href=',7),U={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},j=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),x=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),M=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),J=a(' <h1>ZUI is awesome!</h1>',1),H=a(' <a class="btn" href="/">访问 ZUI 网站</a>',1),Y={class:"line highlighted"},$=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),L=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),O=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),X=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),G={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},K=a(' crossorigin="anonymous"></script>',6),Q=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),W=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),ss={class:"language-html vp-adaptive-theme"},is=s("button",{title:"Copy Code",class:"copy"},null,-1),as=s("span",{class:"lang"},"html",-1),ts={class:"shiki shiki-themes github-light github-dark vp-code"},hs=a('<!doctype html>',1),ns=a('<html lang="zh-CN">',1),ls=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ks=a(' <meta charset="utf-8">',1),ps=a(' <meta name="viewport" content="width=device-width, initial-scale=1">',1),es=a(' <title>ZUI</title>',1),Es={class:"line highlighted"},ds=a(' <link rel="stylesheet" href=',7),rs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},gs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),_s=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),os=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ys=a(' <h1>ZUI is awesome!</h1>',1),cs=a(' <a class="btn" href="/">访问 ZUI 网站</a>',1),Fs={class:"line highlighted"},us=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Cs=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),As=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Ts=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Ds={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},ms=a(' crossorigin="anonymous"></script>',6),Bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),vs={class:"language-html vp-adaptive-theme"},Ss=s("button",{title:"Copy Code",class:"copy"},null,-1),Is=s("span",{class:"lang"},"html",-1),qs={class:"shiki shiki-themes github-light github-dark vp-code"},Ps=a('<!doctype html>',1),Vs=a('<html lang="zh-CN">',1),zs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Ns=a(' <meta charset="utf-8">',1),fs=a(' <meta name="viewport" content="width=device-width, initial-scale=1">',1),ws=a(' <title>ZUI</title>',1),Rs={class:"line highlighted"},Zs=a(' <link rel="stylesheet" href=',7),Us={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},js=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),xs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Ms=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Js=a(' <h1>ZUI is awesome!</h1>',1),Hs=a(' <a class="btn" href="/">访问 ZUI 网站</a>',1),Ys={class:"line highlighted"},$s=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Ls=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),Os=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Xs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Gs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Ks=a(' crossorigin="anonymous"></script>',6),Qs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Ws=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),si=a(`

使用 JS 组件

无论是下载还是使用 CDN,导入 zui.js 之后,你就可以使用 ZUI 中的 JS 组件了,ZUI 提供的所有 JS 辅助方法和组件类都在全局对象 zui 上进行访问,例如:

html
<nav id="myNav"></nav>
 
 <script>
 const {Nav, Messager} = zui;
@@ -51,20 +51,20 @@ import{c as d,k as s,m as r,a as i,t as l,I as h,w as n,R as a,D as p,o as g,f a
 zui.Messager.show('Hello!');

如果你仅仅需要 ZUI 中的单个组件,例如 数据表格,你可以这样导入:

js
import {DTable} from 'zui/lib/dtable';
 import 'zui/lib/dtable/css';
 
-const myTable = new DTable('#myTable', {...});
`,8),di=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start/index.md","filePath":"guide/start/index.md","lastUpdated":null}'),ki={name:"guide/start/index.md"},ri=Object.assign(ki,{setup(pi){return(t,ei)=>{const e=p("Example"),k=p("PluginTabsTab"),E=p("PluginTabs");return g(),d("div",null,[o,y,c,s("div",F,[s("a",{class:"rounded-full btn primary size-lg",href:r(_)(`/zui-${t.zui.version}.zip`),download:""},[C,i(" 点击下载")],8,u),s("a",{class:"rounded-full btn outline size-lg",href:`https://github.com/easysoft/zui/releases/tag/v${t.zui.version}`,target:"_blank"},[T,i(" 从 GitHub 下载")],8,A)]),D,s("div",m,[B,s("div",b,[s("div",v,[S,I,s("pre",P,[s("code",null,[q,i(` -`),z,i(` +const myTable = new DTable('#myTable', {...});`,8),di=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start/index.md","filePath":"guide/start/index.md","lastUpdated":null}'),ki={name:"guide/start/index.md"},ri=Object.assign(ki,{setup(pi){return(t,ei)=>{const e=p("Example"),k=p("PluginTabsTab"),E=p("PluginTabs");return g(),d("div",null,[o,y,c,s("div",F,[s("a",{class:"rounded-full btn primary size-lg",href:r(_)(`/zui-${t.zui.version}.zip`),download:""},[C,i(" 点击下载")],8,u),s("a",{class:"rounded-full btn outline size-lg",href:`https://github.com/easysoft/zui/releases/tag/v${t.zui.version}`,target:"_blank"},[T,i(" 从 GitHub 下载")],8,A)]),D,s("div",m,[B,s("div",b,[s("div",v,[S,I,s("pre",q,[s("code",null,[P,i(` `),V,i(` +`),z,i(` `),N,i(` `),f,i(` `),w,i(` -`),s("span",R,[U,s("span",j,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.css"',1),x]),i(` -`),Z,i(` -`),J,i(` +`),s("span",R,[Z,s("span",U,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.css"',1),j]),i(` +`),x,i(` `),M,i(` +`),J,i(` `),H,i(` -`),s("span",$,[K,L,O,Y,s("span",G,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.js"',1),Q]),i(` -`),W,i(` -`),X])])]),s("div",ss,[is,as,s("pre",ts,[s("code",null,[hs,i(` +`),s("span",Y,[$,L,O,X,s("span",G,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.js"',1),K]),i(` +`),Q,i(` +`),W])])]),s("div",ss,[is,as,s("pre",ts,[s("code",null,[hs,i(` `),ns,i(` `),ls,i(` `),ks,i(` @@ -77,17 +77,17 @@ import{c as d,k as s,m as r,a as i,t as l,I as h,w as n,R as a,D as p,o as g,f a `),cs,i(` `),s("span",Fs,[us,Cs,As,Ts,s("span",Ds,'"///cdn.bootcdn.net/ajax/libs/zui/'+l(t.zui.version)+'/zui.js"',1),ms]),i(` `),Bs,i(` -`),bs])])]),s("div",vs,[Ss,Is,s("pre",Ps,[s("code",null,[qs,i(` -`),zs,i(` +`),bs])])]),s("div",vs,[Ss,Is,s("pre",qs,[s("code",null,[Ps,i(` `),Vs,i(` +`),zs,i(` `),Ns,i(` `),fs,i(` `),ws,i(` -`),s("span",Rs,[Us,s("span",js,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.css"',1),xs]),i(` -`),Zs,i(` -`),Js,i(` +`),s("span",Rs,[Zs,s("span",Us,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.css"',1),js]),i(` +`),xs,i(` `),Ms,i(` +`),Js,i(` `),Hs,i(` -`),s("span",$s,[Ks,Ls,Os,Ys,s("span",Gs,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.js"',1),Qs]),i(` -`),Ws,i(` -`),Xs])])])])]),si,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[ii]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ai]),_:1})]),_:1}),ti,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[hi]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ni]),_:1})]),_:1}),li])}}});export{di as __pageData,ri as default}; +`),s("span",Ys,[$s,Ls,Os,Xs,s("span",Gs,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.js"',1),Ks]),i(` +`),Qs,i(` +`),Ws])])])])]),si,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[ii]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ai]),_:1})]),_:1}),ti,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[hi]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ni]),_:1})]),_:1}),li])}}});export{di as __pageData,ri as default}; diff --git a/dev/assets/guide_start_index.md.BjTcZfmE.lean.js b/dev/assets/guide_start_index.md.Fxg9MjfX.lean.js similarity index 83% rename from dev/assets/guide_start_index.md.BjTcZfmE.lean.js rename to dev/assets/guide_start_index.md.Fxg9MjfX.lean.js index 196cc6323b..53286ba78e 100644 --- a/dev/assets/guide_start_index.md.BjTcZfmE.lean.js +++ b/dev/assets/guide_start_index.md.Fxg9MjfX.lean.js @@ -1,22 +1,22 @@ -import{c as d,k as s,m as r,a as i,t as l,I as h,w as n,R as a,D as p,o as g,f as _}from"./chunks/framework.DeE3OwZJ.js";const o=s("h1",{id:"快速上手",tabindex:"-1"},[i("快速上手 "),s("a",{class:"header-anchor",href:"#快速上手","aria-label":'Permalink to "快速上手"'},"​")],-1),y=s("h2",{id:"下载使用",tabindex:"-1"},[i("下载使用 "),s("a",{class:"header-anchor",href:"#下载使用","aria-label":'Permalink to "下载使用"'},"​")],-1),c=s("p",null,"你可以从如下地址下载 ZUI 的最新版本:",-1),F={class:"gap-4 vp-raw row"},u=["href"],C=s("i",{class:"icon icon-download-alt icon-lg"},null,-1),A=["href"],T=s("i",{class:"icon icon-github icon-lg"},null,-1),D=a("",6),m={class:"vp-code-group vp-adaptive-theme"},B=a("",1),b={class:"blocks"},v={class:"language-html vp-adaptive-theme active"},S=s("button",{title:"Copy Code",class:"copy"},null,-1),I=s("span",{class:"lang"},"html",-1),P={class:"shiki shiki-themes github-light github-dark vp-code"},q=a("",1),z=a("",1),V=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),N=a("",1),f=a("",1),w=a("",1),R={class:"line highlighted"},U=a("",7),j={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},x=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),Z=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),J=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),M=a("",1),H=a("",1),$={class:"line highlighted"},K=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),L=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),O=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Y=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),G={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Q=a("",6),W=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),X=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),ss={class:"language-html vp-adaptive-theme"},is=s("button",{title:"Copy Code",class:"copy"},null,-1),as=s("span",{class:"lang"},"html",-1),ts={class:"shiki shiki-themes github-light github-dark vp-code"},hs=a("",1),ns=a("",1),ls=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ks=a("",1),ps=a("",1),es=a("",1),Es={class:"line highlighted"},ds=a("",7),rs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},gs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),_s=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),os=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ys=a("",1),cs=a("",1),Fs={class:"line highlighted"},us=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Cs=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),As=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Ts=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Ds={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},ms=a("",6),Bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),vs={class:"language-html vp-adaptive-theme"},Ss=s("button",{title:"Copy Code",class:"copy"},null,-1),Is=s("span",{class:"lang"},"html",-1),Ps={class:"shiki shiki-themes github-light github-dark vp-code"},qs=a("",1),zs=a("",1),Vs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Ns=a("",1),fs=a("",1),ws=a("",1),Rs={class:"line highlighted"},Us=a("",7),js={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},xs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),Zs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Js=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Ms=a("",1),Hs=a("",1),$s={class:"line highlighted"},Ks=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Ls=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),Os=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Ys=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Gs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Qs=a("",6),Ws=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Xs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),si=a("",8),ii=s("div",{"zui-create":"datePicker"},null,-1),ai=s("div",{class:"language-html vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"<"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"div"),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," zui-create"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"="),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"datePicker"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")])])])],-1),ti=s("p",null,[i("使用 "),s("code",null,"zui-create-"),i(" 来定义组件选项,例如:")],-1),hi=s("div",{"zui-create":"","zui-create-list":"{items: [{text: 'item1'}, {text: 'item2'}], onClickItem: (e) => console.log('You clicked', e)}"},null,-1),ni=s("div",{class:"language-html vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"<"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"div"),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," zui-create"),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," zui-create-list"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"="),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"')]),i(` +import{c as d,k as s,m as r,a as i,t as l,I as h,w as n,R as a,D as p,o as g,f as _}from"./chunks/framework.DeE3OwZJ.js";const o=s("h1",{id:"快速上手",tabindex:"-1"},[i("快速上手 "),s("a",{class:"header-anchor",href:"#快速上手","aria-label":'Permalink to "快速上手"'},"​")],-1),y=s("h2",{id:"下载使用",tabindex:"-1"},[i("下载使用 "),s("a",{class:"header-anchor",href:"#下载使用","aria-label":'Permalink to "下载使用"'},"​")],-1),c=s("p",null,"你可以从如下地址下载 ZUI 的最新版本:",-1),F={class:"gap-4 vp-raw row"},u=["href"],C=s("i",{class:"icon icon-download-alt icon-lg"},null,-1),A=["href"],T=s("i",{class:"icon icon-github icon-lg"},null,-1),D=a("",6),m={class:"vp-code-group vp-adaptive-theme"},B=a("",1),b={class:"blocks"},v={class:"language-html vp-adaptive-theme active"},S=s("button",{title:"Copy Code",class:"copy"},null,-1),I=s("span",{class:"lang"},"html",-1),q={class:"shiki shiki-themes github-light github-dark vp-code"},P=a("",1),V=a("",1),z=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),N=a("",1),f=a("",1),w=a("",1),R={class:"line highlighted"},Z=a("",7),U={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},j=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),x=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),M=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),J=a("",1),H=a("",1),Y={class:"line highlighted"},$=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),L=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),O=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),X=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),G={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},K=a("",6),Q=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),W=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),ss={class:"language-html vp-adaptive-theme"},is=s("button",{title:"Copy Code",class:"copy"},null,-1),as=s("span",{class:"lang"},"html",-1),ts={class:"shiki shiki-themes github-light github-dark vp-code"},hs=a("",1),ns=a("",1),ls=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ks=a("",1),ps=a("",1),es=a("",1),Es={class:"line highlighted"},ds=a("",7),rs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},gs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),_s=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),os=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),ys=a("",1),cs=a("",1),Fs={class:"line highlighted"},us=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Cs=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),As=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Ts=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Ds={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},ms=a("",6),Bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),bs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),vs={class:"language-html vp-adaptive-theme"},Ss=s("button",{title:"Copy Code",class:"copy"},null,-1),Is=s("span",{class:"lang"},"html",-1),qs={class:"shiki shiki-themes github-light github-dark vp-code"},Ps=a("",1),Vs=a("",1),zs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"head"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Ns=a("",1),fs=a("",1),ws=a("",1),Rs={class:"line highlighted"},Zs=a("",7),Us={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},js=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">",-1),xs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Ms=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"body"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")],-1),Js=a("",1),Hs=a("",1),Ys={class:"line highlighted"},$s=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," <",-1),Ls=s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"script",-1),Os=s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," src",-1),Xs=s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"=",-1),Gs={style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},Ks=a("",6),Qs=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ")],-1),Ws=s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"")],-1),si=a("",8),ii=s("div",{"zui-create":"datePicker"},null,-1),ai=s("div",{class:"language-html vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"<"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"div"),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," zui-create"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"="),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"datePicker"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")])])])],-1),ti=s("p",null,[i("使用 "),s("code",null,"zui-create-"),i(" 来定义组件选项,例如:")],-1),hi=s("div",{"zui-create":"","zui-create-list":"{items: [{text: 'item1'}, {text: 'item2'}], onClickItem: (e) => console.log('You clicked', e)}"},null,-1),ni=s("div",{class:"language-html vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"<"),s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"div"),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," zui-create"),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}}," zui-create-list"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"="),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"')]),i(` `),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," {")]),i(` `),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," items: [{text: 'item1'}, {text: 'item2'}],")]),i(` `),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," onClickItem: (e) => console.log('You clicked', e)")]),i(` `),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," }")]),i(` -`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")])])])],-1),li=a("",8),di=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start/index.md","filePath":"guide/start/index.md","lastUpdated":null}'),ki={name:"guide/start/index.md"},ri=Object.assign(ki,{setup(pi){return(t,ei)=>{const e=p("Example"),k=p("PluginTabsTab"),E=p("PluginTabs");return g(),d("div",null,[o,y,c,s("div",F,[s("a",{class:"rounded-full btn primary size-lg",href:r(_)(`/zui-${t.zui.version}.zip`),download:""},[C,i(" 点击下载")],8,u),s("a",{class:"rounded-full btn outline size-lg",href:`https://github.com/easysoft/zui/releases/tag/v${t.zui.version}`,target:"_blank"},[T,i(" 从 GitHub 下载")],8,A)]),D,s("div",m,[B,s("div",b,[s("div",v,[S,I,s("pre",P,[s("code",null,[q,i(` -`),z,i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},">")])])])],-1),li=a("",8),di=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start/index.md","filePath":"guide/start/index.md","lastUpdated":null}'),ki={name:"guide/start/index.md"},ri=Object.assign(ki,{setup(pi){return(t,ei)=>{const e=p("Example"),k=p("PluginTabsTab"),E=p("PluginTabs");return g(),d("div",null,[o,y,c,s("div",F,[s("a",{class:"rounded-full btn primary size-lg",href:r(_)(`/zui-${t.zui.version}.zip`),download:""},[C,i(" 点击下载")],8,u),s("a",{class:"rounded-full btn outline size-lg",href:`https://github.com/easysoft/zui/releases/tag/v${t.zui.version}`,target:"_blank"},[T,i(" 从 GitHub 下载")],8,A)]),D,s("div",m,[B,s("div",b,[s("div",v,[S,I,s("pre",q,[s("code",null,[P,i(` `),V,i(` +`),z,i(` `),N,i(` `),f,i(` `),w,i(` -`),s("span",R,[U,s("span",j,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.css"',1),x]),i(` -`),Z,i(` -`),J,i(` +`),s("span",R,[Z,s("span",U,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.css"',1),j]),i(` +`),x,i(` `),M,i(` +`),J,i(` `),H,i(` -`),s("span",$,[K,L,O,Y,s("span",G,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.js"',1),Q]),i(` -`),W,i(` -`),X])])]),s("div",ss,[is,as,s("pre",ts,[s("code",null,[hs,i(` +`),s("span",Y,[$,L,O,X,s("span",G,'"///cdn.jsdelivr.net/npm/zui/dist/'+l(t.zui.version)+'/zui.js"',1),K]),i(` +`),Q,i(` +`),W])])]),s("div",ss,[is,as,s("pre",ts,[s("code",null,[hs,i(` `),ns,i(` `),ls,i(` `),ks,i(` @@ -29,17 +29,17 @@ import{c as d,k as s,m as r,a as i,t as l,I as h,w as n,R as a,D as p,o as g,f a `),cs,i(` `),s("span",Fs,[us,Cs,As,Ts,s("span",Ds,'"///cdn.bootcdn.net/ajax/libs/zui/'+l(t.zui.version)+'/zui.js"',1),ms]),i(` `),Bs,i(` -`),bs])])]),s("div",vs,[Ss,Is,s("pre",Ps,[s("code",null,[qs,i(` -`),zs,i(` +`),bs])])]),s("div",vs,[Ss,Is,s("pre",qs,[s("code",null,[Ps,i(` `),Vs,i(` +`),zs,i(` `),Ns,i(` `),fs,i(` `),ws,i(` -`),s("span",Rs,[Us,s("span",js,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.css"',1),xs]),i(` -`),Zs,i(` -`),Js,i(` +`),s("span",Rs,[Zs,s("span",Us,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.css"',1),js]),i(` +`),xs,i(` `),Ms,i(` +`),Js,i(` `),Hs,i(` -`),s("span",$s,[Ks,Ls,Os,Ys,s("span",Gs,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.js"',1),Qs]),i(` -`),Ws,i(` -`),Xs])])])])]),si,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[ii]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ai]),_:1})]),_:1}),ti,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[hi]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ni]),_:1})]),_:1}),li])}}});export{di as __pageData,ri as default}; +`),s("span",Ys,[$s,Ls,Os,Xs,s("span",Gs,'"///unpkg.com/zui@'+l(t.zui.version)+'/zui.js"',1),Ks]),i(` +`),Qs,i(` +`),Ws])])])])]),si,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[ii]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ai]),_:1})]),_:1}),ti,h(E,null,{default:n(()=>[h(k,{label:"示例"},{default:n(()=>[h(e,null,{default:n(()=>[hi]),_:1})]),_:1}),h(k,{label:"HTML"},{default:n(()=>[ni]),_:1})]),_:1}),li])}}});export{di as __pageData,ri as default}; diff --git a/dev/guide/config/base/color.html b/dev/guide/config/base/color.html index 7c5f7ed19e..53668ef8fe 100644 --- a/dev/guide/config/base/color.html +++ b/dev/guide/config/base/color.html @@ -14,8 +14,8 @@ - - + + @@ -49,7 +49,7 @@ --color-primary-900-rgb: 88, 34, 133; --color-primary-950-rgb: 59, 14, 99; }

提示

在定义 CSS 变量覆盖调色板时,除了定义 50~950 的十六进制颜色外,还需要定义对应的 RGB 颜色,这是为了在一些特殊场景下通过改变透明度来实现颜色的变化。

注意

如果你需要自定义配色,建议只通过修改调色板来实现,不建议修改界面颜色,除非主题需要实现对比度更明显的风格,任何时候都不应该修改特殊颜色的定义。

更多关于主题的内容参考 主题 文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/config/base/font.html b/dev/guide/config/base/font.html index 34c5742b49..e9ac3e5760 100644 --- a/dev/guide/config/base/font.html +++ b/dev/guide/config/base/font.html @@ -14,8 +14,8 @@ - - + + @@ -44,7 +44,7 @@ 月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。
leading-relaxed
.leading-relaxed
宽松
line-height: line-height
So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all living things but I tell you Jerry at that moment, I was a marine biologist.
 月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。
leading-loose
.leading-loose
松散
line-height: line-height
So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all living things but I tell you Jerry at that moment, I was a marine biologist.
 月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。

在 ZUI 中可以通过 CSS 工具类来设置行高,详细用法参加 CSS 工具类 / 排版 / 行高 文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/config/base/rounded.html b/dev/guide/config/base/rounded.html index c703ea3cb8..848645adb7 100644 --- a/dev/guide/config/base/rounded.html +++ b/dev/guide/config/base/rounded.html @@ -14,8 +14,8 @@ - - + + @@ -31,7 +31,7 @@ --radius-3xl: 1.5rem; --radius-full: 9999px; }

自定义主题

可以通过定制主题来修改圆角设置,具体参见 主题 文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/config/base/screens.html b/dev/guide/config/base/screens.html index e9d9d3c079..51a0507774 100644 --- a/dev/guide/config/base/screens.html +++ b/dev/guide/config/base/screens.html @@ -14,8 +14,8 @@ - - + + @@ -54,7 +54,7 @@ --screen-xl: 1280px; --screen-2xl: 1536px; }

自定义主题

可以通过定制主题来修改屏幕断点设置,具体参见 主题 文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/config/base/shadow.html b/dev/guide/config/base/shadow.html index 461b6afc9e..a4a1d281a0 100644 --- a/dev/guide/config/base/shadow.html +++ b/dev/guide/config/base/shadow.html @@ -14,8 +14,8 @@ - - + + @@ -30,7 +30,7 @@ --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); --shadow-none: none; }

自定义主题

可以通过定制主题来修改阴影设置,具体参见 主题 文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/config/base/spacing.html b/dev/guide/config/base/spacing.html index 2a2ab7ac83..d430e8e06d 100644 --- a/dev/guide/config/base/spacing.html +++ b/dev/guide/config/base/spacing.html @@ -14,14 +14,14 @@ - - + +
Skip to content

间距

间距配置

为了方便实现风格一致的交互界面,ZUI 预置了间距设置。下面为默认的间距配置:

名称
实际值
预览
0
width
px
width
0.5
width
1
width
1.5
width
2
width
2.5
width
3
width
3.5
width
4
width
5
width
6
width
7
width
8
width
9
width
10
width
11
width
12
width
14
width
16
width
20
width
24
width
28
width
32
width
36
width
40
width
44
width
48
width
52
width
56
width
60
width
64
width
72
width
80
width
96
width

4px 约定

通过上表可以看到,除了 0px 比较特殊的设置,其他间距实际值都是 4px 的倍数,这是有意设计,无论是设计还是开发都应该将间距为 4px 的倍数作为约定,这样更有利于实现风格一致的交互界面。

当以上间距无法满足要求时,如果需要引入新的间距值也应当遵从 4px 约定。

间距会影响所有相关 CSS 属性配置,包括 paddingmarginwidthheightmaxHeightgapinset 等。

使用间距

在 ZUI 中提供了大量 CSS 工具类,可以非常方便的来应用间距配置,包括:

如需了解,请参考对应的文档。

自定义间距

可以通过定制主题来修改间距设置,具体参见 主题 文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/customize/build.html b/dev/guide/customize/build.html index a6a254e7e4..b47f053adb 100644 --- a/dev/guide/customize/build.html +++ b/dev/guide/customize/build.html @@ -14,14 +14,14 @@ - - + +
Skip to content

打包

打包组件库

执行如下命令进行打包操作:

sh
pnpm build

该命令提供了一些参数用户个性化打包,例如打包命令后可以直接指定需要打包的组件库,通过 --name 来指定打包生成的文件名:

sh
pnpm build -- utilities dtable --name=zui-table

打包文档

执行如下命令进行打包文档网站:

sh
pnpm docs:build

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/customize/dev.html b/dev/guide/customize/dev.html index 7d955554ba..c89c86f9dc 100644 --- a/dev/guide/customize/dev.html +++ b/dev/guide/customize/dev.html @@ -14,14 +14,14 @@ - - + +
Skip to content

开发

开发服务

执行如下命令启动开发服务:

shell
$ pnpm dev

开发服务器启动后,默认情况下可以通过网址:http://localhost:5173/ 来访问开发服务页面。通过页面上的组件导航,可以访问对应的组件开发页面。也可以将组件名附加到网址后面,直接访问对应的组件页面,例如 http://localhost:5173/button/

在开发服务页面上支持热更新,当开发文件变更后会自动反馈到开发服务页面上。

对组件进行开发调试

组件开发目录

ZUI3 每个组件在一个独立的目录内,拥有自己的 package.json 文件,使得组件可以独立作为 npm 包来使用,也可以单独作为子项目进行开发维护。

提示

通常组件通过在 package.json 文件中设置属性 private: true 来让包仅在 zui3 工作空间内可用,但组件仍然拥有作为公开的包发布到 npm 上进行独立使用。

文档开发服务

启动 ZUI 文档网站开发服务执行如下命令:

shell
$ pnpm docs:dev

此命令会先打包 ZUI 并启动文档开发服务器,默认情况下可以通过网址:http://localhost:5174/ 来访问文档开发服务页面。在文档开发服务启动时,修改文档源文件,会自动更新文档页面。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/customize/exts-lib.html b/dev/guide/customize/exts-lib.html index 6b9e18942c..3b62a9b3fc 100644 --- a/dev/guide/customize/exts-lib.html +++ b/dev/guide/customize/exts-lib.html @@ -14,8 +14,8 @@ - - + + @@ -23,7 +23,7 @@
Skip to content

组件库扩展

ZUI3 组件库内置了大量组件,并支持集中开发、调试和打包,其中打包还支持只选择指定的组件进行个性化定制,同步输出组件库文档。但当需求扩展到组件库之外时,就需要用到扩展组件库了。ZUI3 支持扩展组件库模式,可以从其他位置引入一个或多个组件库目录,享受集中开发、调试和打包。下面介绍扩展组件库的使用方法。

定义扩展库

扩展组件库可以来自本地系统的任意位置,只需要提供一个路径,例如:

txt
/Users/TaiJi/Projects/zui3_exts/lib/

扩展组件库的目录结构与 ZUI3 /lib/ 下的目录结构一致,下面的每个子目录为一个独立的组件,详细定义参考 开发文档

添加扩展库

zui3 项目根目录执行:

shell
$ pnpm extend-lib -- <ext_lib_path> <lib_name>

其中参数 ext_lib_path 为扩展组件库路径,<lib_name> 为扩展组件库名称。例如:

shell
$ pnpm extend-lib -- /Users/TaiJi/Projects/zui3_exts/lib/ zentao

执行上述命令之后,会将组件库目录文件拷贝到 zui3/lib_name 目录下,同时会在 zui3/exts/libs.json 文件中记录此扩展库的名称和路径。

json
{
     "zentao": "/Users/TaiJi/Projects/zui3_exts/lib/*"
 }

实际上,你也可以通过自己编辑这个文件来添加扩展库。

启动开发服务

要在开发模式中包含对扩展组件库的开发调试,只需要执行如下命令代替 pnpm dev 命令即可:

shell
$ pnpm dev:exts

当添加了多个扩展库时,上述命令会包含所有扩展库,有时只需要包含特定的扩展库,只需要自定义 --lib 参数即可:

shell
$ pnpm dev:exts --lib=zui,zentao

启动文档服务器

要在文档网站服务模式中包含对扩展组件库的文档支持,只需要如下命令代替 pnpm docs:dev 命令即可:

shell
$ pnpm docs:dev:exts

打包

打包时如果需要将扩展库中的组件也进行打包,则需要添加 --exts 参数,然后就可以在需要打包的组件清单中指定扩展库中的组件名称:

shell
$ pnpm build -- label @zentao/status-label --exts

如果不指定名称,则默认打包仍然只打包内置组件库的组件,例如下面的命令仍然相当于 pnpm build

shell
$ pnpm build -- --exts

如果需要将所有内置组件库和扩展库中的所有组件一并打包,可以使用如下命令:

shell
$ pnpm build -- zui+exts --exts --name=zentao

当添加了多个扩展库时,上述命令会包含所有扩展库,有时只需要包含特定的扩展库,只需要自定义 --exts 参数即可:

shell
$ pnpm build -- zui+exts --exts=zui,zentao

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/index.html b/dev/guide/index.html index 48a6cb7748..29e486dccc 100644 --- a/dev/guide/index.html +++ b/dev/guide/index.html @@ -14,14 +14,14 @@ - - + +
Skip to content

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/start/compatibility.html b/dev/guide/start/compatibility.html index 83fd22438c..e885f687a6 100644 --- a/dev/guide/start/compatibility.html +++ b/dev/guide/start/compatibility.html @@ -14,14 +14,14 @@ - - + +
Skip to content

兼容性

支持的浏览器

  • Chrome:84+
  • Firefox:63+
  • Safari:14.1+
  • Edge:84+
  • Chrome for Android:126+
  • iOS Safari:14.5+

用到的第三方库

在 ZUI 3 中使用了一些精心挑选的第三方库,这些库通常足够小巧但实用:

  • preact - 基于 Preact 实现了大部分 JS 组件,通过封装支持原生调用
  • cash-dom - 提供了大量辅助方法方便操作 DOM,同时提供了对 jQuery 的兼容实用方式
  • floating UI - 实现浮动交互定位,例如下拉菜单、工具提示等
  • tinykeys - 实现快捷键功能

技术栈

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/start/index.html b/dev/guide/start/index.html index 733e7b9fc2..d207d8bca0 100644 --- a/dev/guide/start/index.html +++ b/dev/guide/start/index.html @@ -12,10 +12,10 @@ - + - - + + @@ -36,7 +36,7 @@ <a class="btn" href="/">访问 ZUI 网站</a> <script src="./zui/zui.js"></script> </body> -</html>

使用 CDN

使用 CDN 可以快速使用 ZUI,与下载使用基本一样,只需要将相关资源文件替换为 CDN 上的地址即可:

html
<!doctype html>
+</html>

使用 CDN

使用 CDN 可以快速使用 ZUI,与下载使用基本一样,只需要将相关资源文件替换为 CDN 上的地址即可:

html
<!doctype html>
 <html lang="zh-CN">
   <head>
     <meta charset="utf-8">
@@ -108,7 +108,7 @@
 import 'zui/lib/dtable/css';
 
 const myTable = new DTable('#myTable', {...});

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/start/intro.html b/dev/guide/start/intro.html index eb08506372..89afcfc3f1 100644 --- a/dev/guide/start/intro.html +++ b/dev/guide/start/intro.html @@ -14,14 +14,14 @@ - - + +
Skip to content

介绍

ZUI 3 是一个的开源 UI 组件库,提供了大量实用组件,支持最大限度的定制,不依赖任何其他 JS 框架,可以在任何 Web 应用中通过原生的方式使用。

功能特性

  • 📡 统一的 UI 配置:基于 CSS 变量实现的全局 UI 配置,为组件提供了统一的风格基础,支持深色模式,方便定制主题;
  • 👔 丰富的 CSS 工具类:基于 Tailwind CSS 提供了丰富的 CSS 工具类,包括特别的语义化外观工具类,轻松实现常见布局、文字排版、动画、外观定义;
  • ⭐️ 实用的 CSS 组件:提供了大量实用的 CSS 组件,无需借助 JS 即可实现界面基本功能,例如按钮、表单、导航、卡片、表格等;
  • 💎 强大的 JS 组件:通过 JS 实现很多功能强大的组件,包括下拉菜单、工具提示、对话框、数据表格、文件上传等;
  • 📦 使用灵活:不依赖具体的框架,所有 CSS 工具类开箱即用,所有 JS 组件支持原生调用,丰富的引入方式,支持通过 ESM 导入,或者直接在浏览器中引用整个 JS 和 CSS,支持打包定制自己的组合版本。

与 ZUI1 的区别

相比较 ZUI 1,ZUI 3 是一个全新的更加现代的 UI 组件库,主要有如下区别:

区别ZUI 1ZUI 3
外部依赖jQuery
内部依赖Bootstrap 3
网格布局实现floatFlex
工具类部分样式、布局、排版工具类丰富的样式、布局、排版、交互效果工具类
主题定制CSS 覆盖CSS 变量
CSS 组件大部分由 Bootstrap 提供全新的 CSS 组件,更方便定制外观
JS 组件基于 jQuery 实现基于 Preact 实现,功能更强大

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/guide/start/tutorial.html b/dev/guide/start/tutorial.html index 23bd061062..863ab817cd 100644 --- a/dev/guide/start/tutorial.html +++ b/dev/guide/start/tutorial.html @@ -14,8 +14,8 @@ - - + + @@ -238,7 +238,7 @@ /* Extend StepsEditor to zui object. */ $.extend(zui, {StepsEditor});

开发定制入门

参考打包开发扩展文档。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index 529e639d83..43be9defc0 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"guide_customize_exts-lib.md":"BKuxQGR7","lib_basic_core_zui-toggle.md":"D_sPxQQs","index.md":"0I4m7CHi","guide_start_index.md":"BjTcZfmE","guide_start_tutorial.md":"CmfMgriO","guide_config_base_shadow.md":"BNzZgBvC","lib_components_btn-group_index.md":"5V7X7r4P","guide_config_base_color.md":"B_i0YNBV","guide_customize_dev.md":"BHKWgm2m","lib_components_upload_index.md":"CzVklHlh","guide_config_base_screens.md":"CXV8MRfe","lib_components_messager_index.md":"BW-SbOyW","lib_components_nav_js.md":"OePgMXXa","lib_components_alert_index.md":"Bep50ZBz","lib_components_calendar_index.md":"CkvLcaAr","lib_components_tabs_index.md":"D-2YSS_0","lib_components_avatar_index.md":"7j-ew9BZ","lib_components_modal_index.md":"CgbVseyc","lib_components_table_index.md":"Ck9c8Ek4","lib_components_dtable_index.md":"BffsFMb4","lib_forms_checkbox_index.md":"D_VspyHI","lib_components_tooltip_index.md":"Co1ECN3g","lib_components_kanban_index.md":"BFBze8B1","lib_forms_datetime-picker_date.md":"D59eL2rp","guide_index.md":"t3LZT4QY","lib_forms_datetime-picker_datetime.md":"CPkUUpoa","lib_forms_datetime-picker_time.md":"BTTIPCd8","lib_basic_core_react.md":"BTwYD_hf","lib_basic_core_component.md":"uPNn0zXQ","lib_forms_form-control_index.md":"BiHmr69s","lib_components_avatar-group_index.md":"BqwB9RZP","lib_components_file-selector_index.md":"DvywDJ4t","lib_forms_input-control_index.md":"Cv0HAFHI","lib_basic_core_css-component.md":"BwdGvlia","lib_components_search-box_index.md":"C6d4tMjv","lib_components_tree_index.md":"Dn03SufJ","lib_forms_checkbox_switch.md":"QH8sYaT3","lib_components_modal_trigger.md":"BMBZZybJ","lib_components_dashboard_index.md":"DRaM25zK","lib_components_toolbar_js.md":"ih1Bb-Rr","guide_start_compatibility.md":"CltyrLny","lib_components_nav_index.md":"LeXRijcV","lib_components_label_index.md":"q76w0qb_","lib_components_toolbar_index.md":"DvojQFd3","guide_config_base_spacing.md":"B653NiFv","lib_basic_core_zui-on.md":"IjDbHIdO","lib_basic_core_zui-create.md":"DLe7A4Hj","lib_components_dropdown_index.md":"DbbvFq7u","guide_start_intro.md":"DEIJsFre","lib_components_dtable_plugins.md":"CrBZnIMk","lib_components_color-picker_index.md":"TddEDwtA","lib_components_contextmenu_index.md":"DmEkUwKC","guide_customize_build.md":"BnMDMPqz","lib_components_pager_index.md":"D-bROEeS","lib_components_progress_index.md":"CEtektTK","lib_components_menu_js.md":"CtCBsfaZ","lib_components_menu_index.md":"GncmWrZR","guide_config_base_font.md":"Ba4TxUmX","lib_components_upload-imgs_index.md":"erXa6IN9","themes_index.md":"BufleTaf","lib_forms_input-group_index.md":"BMbSYMAL","utilities_flex_utilities_basis.md":"CD8bfBkC","utilities_backgrounds_utilities_index.md":"83vrBdjK","utilities_borders_utilities_border-color.md":"YFsIdVzo","utilities_borders_utilities_border-radius.md":"Dh1Nfe3A","utilities_borders_utilities_ring-offset.md":"DVb4azgP","lib_helpers_store_index.md":"Bb0Q5VMq","lib_index.md":"Ci-MFpvh","utilities_borders_utilities_ring-width.md":"DzwqJDAb","public_zui_icons_fontawesome-license.md":"gfk3cURr","utilities_effects_utilities_animation.md":"B91izYvM","utilities_effects_utilities_filter.md":"BECjG4KT","utilities_effects_utilities_opacity.md":"BcIL05hy","utilities_effects_utilities_shadow.md":"CaSFSOMl","utilities_effects_utilities_transform.md":"DOI7WnD2","utilities_effects_utilities_transition.md":"SqXrre1m","utilities_flex_utilities_align-content.md":"BXGtlw9g","utilities_flex_utilities_align-items.md":"CoFxBC8U","lib_components_button_index.md":"B_1XMQuI","utilities_flex_utilities_align-self.md":"FvSQ-0Fm","lib_forms_picker_index.md":"DRGaAh8C","utilities_borders_utilities_border-width.md":"DVKauZHZ","utilities_borders_utilities_divider.md":"khTQtOjv","lib_helpers_helpers_date-helper.md":"8AhG85Op","lib_forms_form_index.md":"sRq2u4jF","guide_config_base_rounded.md":"-jZtXV-b","lib_basic_core_cash.md":"Bzo_CH3I","utilities_layout_utilities_position.md":"rEqgc51a","utilities_flex_utilities_direction.md":"ByjEgbMo","utilities_flex_utilities_flex.md":"BlvjgLjv","utilities_flex_utilities_gap.md":"DArM8pom","utilities_flex_utilities_grow.md":"Cn0nOehN","utilities_flex_utilities_justify-content.md":"D4BVZfVC","utilities_flex_utilities_order.md":"CfeTP7tL","utilities_flex_utilities_shrink.md":"CangfHwT","utilities_flex_utilities_wrap.md":"DZ1moX26","utilities_index.md":"CTpyUmIw","utilities_interactivity_utilities_cursor.md":"DvV2lotG","lib_helpers_helpers_string-helper.md":"me2jtoF5","utilities_interactivity_utilities_disabled.md":"CEB7Waub","lib_components_pager_js.md":"DDMQ9lXw","utilities_borders_utilities_ring-color.md":"s0nb0vey","utilities_interactivity_utilities_pointer-events.md":"EHN_kBvp","utilities_interactivity_utilities_user-select.md":"BrNPbIfK","utilities_layout_utilities_aspect-ratio.md":"_oWsoIYV","utilities_layout_utilities_container.md":"Bb3Lxa_7","utilities_layout_utilities_floats.md":"pUvtfQiw","utilities_interactivity_utilities_loading.md":"Da_3FM-1","utilities_spacing_utilities_space.md":"xgZHI4vS","utilities_interactivity_utilities_state.md":"0ZTXUBo7","utilities_interactivity_utilities_scroll.md":"-0JODEPX","utilities_layout_utilities_top-right-bottom-left.md":"C3lYdIa5","utilities_sizing_utilities_width.md":"DNXQWQFd","utilities_skin_utilities_ghost.md":"DIt2ElJv","utilities_skin_utilities_outline.md":"bsC71Qhi","utilities_skin_utilities_pale.md":"D1L1NRKs","utilities_typography_utilities_whitespace.md":"BFKZWjDW","utilities_skin_utilities_solid.md":"Cst9ctTO","utilities_typography_utilities_vertical-align.md":"DiLQT3Ni","utilities_skin_utilities_surface.md":"CN20jMqq","utilities_spacing_utilities_margin.md":"C9jBOzP9","utilities_spacing_utilities_padding.md":"DuVwhAAe","utilities_typography_utilities_font-family.md":"BHWBVXg4","lib_components_progress-circle_index.md":"B0UUIqGM","utilities_typography_utilities_leading.md":"DOlxRw-6","utilities_layout_utilities_visibility.md":"CKuADuoh","utilities_typography_utilities_word-break.md":"BxSlEVBy","utilities_layout_utilities_overflow.md":"DVHk2FQA","utilities_typography_utilities_text-align.md":"CtJ4rtrI","utilities_typography_utilities_text-color.md":"D1fjRsa-","utilities_sizing_utilities_height.md":"CdF7aUuw","lib_components_panel_index.md":"CoS14bNk","utilities_typography_utilities_text-transform.md":"CM7k043G","utilities_layout_utilities_display.md":"DcXW9WtS","lib_components_scrollbar_index.md":"BjI3vUqu","utilities_layout_utilities_object-fit.md":"D4YmLxEC","utilities_layout_utilities_z-index.md":"DKY1uWyd","utilities_typography_utilities_font-size.md":"B3W8gyR3","lib_components_breadcrumb_index.md":"9pymY2C8","utilities_typography_utilities_text-decoration.md":"BvY6hqYi","utilities_typography_utilities_line-clamp.md":"CvO9OG4z","utilities_typography_utilities_text-overflow.md":"CCaD8PoB","utilities_typography_utilities_list-style.md":"LuK8VgZf","utilities_typography_utilities_font-weight.md":"CV3nf15_"} +{"guide_index.md":"t3LZT4QY","guide_customize_exts-lib.md":"BKuxQGR7","lib_basic_core_zui-create.md":"DLe7A4Hj","guide_config_base_rounded.md":"-jZtXV-b","guide_customize_build.md":"BnMDMPqz","guide_config_base_font.md":"Ba4TxUmX","guide_customize_dev.md":"BHKWgm2m","guide_config_base_color.md":"B_i0YNBV","lib_components_alert_index.md":"Bep50ZBz","guide_start_compatibility.md":"CltyrLny","guide_start_intro.md":"DEIJsFre","lib_components_pager_index.md":"D-bROEeS","guide_config_base_screens.md":"CXV8MRfe","lib_basic_core_zui-on.md":"IjDbHIdO","guide_start_tutorial.md":"CmfMgriO","guide_config_base_spacing.md":"B653NiFv","lib_components_avatar_index.md":"7j-ew9BZ","lib_basic_core_zui-toggle.md":"D_sPxQQs","lib_components_btn-group_index.md":"5V7X7r4P","lib_components_label_index.md":"q76w0qb_","lib_components_button_index.md":"B_1XMQuI","lib_components_calendar_index.md":"CkvLcaAr","lib_components_color-picker_index.md":"TddEDwtA","lib_components_contextmenu_index.md":"DmEkUwKC","lib_components_dtable_index.md":"BffsFMb4","utilities_layout_utilities_overflow.md":"DVHk2FQA","utilities_typography_utilities_whitespace.md":"BFKZWjDW","utilities_typography_utilities_word-break.md":"BxSlEVBy","lib_helpers_helpers_date-helper.md":"8AhG85Op","lib_basic_core_cash.md":"Bzo_CH3I","lib_components_messager_index.md":"BW-SbOyW","lib_components_progress-circle_index.md":"B0UUIqGM","lib_components_modal_trigger.md":"BMBZZybJ","lib_components_dashboard_index.md":"DRaM25zK","lib_basic_core_css-component.md":"BwdGvlia","lib_components_upload-imgs_index.md":"erXa6IN9","utilities_layout_utilities_top-right-bottom-left.md":"C3lYdIa5","lib_components_panel_index.md":"CoS14bNk","guide_start_index.md":"Fxg9MjfX","lib_components_dtable_plugins.md":"CrBZnIMk","index.md":"0I4m7CHi","lib_components_upload_index.md":"CzVklHlh","guide_config_base_shadow.md":"BNzZgBvC","lib_forms_input-control_index.md":"Cv0HAFHI","utilities_skin_utilities_outline.md":"bsC71Qhi","lib_components_menu_index.md":"GncmWrZR","utilities_skin_utilities_solid.md":"Cst9ctTO","utilities_skin_utilities_surface.md":"CN20jMqq","lib_components_menu_js.md":"CtCBsfaZ","lib_forms_picker_index.md":"DRGaAh8C","utilities_layout_utilities_position.md":"rEqgc51a","utilities_typography_utilities_font-size.md":"B3W8gyR3","utilities_typography_utilities_font-weight.md":"CV3nf15_","utilities_layout_utilities_visibility.md":"CKuADuoh","lib_forms_input-group_index.md":"BMbSYMAL","lib_components_toolbar_js.md":"ih1Bb-Rr","utilities_flex_utilities_flex.md":"BlvjgLjv","utilities_layout_utilities_object-fit.md":"D4YmLxEC","utilities_sizing_utilities_height.md":"CdF7aUuw","utilities_layout_utilities_z-index.md":"DKY1uWyd","utilities_flex_utilities_align-content.md":"BXGtlw9g","utilities_flex_utilities_align-items.md":"CoFxBC8U","utilities_flex_utilities_align-self.md":"FvSQ-0Fm","utilities_flex_utilities_basis.md":"CD8bfBkC","utilities_flex_utilities_direction.md":"ByjEgbMo","lib_forms_checkbox_index.md":"D_VspyHI","utilities_sizing_utilities_width.md":"DNXQWQFd","lib_basic_core_react.md":"BTwYD_hf","lib_components_nav_index.md":"LeXRijcV","lib_components_nav_js.md":"OePgMXXa","lib_forms_checkbox_switch.md":"QH8sYaT3","utilities_skin_utilities_pale.md":"D1L1NRKs","lib_components_pager_js.md":"DDMQ9lXw","lib_forms_datetime-picker_date.md":"D59eL2rp","lib_components_progress_index.md":"CEtektTK","lib_components_scrollbar_index.md":"BjI3vUqu","lib_forms_datetime-picker_datetime.md":"CPkUUpoa","lib_components_file-selector_index.md":"DvywDJ4t","lib_components_search-box_index.md":"C6d4tMjv","utilities_effects_utilities_transition.md":"SqXrre1m","public_zui_icons_fontawesome-license.md":"gfk3cURr","utilities_backgrounds_utilities_index.md":"83vrBdjK","utilities_borders_utilities_border-color.md":"YFsIdVzo","utilities_borders_utilities_border-radius.md":"Dh1Nfe3A","lib_components_tooltip_index.md":"Co1ECN3g","utilities_borders_utilities_border-width.md":"DVKauZHZ","utilities_borders_utilities_divider.md":"khTQtOjv","utilities_borders_utilities_ring-color.md":"s0nb0vey","utilities_borders_utilities_ring-offset.md":"DVb4azgP","utilities_borders_utilities_ring-width.md":"DzwqJDAb","utilities_effects_utilities_animation.md":"B91izYvM","utilities_effects_utilities_filter.md":"BECjG4KT","utilities_effects_utilities_opacity.md":"BcIL05hy","utilities_effects_utilities_transform.md":"DOI7WnD2","themes_index.md":"BufleTaf","lib_forms_form-control_index.md":"BiHmr69s","lib_helpers_helpers_string-helper.md":"me2jtoF5","lib_helpers_store_index.md":"Bb0Q5VMq","lib_components_breadcrumb_index.md":"9pymY2C8","lib_forms_datetime-picker_time.md":"BTTIPCd8","utilities_spacing_utilities_margin.md":"C9jBOzP9","lib_components_table_index.md":"Ck9c8Ek4","utilities_effects_utilities_shadow.md":"CaSFSOMl","utilities_spacing_utilities_padding.md":"DuVwhAAe","utilities_flex_utilities_gap.md":"DArM8pom","utilities_flex_utilities_grow.md":"Cn0nOehN","utilities_flex_utilities_justify-content.md":"D4BVZfVC","utilities_flex_utilities_order.md":"CfeTP7tL","utilities_flex_utilities_shrink.md":"CangfHwT","utilities_flex_utilities_wrap.md":"DZ1moX26","utilities_index.md":"CTpyUmIw","utilities_interactivity_utilities_cursor.md":"DvV2lotG","lib_components_tree_index.md":"Dn03SufJ","utilities_interactivity_utilities_disabled.md":"CEB7Waub","utilities_interactivity_utilities_loading.md":"Da_3FM-1","utilities_interactivity_utilities_pointer-events.md":"EHN_kBvp","utilities_spacing_utilities_space.md":"xgZHI4vS","utilities_interactivity_utilities_scroll.md":"-0JODEPX","utilities_interactivity_utilities_state.md":"0ZTXUBo7","utilities_interactivity_utilities_user-select.md":"BrNPbIfK","utilities_layout_utilities_aspect-ratio.md":"_oWsoIYV","utilities_layout_utilities_container.md":"Bb3Lxa_7","utilities_layout_utilities_display.md":"DcXW9WtS","utilities_layout_utilities_floats.md":"pUvtfQiw","lib_index.md":"Ci-MFpvh","utilities_skin_utilities_ghost.md":"DIt2ElJv","lib_components_tabs_index.md":"D-2YSS_0","utilities_typography_utilities_leading.md":"DOlxRw-6","lib_components_toolbar_index.md":"DvojQFd3","lib_forms_form_index.md":"sRq2u4jF","lib_components_avatar-group_index.md":"BqwB9RZP","utilities_typography_utilities_line-clamp.md":"CvO9OG4z","utilities_typography_utilities_list-style.md":"LuK8VgZf","lib_components_modal_index.md":"CgbVseyc","lib_basic_core_component.md":"uPNn0zXQ","utilities_typography_utilities_text-align.md":"CtJ4rtrI","utilities_typography_utilities_text-color.md":"D1fjRsa-","lib_components_kanban_index.md":"BFBze8B1","utilities_typography_utilities_text-decoration.md":"BvY6hqYi","utilities_typography_utilities_text-overflow.md":"CCaD8PoB","utilities_typography_utilities_text-transform.md":"CM7k043G","utilities_typography_utilities_vertical-align.md":"DiLQT3Ni","utilities_typography_utilities_font-family.md":"BHWBVXg4","lib_components_dropdown_index.md":"DbbvFq7u"} diff --git a/dev/index.html b/dev/index.html index 0ef673959b..8feca3cd0e 100644 --- a/dev/index.html +++ b/dev/index.html @@ -14,14 +14,14 @@ - - + +
Skip to content

ZUI 3

开箱即用的组合式前端 UI 框架

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/basic/core/cash.html b/dev/lib/basic/core/cash.html index 5a44bebc41..b90e6419a2 100644 --- a/dev/lib/basic/core/cash.html +++ b/dev/lib/basic/core/cash.html @@ -14,8 +14,8 @@ - - + + @@ -82,7 +82,7 @@ /* 销毁。 */ datePicker.destroy();

辅助方法

$.fn.resize() 监听元素尺寸变化

定义:

ts
$.fn.resize(callback: ResizeObserverCallback): ResizeObserver;

参数

  • callback:回调函数,定义为 (entries: ResizeObserverEntry[], observer: ResizeObserver): void;

返回值ResizeObserverResizeObserver 对象。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/basic/core/component.html b/dev/lib/basic/core/component.html index b13b590fc0..032c32d86d 100644 --- a/dev/lib/basic/core/component.html +++ b/dev/lib/basic/core/component.html @@ -14,8 +14,8 @@ - - + + @@ -117,7 +117,7 @@ const nav = zui.Nav.get('#myNav'); </script>

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/basic/core/css-component.html b/dev/lib/basic/core/css-component.html index 8ad490de14..c3165a6f9c 100644 --- a/dev/lib/basic/core/css-component.html +++ b/dev/lib/basic/core/css-component.html @@ -14,14 +14,14 @@ - - + +
Skip to content

CSS 组件

基本使用

CSS 组件通常提供了界面所需的基本功能,例如按钮、表单、导航、卡片、表格等,这些组件通常不需要 JS 的支持,只需要在 HTML 中使用对应的组件类名即可,例如按钮:

提示

一些 JS 组件也提供了纯 CSS 使用的方式,也就是说 CSS 组件也可能是一个 JS 组件。

组件样式

通用样式修饰

CSS 组件通常提供了多种样式修饰,例如按钮的颜色、大小、形状、状态等,大部分通用样式的修饰都可以通过 CSS 工具类来实现,例如:

专用样式修饰

部分组件提供了专用样式修饰类,这些类名通常为组件类加后缀实现,例如按钮组件的 btn-link

CSS 变量

CSS 组件通常提供了一些 CSS 变量用于自定义组件的样式,例如按钮组件提供了 --btn-bg 用于自定义按钮的颜色:

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/basic/core/react.html b/dev/lib/basic/core/react.html index a42c5d0e5f..77b5a0bbf5 100644 --- a/dev/lib/basic/core/react.html +++ b/dev/lib/basic/core/react.html @@ -14,8 +14,8 @@ - - + + @@ -33,7 +33,7 @@ */ static renderHTML(options: object): string; }

React 组件相比较普通的组件有如下特点:

  • 组件采用 Preact 开发,当重新进行渲染时,只会更新组件的部分内容,而不是整个元素;
  • 组件对应的元素内部禁止直接进行修改,因为每次渲染时都会重新生成组件的内容。

React 组件实例上的 $ 属性是组件的 React 实例,可以通过这个属性来访问组件的属性和方法。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/basic/core/zui-create.html b/dev/lib/basic/core/zui-create.html index 953a5c554f..0c49cf1fe7 100644 --- a/dev/lib/basic/core/zui-create.html +++ b/dev/lib/basic/core/zui-create.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

便捷组件声明

在 ZUI 中,所有 JS 组件支持通过声明 zui-create 属性来自动创建,例如:

使用 zui-create-<component> 来定义组件选项,例如:

注意

通过 zui-create 创建的组件,只会在页面加载完成后自动扫描一次,如果需要在动态添加的元素上利用 zui-create 创建组件,需要手动执行 $(element).zuiInit() 初始化。

MIT License (MIT)

- +
Skip to content

便捷组件声明

在 ZUI 中,所有 JS 组件支持通过声明 zui-create 属性来自动创建,例如:

使用 zui-create-<component> 来定义组件选项,例如:

注意

通过 zui-create 创建的组件,只会在页面加载完成后自动扫描一次,如果需要在动态添加的元素上利用 zui-create 创建组件,需要手动执行 $(element).zuiInit() 初始化。

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/basic/core/zui-on.html b/dev/lib/basic/core/zui-on.html index ccff319012..e9ec9bce5c 100644 --- a/dev/lib/basic/core/zui-on.html +++ b/dev/lib/basic/core/zui-on.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

便捷事件绑定

介绍

便捷事件机制允许通过 HTML 元素属性 [zui-on-*] 来绑定事件。下面为一个例子:

上例中,通过 [zui-on-click] 属性绑定点击事件,通过属性指定需要执行的 JS 代码,从而实现当点击按钮时,将会弹出一个对话框。

提示

编辑事件机制实际原理为在 document 元素上绑定了一个事件监听器,当事件触发时,会检查事件源元素是否存在 [data-on-*] 属性,如果存在,则会根据 [data-on-*] 属性的值来执行 JS 代码。根据此原理,需要被监听的元素上的事件能够被冒泡到 document 上。

事件类型

在 ZUI3 中默认支持的便捷绑定事件类型包括:

  • click:点击事件;
  • inited:组件初始化事件;
  • change:变更事件。

自定义选项

除了可以直接指定要执行的 JS 代码,还可以通过一个对象来指定事件绑定选项,例如:

所有可用的选项包括:

选项说明
on事件类型,必须,目前支持点击('click')和变更('change')事件
selector事件是否仅能触发在符合指定选择器的内部元素上,相当于事件委托
do要执行的 JS 代码,可选
call要执行的回调函数,可选
params需要传递给 JS 代码的参数,多个参数使用 , 分隔,也可以通过 JSON 数组的形式指定
if在执行 JS 代码和回调函数之前进行判断,如果结果为 false 则不会执行
once是否只执行一次,默认 false
stop是否阻止事件冒泡,相当于调用 stopPropagation,默认 false
prevent是否阻止默认行为,相当于调用 preventDefault,默认 false
self是否尽在点击自身时触发。

内置参数

在指定执行代码和回调函数参数时有一些内置参数可以直接通过约定名称引用,包括:

  • event:事件对象;
  • options:事件绑定选项;
  • $element:事件源元素(Cash 类型)。

例如:

内置参数还可以直接用于 do 代码中和 call 回调函数定义中,例如:

MIT License (MIT)

- +
Skip to content

便捷事件绑定

介绍

便捷事件机制允许通过 HTML 元素属性 [zui-on-*] 来绑定事件。下面为一个例子:

上例中,通过 [zui-on-click] 属性绑定点击事件,通过属性指定需要执行的 JS 代码,从而实现当点击按钮时,将会弹出一个对话框。

提示

编辑事件机制实际原理为在 document 元素上绑定了一个事件监听器,当事件触发时,会检查事件源元素是否存在 [data-on-*] 属性,如果存在,则会根据 [data-on-*] 属性的值来执行 JS 代码。根据此原理,需要被监听的元素上的事件能够被冒泡到 document 上。

事件类型

在 ZUI3 中默认支持的便捷绑定事件类型包括:

  • click:点击事件;
  • inited:组件初始化事件;
  • change:变更事件。

自定义选项

除了可以直接指定要执行的 JS 代码,还可以通过一个对象来指定事件绑定选项,例如:

所有可用的选项包括:

选项说明
on事件类型,必须,目前支持点击('click')和变更('change')事件
selector事件是否仅能触发在符合指定选择器的内部元素上,相当于事件委托
do要执行的 JS 代码,可选
call要执行的回调函数,可选
params需要传递给 JS 代码的参数,多个参数使用 , 分隔,也可以通过 JSON 数组的形式指定
if在执行 JS 代码和回调函数之前进行判断,如果结果为 false 则不会执行
once是否只执行一次,默认 false
stop是否阻止事件冒泡,相当于调用 stopPropagation,默认 false
prevent是否阻止默认行为,相当于调用 preventDefault,默认 false
self是否尽在点击自身时触发。

内置参数

在指定执行代码和回调函数参数时有一些内置参数可以直接通过约定名称引用,包括:

  • event:事件对象;
  • options:事件绑定选项;
  • $element:事件源元素(Cash 类型)。

例如:

内置参数还可以直接用于 do 代码中和 call 回调函数定义中,例如:

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/basic/core/zui-toggle.html b/dev/lib/basic/core/zui-toggle.html index 3fede18d9c..2e98ad7607 100644 --- a/dev/lib/basic/core/zui-toggle.html +++ b/dev/lib/basic/core/zui-toggle.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

全局触发调用

使用

全局触发调用允许在元素上通过 zui-toggle 属性来声明组件调用,在某个事件(通常为点击)触发时,自动使用选项进行初始化,并执行操作。例如下拉菜单按钮,在点击时声明下拉菜单组件,并打开下拉菜单。下面为一个下拉菜单的例子:

兼容模式

在兼容模式下,可以通过 data-toggle 属性生命组件,使用其他 data-* 属性声明组件初始化选项。

支持的组件

支持全局触发调用的组件包括:

MIT License (MIT)

- +
Skip to content

全局触发调用

使用

全局触发调用允许在元素上通过 zui-toggle 属性来声明组件调用,在某个事件(通常为点击)触发时,自动使用选项进行初始化,并执行操作。例如下拉菜单按钮,在点击时声明下拉菜单组件,并打开下拉菜单。下面为一个下拉菜单的例子:

兼容模式

在兼容模式下,可以通过 data-toggle 属性生命组件,使用其他 data-* 属性声明组件初始化选项。

支持的组件

支持全局触发调用的组件包括:

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/components/alert/index.html b/dev/lib/components/alert/index.html index 2d0cb05dd5..96bafebb85 100644 --- a/dev/lib/components/alert/index.html +++ b/dev/lib/components/alert/index.html @@ -14,14 +14,14 @@ - - + +
Skip to content

消息框

消息框能够轻松展示一些需要引起用户注意的内容。

基本使用

为元素添加 alert 类来获得消息框的外观。

嘿!这是一则提示。

包含链接

使用 .alert-link 类来为消息框内的链接添加样式。

Hi! 这条消息可能需要你注意。了解更多

包含关闭按钮

使用 .alert-close 类来为消息框内的关闭按钮添加样式。絮语注意到是当需要在消息框中包含更多内容时,需要将消息文本放置在 .alert-text 中。

嘿!这是一则提示。了解更多

包含操作按钮

像添加关闭按钮一样,还可以添加其他操作按钮:

嘿!这是一则提示。了解更多

可以将多个按钮放在工具栏中:

嘿!这是一则提示。了解更多

外观类型

配合丰富的 CSS 工具类 来实现不同消息框的外观。

嘿!这是一则提示。
嘿!这是一则提示。
嘿!这是一则提示。
嘿!这是一则提示。
嘿!这是一则提示。
嘿!这是一则提示。
嘿!这是一则提示。

CSS 类

消息框提供了如下 CSS 类:

类型作用
alert实体类元素作为消息框组件
alert-icon实体类元素作为消息框内左侧图标
alert-close实体类元素作为消息框关闭按钮
alert-text实体类元素作为消息框文本内容

CSS 变量

消息框提供了如下 CSS 变量:

变量名称变量含义
--alert-bg消息框默认背景色

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/components/avatar-group/index.html b/dev/lib/components/avatar-group/index.html index 5b3c8ede46..946e1c7bc9 100644 --- a/dev/lib/components/avatar-group/index.html +++ b/dev/lib/components/avatar-group/index.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

头像组

头像组用于将多个头像堆叠显示。

基本使用

将多个头像放置在 <div class="avatar-group"> 内即可创建一个头像组。

+10

尺寸

当使用不同大小的头像时,可以通过为 .avatar-group 添加同样等级的 size-* 辅助类已获得统一的堆叠间距。

堆叠间距

使用工具类 gap-* 来调整堆叠间距。默认间距等同于 gap-2.5,小于 2.5 将使得间距比默认间距更小,反之则更大。

0
1
2
2.5
3
3.5

CSS 类

头像组提供了如下 CSS 类:

类型作用
avatar-group实体类元素作为头像组组件
size-xs工具类头像组使用超小号尺寸
size-sm工具类头像组使用小号尺寸
size-lg工具类头像组使用大号尺寸
size-xl工具类头像组使用超大号尺寸

参考

MIT License (MIT)

- +
Skip to content

头像组

头像组用于将多个头像堆叠显示。

基本使用

将多个头像放置在 <div class="avatar-group"> 内即可创建一个头像组。

+10

尺寸

当使用不同大小的头像时,可以通过为 .avatar-group 添加同样等级的 size-* 辅助类已获得统一的堆叠间距。

堆叠间距

使用工具类 gap-* 来调整堆叠间距。默认间距等同于 gap-2.5,小于 2.5 将使得间距比默认间距更小,反之则更大。

0
1
2
2.5
3
3.5

CSS 类

头像组提供了如下 CSS 类:

类型作用
avatar-group实体类元素作为头像组组件
size-xs工具类头像组使用超小号尺寸
size-sm工具类头像组使用小号尺寸
size-lg工具类头像组使用大号尺寸
size-xl工具类头像组使用超大号尺寸

参考

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/components/avatar/index.html b/dev/lib/components/avatar/index.html index ee40fdf3f0..53596f6e89 100644 --- a/dev/lib/components/avatar/index.html +++ b/dev/lib/components/avatar/index.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

头像

头像是用图片、图标或者文字的形式展示用户及具有特殊标识的其他对象。

基本使用

为元素并添加类 .avatar,然后将作为图像的图片、文字或图标放置在此元素内。

Z

提示

当使用文字作为头像时,建议文字数目不要超过 2 个,如果需要显示更多文字进行个性化排版,推荐使用 JavaScript 增强的头像插件。

头像形状

搭配 CSS 工具类 rounded-* 为头像应用不同的圆角样式。

外观类型

当使用文字或图标作为头像时,配合使用CSS 工具类来实现不同头像的外观。下面展示各种工具类的外观效果。

Z
Z
Z
Z

尺寸

除了默认大小,还提供了额外的 4 种预设尺寸,通过 size-* 来为头像设置尺寸。

X
S
Z
LG
XL

CSS 类

头像提供了如下 CSS 类:

类型作用
avatar实体类元素作为头像组件
size-xs工具类头像使用超小号尺寸
size-sm工具类头像使用小号尺寸
size-lg工具类头像使用大号尺寸
size-xl工具类头像使用超大号尺寸

CSS 变量

头像提供了如下 CSS 变量,可进行全局修改:

CSS 变量名作用
--avatar-radius头像默认圆角大小
--avatar-bg头像默认背景颜色

参考

MIT License (MIT)

- +
Skip to content

头像

头像是用图片、图标或者文字的形式展示用户及具有特殊标识的其他对象。

基本使用

为元素并添加类 .avatar,然后将作为图像的图片、文字或图标放置在此元素内。

Z

提示

当使用文字作为头像时,建议文字数目不要超过 2 个,如果需要显示更多文字进行个性化排版,推荐使用 JavaScript 增强的头像插件。

头像形状

搭配 CSS 工具类 rounded-* 为头像应用不同的圆角样式。

外观类型

当使用文字或图标作为头像时,配合使用CSS 工具类来实现不同头像的外观。下面展示各种工具类的外观效果。

Z
Z
Z
Z

尺寸

除了默认大小,还提供了额外的 4 种预设尺寸,通过 size-* 来为头像设置尺寸。

X
S
Z
LG
XL

CSS 类

头像提供了如下 CSS 类:

类型作用
avatar实体类元素作为头像组件
size-xs工具类头像使用超小号尺寸
size-sm工具类头像使用小号尺寸
size-lg工具类头像使用大号尺寸
size-xl工具类头像使用超大号尺寸

CSS 变量

头像提供了如下 CSS 变量,可进行全局修改:

CSS 变量名作用
--avatar-radius头像默认圆角大小
--avatar-bg头像默认背景颜色

参考

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/components/breadcrumb/index.html b/dev/lib/components/breadcrumb/index.html index 2fe3a9f602..883cab8adf 100644 --- a/dev/lib/components/breadcrumb/index.html +++ b/dev/lib/components/breadcrumb/index.html @@ -14,14 +14,14 @@ - - + +
Skip to content

面包屑

基本使用

使用类 .breadcrumb 来实现面包屑,通常搭配 <ol><li> 元素使用。

CSS 类

面包屑提供了如下 CSS 类

类型作用
breadcrumb实体类元素作为面包屑组件

CSS 变量

变量名称变量含义
--breadcrumb-divider面包屑分割元素标签类型
--breadcrumb-divider-color面包屑分割元素颜色
--breadcrumb-color-active面包屑选中态元素颜色

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/components/btn-group/index.html b/dev/lib/components/btn-group/index.html index 8f63c70aaf..8276f09527 100644 --- a/dev/lib/components/btn-group/index.html +++ b/dev/lib/components/btn-group/index.html @@ -14,14 +14,14 @@ - - + +
Skip to content

按钮组

按钮组可以将多个按钮成组展示。

使用方法

将多个 按钮 放置在 <div class="btn-group"> 内即可创建一个按钮组。

多组按钮

使用 CSS 工具类 .row 搭配 .gap-* 实现多组按钮效果。

尺寸

.btn-group 上配合使用工具类 size-* 来获得不同大小的按钮组。

外观

在按钮上加 CSS 工具类,以获得不同的按钮外观显示。

使用下拉菜单

可以在按钮组中使用下拉菜单,只需要将启用下拉菜单的按钮放置于按钮组中即可。

CSS 类

按钮提供了如下 CSS 类:

类型作用
btn-group实体类元素作为按钮组组件
size-xs工具类按钮组使用超小号尺寸
size-sm工具类按钮组使用小号尺寸
size-lg工具类按钮组使用大号尺寸
size-xl工具类按钮组使用超大号尺寸

参考

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/components/button/index.html b/dev/lib/components/button/index.html index 6f5798224b..774e479f2e 100644 --- a/dev/lib/components/button/index.html +++ b/dev/lib/components/button/index.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

按钮

按钮是用来触发一些动作。通常用在表单、对话框、菜单上面。好的按钮设计能够引导用户高效的达到目的。

使用方法

使用 .btn 类来获得按钮的外观和交互体验,通常用在元素 <button><a> 上。

配合丰富的CSS 工具类来实现不同按钮的外观。

图标按钮

按钮配合图标组件一起使用时,自动呈现为图标按钮。

外观

外观类型

配合使用CSS 工具类来实现不同按钮的外观。下面展示各种工具类的外观效果。

链接按钮

使用 .btn-link 类来获得链接按钮的外观。

按钮圆角

搭配 CSS 工具类 rounded-* 为按钮应用不同的圆角样式。

按钮阴影效果

搭配 CSS 工具类 shadow-* 为按钮应用不同的阴影样式。

尺寸

除了默认大小,按钮还提供了额外的 4 种预设尺寸。

形状

正方形按钮

通过工具类 square 可以让按钮获得正方形外观,通常作为图标按钮使用。

圆形按钮

当与工具类 circlesquare 一起使用时则获得圆形按钮。

状态

禁用状态

为按钮提供 disabled="disabled" 属性或 disabled 工具类来禁用按钮。被禁用的按钮将无法响应点击事件。

激活状态

为按钮添加 active 类启用激活状态。

加载中状态

为按钮提供动画图标实现加载中状态。

CSS 类

按钮提供了如下 CSS 类:

类型作用
btn实体类元素作为按钮组件
btn-link修饰类使用链接按钮外观
square工具类按钮使用正方形外观
size-xs工具类按钮使用超小号尺寸
size-sm工具类按钮使用小号尺寸
size-lg工具类按钮使用大号尺寸
size-xl工具类按钮使用超大号尺寸

CSS 变量

变量名称变量含义
--btn-radius按钮圆角
--btn-bg按钮背景颜色
--btn-border-color按钮边框颜色
--btn-height按钮高度

MIT License (MIT)

- +
Skip to content

按钮

按钮是用来触发一些动作。通常用在表单、对话框、菜单上面。好的按钮设计能够引导用户高效的达到目的。

使用方法

使用 .btn 类来获得按钮的外观和交互体验,通常用在元素 <button><a> 上。

配合丰富的CSS 工具类来实现不同按钮的外观。

图标按钮

按钮配合图标组件一起使用时,自动呈现为图标按钮。

外观

外观类型

配合使用CSS 工具类来实现不同按钮的外观。下面展示各种工具类的外观效果。

链接按钮

使用 .btn-link 类来获得链接按钮的外观。

按钮圆角

搭配 CSS 工具类 rounded-* 为按钮应用不同的圆角样式。

按钮阴影效果

搭配 CSS 工具类 shadow-* 为按钮应用不同的阴影样式。

尺寸

除了默认大小,按钮还提供了额外的 4 种预设尺寸。

形状

正方形按钮

通过工具类 square 可以让按钮获得正方形外观,通常作为图标按钮使用。

圆形按钮

当与工具类 circlesquare 一起使用时则获得圆形按钮。

状态

禁用状态

为按钮提供 disabled="disabled" 属性或 disabled 工具类来禁用按钮。被禁用的按钮将无法响应点击事件。

激活状态

为按钮添加 active 类启用激活状态。

加载中状态

为按钮提供动画图标实现加载中状态。

CSS 类

按钮提供了如下 CSS 类:

类型作用
btn实体类元素作为按钮组件
btn-link修饰类使用链接按钮外观
square工具类按钮使用正方形外观
size-xs工具类按钮使用超小号尺寸
size-sm工具类按钮使用小号尺寸
size-lg工具类按钮使用大号尺寸
size-xl工具类按钮使用超大号尺寸

CSS 变量

变量名称变量含义
--btn-radius按钮圆角
--btn-bg按钮背景颜色
--btn-border-color按钮边框颜色
--btn-height按钮高度

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/components/calendar/index.html b/dev/lib/components/calendar/index.html index 9c0da9d926..9f4d62611a 100644 --- a/dev/lib/components/calendar/index.html +++ b/dev/lib/components/calendar/index.html @@ -14,15 +14,15 @@ - - + +
Skip to content

Calendar 日历

用于展示和管理事件的日历组件。它允许用户查看日期、添加特定日期的事件来安排日程。提供可配置的事件与日历集。

基本使用

使用HTML标签 <div> 作为容器来实现日历组件,可使用zui-create-calendar、new zui.Calendar()等指令来配置日历组件。

默认样式

自定义事件与事件集

事件是在日历中添加的具体事件,可自定义事件的颜色、文字、日期、拖拽回调函数、点击回调函数等。事件集是一组事件的集合与事件唯一关联。事件、事件集id都需要唯一。任意一个事件可进行拖拽来修改事件时间,并会触发回调函数。左侧日历集可决定属于该日日历集的事件是否显示。

可配置项

日历:

参数类型作用
dateDate当前日期
calendarEventsCalendarEvent[]当前的日历事件数组
calendarEventGroupsCalendarEventGroup[]当前的事件组数组
mode'day' | 'week' | 'year'日历的显示模式
showCalendarGroupboolean是否显示日历事件组
shrinkFreeWeekendboolean是否压缩空闲周末
onDateClick(date: Date) => void日期点击时的回调函数
onDragChange(newState: DraggableState, oldState: DraggableState) => void拖动状态变化时的回调函数
onEventClick(e: CalendarEvent) => void事件点击时的回调函数
maxVisibleEventsnumber每个日期最大可见事件数量
               |
 

事件属性:

calendarEvent:

参数类型作用
idstring事件的唯一标识符
titlestring事件的标题
calendarEventGroupstring事件所属的事件组ID
dateDate事件的日期
descriptionstring事件的描述(可选)

事件集:

CalendarEventGroups:

参数类型作用
idstring事件组的唯一标识符
titlestring事件组的标题(可选)
colorstring事件组的颜色(可选)
checkedboolean事件组是否被选中(可选)

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/components/color-picker/index.html b/dev/lib/components/color-picker/index.html index b1ede5f8e8..d81662eabf 100644 --- a/dev/lib/components/color-picker/index.html +++ b/dev/lib/components/color-picker/index.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

颜色选择器

基于下拉选择器实现的颜色选择器。

基本使用

在选定元素上调用初始化函数即可使用颜色选择器。

自定义颜色

通过设置 colors 属性自定义颜色列表,可以指定一个表示颜色的字符串数组,也可以通过英文逗号拼接多个颜色一起指定。

自定义图标

通过设置 icon 属性自定义颜色显示图标。

同步颜色

通过为 syncValuesyncColorsyncBackgroundsyncBorder 设置选择器可实现将当前选中的颜色信息同步到相应元素。

颜色值:
文字颜色
背景色
边框色

配合使用

作为按钮

在输入组中使用

在输入框中使用

选项

名称类型默认值说明
headingstringnull颜色面板标题。 colors?: string | string[]; // 颜色选项列表。 icon?: string; // 显示为图标的名称。 closeBtn?: boolean = true; // 颜色面板是否使用关闭按钮。 syncValue?: string; // 颜色值容器选择器。 syncColor?: string; // 文本色同步容器选择器。 syncBackground?: string; // 背景色同步容器选择器。 syncBorder?: string; // 边框色同步容器选择器。

MIT License (MIT)

- +
Skip to content

颜色选择器

基于下拉选择器实现的颜色选择器。

基本使用

在选定元素上调用初始化函数即可使用颜色选择器。

自定义颜色

通过设置 colors 属性自定义颜色列表,可以指定一个表示颜色的字符串数组,也可以通过英文逗号拼接多个颜色一起指定。

自定义图标

通过设置 icon 属性自定义颜色显示图标。

同步颜色

通过为 syncValuesyncColorsyncBackgroundsyncBorder 设置选择器可实现将当前选中的颜色信息同步到相应元素。

颜色值:
文字颜色
背景色
边框色

配合使用

作为按钮

在输入组中使用

在输入框中使用

选项

名称类型默认值说明
headingstringnull颜色面板标题。 colors?: string | string[]; // 颜色选项列表。 icon?: string; // 显示为图标的名称。 closeBtn?: boolean = true; // 颜色面板是否使用关闭按钮。 syncValue?: string; // 颜色值容器选择器。 syncColor?: string; // 文本色同步容器选择器。 syncBackground?: string; // 背景色同步容器选择器。 syncBorder?: string; // 边框色同步容器选择器。

MIT License (MIT)

+ \ No newline at end of file diff --git a/dev/lib/components/contextmenu/index.html b/dev/lib/components/contextmenu/index.html index bf3dbbf15b..bcff7e7f96 100644 --- a/dev/lib/components/contextmenu/index.html +++ b/dev/lib/components/contextmenu/index.html @@ -14,8 +14,8 @@ - - + + @@ -115,7 +115,7 @@ }); }); </script>

API

items 的单个对象属性

text

名称。

  • 类型:string
  • 必选:否。

icon

左侧图标。

  • 类型:string
  • 必选:否。

trailingIcon

右侧图标。

  • 类型:string | VNode
  • 必选:否。

className

类名。

  • 类型:string
  • 必选:否。

style

样式。

  • 类型:ClassNameLike
  • 必选:否。

url

跳转链接地址。

  • 类型:string
  • 必选:否。

target

在何处打开链接地址。

  • 类型:string
  • 必选:否;
  • 可选项: _self | _self | _black | _top | _parent

disabled

是否禁用。

  • 类型:boolean
  • 必选:否;
  • 默认: false

active

是否是激活状态。

  • 类型:boolean
  • 必选:否;
  • 默认: false

type

单项类型。

  • 类型:string
  • 必选:否;
  • 可选项:item | divider | heading | custom
  • 默认: item

rootClass

menu-item 同级类名。

  • 类型:string
  • 必选:否。

items

子级操作数据。

  • 类型:array
  • 必选:否。

onClick

点击操作菜单项的回调事件。

  • 类型:function
  • 必选:否。

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/components/dashboard/index.html b/dev/lib/components/dashboard/index.html index e5764f7cda..6cf351259b 100644 --- a/dev/lib/components/dashboard/index.html +++ b/dev/lib/components/dashboard/index.html @@ -14,8 +14,8 @@ - - + + @@ -82,7 +82,7 @@ blockMenu?: ContextMenuOptions; onLayoutChange?: (blocks: BlockSetting[]) => void; };

MIT License (MIT)

- + \ No newline at end of file diff --git a/dev/lib/components/dropdown/index.html b/dev/lib/components/dropdown/index.html index 9348432a6b..ec9c9d0ff5 100644 --- a/dev/lib/components/dropdown/index.html +++ b/dev/lib/components/dropdown/index.html @@ -14,14 +14,14 @@ - - + + -
Skip to content

下拉菜单

将动作或菜单折叠到下拉菜单中。

使用方法

为触发按钮添加属性 data-toggle="dropdown",然后在触发按钮之后添加一个 .dropdown-menu 用于定义菜单列表。

关联菜单元素

你还可以在触发按钮上通过 data-target 属性来指定要打开的菜单列表元素,这样不用要求触发按钮和菜单列表元素之间必须按顺序紧邻。

手动初始化

你可以通过 new zui.Dropdown() 方法在触发按钮上动态初始化下拉菜单组件,这样无需为触发按钮添加属性 data-toggle="dropdown",以及预先创建下拉菜单列表元素 .dropdown-menu

显示箭头

通过给下拉菜单菜单按钮添加 data-arrow="true" 来使下拉菜单展示箭头。

改变箭头大小

通过给下拉菜单按钮添加 data-arrow={size} 来控制下拉菜单的箭头的大小。

data-arrow = 4
data-arrow = 8
data-arrow = 12

鼠标悬停展开菜单

为触发按钮添加属性 data-trigger="hover" 实现鼠标悬停展开菜单。

浮动方向

通过 data-placement=* 属性控制弹出方向。

data-placement = top-start
data-placement = top
data-placement = top-end
data-placement = bottom-start
data-placement = bottom
data-placement = bottom-end
data-placement = left-start
data-placement = left
data-placement = left-end
data-placement = right-start
data-placement = right
data-placement = right-end

多级子菜单

多级子菜单仅支持通过手动初始化的方式创建。

自定义菜单

通常情况下下拉菜单列表使用 <menu> 元素,你也可以替换为其他元素或内容

51015202530354045505560

禁用的菜单项

为菜单项 <li> 添加 .disabled 类即可获得禁用外观。

标题和分割线

.dropdown-menuli 标签使用 .dropdown-header类 来显示标题,使用 .divider 来创建分割线。

  • CSS 类

    按钮提供了如下 CSS 类:

    类型作用
    dropdown实体类元素作为下拉菜单组件
    dropdown-menu实体类元素作为下拉菜单列表
    dropdown-header实体类元素作为下拉菜单中的标题
    caret实体类元素作为下拉菜单icon图标
    divider实体类元素作为下拉菜单分割线
    dropup工具类下拉框浮动方向为上方

    CSS 变量

    变量名称变量含义
    --dropmenu-radius下拉菜单圆角
    --dropmenu-border-color下拉菜单边框颜色
    --dropmenu-bg下拉菜单背景颜色
    --dropmenu-active-color下拉菜单条目激活状态文字颜色
    --dropmenu-active-bg下拉菜单条目激活状态背景颜色

    API

    操作菜单定义对象。

    trigger

    触发方式

    • 类型:click | hover | manual
    • 必选:否。

    arrow

    箭头大小 为 true 则为默认12

    • 类型:boolean | number
    • 必选:否。

    offset

    偏移量

    • 类型:number
    • 必选:否。

    菜单对象 详细配置可参考 菜单

    • 类型:object
    • 必选:否。

    MIT License (MIT)

    - +
    Skip to content

    下拉菜单

    将动作或菜单折叠到下拉菜单中。

    使用方法

    为触发按钮添加属性 data-toggle="dropdown",然后在触发按钮之后添加一个 .dropdown-menu 用于定义菜单列表。

    关联菜单元素

    你还可以在触发按钮上通过 data-target 属性来指定要打开的菜单列表元素,这样不用要求触发按钮和菜单列表元素之间必须按顺序紧邻。

    手动初始化

    你可以通过 new zui.Dropdown() 方法在触发按钮上动态初始化下拉菜单组件,这样无需为触发按钮添加属性 data-toggle="dropdown",以及预先创建下拉菜单列表元素 .dropdown-menu

    显示箭头

    通过给下拉菜单菜单按钮添加 data-arrow="true" 来使下拉菜单展示箭头。

    改变箭头大小

    通过给下拉菜单按钮添加 data-arrow={size} 来控制下拉菜单的箭头的大小。

    data-arrow = 4
    data-arrow = 8
    data-arrow = 12

    鼠标悬停展开菜单

    为触发按钮添加属性 data-trigger="hover" 实现鼠标悬停展开菜单。

    浮动方向

    通过 data-placement=* 属性控制弹出方向。

    data-placement = top-start
    data-placement = top
    data-placement = top-end
    data-placement = bottom-start
    data-placement = bottom
    data-placement = bottom-end
    data-placement = left-start
    data-placement = left
    data-placement = left-end
    data-placement = right-start
    data-placement = right
    data-placement = right-end

    多级子菜单

    多级子菜单仅支持通过手动初始化的方式创建。

    自定义菜单

    通常情况下下拉菜单列表使用 <menu> 元素,你也可以替换为其他元素或内容

    51015202530354045505560

    禁用的菜单项

    为菜单项 <li> 添加 .disabled 类即可获得禁用外观。

    标题和分割线

    .dropdown-menuli 标签使用 .dropdown-header类 来显示标题,使用 .divider 来创建分割线。

  • CSS 类

    按钮提供了如下 CSS 类:

    类型作用
    dropdown实体类元素作为下拉菜单组件
    dropdown-menu实体类元素作为下拉菜单列表
    dropdown-header实体类元素作为下拉菜单中的标题
    caret实体类元素作为下拉菜单icon图标
    divider实体类元素作为下拉菜单分割线
    dropup工具类下拉框浮动方向为上方

    CSS 变量

    变量名称变量含义
    --dropmenu-radius下拉菜单圆角
    --dropmenu-border-color下拉菜单边框颜色
    --dropmenu-bg下拉菜单背景颜色
    --dropmenu-active-color下拉菜单条目激活状态文字颜色
    --dropmenu-active-bg下拉菜单条目激活状态背景颜色

    API

    操作菜单定义对象。

    trigger

    触发方式

    • 类型:click | hover | manual
    • 必选:否。

    arrow

    箭头大小 为 true 则为默认12

    • 类型:boolean | number
    • 必选:否。

    offset

    偏移量

    • 类型:number
    • 必选:否。

    菜单对象 详细配置可参考 菜单

    • 类型:object
    • 必选:否。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/dtable/index.html b/dev/lib/components/dtable/index.html index 3331b9fef0..18f3617044 100644 --- a/dev/lib/components/dtable/index.html +++ b/dev/lib/components/dtable/index.html @@ -14,8 +14,8 @@ - - + + @@ -360,7 +360,7 @@ render(): void; }

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/dtable/plugins.html b/dev/lib/components/dtable/plugins.html index 1667171710..6517e040cc 100644 --- a/dev/lib/components/dtable/plugins.html +++ b/dev/lib/components/dtable/plugins.html @@ -14,8 +14,8 @@ - - + + @@ -750,7 +750,7 @@ /* 表头分组名称。 */ headerGroup?: string; }

    更多插件开发中

    • 拖放改变列宽 resize
    • 上下文菜单 contextmenu
    • 快捷键 hotkey
    • 鼠标移动事件支持 mousemove
    • 拖放选择 selectable
    • 过滤 filter
    • 拖放移动 moveable
    • 数据网格 datagrid
    • 编辑状态 draft
    • 可编辑 editable
    • 历史记录 history
    • 自动滚动 autoscroll

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/file-selector/index.html b/dev/lib/components/file-selector/index.html index d867e080f3..54d4f21355 100644 --- a/dev/lib/components/file-selector/index.html +++ b/dev/lib/components/file-selector/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    文件选择

    界面模式

    文件选择器支持多种界面模式,包括按钮模式、方框模式和网格模式,另外还提供了单独的图片选择器用于选择图片文件。

    按钮模式

    默认模式为按钮模式,点击按钮选择文件,所选择的文件会显示在按钮上方。

    方框模式

    通过设置 mode 属性为 'box' 可以切换为方框模式,所选择的文件会显示在方框下方。方框模式提供了更大的拖放文件放置区域。

    网格模式

    通过设置 mode 属性为 'grid' 可以切换为网格模式,所选择的文件会显示在网格中。网格模式提供了更大的文件预览区域。

    图片选择

    图片选择是基于网格模式的一种预设模式,通过 ImageSelector 可以快速创建一个图片选择器。

    文件限制

    限制文件类型

    通过 accept 来限制文件类型,可以使用 MIME 类型、文件扩展名或通配符,定义与 HTML 的 accept 属性相同。

    限制文件大小

    通过 maxFileSize 来限制单个文件大小,通过 totalFileSize 来限制总文件大小。

    限制文件数目

    通过 maxFileCount 来限制文件数目,如果设置为非大于 0 的数则不限制。

    预设文件

    通过设置 defaultFiles 属性可以预设文件列表,预设文件不会触发 onAdd 回调函数和 onSelect 回调函数。

    禁用

    通过设置 disabled 属性为 true 可以禁用文件选择器。

    个性化配置

    提示信息

    通过 tip 属性可以设置提示信息,在提示信息中可以使用如下占位文本:

    • {size}:文件总大小;
    • {count}:文件数目;
    • {maxFileSize}:最大文件大小;
    • {maxFileCount}:最大文件数目。

    文件图标

    通过设置 fileIcons 属性可以为不同类型的文件(根据扩展名)显示不同的图标。

    显示缩略图

    默认会为图片文件显示缩略图,通过设置 thumbnail 属性为 false 可以关闭缩略图显示。

    文件拖放

    默认情况下用户可以拖放文件到文件选择器中,通过设置 draggable 属性为 false 可以禁用拖放。

    一次选择一个文件

    默认情况下用户可以在操作系统文件选择对话框中一次选择多个文件,通过设置 multiple 属性为 false 可以限制一次只能选择一个文件。

    网格模式配置

    网格模式下可以通过设置 gridWidthgridHeightgridGap 来调整网格的宽度、高度和间距。

    自定义文件上传按钮

    通过设置 uploadBtn 属性可以自定义文件上传按钮。

    文件操作

    文件重命名

    默认情况下支持对文件进行重命名,通过设置 renameBtn 属性为 false 可以禁用重命名按钮,通过为 renameBtn 属性设置字符串可以自定义重命名按钮的文字,通过为 renameBtn 属性设置对象可以自定义重命名按钮。

    文件移除

    默认情况下支持对文件进行移除,通过设置 removeBtn 属性为 false 可以禁用移除按钮,通过为 removeBtn 属性设置字符串可以自定义移除按钮的文字,通过为 removeBtn 属性设置对象可以自定义移除按钮。

    自定义操作提示信息

    通过设置 removeConfirmduplicatedTipexceededSizeTipexceededTotalSizeTipexceededCountTip 属性可以自定义操作提示信息。

    在提示信息中可以使用如下占位文本:

    • {name}:当前文件名;
    • {size}:当前文件大小;
    • {count}:当前已选择文件数目;
    • {maxFileSize}:最大文件大小;
    • {maxFileCount}:最大文件数目;
    • {totalFileSize}:最大文件数目,仅适用于 exceededTotalSizeTip 提示;
    • {exceededCount}:超出数量,仅适用于 exceededCountTip 提示。

    操作拦截

    通过设置 onRenameonRemoveonAddonRemove 选项设置回调函数可以拦截文件操作,通常在回调函数中返回 false 可以阻止继续操作,相关回调函数定义参加选项和 API。

    文件限制拦截

    通过设置 onDuplicatedonExceededSizeonExceededTotalSizeonExceededCount 选项可以在触发文件限制时拦截文件操作,通过在回调函数中返回 true 来忽略文件限制,相关回调函数定义参加选项和 API。

    选项

    FileSelectorProps

    名称类型默认值说明
    namestringnull作为表单字段的名称。 accept?: string; // 限制文件类型。 disabled?: boolean; // 是否禁用。 mode?: 'button' | 'box' | 'grid' = "button"; // 界面模式。 tip?: string; // 提示信息。 thumbnail?: boolean=true; // 是否显示缩略图。 gridWidth?: string | number; // 网格模式的宽度。 gridHeight?: string | number; // 网格模式的高度。 gridGap?: string | number; // 网格模式的间距。 defaultFiles?: DefaltFileInfo[]; // 默认显示的文件列表。 multiple?: boolean = true; // 是否允许在文件选择对话框中一次性选择多个文件(需要操作系统支持)。 itemProps?: ButtonProps | FileButtonGenerator; // 文件项的属性。 draggable?: boolean = true; // 是否允许拖拽。 fileIcons?: IconType | Record = "file"; // 文件图标。 uploadBtn?: string | ButtonProps; // 上传按钮。 renameBtn?: boolean | string | ButtonProps | FileButtonGenerator = true; // 重命名按钮。 removeBtn?: boolean | string | ButtonProps | FileButtonGenerator = true; // 删除按钮。 removeConfirm?: string | ModalConfirmOptions; // 删除确认提示。 maxFileSize?: FileSize = "100MB"; // 限制文件大小。 maxFileCount?: number = 0; // 限制文件数目,如果设置为非大于 0 的数则不限制。 totalFileSize?: FileSize; // 限制总文件大小,如果设置为非大于 0 的数则不限制。 allowSameName?: boolean; // 是否允许同名文件。 duplicatedTip?: string | ModalAlertOptions; // 重名提示。 exceededSizeTip?: string | ModalAlertOptions; // 超出大小提示。 exceededTotalSizeTip?: string | ModalAlertOptions; // 超出总大小提示。 exceededCountTip?: string | ModalAlertOptions; // 超出数量提示。 onSelect?: FileSelectCallback; // 选择文件时的回调。 onAdd?: FileAddCallback; // 添加文件时的回调。 onRemove?: RemoveFileCallback; // 删除文件时的回调。 onRename?: RenameFileCallback; // 重命名文件时的回调,返回 false 取消重命名。 onDuplicated?: DuplicatedCallback; // 重名时的回调,返回 true 保留重复文件。 onExceededSize?: ExceededLimitCallback; // 超出大小时的回调,返回 true 保留超出大小文件。 onExceededTotalSize?: ExceededLimitCallback; // 超出总大小时的回调,返回 true 保留超出总大小文件。 onExceededCount?: ExceededLimitCallback; // 超出数量时的回调,返回 true 保留超出数量文件。

    API

    FileInfo

    文件信息对象。

    名称类型默认值说明
    namestring文件名。 size: number; // 文件大小。 id: string; // 文件唯一标识。 type: string; // 文件类型。 ext: string; // 文件扩展名。 url?: string; // 文件地址。 file?: File; // 文件对象。

    StaticFileInfo

    预设文件信息对象。

    名称类型默认值说明
    namestring文件名。 size: FileSize; // 文件大小。 type?: string; // 文件类型。 id?: string; // 文件唯一标识。 url?: string; // 文件地址。

    FileSize

    文件大小,字节数或带单位的大小,例如 1024'1KB'

    ts
    type FileSize = number | `${number}${'B' | 'KB' | 'MB' | 'GB' | 'TB'}`;

    DefaltFileInfo

    默认文件信息对象。

    ts
    type DefaltFileInfo = File | FileInfo | StaticFileInfo;

    FileButtonGenerator

    文件操作按钮属性生成器,返回 false 不显示按钮,返回 true 使用默认按钮,返回字符串使用默认按钮并设置文字,返回对象使用自定义按钮。

    ts
    type FileButtonGenerator = ((file: FileInfo) => (boolean | string | ButtonProps));

    FileAddCallback

    添加文件时的回调函数,返回 false 取消添加文件。

    ts
    type FileAddCallback = (file: FileInfo) => void | false;

    FileSelectCallback

    选择文件时的回调函数。

    ts
    type FileSelectCallback = (files: File[] | FileList) => void | false;

    RemoveFileCallback

    删除文件时的回调函数。

    ts
    (file: FileInfo) => void | false | Promise<void | false>;

    RenameFileCallback

    重命名文件时的回调函数,返回 false 取消重命名。

    ts
    type RenameFileCallback = (newName: string, oldName: string, file: FileInfo) => void | false | Promise<void | false>;

    DuplicatedCallback

    重名时的回调,返回 true 保留重复文件。

    ts
    type DuplicatedCallback = (name: string, currentFile: FileInfo, existFile: FileInfo) => void | true;

    ExceededLimitCallback

    超出限制时的回调函数,返回 true 忽略限制,否则取消添加文件。

    ts
    type ExceededLimitCallback = (limit: number, file: FileInfo) => void | true;

    MIT License (MIT)

    - +
    Skip to content

    文件选择

    界面模式

    文件选择器支持多种界面模式,包括按钮模式、方框模式和网格模式,另外还提供了单独的图片选择器用于选择图片文件。

    按钮模式

    默认模式为按钮模式,点击按钮选择文件,所选择的文件会显示在按钮上方。

    方框模式

    通过设置 mode 属性为 'box' 可以切换为方框模式,所选择的文件会显示在方框下方。方框模式提供了更大的拖放文件放置区域。

    网格模式

    通过设置 mode 属性为 'grid' 可以切换为网格模式,所选择的文件会显示在网格中。网格模式提供了更大的文件预览区域。

    图片选择

    图片选择是基于网格模式的一种预设模式,通过 ImageSelector 可以快速创建一个图片选择器。

    文件限制

    限制文件类型

    通过 accept 来限制文件类型,可以使用 MIME 类型、文件扩展名或通配符,定义与 HTML 的 accept 属性相同。

    限制文件大小

    通过 maxFileSize 来限制单个文件大小,通过 totalFileSize 来限制总文件大小。

    限制文件数目

    通过 maxFileCount 来限制文件数目,如果设置为非大于 0 的数则不限制。

    预设文件

    通过设置 defaultFiles 属性可以预设文件列表,预设文件不会触发 onAdd 回调函数和 onSelect 回调函数。

    禁用

    通过设置 disabled 属性为 true 可以禁用文件选择器。

    个性化配置

    提示信息

    通过 tip 属性可以设置提示信息,在提示信息中可以使用如下占位文本:

    • {size}:文件总大小;
    • {count}:文件数目;
    • {maxFileSize}:最大文件大小;
    • {maxFileCount}:最大文件数目。

    文件图标

    通过设置 fileIcons 属性可以为不同类型的文件(根据扩展名)显示不同的图标。

    显示缩略图

    默认会为图片文件显示缩略图,通过设置 thumbnail 属性为 false 可以关闭缩略图显示。

    文件拖放

    默认情况下用户可以拖放文件到文件选择器中,通过设置 draggable 属性为 false 可以禁用拖放。

    一次选择一个文件

    默认情况下用户可以在操作系统文件选择对话框中一次选择多个文件,通过设置 multiple 属性为 false 可以限制一次只能选择一个文件。

    网格模式配置

    网格模式下可以通过设置 gridWidthgridHeightgridGap 来调整网格的宽度、高度和间距。

    自定义文件上传按钮

    通过设置 uploadBtn 属性可以自定义文件上传按钮。

    文件操作

    文件重命名

    默认情况下支持对文件进行重命名,通过设置 renameBtn 属性为 false 可以禁用重命名按钮,通过为 renameBtn 属性设置字符串可以自定义重命名按钮的文字,通过为 renameBtn 属性设置对象可以自定义重命名按钮。

    文件移除

    默认情况下支持对文件进行移除,通过设置 removeBtn 属性为 false 可以禁用移除按钮,通过为 removeBtn 属性设置字符串可以自定义移除按钮的文字,通过为 removeBtn 属性设置对象可以自定义移除按钮。

    自定义操作提示信息

    通过设置 removeConfirmduplicatedTipexceededSizeTipexceededTotalSizeTipexceededCountTip 属性可以自定义操作提示信息。

    在提示信息中可以使用如下占位文本:

    • {name}:当前文件名;
    • {size}:当前文件大小;
    • {count}:当前已选择文件数目;
    • {maxFileSize}:最大文件大小;
    • {maxFileCount}:最大文件数目;
    • {totalFileSize}:最大文件数目,仅适用于 exceededTotalSizeTip 提示;
    • {exceededCount}:超出数量,仅适用于 exceededCountTip 提示。

    操作拦截

    通过设置 onRenameonRemoveonAddonRemove 选项设置回调函数可以拦截文件操作,通常在回调函数中返回 false 可以阻止继续操作,相关回调函数定义参加选项和 API。

    文件限制拦截

    通过设置 onDuplicatedonExceededSizeonExceededTotalSizeonExceededCount 选项可以在触发文件限制时拦截文件操作,通过在回调函数中返回 true 来忽略文件限制,相关回调函数定义参加选项和 API。

    选项

    FileSelectorProps

    名称类型默认值说明
    namestringnull作为表单字段的名称。 accept?: string; // 限制文件类型。 disabled?: boolean; // 是否禁用。 mode?: 'button' | 'box' | 'grid' = "button"; // 界面模式。 tip?: string; // 提示信息。 thumbnail?: boolean=true; // 是否显示缩略图。 gridWidth?: string | number; // 网格模式的宽度。 gridHeight?: string | number; // 网格模式的高度。 gridGap?: string | number; // 网格模式的间距。 defaultFiles?: DefaltFileInfo[]; // 默认显示的文件列表。 multiple?: boolean = true; // 是否允许在文件选择对话框中一次性选择多个文件(需要操作系统支持)。 itemProps?: ButtonProps | FileButtonGenerator; // 文件项的属性。 draggable?: boolean = true; // 是否允许拖拽。 fileIcons?: IconType | Record = "file"; // 文件图标。 uploadBtn?: string | ButtonProps; // 上传按钮。 renameBtn?: boolean | string | ButtonProps | FileButtonGenerator = true; // 重命名按钮。 removeBtn?: boolean | string | ButtonProps | FileButtonGenerator = true; // 删除按钮。 removeConfirm?: string | ModalConfirmOptions; // 删除确认提示。 maxFileSize?: FileSize = "100MB"; // 限制文件大小。 maxFileCount?: number = 0; // 限制文件数目,如果设置为非大于 0 的数则不限制。 totalFileSize?: FileSize; // 限制总文件大小,如果设置为非大于 0 的数则不限制。 allowSameName?: boolean; // 是否允许同名文件。 duplicatedTip?: string | ModalAlertOptions; // 重名提示。 exceededSizeTip?: string | ModalAlertOptions; // 超出大小提示。 exceededTotalSizeTip?: string | ModalAlertOptions; // 超出总大小提示。 exceededCountTip?: string | ModalAlertOptions; // 超出数量提示。 onSelect?: FileSelectCallback; // 选择文件时的回调。 onAdd?: FileAddCallback; // 添加文件时的回调。 onRemove?: RemoveFileCallback; // 删除文件时的回调。 onRename?: RenameFileCallback; // 重命名文件时的回调,返回 false 取消重命名。 onDuplicated?: DuplicatedCallback; // 重名时的回调,返回 true 保留重复文件。 onExceededSize?: ExceededLimitCallback; // 超出大小时的回调,返回 true 保留超出大小文件。 onExceededTotalSize?: ExceededLimitCallback; // 超出总大小时的回调,返回 true 保留超出总大小文件。 onExceededCount?: ExceededLimitCallback; // 超出数量时的回调,返回 true 保留超出数量文件。

    API

    FileInfo

    文件信息对象。

    名称类型默认值说明
    namestring文件名。 size: number; // 文件大小。 id: string; // 文件唯一标识。 type: string; // 文件类型。 ext: string; // 文件扩展名。 url?: string; // 文件地址。 file?: File; // 文件对象。

    StaticFileInfo

    预设文件信息对象。

    名称类型默认值说明
    namestring文件名。 size: FileSize; // 文件大小。 type?: string; // 文件类型。 id?: string; // 文件唯一标识。 url?: string; // 文件地址。

    FileSize

    文件大小,字节数或带单位的大小,例如 1024'1KB'

    ts
    type FileSize = number | `${number}${'B' | 'KB' | 'MB' | 'GB' | 'TB'}`;

    DefaltFileInfo

    默认文件信息对象。

    ts
    type DefaltFileInfo = File | FileInfo | StaticFileInfo;

    FileButtonGenerator

    文件操作按钮属性生成器,返回 false 不显示按钮,返回 true 使用默认按钮,返回字符串使用默认按钮并设置文字,返回对象使用自定义按钮。

    ts
    type FileButtonGenerator = ((file: FileInfo) => (boolean | string | ButtonProps));

    FileAddCallback

    添加文件时的回调函数,返回 false 取消添加文件。

    ts
    type FileAddCallback = (file: FileInfo) => void | false;

    FileSelectCallback

    选择文件时的回调函数。

    ts
    type FileSelectCallback = (files: File[] | FileList) => void | false;

    RemoveFileCallback

    删除文件时的回调函数。

    ts
    (file: FileInfo) => void | false | Promise<void | false>;

    RenameFileCallback

    重命名文件时的回调函数,返回 false 取消重命名。

    ts
    type RenameFileCallback = (newName: string, oldName: string, file: FileInfo) => void | false | Promise<void | false>;

    DuplicatedCallback

    重名时的回调,返回 true 保留重复文件。

    ts
    type DuplicatedCallback = (name: string, currentFile: FileInfo, existFile: FileInfo) => void | true;

    ExceededLimitCallback

    超出限制时的回调函数,返回 true 忽略限制,否则取消添加文件。

    ts
    type ExceededLimitCallback = (limit: number, file: FileInfo) => void | true;

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/kanban/index.html b/dev/lib/components/kanban/index.html index eb688269c0..93f44cf50b 100644 --- a/dev/lib/components/kanban/index.html +++ b/dev/lib/components/kanban/index.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/lib/components/label/index.html b/dev/lib/components/label/index.html index e338d6eca1..a8842c0533 100644 --- a/dev/lib/components/label/index.html +++ b/dev/lib/components/label/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    标签

    标签通常用于对内容进行标记。

    使用方法

    使用 .label 类来获得标签的外观和交互体验,通常用在元素 <span> 上。

    标签

    外观类型

    配合丰富的CSS 工具类来实现不同标签的外观。

    主要标签黑色标签描边浅色

    尺寸

    除了默认大小,标签还提供了额外的 2 种预设尺寸。

    小标签普通大小大标签

    圆角

    通过工具类 rounded-* 来应用不同的圆角样式。

    无圆角小圆角普通圆角中等圆角大圆角超大圆角完整圆角

    圆点标签

    当与工具类 label-dot 一起使用时则获得圆点标签。

    与按钮组合使用

    CSS 类

    标签提供了如下 CSS 类:

    类型作用
    label实体类元素作为标签组件
    label-dot工具类标签使用圆形外观
    size-sm工具类标签使用小号尺寸
    size-lg工具类标签使用大号尺寸

    CSS 变量

    变量名称变量含义
    --label-bg标签背景色
    --label-color标签文字颜色
    --label-border-color标签边框颜色
    --label-radius标签圆角

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/menu/index.html b/dev/lib/components/menu/index.html index 89b00f77db..4503c2e8a6 100644 --- a/dev/lib/components/menu/index.html +++ b/dev/lib/components/menu/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    菜单

    菜单用于展示一个操作列表,也可以用于构建更复杂的组件,例如右键菜单、下拉菜单等。如果需要通过 JS 动态创建菜单,可以使用菜单生成器

    使用方法

    使用类 .menu.menu-item 按照如下结构来构建一个静态菜单:

    标题

    使用类 .menu-heading 来创建一个标题:

    分割线

    使用类 .divider 来添加一个分割线:

    包含图标

    可以在菜单项内添加图标,但如果是部分菜单项拥有图标,可以通过为 .menu 添加工具类 .has-icons 来让图标以及文本进行对齐:

    禁用的菜单项

    .menu-item 添加工具类 .disabled 来将菜单项禁用:

    标记激活项

    .menu-item 内的 <a> 元素添加工具类 .active 来将菜单项标记为激活状态:

    标记选中项

    .menu-item 内的 <a> 元素添加工具类 .active 来将菜单项标记为选中项状态:

    尾部图标

    直接将图标 .icon 元素添加到菜单项 .menu-item 内尾部,图标将自动靠右侧对齐:

    自定义菜单项

    .menu 内可以放置其他内容来自定义菜单项:

    CSS 类

    头像提供了如下 CSS 类:

    类型作用
    menu实体类元素作为菜单
    menu-item实体类元素作为菜单项
    menu-heading实体类元素作为菜单标题
    divider实体类元素作为分割线
    has-icons工具类menu 一起使用,标记菜单内包含图标
    active工具类标记菜单项为激活状态
    selected工具类标记菜单项为选中状态
    disabled工具类标记菜单项为禁用状态

    CSS 变量

    头像提供了如下 CSS 变量,可进行全局修改:

    CSS 变量名作用默认值
    --menu-radius菜单圆角var(--radius)
    --menu-bg菜单背景颜色var(--color-canvas)
    --menu-border菜单边框1px solid var(--color-border)
    --menu-shadow菜单阴影var(--shadow-lg)
    --menu-hover-bg菜单项鼠标悬停背景色var(--color-primary-500)
    --menu-hover-color菜单项鼠标悬停文字颜色var(--color-canvas)
    --menu-active-bg菜单项激活状态背景色var(--color-primary-50)
    --menu-active-color菜单项激活状态文字颜色var(--color-primary-500)
    --menu-icon-opacity菜单项图标透明度.5
    --menu-heading-color菜单标题文字颜色var(--color-gray-500)

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/menu/js.html b/dev/lib/components/menu/js.html index da23f7f5a9..78a1b417a9 100644 --- a/dev/lib/components/menu/js.html +++ b/dev/lib/components/menu/js.html @@ -14,8 +14,8 @@ - - + + @@ -150,7 +150,7 @@ key?: string | number, items?: MenuListItem[], };

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/messager/index.html b/dev/lib/components/messager/index.html index 5800147e31..0bcfb52923 100644 --- a/dev/lib/components/messager/index.html +++ b/dev/lib/components/messager/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    浮动消息

    通过 JS 动态创建一个浮动消息。

    基本用法

    通过构造一个 messager 实例,页面上创建一个浮动消息。

    显示位置

    提供 9 个预设的显示位置,通过 placement 选项进行指定。

    颜色主题

    提供多种预设颜色主题,通过 type 选项指定外观工具类即可。

    禁用关闭按钮

    默认会在右侧显示关闭按钮,如果需要禁用关闭按钮,将 close 选项设置为 false

    自定义操作按钮

    通过 actions 数组来自定义一组操作。详细配置可参考 工具栏

    禁用自动隐藏

    默认超过 5000ms 自动隐藏,通过设置 time0 取消自动隐藏。

    禁用动画效果

    设置 animationfalse 禁用动画效果。

    选项

    名称类型默认值说明
    typestringnull消息类型 placement?: string; // 浮动消息定位方式,支持 'top' | 'center' | 'bottom' | 'left-top' | 'left' | 'left-bottom' | 'right' | 'right-top' | 'right-bottom' time?: number; // 浮动消息持续时间 content?: string; // 浮动消息内容 icon?: string; // 图标名称 actions?: object[]; // 操作按钮定义列表 margin?: number; // 外边距

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/modal/index.html b/dev/lib/components/modal/index.html index 3ce37cba06..ed14aed012 100644 --- a/dev/lib/components/modal/index.html +++ b/dev/lib/components/modal/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    对话框

    在保留当前页面状态的情况下,直接使用触发按钮即可展现对话框,告知用户展示相关操作。

    使用方法

    使用 .modal.modal-dialog 类获得对话框的外观展示,通常用在元素 <div> 上。使用 [data-toggle="modal"] 指定对话框触发按钮,在触发按钮上通过 data-target 属性指定要打开的对话框。

    点击 a 标签按钮打开

    自定义位置

    使用 data-position 自定义设置对话框位置。可设置 fitcenter 或其具体像素值。

    尺寸

    除了默认大小,还提供了额外的 3 种预设尺寸。

    信息提示

    展示各种类型的信息提示,只提供一个按钮用于关闭。

    控制遮罩层

    通过 data-backdrop="false" 移除遮罩层,设置后可以操作模态框之外的交互。

    CSS 类

    对话框提供了如下 CSS 类:

    类型作用
    modal实体类元素作为对话框遮罩组件
    modal-dialog实体类元素作为对话框组件
    size-sm工具类对话框使用小号尺寸
    size-lg工具类对话框使用大号尺寸
    size-xl工具类对话框使用超大号尺寸

    CSS 变量

    对话框提供了如下 CSS 变量,可进行全局修改。

    CSS 变量名作用
    --modal-radius对话框默认圆角大小
    --modal-bg对话框遮挡层颜色
    --modal-sm对话框小号尺寸宽度
    --modal-base对话框默认宽度
    --modal-lg对话框大号尺寸宽度
    --modal-xl对话框超大号尺寸宽度

    MIT License (MIT)

    - +
    Skip to content

    对话框

    在保留当前页面状态的情况下,直接使用触发按钮即可展现对话框,告知用户展示相关操作。

    使用方法

    使用 .modal.modal-dialog 类获得对话框的外观展示,通常用在元素 <div> 上。使用 [data-toggle="modal"] 指定对话框触发按钮,在触发按钮上通过 data-target 属性指定要打开的对话框。

    点击 a 标签按钮打开

    自定义位置

    使用 data-position 自定义设置对话框位置。可设置 fitcenter 或其具体像素值。

    尺寸

    除了默认大小,还提供了额外的 3 种预设尺寸。

    信息提示

    展示各种类型的信息提示,只提供一个按钮用于关闭。

    控制遮罩层

    通过 data-backdrop="false" 移除遮罩层,设置后可以操作模态框之外的交互。

    CSS 类

    对话框提供了如下 CSS 类:

    类型作用
    modal实体类元素作为对话框遮罩组件
    modal-dialog实体类元素作为对话框组件
    size-sm工具类对话框使用小号尺寸
    size-lg工具类对话框使用大号尺寸
    size-xl工具类对话框使用超大号尺寸

    CSS 变量

    对话框提供了如下 CSS 变量,可进行全局修改。

    CSS 变量名作用
    --modal-radius对话框默认圆角大小
    --modal-bg对话框遮挡层颜色
    --modal-sm对话框小号尺寸宽度
    --modal-base对话框默认宽度
    --modal-lg对话框大号尺寸宽度
    --modal-xl对话框超大号尺寸宽度

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/modal/trigger.html b/dev/lib/components/modal/trigger.html index a6b10e2b04..af02d6136d 100644 --- a/dev/lib/components/modal/trigger.html +++ b/dev/lib/components/modal/trigger.html @@ -14,18 +14,18 @@ - - + + -
    Skip to content

    对话框触发器

    对话框触发器允许你不需要书写静态对话框 HTML,直接使用触发按钮或者一行 JS 代码即可让一个全新的对话框展现。支持使用 Ajax 从远程获取内容,或者通过 iframe 加载任何页面内容,当然不使用远程内容,直接使用本地内容也是很方便。

    Ajax 对话框

    在对话框触发按钮上通过 data-url 属性指定远程内容的 URL 地址。

    Ajax 对话框支持手动通过 Modal.open 方法按需打开:

    js
    zui.Modal.open({
    +    
    Skip to content

    对话框触发器

    对话框触发器允许你不需要书写静态对话框 HTML,直接使用触发按钮或者一行 JS 代码即可让一个全新的对话框展现。支持使用 Ajax 从远程获取内容,或者通过 iframe 加载任何页面内容,当然不使用远程内容,直接使用本地内容也是很方便。

    Ajax 对话框

    在对话框触发按钮上通过 data-url 属性指定远程内容的 URL 地址。

    Ajax 对话框支持手动通过 Modal.open 方法按需打开:

    js
    zui.Modal.open({
         url: '/assets/modal/ajax-modal.html',
    -});

    iframe 对话框

    在对话框触发按钮上通过 data-type="iframe" 属性指定对话框类型为 iframe 对话框,然后通过 data-url 属性指定对话框内容页面地址。

    iframe 对话框支持手动通过 Modal.open 方法按需打开:

    js
    zui.Modal.open({
    +});

    iframe 对话框

    在对话框触发按钮上通过 data-type="iframe" 属性指定对话框类型为 iframe 对话框,然后通过 data-url 属性指定对话框内容页面地址。

    iframe 对话框支持手动通过 Modal.open 方法按需打开:

    js
    zui.Modal.open({
         type: 'iframe',
         url: '/assets/modal/iframe-modal.html',
    -});

    自定义信息提示弹窗

    在对话框触发按钮上通过 data-title 属性指定对话框标题,通过 data-content 属性指定对话框内容。

    iframe 对话框支持手动通过 Modal.open 方法按需打开:

    js
    zui.Modal.open({
    +});

    自定义信息提示弹窗

    在对话框触发按钮上通过 data-title 属性指定对话框标题,通过 data-content 属性指定对话框内容。

    iframe 对话框支持手动通过 Modal.open 方法按需打开:

    js
    zui.Modal.open({
         title: '自定义对话框',
         content: '这里是对话框内容',
     });

    系统对话框

    警告框

    通过 zui.Modal.alert() 方法可以打开一个警告框,该方法定义如下:

    ts
    /* 直接指定要提示的消息文本 */
    @@ -47,15 +47,15 @@
     
         /* 当点击提示按钮时的回调函数 */
         onClickAction?: (item: ToolbarItemOptions, modal: Modal) => false | void;
    -}

    该方法会通过 Promise 异步返回用户点击的按钮名称。

    下面为一个示例:

    确认框

    通过 Modal.confirm() 方法可以打开一个确认框,该方法定义如下:

    ts
    /* 直接指定要提示的消息文本 */
    +}

    该方法会通过 Promise 异步返回用户点击的按钮名称。

    下面为一个示例:

    确认框

    通过 Modal.confirm() 方法可以打开一个确认框,该方法定义如下:

    ts
    /* 直接指定要提示的消息文本 */
     Modal.confirm(message: string): Promise<string | undefined>;
     
     /* 通过一个选项对象定义个性化对话框 */
     Modal.confirm(options: ModalComfirmOptions): Promise<string | undefined>;

    其中参数定义如下:

    • message:要提示的消息文本;
    • options:一个警告框选项对象 ModalConfirmOptions,定义如下:
    ts
    interface ModalConfirmOptions extends ModalAlertOptions {
         /* 当用户点击确认或取消时的回调函数 */
         onResult?: (confirmed: boolean, modal: Modal) => void;
    -}

    该方法会通过 Promise 异步返回用户点击的按钮名称。

    下面为一个示例:

    MIT License (MIT)

    - +}

    该方法会通过 Promise 异步返回用户点击的按钮名称。

    下面为一个示例:

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/nav/index.html b/dev/lib/components/nav/index.html index 63238c9272..8fba73fd48 100644 --- a/dev/lib/components/nav/index.html +++ b/dev/lib/components/nav/index.html @@ -14,17 +14,17 @@ - - + + -
    Skip to content

    导航

    基础用法

    使用组件类 .nav 来获得导航外观 通常搭配 <ul><menu><li> 标签来使用。

    带标题的导航

    可以通过 CSS 类 nav-heading 给导航项设置标题样式。

    html
    <menu class="nav">
    +    
    Skip to content

    导航

    基础用法

    使用组件类 .nav 来获得导航外观 通常搭配 <ul><menu><li> 标签来使用。

    带标题的导航

    可以通过 CSS 类 nav-heading 给导航项设置标题样式。

    html
    <menu class="nav">
       <li class="nav-heading">导航标题</li>
       ...
    -</menu>

    导航样式

    除了默认样式,还可以通过修饰类为导航应用不同的样式。

    主要导航 .nav-primary

    次要导航 .nav-secondary

    圆点导航 .nav-pills

    标签导航 .nav-tabs

    步骤条 .nav-steps

    垂直排列

    使用修饰类 nav-stacked 使导航获得垂直排列样式,可搭配其他各种样式的导航使用。

    .nav-primary
    .nav-secondary
    .nav-pills
    .nav-tabs

    自适应宽度的导航

    使用修饰类 nav-justified 使导航获得自适应宽度样式,可搭配其他各种样式的导航使用。

    提示

    自适应宽度修饰类不能和垂直排列修饰类混用。

    CSS 类

    导航提供了如下 CSS 类

    类型作用
    nav实体类元素导航组件
    nav-item实体类元素导航条目组件
    nav-heading实体类导航标题组件
    nav-divider实体类导航分割线组件
    active修饰类为导航元素启用选中态样式
    nav-simple修饰类为导航元素启用简单样式
    nav-primary修饰类为导航元素启用主要导航样式
    nav-secondary修饰类为导航元素启用次要导航样式
    nav-tabs修饰类为导航元素启用标签风格导航样式
    nav-pills修饰类为导航元素启用标签风格导航样式
    nav-stacked修饰类为导航元素启用垂直排列导航样式
    nav-justified修饰类为导航元素启用自适应宽度导航样式

    CSS 变量

    变量名称变量含义
    --nav-heading-color导航标题字体颜色

    MIT License (MIT)

    - +</menu>

    导航样式

    除了默认样式,还可以通过修饰类为导航应用不同的样式。

    主要导航 .nav-primary

    次要导航 .nav-secondary

    圆点导航 .nav-pills

    标签导航 .nav-tabs

    步骤条 .nav-steps

    垂直排列

    使用修饰类 nav-stacked 使导航获得垂直排列样式,可搭配其他各种样式的导航使用。

    .nav-primary
    .nav-secondary
    .nav-pills
    .nav-tabs

    自适应宽度的导航

    使用修饰类 nav-justified 使导航获得自适应宽度样式,可搭配其他各种样式的导航使用。

    提示

    自适应宽度修饰类不能和垂直排列修饰类混用。

    CSS 类

    导航提供了如下 CSS 类

    类型作用
    nav实体类元素导航组件
    nav-item实体类元素导航条目组件
    nav-heading实体类导航标题组件
    nav-divider实体类导航分割线组件
    active修饰类为导航元素启用选中态样式
    nav-simple修饰类为导航元素启用简单样式
    nav-primary修饰类为导航元素启用主要导航样式
    nav-secondary修饰类为导航元素启用次要导航样式
    nav-tabs修饰类为导航元素启用标签风格导航样式
    nav-pills修饰类为导航元素启用标签风格导航样式
    nav-stacked修饰类为导航元素启用垂直排列导航样式
    nav-justified修饰类为导航元素启用自适应宽度导航样式

    CSS 变量

    变量名称变量含义
    --nav-heading-color导航标题字体颜色

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/nav/js.html b/dev/lib/components/nav/js.html index 0c15308617..ee3d137785 100644 --- a/dev/lib/components/nav/js.html +++ b/dev/lib/components/nav/js.html @@ -14,8 +14,8 @@ - - + + @@ -62,7 +62,7 @@ afterRender?: (info: {nav: nav, firstRender: boolean}) => void; beforeDestroy?: (info: {nav: nav}) => void; }

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/pager/index.html b/dev/lib/components/pager/index.html index 6a931e250d..0345ba6b32 100644 --- a/dev/lib/components/pager/index.html +++ b/dev/lib/components/pager/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    分页

    使用方法

    将多个按钮放置在 <div class="pager"> 内即可创建一个分页组件。

    简洁样式

    简单的翻页。

    状态

    为分页按钮添加 active 类标记选中,添加 disabled 类来禁用页码,被禁用的页码将无法响应点击事件。

    外观

    分页按钮间距

    使用 gap-* CSS 工具类 可获得宽松的分页组件。

    两边对齐

    结合使用 justify-between CSS 工具类 可获得页面两端对齐的分页组件。

    尺寸

    除了默认大小,还提供了额外的 2 种预设尺寸。可以通过为 pager 添加 size-* 类来获取其他尺寸外观。

    调整每页显示数

    结合使用 dropdown 下拉菜单组件 可展示调整每页显示数的分页组件。

    前往页码

    结合使用 input-group 输入组组件 可展示快速跳转到某一页的分页组件。

    CSS 类

    分页提供了如下 CSS 类:

    类型作用
    pager实体类元素作为分页组件
    pager-goto实体类元素作为分页的跳转组件
    pager-size-menu实体类元素作为分页的每页条数的下拉组件

    MIT License (MIT)

    - +
    Skip to content

    分页

    使用方法

    将多个按钮放置在 <div class="pager"> 内即可创建一个分页组件。

    简洁样式

    简单的翻页。

    状态

    为分页按钮添加 active 类标记选中,添加 disabled 类来禁用页码,被禁用的页码将无法响应点击事件。

    外观

    分页按钮间距

    使用 gap-* CSS 工具类 可获得宽松的分页组件。

    两边对齐

    结合使用 justify-between CSS 工具类 可获得页面两端对齐的分页组件。

    尺寸

    除了默认大小,还提供了额外的 2 种预设尺寸。可以通过为 pager 添加 size-* 类来获取其他尺寸外观。

    调整每页显示数

    结合使用 dropdown 下拉菜单组件 可展示调整每页显示数的分页组件。

    前往页码

    结合使用 input-group 输入组组件 可展示快速跳转到某一页的分页组件。

    CSS 类

    分页提供了如下 CSS 类:

    类型作用
    pager实体类元素作为分页组件
    pager-goto实体类元素作为分页的跳转组件
    pager-size-menu实体类元素作为分页的每页条数的下拉组件

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/pager/js.html b/dev/lib/components/pager/js.html index 6fe4d58278..9a09fbfd63 100644 --- a/dev/lib/components/pager/js.html +++ b/dev/lib/components/pager/js.html @@ -14,8 +14,8 @@ - - + + @@ -167,7 +167,7 @@ render(element, <Pager {...options} />);

    使用Jquery 扩展

    js
    $(element).pager(options);
     
     const pager = $(element).data('zui.pager');

    选项

    linkCreator

    导航链接生成器,点击页码时进行页面地址更换。

    • 类型:string | ((info: PagerInfo) => string)
    • 必选:否

    page

    初始状态的当前页码。

    • 类型:number

    recTotal

    总记录数目。

    • 类型:number

    recPerPage

    每页记录数。

    • 类型:number

    pageTotal

    总页数。

    • 类型:number

    items

    定义分页项的列表,可以通过一个函数动态返回分页组件。

    基于 工具栏 选项 和 自定义 PagerItemOptions 选项。

    onClickItem

    指定分页按钮的点击回调事件。

    API

    PagerInfo

    参数:

    page

    • 含义:初始状态的当前页码;
    • 类型:number

    recTotal

    • 含义:总记录数目;
    • 类型:number

    recPerPage

    • 含义:每页记录数;
    • 类型:number

    pageTotal

    • 含义:总页数;
    • 类型:number

    PagerItemOptions

    参数:

    type

    • 含义:子项类型;
    • 类型:string
    • 可选项:info | link | nav | size-menu | goto

    page

    • 含义:页码名称;
    • 类型:'first' | 'last' | 'prev' | 'next' | 'current' | number

    text

    • 含义:指定类型为 info | size-menu 的显示文案;
    • 类型:string | ((info: PagerInfo) => string)

    count

    • 含义:指定类型为 nav 的展示数量;
    • 类型:number

    format

    • 含义:指定类型为 link | nav 的显示格式;
    • 类型:string | ((info: PagerInfo) => string)
    • 含义:指定下拉菜单的属性;
    • 类型:object

    items

    • 含义:指定类型为 size-menu 下拉菜单里的选项;
    • 类型:number[]

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/panel/index.html b/dev/lib/components/panel/index.html index 80d105d4e6..e3b7950fde 100644 --- a/dev/lib/components/panel/index.html +++ b/dev/lib/components/panel/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    面板

    基本使用

    一个面板通常包含标题,内容,底部三部分。标题,底部可按需选择使用。

    面板标题

    面板内容

    不同主题

    除默认主题外,另外提供6种主题样式。

    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容

    面板组

    搭配CSS工具类 space-* 可实现面板组效果。

    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容

    与表格组合使用

    包含表格
    项目名称负责人计划开始计划完成
    ZUI1研发今天今天
    ZUI2研发明天明天
    ZUI3研发后天后天

    CSS 类

    面板提供了如下 CSS 类:

    类型作用
    panel实体类元素作为面板组件
    panel-heading实体类元素作为面板头部组件
    panel-title实体类元素作为面板头部标题组件
    panel-body实体类元素作为面板主体组件
    panel-footer实体类元素作为面板尾部组件

    CSS 变量

    面板提供了如下 CSS 变量:

    变量名称变量含义
    --panel-heading-bg标题背景色
    --panel-footer-bg底部背景色

    MIT License (MIT)

    - +
    Skip to content

    面板

    基本使用

    一个面板通常包含标题,内容,底部三部分。标题,底部可按需选择使用。

    面板标题

    面板内容

    不同主题

    除默认主题外,另外提供6种主题样式。

    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容

    面板组

    搭配CSS工具类 space-* 可实现面板组效果。

    面板标题
    面板内容
    面板标题
    面板内容
    面板标题
    面板内容

    与表格组合使用

    包含表格
    项目名称负责人计划开始计划完成
    ZUI1研发今天今天
    ZUI2研发明天明天
    ZUI3研发后天后天

    CSS 类

    面板提供了如下 CSS 类:

    类型作用
    panel实体类元素作为面板组件
    panel-heading实体类元素作为面板头部组件
    panel-title实体类元素作为面板头部标题组件
    panel-body实体类元素作为面板主体组件
    panel-footer实体类元素作为面板尾部组件

    CSS 变量

    面板提供了如下 CSS 变量:

    变量名称变量含义
    --panel-heading-bg标题背景色
    --panel-footer-bg底部背景色

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/progress-circle/index.html b/dev/lib/components/progress-circle/index.html index e63d80dc59..31c45d50cf 100644 --- a/dev/lib/components/progress-circle/index.html +++ b/dev/lib/components/progress-circle/index.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/lib/components/progress/index.html b/dev/lib/components/progress/index.html index a99be062fc..c5bc123727 100644 --- a/dev/lib/components/progress/index.html +++ b/dev/lib/components/progress/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    进度条

    使用方法

    使用 CSS 类 .progress.progress-bar 来创建进度条,通过为 .progress-bar 设置 CSS width 来展示进度。

    颜色主题

    .progress-bar 元素添加 .* 等颜色CSS工具类,得到各种颜色的进度条。

    圆角大小

    .progress 元素添加 .rounded-* CSS工具类,给进度条添加不同大小的圆角。

    特殊效果

    条纹效果

    .progress 元素添加 .progress-striped 工具类,给进度条添加条纹效果。

    动画效果

    给使用了 progress-striped 工具类的元素添加 .active 工具类,给条纹进度条添加向左滑动的动画。

    堆叠效果

    .progress 元素添加多个 progress-bar 元素,使多个进度条堆叠展示。

    CSS 类

    进度条提供了如下 CSS 类:

    类型作用
    progress实体类元素作为进度条容器组件
    progress-bar实体类元素作为进度条组件
    progress-striped工具类为进度条组件启用条纹样式
    active工具类为条纹样式进度条组件启用动画效果

    CSS 变量

    变量名称变量含义
    --progress-bg进度条组件背景颜色
    --progress-bar-color进度条组件颜色
    --progress-radius进度条组件圆角大小
    --progress-striped-size进度条组件条纹大小

    MIT License (MIT)

    - +
    Skip to content

    进度条

    使用方法

    使用 CSS 类 .progress.progress-bar 来创建进度条,通过为 .progress-bar 设置 CSS width 来展示进度。

    颜色主题

    .progress-bar 元素添加 .* 等颜色CSS工具类,得到各种颜色的进度条。

    圆角大小

    .progress 元素添加 .rounded-* CSS工具类,给进度条添加不同大小的圆角。

    特殊效果

    条纹效果

    .progress 元素添加 .progress-striped 工具类,给进度条添加条纹效果。

    动画效果

    给使用了 progress-striped 工具类的元素添加 .active 工具类,给条纹进度条添加向左滑动的动画。

    堆叠效果

    .progress 元素添加多个 progress-bar 元素,使多个进度条堆叠展示。

    CSS 类

    进度条提供了如下 CSS 类:

    类型作用
    progress实体类元素作为进度条容器组件
    progress-bar实体类元素作为进度条组件
    progress-striped工具类为进度条组件启用条纹样式
    active工具类为条纹样式进度条组件启用动画效果

    CSS 变量

    变量名称变量含义
    --progress-bg进度条组件背景颜色
    --progress-bar-color进度条组件颜色
    --progress-radius进度条组件圆角大小
    --progress-striped-size进度条组件条纹大小

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/scrollbar/index.html b/dev/lib/components/scrollbar/index.html index b9d1fd3016..4895cc594f 100644 --- a/dev/lib/components/scrollbar/index.html +++ b/dev/lib/components/scrollbar/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    滚动条

    滚动条样式

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam, accusamus.Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Explicabo asperiores recusandae qui? Aliquam similique eaque animi nemo? Fugiat.Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Pariatur sapiente laboriosam cumque itaque, id saepe commodi accusantium neque?

    Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Quidem eum, reiciendis iusto rem perspiciatis neque optio! Quae, sint!

    Maxime animi iure enim sint aperiam tempora non voluptatibus dolore.

    Suscipit cumque minus veritatis labore dolor corporis molestias. Rem, pariatur.

    Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Repellendus rerum tempora eos praesentium at placeat, quas quibusdam sunt?

    Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!

    窄滚动条样式

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam, accusamus.Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Explicabo asperiores recusandae qui? Aliquam similique eaque animi nemo? Fugiat.Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Pariatur sapiente laboriosam cumque itaque, id saepe commodi accusantium neque?

    Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Quidem eum, reiciendis iusto rem perspiciatis neque optio! Quae, sint!

    Maxime animi iure enim sint aperiam tempora non voluptatibus dolore.

    Suscipit cumque minus veritatis labore dolor corporis molestias. Rem, pariatur.

    Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Repellendus rerum tempora eos praesentium at placeat, quas quibusdam sunt?

    Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!

    仅鼠标悬停时显示

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam, accusamus.Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Explicabo asperiores recusandae qui? Aliquam similique eaque animi nemo? Fugiat.Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Pariatur sapiente laboriosam cumque itaque, id saepe commodi accusantium neque?

    Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Quidem eum, reiciendis iusto rem perspiciatis neque optio! Quae, sint!

    Maxime animi iure enim sint aperiam tempora non voluptatibus dolore.

    Suscipit cumque minus veritatis labore dolor corporis molestias. Rem, pariatur.

    Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Repellendus rerum tempora eos praesentium at placeat, quas quibusdam sunt?

    Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!

    MIT License (MIT)

    - +
    Skip to content

    滚动条

    滚动条样式

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam, accusamus.Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Explicabo asperiores recusandae qui? Aliquam similique eaque animi nemo? Fugiat.Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Pariatur sapiente laboriosam cumque itaque, id saepe commodi accusantium neque?

    Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Quidem eum, reiciendis iusto rem perspiciatis neque optio! Quae, sint!

    Maxime animi iure enim sint aperiam tempora non voluptatibus dolore.

    Suscipit cumque minus veritatis labore dolor corporis molestias. Rem, pariatur.

    Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Repellendus rerum tempora eos praesentium at placeat, quas quibusdam sunt?

    Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!

    窄滚动条样式

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam, accusamus.Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Explicabo asperiores recusandae qui? Aliquam similique eaque animi nemo? Fugiat.Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Pariatur sapiente laboriosam cumque itaque, id saepe commodi accusantium neque?

    Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Quidem eum, reiciendis iusto rem perspiciatis neque optio! Quae, sint!

    Maxime animi iure enim sint aperiam tempora non voluptatibus dolore.

    Suscipit cumque minus veritatis labore dolor corporis molestias. Rem, pariatur.

    Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Repellendus rerum tempora eos praesentium at placeat, quas quibusdam sunt?

    Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!

    仅鼠标悬停时显示

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam, accusamus.Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Explicabo asperiores recusandae qui? Aliquam similique eaque animi nemo? Fugiat.Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Pariatur sapiente laboriosam cumque itaque, id saepe commodi accusantium neque?

    Cupiditate eaque, doloribus magnam velit ipsum maiores voluptatum eveniet rem!

    Quidem eum, reiciendis iusto rem perspiciatis neque optio! Quae, sint!

    Maxime animi iure enim sint aperiam tempora non voluptatibus dolore.

    Suscipit cumque minus veritatis labore dolor corporis molestias. Rem, pariatur.

    Commodi omnis minus quo totam, ab aspernatur sequi vero cum?

    Repellendus rerum tempora eos praesentium at placeat, quas quibusdam sunt?

    Molestiae saepe deleniti voluptas excepturi nostrum. Consequatur eius non voluptates!

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/search-box/index.html b/dev/lib/components/search-box/index.html index a482b5db9c..08bbc43bf6 100644 --- a/dev/lib/components/search-box/index.html +++ b/dev/lib/components/search-box/index.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/lib/components/table/index.html b/dev/lib/components/table/index.html index b3b713485f..565521c461 100644 --- a/dev/lib/components/table/index.html +++ b/dev/lib/components/table/index.html @@ -14,16 +14,16 @@ - - + + -
    Skip to content

    表格

    表格用于展示二维数据。

    使用方法

    <table> 元素添加 CSS 类 .table 来使用表格。

    组成部分元素标签说明
    表头<thead>表头通常作为表格第一行,用于展示所有数据的各个属性名称。
    主体<tbody>一个或多个行组成表格的主体,每行用于展示一个数据。
    表尾<tfoot>表尾通常用于展示一些数据的汇总信息。
    总计3 个部分

    斑马纹表格

    <table class="table"> 上使用工具类 .table-striped 斑马纹表格外观(隔行变色)效果。

    :: tabs

    == 示例

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    == HTML

    html
    <table class="table table-striped">
    +    
    Skip to content

    表格

    表格用于展示二维数据。

    使用方法

    <table> 元素添加 CSS 类 .table 来使用表格。

    组成部分元素标签说明
    表头<thead>表头通常作为表格第一行,用于展示所有数据的各个属性名称。
    主体<tbody>一个或多个行组成表格的主体,每行用于展示一个数据。
    表尾<tfoot>表尾通常用于展示一些数据的汇总信息。
    总计3 个部分

    斑马纹表格

    <table class="table"> 上使用工具类 .table-striped 斑马纹表格外观(隔行变色)效果。

    :: tabs

    == 示例

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    == HTML

    html
    <table class="table table-striped">
       ...
    -</table>

    :::

    鼠标悬停变色

    <table class="table"> 上使用工具类 .table-hover,当鼠标悬停在行上时显示不一样的背景。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    完整边框

    <table class="table"> 上使用工具类 .bordered,为表格添加所有边框。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    无边框

    <table class="table"> 上使用工具类 .borderless,为表格移除所有边框。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    紧凑的表格

    <table class="table"> 上使用工具类 .condensed 来获得更紧凑的表格。表格中的单元格拥有更小的间距,整体行高减少。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    固定布局的表格

    <table class="table"> 上使用工具类 .table-fixed 来将表格布局方式设置为 fixed

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观。
    3.02021-07-31这一次说说关于表格的固定布局,当启用固定布局时,后续行中的单元格内容将不会对表格布局产生影响,当单元格内的文本过长时会被截断隐藏。

    关于表格的固定布局

    表格和列的宽度通过表格的宽度来设置,某一列的宽度仅由该列首行的单元格决定。在当前列中,该单元格所在行之后的行并不会影响整个列宽。

    使用“fixed”布局方式时,整个表格可以在其首行被下载后就被解析和渲染。这样对于“automatic”自动布局方式来说可以加速渲染,但是其后的单元格内容并不会自适应当前列宽。任何一个包含溢出内容的单元格可以使用 overflow 属性控制是否允许内容溢出。

    参考:https://developer.mozilla.org/zh-CN/docs/Web/CSS/table-layout

    自动宽度

    通常表格宽度为 100%,与表格所属的父级元素宽度保持一致,但有时希望表格的宽度能够按照实际内容宽度展示。此时可以通过配合使用 CSS 工具类 w-auto 来设置表格宽度为自动,同时推荐使用工具类 max-w-full 来限制表格最大宽度不超过父级元素宽度(100%)。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    特殊外观

    为行元素 <tr> 或单元格 <td><th> 应用 CSS 工具类 来获得特殊外观。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    CSS 类

    按钮提供了如下 CSS 类:

    类型作用
    table实体类元素作为表格组件
    table-striped工具类为表格启用斑马纹效果
    table-hover工具类为表格启用行悬停变色效果
    table-fixed工具类为表格启用固定布局
    borderless工具类移除表格所有边框
    bordered工具类为表格添加完整边框
    condensed工具类为表格启用紧凑布局

    CSS 变量

    变量名称变量含义
    --table-head-bg表头背景色
    --table-striped-color表格斑马纹行背景色
    --table-hover-color表格行响应鼠标悬停变化背景颜色
    --table-border-color表格边框颜色

    MIT License (MIT)

    - +</table>

    :::

    鼠标悬停变色

    <table class="table"> 上使用工具类 .table-hover,当鼠标悬停在行上时显示不一样的背景。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    完整边框

    <table class="table"> 上使用工具类 .bordered,为表格添加所有边框。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    无边框

    <table class="table"> 上使用工具类 .borderless,为表格移除所有边框。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    紧凑的表格

    <table class="table"> 上使用工具类 .condensed 来获得更紧凑的表格。表格中的单元格拥有更小的间距,整体行高减少。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    固定布局的表格

    <table class="table"> 上使用工具类 .table-fixed 来将表格布局方式设置为 fixed

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观。
    3.02021-07-31这一次说说关于表格的固定布局,当启用固定布局时,后续行中的单元格内容将不会对表格布局产生影响,当单元格内的文本过长时会被截断隐藏。

    关于表格的固定布局

    表格和列的宽度通过表格的宽度来设置,某一列的宽度仅由该列首行的单元格决定。在当前列中,该单元格所在行之后的行并不会影响整个列宽。

    使用“fixed”布局方式时,整个表格可以在其首行被下载后就被解析和渲染。这样对于“automatic”自动布局方式来说可以加速渲染,但是其后的单元格内容并不会自适应当前列宽。任何一个包含溢出内容的单元格可以使用 overflow 属性控制是否允许内容溢出。

    参考:https://developer.mozilla.org/zh-CN/docs/Web/CSS/table-layout

    自动宽度

    通常表格宽度为 100%,与表格所属的父级元素宽度保持一致,但有时希望表格的宽度能够按照实际内容宽度展示。此时可以通过配合使用 CSS 工具类 w-auto 来设置表格宽度为自动,同时推荐使用工具类 max-w-full 来限制表格最大宽度不超过父级元素宽度(100%)。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    特殊外观

    为行元素 <tr> 或单元格 <td><th> 应用 CSS 工具类 来获得特殊外观。

    版本发布时间主要特性
    1.02021-03-01第一个版本发布!
    1.12021-04-12修复了大量已知问题。
    1.22021-05-18新的编辑器,让创意更容易展现。
    2.02021-06-05这次版本带来全新的界面外观
    2.12021-07-31新的预览功能,更方便的提前查看最终效果!

    CSS 类

    按钮提供了如下 CSS 类:

    类型作用
    table实体类元素作为表格组件
    table-striped工具类为表格启用斑马纹效果
    table-hover工具类为表格启用行悬停变色效果
    table-fixed工具类为表格启用固定布局
    borderless工具类移除表格所有边框
    bordered工具类为表格添加完整边框
    condensed工具类为表格启用紧凑布局

    CSS 变量

    变量名称变量含义
    --table-head-bg表头背景色
    --table-striped-color表格斑马纹行背景色
    --table-hover-color表格行响应鼠标悬停变化背景颜色
    --table-border-color表格边框颜色

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/tabs/index.html b/dev/lib/components/tabs/index.html index fb5d3cc4f0..f707fb42d0 100644 --- a/dev/lib/components/tabs/index.html +++ b/dev/lib/components/tabs/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    标签页

    使用方法

    标签页一般配合导航使用,通过 .nav 来定义切换的触发器,通过 .tab-content 来定义切换的内容。标签页内容使用 .tab-pane 作为容器元素,所有供切换显示的 .tab-pane 放置在 .tab-content 容器元素内。

    提示

    为确保在页面显示的时候标签页能够指示正确的标签和显示正确的内容,在初始状态需要为当前选中的导航项目 li.nav-item > a 元素添加 .active 类,并且为当前显示的标签页内容元素 .tab-pane 添加 .active 类。

    为导航上每个用于切换标签内容的链接添加 hrefdata-target 属性指向当前标签页内容 .tab-paneid ,并添加 data-toggle="tab" 属性。

    我是标签1。

    我是标签2。

    我是标签3。

    动画效果

    为每个 .tab-pane 添加 .fade,可以使得标签内容在显示时获得渐变动画效果。在初始状态要显示的标签页内容 .tab-pane 不仅需要添加 .active 类,还需要添加 .in 类。

    我是标签1。

    我是标签2。

    我是标签3。

    垂直标签页

    使用 .nav-tabs.nav-stacked 获得垂直排列的标签导航,使用 flex 布局来使得导航和标签页内容水平排列。

    我是标签1。

    我是标签2。

    我是标签3。

    事件

    当显示一个新的标签页时,这些事件会被触发:

    • show: 当前标签页在显示时触发;
    • shown: 当前标签页在显示后(动画执行完毕)触发。

    通过为 [data-toggle="tab"] 链接添加 data-name 属性,这样事件触发时会传递该属性值作为参数,如果不指定则使用 [data-target] 的值作为参数。

    我是标签1。

    我是标签2。

    我是标签3。

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/toolbar/index.html b/dev/lib/components/toolbar/index.html index 0178856e5c..dae4fdd82d 100644 --- a/dev/lib/components/toolbar/index.html +++ b/dev/lib/components/toolbar/index.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/lib/components/toolbar/js.html b/dev/lib/components/toolbar/js.html index 3026d0a7bc..d7e4f095f6 100644 --- a/dev/lib/components/toolbar/js.html +++ b/dev/lib/components/toolbar/js.html @@ -14,8 +14,8 @@ - - + + @@ -152,7 +152,7 @@ render(element, <Toolbar {...options} />);

    使用 jQuery 扩展

    js
    $(element).toolbar(options);
     
     const toolbar = $(element).data('zui.toolbar');

    选项

    操作菜单 选项基础上添加新的参数选项。

    wrap

    限制工具栏按钮过多超出时是否换行。

    • 类型:boolean
    • 必选:否;
    • 默认值:false

    gap

    自定义工具栏按钮的间距,与 .toolbar 同级生成 .gap-* 的工具类控制按钮间距。

    • 类型:number | string
    • 必选:否

    items

    继承了 操作菜单 选项和按钮选项,同时添加了其他选项。

    btnProps

    继承按钮组件的属性, 统一处理工具栏按钮属性外观等。

    itemRender

    指定一个回调函数用于对组件渲染进行自定义。

    参数items 选项的单个配置;

    返回值items 选项的单个配置。

    beforeRender

    指定一个回调函数在渲染之前调用,可重新配置组件选项。

    参数:用户为按钮组组件件设置的 options

    返回值:组件选项数据。

    afterRender

    指定一个回调函数在渲染之后调用。

    参数:

    • firstRender:判断是否第一次渲染;
    • menu:组件信息。

    beforeDestroy

    指定一个回调函数在组件销毁之前调用,无参数。

    API

    ToolbarItemOptions

    ts
    type ToolbarItemOptions = ToolbarItemProps | ToolbarDropdownProps | ToolbarBtnGroupProps | ToolbarDividerProps | ToolbarSpaceProps;

    ToolbarItemProps

    选项:

    继承了操作菜单的 ActionItemProps 选项和按钮的 ButtonProps ,同时添加了其他选项 btnType,用来设置按钮外观类型。

    btnType

    设置工具栏单个按钮的外观类型。

    • 类型:string
    • 必选:否。

    ToolbarDropdownProps

    选项:

    在原有属性基础上固定 type 属性,并继承了下拉菜单的 DropdownButtonOptions 选项,同时添加了其他选项。

    type
    • 类型:string
    • 属性值:dropdown
    • 必选:是。
    children

    ToolbarBtnGroupProps

    选项:

    在原有属性基础上固定 type 属性,并继承了操作菜单的 ActionBasicProps 选项和按钮组的 BtnGroupOptions选项,同时添加了其他选项。

    type
    • 类型:string
    • 属性值:btn-group
    • 必选:是。

    ToolbarDividerProps

    选项:

    继承了工具栏的 ActionDividerProps 选项。

    ToolbarSpaceProps

    选项:

    继承了工具栏的 ActionSpaceProps 选项。

    type
    • 类型:string
    • 属性值:space
    • 必选:是。
    space
    • 类型:number | [leading: number, trailing: number]
    • 必选:否。
    flex
    • 类型:number | 'auto' | 'none'
    • 必选:否。

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/tooltip/index.html b/dev/lib/components/tooltip/index.html index df8f8ca83b..2a9a39e322 100644 --- a/dev/lib/components/tooltip/index.html +++ b/dev/lib/components/tooltip/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    提示消息

    提示消息又称“工具提示”,在鼠标悬停在元素上时及时显示额外的内容。

    使用方法

    组件提供多种不同方向的展示方式,可以根据需求选择你要的效果。

    触发方式

    除了默认的鼠标悬浮展示信息外,组件也提供了点击触发的方式。

    外观

    指定 type 选项来更改外观类型。

    选项

    名称类型默认值说明
    titlestringnull提示消息内容 placement?: string; // 弹出方向,可选值包括:'top-start' | 'top' | 'top-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end' | 'right-start' | 'right' | 'right-end' trigger?: string; // 触发方式,可选值包括:'click' | 'hover' className?: string; // 类名 type?: string; // 外观类型,可选值包括:'primary' | 'secondary' | 'warning' | 'success' | 'danger' | 'important' | 'gray' animation?: boolean; // 是否应用淡入淡出动画 arrow?: number | number; // 箭头大小 delay?: boolean | number; // 延迟显示,可选值包括:true | false | number hideOthers?: boolean; // 显示时隐藏其他已经显示的提示消息

    MIT License (MIT)

    - +
    Skip to content

    提示消息

    提示消息又称“工具提示”,在鼠标悬停在元素上时及时显示额外的内容。

    使用方法

    组件提供多种不同方向的展示方式,可以根据需求选择你要的效果。

    触发方式

    除了默认的鼠标悬浮展示信息外,组件也提供了点击触发的方式。

    外观

    指定 type 选项来更改外观类型。

    选项

    名称类型默认值说明
    titlestringnull提示消息内容 placement?: string; // 弹出方向,可选值包括:'top-start' | 'top' | 'top-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end' | 'right-start' | 'right' | 'right-end' trigger?: string; // 触发方式,可选值包括:'click' | 'hover' className?: string; // 类名 type?: string; // 外观类型,可选值包括:'primary' | 'secondary' | 'warning' | 'success' | 'danger' | 'important' | 'gray' animation?: boolean; // 是否应用淡入淡出动画 arrow?: number | number; // 箭头大小 delay?: boolean | number; // 延迟显示,可选值包括:true | false | number hideOthers?: boolean; // 显示时隐藏其他已经显示的提示消息

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/components/tree/index.html b/dev/lib/components/tree/index.html index 00dd3a10f3..5278cacf8a 100644 --- a/dev/lib/components/tree/index.html +++ b/dev/lib/components/tree/index.html @@ -14,8 +14,8 @@ - - + + @@ -181,7 +181,7 @@ /** 工具栏定义。 */ actions?: ToolbarOptions | ToolbarItemOptions[]; };

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/upload-imgs/index.html b/dev/lib/components/upload-imgs/index.html index c07d4bbd3e..6499a4b1a7 100644 --- a/dev/lib/components/upload-imgs/index.html +++ b/dev/lib/components/upload-imgs/index.html @@ -14,8 +14,8 @@ - - + + @@ -40,7 +40,7 @@ tip: '可点击添加或拖拽上传,图片格式支持jpg、jpeg', accept: 'image/jpg, image/jpeg' });

    选项

    name

    表单字段名。

    • 类型:string
    • 必选:是

    showSize

    是否显示文件大小。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    multiple

    是否开启多文件上传。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    uploadText

    上传按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'添加文件'

    uploadIcon

    上传按钮图标。

    • 类型:string
    • 必选:否

    renameBtn

    是否启用重命名按钮。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    renameIcon

    重命名按钮图标。

    • 类型:string
    • 必选:否
    • 默认值:'edit'

    renameText

    重命名按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'重命名'

    renameClass

    重命名按钮类。

    • 类型:string
    • 必选:否

    deleteBtn

    是否启用删除按钮。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    deleteIcon

    删除按钮图标。

    • 类型:string
    • 必选:否
    • 默认值:'trash'

    deleteText

    删除按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'删除'

    deleteClass

    删除按钮类。

    • 类型:string
    • 必选:否

    tip

    文件上传提示。

    • 类型:string
    • 必选:否

    btnClass

    上传按钮类。

    • 类型:string
    • 必选:否

    onAdd

    文件变更回调。

    • 类型:(files: File[] | File) => void
    • 必选:否

    onDelete

    删除文件回调。

    • 类型:(file: File) => void
    • 必选:否

    onRename

    重命名文件回调。

    • 类型:(newName: string, oldName: string) => void
    • 必选:否

    onSizeChange

    文件大小变更回调。

    • 类型:(size: number) => void
    • 必选:否

    limitCount

    上传文件最大数量限制。

    • 类型:number
    • 必选:否

    accept

    上传文件类型。

    • 类型:string
    • 必选:否

    defaultFileList

    默认文件列表。

    • 类型:File[]
    • 必选:否

    limitSize

    上传文件最大大小限制。

    • 类型:${number}${'B' | 'KB' | 'MB' | 'GB'} | false
    • 必选:否

    duplicatedHint

    重复文件提示。

    • 类型:string
    • 必选:否

    onDuplicated

    文件重复回调。

    • 类型:(name: string) => void
    • 必选:否

    exceededSizeHint

    超出大小限制提示。

    • 类型:string
    • 必选:否

    onExceededSize

    超出大小限制回调。

    • 类型:(limit: number) => void
    • 必选:否

    exceededCountHint

    超过数量限制提示。

    • 类型:string
    • 必选:否

    onExceededCount

    超过数量限制回调

    • 类型:(limit: number) => void
    • 必选:否

    totalCountText

    文件数量提示。

    • 类型:string
    • 必选:否
    • 默认值:'共 <span class="font-bold text-black">%s</span> 个文件 <span class="font-bold text-black">%s</span> 个文件等待上传。'

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/components/upload/index.html b/dev/lib/components/upload/index.html index 36851a57e3..1cc8b3b514 100644 --- a/dev/lib/components/upload/index.html +++ b/dev/lib/components/upload/index.html @@ -14,8 +14,8 @@ - - + + @@ -56,7 +56,7 @@ name: 'files8', defaultFileList: [file1, file2] });

    选项

    name

    表单字段名。

    • 类型:string
    • 必选:是

    icon

    文件图标。

    • 类型:string
    • 必选:否
    • 默认值:'file-o'

    showIcon

    是否显示文件图标。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    showSize

    是否显示文件大小。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    multiple

    是否开启多文件上传。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    listPosition

    文件列表位置。

    • 类型:'bottom' | 'top'
    • 必选:否
    • 默认值:'bottom'

    uploadText

    上传按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'上传文件'

    uploadIcon

    上传按钮图标。

    • 类型:string
    • 必选:否

    renameBtn

    是否启用重命名按钮。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    renameIcon

    重命名按钮图标。

    • 类型:string
    • 必选:否
    • 默认值:'edit'

    renameText

    重命名按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'重命名'

    renameClass

    重命名按钮类。

    • 类型:string
    • 必选:否

    deleteBtn

    是否启用删除按钮。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    deleteIcon

    删除按钮图标。

    • 类型:string
    • 必选:否
    • 默认值:'trash'

    deleteText

    删除按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'删除'

    deleteClass

    删除按钮类。

    • 类型:string
    • 必选:否

    confirmText

    确认重命名按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'确定'

    cancelText

    取消重命名按钮文本。

    • 类型:string
    • 必选:否
    • 默认值:'取消'

    useIconBtn

    是否使用图标按钮。

    • 类型:boolean
    • 必选:否
    • 默认值:true

    tip

    文件上传提示。

    • 类型:string
    • 必选:否

    btnClass

    上传按钮类。

    • 类型:string
    • 必选:否

    onAdd

    文件变更回调。

    • 类型:(files: File[] | File) => void
    • 必选:否

    onDelete

    删除文件回调。

    • 类型:(file: File) => void
    • 必选:否

    onRename

    重命名文件回调。

    • 类型:(newName: string, oldName: string) => void
    • 必选:否

    onSizeChange

    文件大小变更回调。

    • 类型:(size: number) => void
    • 必选:否

    draggable

    是否启用拖拽功能。

    • 类型:boolean
    • 必选:否
    • 默认值:false

    limitCount

    上传文件最大数量限制。

    • 类型:number
    • 必选:否

    accept

    上传文件类型。

    • 类型:string
    • 必选:否

    defaultFileList

    默认文件列表。

    • 类型:File[]
    • 必选:否

    limitSize

    上传文件最大大小限制。

    • 类型:${number}${'B' | 'KB' | 'MB' | 'GB'} | false
    • 必选:否

    duplicatedHint

    重复文件提示。

    • 类型:string
    • 必选:否

    onDuplicated

    文件重复回调。

    • 类型:(name: string) => void
    • 必选:否

    exceededSizeHint

    超出大小限制提示。

    • 类型:string
    • 必选:否

    onExceededSize

    超出大小限制回调。

    • 类型:(limit: number) => void
    • 必选:否

    exceededCountHint

    超过数量限制提示。

    • 类型:string
    • 必选:否

    onExceededCount

    超过数量限制回调

    • 类型:(limit: number) => void
    • 必选:否

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/forms/checkbox/index.html b/dev/lib/forms/checkbox/index.html index cef4469cf4..3ea9a49da6 100644 --- a/dev/lib/forms/checkbox/index.html +++ b/dev/lib/forms/checkbox/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    复选框和单选框

    复选框(checkbox)允许用户选择多个选项,不同于 <select>,这些选项是直接展示的。为 <input type="checkbox"> 设置 disabled 属性来应用禁用样式,如果为 .checkbox 添加 disabled 类,则整个复选框包括文字部分都会应用禁用样式。将多个复选框堆叠形成一个复选框组。

    基本使用

    复选框

    单选框列表

    单选框通常多个一起使用组成列表,将多个单选框放在 .check-list 中即可。

    复选框列表

    复选框也支持多个一起使用组成列表,将多个复选框放在 .check-list 中即可。

    不包含文字样式

    复选框

    单选框

    内联形式

    为让多个复选框或单选框内联显示,可以将他们放置在一个 .check-list-inline 中。

    内联多选框

    内联单选框

    内联间距

    可以通过工具类 gap-* 来设置内联的复选框和单选框间的间距。

    高级外观

    高级外观的多选框和单选框使用自定义的外观代替原生外观,在所有浏览器都具有一致的体验。

    高级外观的复选框

    高级外观的单选框

    <input> 选择框

    高级外观还可以不使用 <input> 元素,在此种情况下,为 .checkbox-primary.radio-primary 添加 .checked 类标记为选中状态,通过 focus 类来标记激活状态,用户无法通过点击来切换选中状态,但可以通过程序手动添加或移除 .checked 来更改选中状态。

    设置高级外观颜色

    通过设置 CSS 变量 --checkbox-color 可以设置高级外观颜色。

    CSS 类

    单选框和复选框提供了如下 CSS 类:

    类型作用
    checkbox实体类复选框组件
    radio实体类单选框组件
    check-list实体类复选框或单选框列表组件
    check-list-inline实体类复选框或单选框内联列表组件
    checkbox-primary实体类高级外观的复选框组件
    radio-primary实体类高级外观的单选框组件
    checked修饰类强制使用选中外观
    focus修饰类强制使用激活外观
    disabled修饰类强制使用禁用外观
    indeterminate修饰类强制使用 Indeterminate 外观

    CSS 变量

    单选框和复选框提供了如下 CSS 变量:

    CSS 变量名作用
    --checkbox-size复选框或单选框大小,仅当使用高级外观时有效
    --checkbox-color复选框或单选框颜色,仅当使用高级外观时有效

    MIT License (MIT)

    - +
    Skip to content

    复选框和单选框

    复选框(checkbox)允许用户选择多个选项,不同于 <select>,这些选项是直接展示的。为 <input type="checkbox"> 设置 disabled 属性来应用禁用样式,如果为 .checkbox 添加 disabled 类,则整个复选框包括文字部分都会应用禁用样式。将多个复选框堆叠形成一个复选框组。

    基本使用

    复选框

    单选框列表

    单选框通常多个一起使用组成列表,将多个单选框放在 .check-list 中即可。

    复选框列表

    复选框也支持多个一起使用组成列表,将多个复选框放在 .check-list 中即可。

    不包含文字样式

    复选框

    单选框

    内联形式

    为让多个复选框或单选框内联显示,可以将他们放置在一个 .check-list-inline 中。

    内联多选框

    内联单选框

    内联间距

    可以通过工具类 gap-* 来设置内联的复选框和单选框间的间距。

    高级外观

    高级外观的多选框和单选框使用自定义的外观代替原生外观,在所有浏览器都具有一致的体验。

    高级外观的复选框

    高级外观的单选框

    <input> 选择框

    高级外观还可以不使用 <input> 元素,在此种情况下,为 .checkbox-primary.radio-primary 添加 .checked 类标记为选中状态,通过 focus 类来标记激活状态,用户无法通过点击来切换选中状态,但可以通过程序手动添加或移除 .checked 来更改选中状态。

    设置高级外观颜色

    通过设置 CSS 变量 --checkbox-color 可以设置高级外观颜色。

    CSS 类

    单选框和复选框提供了如下 CSS 类:

    类型作用
    checkbox实体类复选框组件
    radio实体类单选框组件
    check-list实体类复选框或单选框列表组件
    check-list-inline实体类复选框或单选框内联列表组件
    checkbox-primary实体类高级外观的复选框组件
    radio-primary实体类高级外观的单选框组件
    checked修饰类强制使用选中外观
    focus修饰类强制使用激活外观
    disabled修饰类强制使用禁用外观
    indeterminate修饰类强制使用 Indeterminate 外观

    CSS 变量

    单选框和复选框提供了如下 CSS 变量:

    CSS 变量名作用
    --checkbox-size复选框或单选框大小,仅当使用高级外观时有效
    --checkbox-color复选框或单选框颜色,仅当使用高级外观时有效

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/checkbox/switch.html b/dev/lib/forms/checkbox/switch.html index 69bd62b007..e14682be72 100644 --- a/dev/lib/forms/checkbox/switch.html +++ b/dev/lib/forms/checkbox/switch.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    开关

    基本使用

    与单选框和复选框的高级外观一样,通过 .switch 类来启用开关外观。

    开关颜色

    通过设置 CSS 变量 --checkbox-color 可以设置高级外观颜色。

    开关列表

    垂直列表

    通过将多个开关放置在 .check-list 中,可以实现一个开关列表:

    内联列表

    通过将多个开关放置在 .check-list 中,可以实现一个开关内联列表:

    列表联动

    通过开关内部使用的 input[type="checkbox"] 更换为 input[type="radio"],并指定为相同的 name 属性,即可实现多个开关单选联动:

    CSS 类

    开关提供了如下 CSS 类:

    类型作用
    switch实体类开关组件
    check-list实体类开关列表组件
    check-list-inline实体类开关内联列表组件
    checked修饰类强制使用选中外观
    focus修饰类强制使用激活外观
    disabled修饰类强制使用禁用外观

    CSS 变量

    单选框和复选框提供了如下 CSS 变量:

    CSS 变量名作用
    --checkbox-color开关颜色,仅当使用高级外观时有效

    MIT License (MIT)

    - +
    Skip to content

    开关

    基本使用

    与单选框和复选框的高级外观一样,通过 .switch 类来启用开关外观。

    开关颜色

    通过设置 CSS 变量 --checkbox-color 可以设置高级外观颜色。

    开关列表

    垂直列表

    通过将多个开关放置在 .check-list 中,可以实现一个开关列表:

    内联列表

    通过将多个开关放置在 .check-list 中,可以实现一个开关内联列表:

    列表联动

    通过开关内部使用的 input[type="checkbox"] 更换为 input[type="radio"],并指定为相同的 name 属性,即可实现多个开关单选联动:

    CSS 类

    开关提供了如下 CSS 类:

    类型作用
    switch实体类开关组件
    check-list实体类开关列表组件
    check-list-inline实体类开关内联列表组件
    checked修饰类强制使用选中外观
    focus修饰类强制使用激活外观
    disabled修饰类强制使用禁用外观

    CSS 变量

    单选框和复选框提供了如下 CSS 变量:

    CSS 变量名作用
    --checkbox-color开关颜色,仅当使用高级外观时有效

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/datetime-picker/date.html b/dev/lib/forms/datetime-picker/date.html index 0289e4640c..ebbf18ea55 100644 --- a/dev/lib/forms/datetime-picker/date.html +++ b/dev/lib/forms/datetime-picker/date.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    日期选择器

    用法

    设置默认值

    通过 defaultValue 选项设置默认值,设置为 'today' 可以将默认值设置为当天。

    格式化

    通过 format 选项设置日期格式化形式,支持日期辅助方法 formatDate 中的所有格式。

    限制日期范围

    通过 minDatemaxDate 来限制可选的日期范围。

    自定义菜单

    通过 menu 选项可以在弹出面板侧面显示一个自定义菜单,通过 actions 可以自定义底部工具栏上的按钮。在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    自定义侧边菜单

    通过 menu 选项可以在弹出面板左侧显示一个自定义菜单,在菜单项配置上通过 [data-set-date] 属性指定点击菜单项时要设定的日期。

    自定义底部按钮

    通过 actions 可以自定义底部工具栏上的按钮,在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    选项

    名称类型默认值说明
    classNameanynull组件根元素的类名。 style?: object; // 组件根元素的样式。 tagName?: string; // 组件根元素的标签名。 attrs?: object; // 附加到组件根元素上的属性。 clickType?: 'toggle' | 'open'; // 点击类型,toggle 表示点击按钮时切换显示隐藏,open 表示点击按钮时只打开。 name?: string; // 作为表单项的名称。 defaultValue?: 'today' | string; // 默认值。 onChange?: function; // 值变更时的回调函数。 disabled?: boolean; // 是否禁用。 readonly?: boolean; // 是否只读,不允许手动修改。 required?: boolean; // 是否必须提供值(不能清除和选择空值)。 placeholder?: string; // 输入框上占位文本。 format?: string; // 日期格式,默认 yyyy-MM-dd。 icon?: string | object; // 在输入框右侧显示的图标。 weekNames?: string[]; // 星期名称,索引为 0 表示周日。 monthNames?: string[]; // 月份名称,索引为 0 表示一月份。 yearText?: string; // 用于显示年份的格式化文本。 todayText?: string; // 用于显示“今天”的文本。 clearText?: string; // 用于显示“清除”的文本。 weekStart?: number; // 一周从星期几开始,默认 1。 minDate?: DateLike; // 最小可选的日期。 maxDate?: DateLike; // 最大可选的日期。 menu?: object[] | object; // 左侧显示的菜单设置。 actions?: object[] | object; // 底部工具栏设置。 onInvalid?: function; // 日期值无效时的回调函数。

    MIT License (MIT)

    - +
    Skip to content

    日期选择器

    用法

    设置默认值

    通过 defaultValue 选项设置默认值,设置为 'today' 可以将默认值设置为当天。

    格式化

    通过 format 选项设置日期格式化形式,支持日期辅助方法 formatDate 中的所有格式。

    限制日期范围

    通过 minDatemaxDate 来限制可选的日期范围。

    自定义菜单

    通过 menu 选项可以在弹出面板侧面显示一个自定义菜单,通过 actions 可以自定义底部工具栏上的按钮。在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    自定义侧边菜单

    通过 menu 选项可以在弹出面板左侧显示一个自定义菜单,在菜单项配置上通过 [data-set-date] 属性指定点击菜单项时要设定的日期。

    自定义底部按钮

    通过 actions 可以自定义底部工具栏上的按钮,在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    选项

    名称类型默认值说明
    classNameanynull组件根元素的类名。 style?: object; // 组件根元素的样式。 tagName?: string; // 组件根元素的标签名。 attrs?: object; // 附加到组件根元素上的属性。 clickType?: 'toggle' | 'open'; // 点击类型,toggle 表示点击按钮时切换显示隐藏,open 表示点击按钮时只打开。 name?: string; // 作为表单项的名称。 defaultValue?: 'today' | string; // 默认值。 onChange?: function; // 值变更时的回调函数。 disabled?: boolean; // 是否禁用。 readonly?: boolean; // 是否只读,不允许手动修改。 required?: boolean; // 是否必须提供值(不能清除和选择空值)。 placeholder?: string; // 输入框上占位文本。 format?: string; // 日期格式,默认 yyyy-MM-dd。 icon?: string | object; // 在输入框右侧显示的图标。 weekNames?: string[]; // 星期名称,索引为 0 表示周日。 monthNames?: string[]; // 月份名称,索引为 0 表示一月份。 yearText?: string; // 用于显示年份的格式化文本。 todayText?: string; // 用于显示“今天”的文本。 clearText?: string; // 用于显示“清除”的文本。 weekStart?: number; // 一周从星期几开始,默认 1。 minDate?: DateLike; // 最小可选的日期。 maxDate?: DateLike; // 最大可选的日期。 menu?: object[] | object; // 左侧显示的菜单设置。 actions?: object[] | object; // 底部工具栏设置。 onInvalid?: function; // 日期值无效时的回调函数。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/datetime-picker/datetime.html b/dev/lib/forms/datetime-picker/datetime.html index e4faa9319c..38865e9375 100644 --- a/dev/lib/forms/datetime-picker/datetime.html +++ b/dev/lib/forms/datetime-picker/datetime.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    日期时间选择器

    日期时间选择器允许用户通过下拉面板同时选择日期和时间。

    用法

    设置默认值

    通过 defaultValue 选项设置默认值,设置为 'today' 可以将默认值设置为现在时间。

    格式化

    通过 format 选项设置日期和时间的格式化形式。

    限制日期范围

    通过 minDatemaxDate 来限制可选的日期范围。

    自定义菜单

    通过 menu 选项可以在弹出面板左侧显示一个自定义菜单,通过 actions 可以自定义底部工具栏上的按钮。在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    自定义左侧菜单

    通过 menu 选项可以在弹出面板左侧显示一个自定义菜单,在菜单项配置上通过 [data-set-date] 属性指定点击菜单项时要设定的日期。

    自定义底部按钮

    通过 actions 可以自定义底部工具栏上的按钮,在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    选项

    名称类型默认值说明
    classNameanynull组件根元素的类名。 style?: object; // 组件根元素的样式。 tagName?: string; // 组件根元素的标签名。 attrs?: object; // 附加到组件根元素上的属性。 clickType?: 'toggle' | 'open'; // 点击类型,toggle 表示点击按钮时切换显示隐藏,open 表示点击按钮时只打开。 name?: string; // 作为表单项的名称。 defaultValue?: 'today' | string; // 默认值。 onChange?: function; // 值变更时的回调函数。 disabled?: boolean; // 是否禁用。 readonly?: boolean; // 是否只读,不允许手动修改。 required?: boolean; // 是否必须提供值(不能清除和选择空值)。 placeholder?: string; // 输入框上占位文本。 format?: string; // 日期格式,默认 yyyy-MM-dd。 icon?: string | object; // 在输入框右侧显示的图标。 weekNames?: string[]; // 星期名称,索引为 0 表示周日。 monthNames?: string[]; // 月份名称,索引为 0 表示一月份。 yearText?: string; // 用于显示年份的格式化文本。 todayText?: string; // 用于显示“今天”的文本。 clearText?: string; // 用于显示“清除”的文本。 weekStart?: number; // 一周从星期几开始,默认 1。 minDate?: DateLike; // 最小可选的日期。 maxDate?: DateLike; // 最大可选的日期。 menu?: object[] | object; // 左侧显示的菜单设置。 actions?: object[] | object; // 底部工具栏设置。 onInvalid?: function; // 日期值无效时的回调函数。 minuteStep?: number; // 分钟选择间隔,默认 5(分钟)。

    MIT License (MIT)

    - +
    Skip to content

    日期时间选择器

    日期时间选择器允许用户通过下拉面板同时选择日期和时间。

    用法

    设置默认值

    通过 defaultValue 选项设置默认值,设置为 'today' 可以将默认值设置为现在时间。

    格式化

    通过 format 选项设置日期和时间的格式化形式。

    限制日期范围

    通过 minDatemaxDate 来限制可选的日期范围。

    自定义菜单

    通过 menu 选项可以在弹出面板左侧显示一个自定义菜单,通过 actions 可以自定义底部工具栏上的按钮。在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    自定义左侧菜单

    通过 menu 选项可以在弹出面板左侧显示一个自定义菜单,在菜单项配置上通过 [data-set-date] 属性指定点击菜单项时要设定的日期。

    自定义底部按钮

    通过 actions 可以自定义底部工具栏上的按钮,在菜单项和按钮上通过 [data-set-date] 属性指定点击按钮时要设定的日期。

    选项

    名称类型默认值说明
    classNameanynull组件根元素的类名。 style?: object; // 组件根元素的样式。 tagName?: string; // 组件根元素的标签名。 attrs?: object; // 附加到组件根元素上的属性。 clickType?: 'toggle' | 'open'; // 点击类型,toggle 表示点击按钮时切换显示隐藏,open 表示点击按钮时只打开。 name?: string; // 作为表单项的名称。 defaultValue?: 'today' | string; // 默认值。 onChange?: function; // 值变更时的回调函数。 disabled?: boolean; // 是否禁用。 readonly?: boolean; // 是否只读,不允许手动修改。 required?: boolean; // 是否必须提供值(不能清除和选择空值)。 placeholder?: string; // 输入框上占位文本。 format?: string; // 日期格式,默认 yyyy-MM-dd。 icon?: string | object; // 在输入框右侧显示的图标。 weekNames?: string[]; // 星期名称,索引为 0 表示周日。 monthNames?: string[]; // 月份名称,索引为 0 表示一月份。 yearText?: string; // 用于显示年份的格式化文本。 todayText?: string; // 用于显示“今天”的文本。 clearText?: string; // 用于显示“清除”的文本。 weekStart?: number; // 一周从星期几开始,默认 1。 minDate?: DateLike; // 最小可选的日期。 maxDate?: DateLike; // 最大可选的日期。 menu?: object[] | object; // 左侧显示的菜单设置。 actions?: object[] | object; // 底部工具栏设置。 onInvalid?: function; // 日期值无效时的回调函数。 minuteStep?: number; // 分钟选择间隔,默认 5(分钟)。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/datetime-picker/time.html b/dev/lib/forms/datetime-picker/time.html index 2491ca22e9..c509f4cbf4 100644 --- a/dev/lib/forms/datetime-picker/time.html +++ b/dev/lib/forms/datetime-picker/time.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    时间选择器

    用法

    设置默认值

    通过 defaultValue 选项设置默认值,设置为 'now' 可以将默认值设置为页面显示的时刻。

    格式化

    通过 format 选项设置日期格式化形式,支持日期辅助方法 formatDate 中的所有格式。

    选项

    名称类型默认值说明

    MIT License (MIT)

    - +
    Skip to content

    时间选择器

    用法

    设置默认值

    通过 defaultValue 选项设置默认值,设置为 'now' 可以将默认值设置为页面显示的时刻。

    格式化

    通过 format 选项设置日期格式化形式,支持日期辅助方法 formatDate 中的所有格式。

    选项

    名称类型默认值说明

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/form-control/index.html b/dev/lib/forms/form-control/index.html index 3ad16bf607..e5e31864ef 100644 --- a/dev/lib/forms/form-control/index.html +++ b/dev/lib/forms/form-control/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    表单控件

    输入框

    输入框通过为 <input> 元素添加类 form-control 实现,支持通过 type 属性设置输入框类型。

    选择框

    通过为 <select> 元素添加 form-control 类来使用选择框,包括单选和多选模式。

    单选框

    多选框

    TIP

    使用多选框时通常需要指定多选框高度。

    多行文本框

    通过为 <textarea> 元素添加 form-control 类来使用多行文本框。

    特殊表单控件

    在浏览器支持的情况下,还可以为 type 设置一些特殊类型。

    日期

    设置 <input type="date">

    时间

    设置 <input type="time">

    日期时间

    设置 <input type="datetime-local">

    月份

    设置 <input type="month">

    周数

    设置 <input type="week">

    范围

    设置 <input type="range">

    颜色

    设置 <input type="color">

    文件

    设置 <input type="file">

    尺寸

    通过为表单控件添加 size-* 工具类来设置尺寸。

    禁用

    通过为表单控件添加 disabled 属性来禁用表单控件。

    只读

    通过为表单控件添加 readonly 属性来表单控件只读。

    特殊状态

    通过为表单控件或者其直接父级元素添加工具类 has-errorhas-warninghas-error 来让其拥有特殊语义的状态。

    CSS 类

    表单控件提供了如下 CSS 类:

    类型作用
    form-control实体类元素作为表单控件组件
    size-sm工具类表单控件使用小号尺寸
    size-lg工具类表单控件使用大号尺寸

    CSS 变量

    表单控件提供了如下 CSS 变量,可进行全局修改。

    CSS 变量名作用
    --form-control-radius圆角
    --form-control-border边框颜色
    --form-control-focus激活颜色
    --form-control-disabled禁用颜色
    --form-control-readonly只读颜色

    MIT License (MIT)

    - +
    Skip to content

    表单控件

    输入框

    输入框通过为 <input> 元素添加类 form-control 实现,支持通过 type 属性设置输入框类型。

    选择框

    通过为 <select> 元素添加 form-control 类来使用选择框,包括单选和多选模式。

    单选框

    多选框

    TIP

    使用多选框时通常需要指定多选框高度。

    多行文本框

    通过为 <textarea> 元素添加 form-control 类来使用多行文本框。

    特殊表单控件

    在浏览器支持的情况下,还可以为 type 设置一些特殊类型。

    日期

    设置 <input type="date">

    时间

    设置 <input type="time">

    日期时间

    设置 <input type="datetime-local">

    月份

    设置 <input type="month">

    周数

    设置 <input type="week">

    范围

    设置 <input type="range">

    颜色

    设置 <input type="color">

    文件

    设置 <input type="file">

    尺寸

    通过为表单控件添加 size-* 工具类来设置尺寸。

    禁用

    通过为表单控件添加 disabled 属性来禁用表单控件。

    只读

    通过为表单控件添加 readonly 属性来表单控件只读。

    特殊状态

    通过为表单控件或者其直接父级元素添加工具类 has-errorhas-warninghas-error 来让其拥有特殊语义的状态。

    CSS 类

    表单控件提供了如下 CSS 类:

    类型作用
    form-control实体类元素作为表单控件组件
    size-sm工具类表单控件使用小号尺寸
    size-lg工具类表单控件使用大号尺寸

    CSS 变量

    表单控件提供了如下 CSS 变量,可进行全局修改。

    CSS 变量名作用
    --form-control-radius圆角
    --form-control-border边框颜色
    --form-control-focus激活颜色
    --form-control-disabled禁用颜色
    --form-control-readonly只读颜色

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/form/index.html b/dev/lib/forms/form/index.html index 774bfa6ac4..3d29616fc5 100644 --- a/dev/lib/forms/form/index.html +++ b/dev/lib/forms/form/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    表单

    基本用法

    <form> 元素使用类 .form 类来获得表单外观,将表单控件放置在表单控件组 .form-group 内,将表单操作按钮放置在表单操作栏 .form-actions 中。

    水平布局的表单

    <form> 元素使用类 .form-horz 类来让表单实现水平布局。

    在水平布局表单中,如果需要在一行包含多个表单控件,可以使用 .form-row 类,下面是一个更复杂的例子:

    可以放在同一行的字段满足:可连着填写,字段意义上有相似性
    此表单项为必填
    强关联字段,有灰色底色进行连接,3个以上框的自适应宽度

    网格布局

    <form> 元素使用类 .form-grid 类来让表单实现网格布局。

    .form-group 添加 w-* 辅助类来设置宽度
    项目类型
    -

    帮助性文本

    使用 form-tip 来显示帮助性的文本并添加到表单控件组中。

    校验状态

    通过为表单控件组添加 has-warninghas-errorhas-success 类即可应用相应的效验状态样式。这些样式会影响到表单控件组内的 label.form-control.form-tip 元素。

    表单分组

    使用fieldset 将多个表单控件放置在一起进行分组。在<fieldset> 内使用 <legend> 来定义分组标题。

    账号信息
    额外内容

    标记必填项

    标记必填项的一种通用方法是在标签上添加星标 * , 在表单控件组中只需要为表单组标签 .form-label 添加 required 类。

    水平布局的表单中也可以使用:

    CSS 类

    表单提供了如下 CSS 类

    类型作用
    form-group实体类元素作为表单组件
    form-label实体类元素作为表单组标签
    form-control实体类元素作为表单控件组件
    form-tip实体类元素作为表单控件的提示性文本
    form-actions实体类元素作为表单按钮容器
    form-grid修饰类为表单启用水平排列样式
    required修饰类为表单控件启用必填标记样式
    has-error修饰类为表单控件启用报错样式
    has-warning修饰类为表单控件启用警告样式
    has-success修饰类为表单控件启用成功样式

    CSS 变量

    变量名称变量含义
    --form-label-color表单组标签颜色
    --form-tip-color帮助性文本默认颜色
    --form-grid-label-width水平布局时表单表单组标签宽度

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/forms/input-control/index.html b/dev/lib/forms/input-control/index.html index a031dda165..8b3476ec0d 100644 --- a/dev/lib/forms/input-control/index.html +++ b/dev/lib/forms/input-control/index.html @@ -14,19 +14,19 @@ - - + + -
    Skip to content

    输入框

    通过鼠标或键盘输入内容,可以在输入框前后位置包含额外的文本或图标,通常用在表单、对话框上面。

    基本使用

    使用 input-control 类来获得输入框的外观和交互体验。

    用户名
    用户名验证失败

    包含图标和按钮

    前缀和后缀

    通过结合类 has-prefix has-suffix 在输入框上添加前缀或后缀图标或字符。

    除了预设的前 / 后缀宽度,还预设了其他两种尺寸,结合 has-prefix-*has-suffix-* 类进行不同宽度展示。

    用户名
    有效身份证号码

    尺寸

    除了默认大小,输入框还提供了额外的 2 种预设尺寸。

    小号尺寸

    用户名
    有效身份证号码

    默认尺寸

    用户名
    有效身份证号码

    大号尺寸

    用户名
    有效身份证号码

    外观类型

    配合使用CSS 工具类来实现不同输入框的外观。下面展示各种工具类的外观效果。

    html
    <div class="input-control">
    +    
    Skip to content

    输入框

    通过鼠标或键盘输入内容,可以在输入框前后位置包含额外的文本或图标,通常用在表单、对话框上面。

    基本使用

    使用 input-control 类来获得输入框的外观和交互体验。

    用户名
    用户名验证失败

    包含图标和按钮

    前缀和后缀

    通过结合类 has-prefix has-suffix 在输入框上添加前缀或后缀图标或字符。

    除了预设的前 / 后缀宽度,还预设了其他两种尺寸,结合 has-prefix-*has-suffix-* 类进行不同宽度展示。

    用户名
    有效身份证号码

    尺寸

    除了默认大小,输入框还提供了额外的 2 种预设尺寸。

    小号尺寸

    用户名
    有效身份证号码

    默认尺寸

    用户名
    有效身份证号码

    大号尺寸

    用户名
    有效身份证号码

    外观类型

    配合使用CSS 工具类来实现不同输入框的外观。下面展示各种工具类的外观效果。

    html
    <div class="input-control">
       <input type="text" class="form-control circle" placeholder="请填写" />
     </div>
     <div class="input-control">
       <input type="text" class="form-control shadow" placeholder="请填写" />
     </div>

    CSS 类

    输入框提供了如下 CSS 类:

    类型作用
    input-control实体类元素作为输入框组件
    input-control-prefix工具类输入框前缀元素样式
    input-control-suffix工具类输入框后缀元素样式
    has-prefix工具类标记输入框拥有前缀元素
    has-suffix工具类标记输入框拥有后缀元素
    has-prefix-icon工具类标记输入框拥有前缀图标
    has-suffix-icon工具类标记输入框拥有后缀图标
    size-sm工具类输入框使用小号尺寸
    size-lg工具类输入框使用大号尺寸

    CSS 变量

    输入框提供了如下 CSS 变量,可进行全局修改。

    CSS 变量名作用
    --input-fix-width输入框前/后缀的默认宽度
    --input-fix-width-sm输入框前/后缀的小号宽度
    --input-fix-width-lg输入框前/后缀的大号宽度

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/forms/input-group/index.html b/dev/lib/forms/input-group/index.html index 5ebb533e2b..c1bf663ab9 100644 --- a/dev/lib/forms/input-group/index.html +++ b/dev/lib/forms/input-group/index.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    输入组

    通过在文本输入框 <input> 前面、后面或是两边加上文字、图标或按钮,可以实现对表单控件的扩展。

    使用方法

    在元素使用工具类 .input-group 作为输入组容器,然后在内部添加表单控件、按钮或附加文本(.input-group-addon)。

    账号
    密码

    组合方式

    在输入组内部可以将不同的内容按需组合使用,包括附加文本(.input-group-addon)、表单控件(.form-control)、按钮(.btn)。

    登录

    尺寸

    除了默认大小,输入组还提供了额外的 2 种预设尺寸,通过修饰类 .size-* 来应用尺寸。

    登录
    登录
    登录

    CSS 类

    输入组提供了如下 CSS 类:

    类型作用
    input-group实体类元素作为输入组组件
    input-group-addon实体类元素作为输入组内部额外元素
    size-sm工具类输入组使用小号尺寸
    size-lg工具类输入组使用大号尺寸

    CSS 变量

    变量名称变量含义
    --input-group-addon-bg输入组附加部分背景颜色

    MIT License (MIT)

    - +
    Skip to content

    输入组

    通过在文本输入框 <input> 前面、后面或是两边加上文字、图标或按钮,可以实现对表单控件的扩展。

    使用方法

    在元素使用工具类 .input-group 作为输入组容器,然后在内部添加表单控件、按钮或附加文本(.input-group-addon)。

    账号
    密码

    组合方式

    在输入组内部可以将不同的内容按需组合使用,包括附加文本(.input-group-addon)、表单控件(.form-control)、按钮(.btn)。

    登录

    尺寸

    除了默认大小,输入组还提供了额外的 2 种预设尺寸,通过修饰类 .size-* 来应用尺寸。

    登录
    登录
    登录

    CSS 类

    输入组提供了如下 CSS 类:

    类型作用
    input-group实体类元素作为输入组组件
    input-group-addon实体类元素作为输入组内部额外元素
    size-sm工具类输入组使用小号尺寸
    size-lg工具类输入组使用大号尺寸

    CSS 变量

    变量名称变量含义
    --input-group-addon-bg输入组附加部分背景颜色

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/lib/forms/picker/index.html b/dev/lib/forms/picker/index.html index 39757d6058..c810736951 100644 --- a/dev/lib/forms/picker/index.html +++ b/dev/lib/forms/picker/index.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/lib/helpers/helpers/date-helper.html b/dev/lib/helpers/helpers/date-helper.html index 736e0c3e17..b3237c98ba 100644 --- a/dev/lib/helpers/helpers/date-helper.html +++ b/dev/lib/helpers/helpers/date-helper.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    日期辅助方法

    createDate

    创建日期时间对象。

    定义:

    ts
    function createDate(dateLike: string | number | Date): Date;

    参数

    • dateLike:日期时间对象或者日期时间字符串或者时间戳。

    返回值Date:日期时间对象。

    addDate

    在一个日期时间对象上增加指定的时间。

    定义:

    ts
    function addDate(dateLike: string | number | Date, value: number, unit: string): Date;

    参数:

    • dateLike:日期时间对象或者日期时间字符串或者时间戳;
    • value:增加的时间值;
    • unit:增加的时间单位,可选值为:yearmonthdayhourminutesecond

    返回值: Date:日期时间对象。

    formatDate

    格式化日期时间对象。

    定义:

    ts
    function formatDate(dateLike: string | number | Date, format = 'yyyy-MM-dd hh:mm', invalidDateValue = ''): string;

    参数:

    • dateLike:日期时间对象或者日期时间字符串或者时间戳;
    • format:格式化字符串,可选值为:yyyyMMddhhmmssSSS
    • invalidDateValue:无效日期时间对象时的返回值。

    返回值: string:格式化后的日期时间字符串。

    所有支持的格式化占位符包括:

      • yyyy,例如:2018,表示四位数字表示的年份
      • yy,例如:18,表示两位数字表示的年份
      • MM,例如:07,表示两位数字表示的月份,不足两位在起始用 0 填充
      • M,例如:10,表示一位或两位数字表示的月份
      • dd,例如:05,表示两位数字表示的日期,不足两位在起始用 0 填充
      • d,例如:5,表示一位或两位数字表示的日期
      • hh,例如:08,表示两位数字表示的小时,不足两位在起始用 0 填充
      • h,例如:8,表示一位或两位数字表示的小时
      • mm,例如:03,表示两位数字表示的分钟,不足两位在起始用 0 填充
      • m,例如:3,表示一位或两位数字表示的分钟
      • ss,例如:05,表示两位数字表示的秒数,不足两位在起始用 0 填充
      • s,例如:5,表示一位或两位数字表示的秒数
      • S,例如:236,表示毫秒数
      • SSS,例如:036,表示毫秒数,不足3位在起始用 0 填充

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/helpers/helpers/string-helper.html b/dev/lib/helpers/helpers/string-helper.html index ee9d761cdc..e6783f4350 100644 --- a/dev/lib/helpers/helpers/string-helper.html +++ b/dev/lib/helpers/helpers/string-helper.html @@ -14,8 +14,8 @@ - - + + @@ -25,7 +25,7 @@ /** 通过映射对象的形式格式化字符串。 */ function formatString(str: string, map: Record<string, unknown>): string;

    参数

    • str:字符串;
    • args:格式化参数;
    • map:格式化参数映射对象。

    返回值string:格式化后的字符串。

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/helpers/store/index.html b/dev/lib/helpers/store/index.html index 182d30357d..5a7257eb9b 100644 --- a/dev/lib/helpers/store/index.html +++ b/dev/lib/helpers/store/index.html @@ -14,8 +14,8 @@ - - + + @@ -41,7 +41,7 @@ store.get('mySecretCode'); // 返回 1 myStore.get('mySecretCode'); // 返回 2 mySessionStore.get('mySecretCode'); // 返回 3

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/lib/index.html b/dev/lib/index.html index 19d6d1591e..56b5968993 100644 --- a/dev/lib/index.html +++ b/dev/lib/index.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/public/zui/icons/fontawesome-license.html b/dev/public/zui/icons/fontawesome-license.html index 40950000fb..d43c88d3b0 100644 --- a/dev/public/zui/icons/fontawesome-license.html +++ b/dev/public/zui/icons/fontawesome-license.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    License

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/themes/index.html b/dev/themes/index.html index 51f520af8b..adfabe8bda 100644 --- a/dev/themes/index.html +++ b/dev/themes/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/backgrounds/utilities/index.html b/dev/utilities/backgrounds/utilities/index.html index 73aaa99143..d733faa219 100644 --- a/dev/utilities/backgrounds/utilities/index.html +++ b/dev/utilities/backgrounds/utilities/index.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    背景色

    效果

    使用工具类 bg-* 给元素添加背景色。

    语义化
    bg-primary
    bg-secondary
    bg-success
    bg-warning
    bg-danger
    bg-important
    bg-special
    主色系列
    bg-primary-50
    bg-primary-100
    bg-primary-200
    bg-primary-300
    bg-primary-400
    bg-primary-500
    bg-primary-600
    bg-primary-700
    bg-primary-800
    bg-primary-900
    bg-primary-950
    次要系列
    bg-secondary-50
    bg-secondary-100
    bg-secondary-200
    bg-secondary-300
    bg-secondary-400
    bg-secondary-500
    bg-secondary-600
    bg-secondary-700
    bg-secondary-800
    bg-secondary-900
    bg-secondary-950
    灰度
    bg-gray-50
    bg-gray-100
    bg-gray-200
    bg-gray-300
    bg-gray-400
    gray
    bg-gray-500 别名: bg-gray
    bg-gray-600
    bg-gray-700
    bg-gray-800
    bg-gray-900
    bg-gray-950
    界面
    bg-white
    纯白
    bg-black
    纯黑
    bg-transparent
    透明
    bg-canvas
    画布
    bg-inverse
    反色
    bg-surface-light
    加重的控件
    bg-surface
    控件
    bg-surface-strong
    轻量的控件
    bg-fore
    前景色作为背景
    bg-focus
    焦点色作为背景
    特殊
    bg-current
    CSS 值 currentColor
    bg-inherit
    CSS 值 inherit
    bg-none
    无背景

    背景色透明度

    使用工具类 bg-opacity-* 给元素设置背景色透明度。

    bg-opacity-0
    透明度:0%
    bg-opacity-5
    透明度:5%
    bg-opacity-10
    透明度:10%
    bg-opacity-20
    透明度:20%
    bg-opacity-25
    透明度:25%
    bg-opacity-30
    透明度:30%
    bg-opacity-40
    透明度:40%
    bg-opacity-50
    透明度:60%
    bg-opacity-60
    透明度:60%
    bg-opacity-70
    透明度:70%
    bg-opacity-75
    透明度:75%
    bg-opacity-80
    透明度:80%
    bg-opacity-90
    透明度:90%
    bg-opacity-95
    透明度:95%
    bg-opacity-100
    透明度:0%

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/border-color.html b/dev/utilities/borders/utilities/border-color.html index d367b77f16..cf9f43dae0 100644 --- a/dev/utilities/borders/utilities/border-color.html +++ b/dev/utilities/borders/utilities/border-color.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    边框颜色

    效果

    使用工具类 border-* 给元素添加边框颜色。

    默认
    border-light
    border
    border-strong
    语义化
    border-primary
    border-secondary
    border-success
    border-warning
    border-danger
    border-important
    border-special
    灰度
    border-gray-50
    border-gray-100
    border-gray-200
    border-gray-300
    border-gray-400
    gray
    border-gray-500 别名: border-gray
    border-gray-600
    border-gray-700
    border-gray-800
    border-gray-900
    border-gray-950
    界面
    border-white
    纯白
    border-black
    纯黑
    border-transparent
    透明
    border-canvas
    画布
    border-inverse
    反色
    border-surface-light
    加重的控件
    border-surface
    控件
    border-surface-strong
    轻量的控件
    border-fore
    前景色作为边框颜
    border-focus
    焦点色作为边框颜
    特殊
    border-current
    CSS 值 currentColor
    border-inherit
    CSS 值 inherit

    提示

    border 外,其他工具类只设置边框颜色,如果需要启用边框,需要将 border-*border 类一起使用,例如 border border-primary

    边框颜色透明度

    使用工具类 border-opacity-* 给元素添加边框颜色透明度。

    border-opacity-0
    透明度:0%
    border-opacity-5
    透明度:5%
    border-opacity-10
    透明度:10%
    border-opacity-20
    透明度:20%
    border-opacity-25
    透明度:25%
    border-opacity-30
    透明度:30%
    border-opacity-40
    透明度:40%
    border-opacity-50
    透明度:60%
    border-opacity-60
    透明度:60%
    border-opacity-70
    透明度:70%
    border-opacity-75
    透明度:75%
    border-opacity-80
    透明度:80%
    border-opacity-90
    透明度:90%
    border-opacity-95
    透明度:95%
    border-opacity-100
    透明度:0%

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/border-radius.html b/dev/utilities/borders/utilities/border-radius.html index ce4843a1e9..9cfcf5028f 100644 --- a/dev/utilities/borders/utilities/border-radius.html +++ b/dev/utilities/borders/utilities/border-radius.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    边框圆角

    效果

    使用 'rounded-* 设置元素边框圆角大小。

    所有边
    rounded-none
    rounded-sm
    rounded
    rounded-lg
    rounded-xl
    rounded-2xl
    rounded-3xl
    rounded-full
    禁用特定边
    rounded-t-none
    rounded-r-none
    rounded-b-none
    rounded-l-none
    rounded-br-none
    rounded-bl-none
    rounded-tr-none
    rounded-tl-none

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/border-width.html b/dev/utilities/borders/utilities/border-width.html index c2a9ee8e6e..d377c30d7b 100644 --- a/dev/utilities/borders/utilities/border-width.html +++ b/dev/utilities/borders/utilities/border-width.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    边框大小

    效果

    使用 'rounded-* 设置元素边框大小。

    所有边
    border-0
    border
    border-2
    border-4
    上边框
    border-t-0
    border-t
    border-t-2
    border-t-4
    右边框
    border-r-0
    border-r
    border-r-2
    border-r-4
    下边框
    border-b-0
    border-b
    border-b-2
    border-b-4
    左边框
    border-l-0
    border-l
    border-l-2
    border-l-4

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/divider.html b/dev/utilities/borders/utilities/divider.html index 44c32e9aad..4d85c9a858 100644 --- a/dev/utilities/borders/utilities/divider.html +++ b/dev/utilities/borders/utilities/divider.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/ring-color.html b/dev/utilities/borders/utilities/ring-color.html index 902ef1ae08..54d4dbadb1 100644 --- a/dev/utilities/borders/utilities/ring-color.html +++ b/dev/utilities/borders/utilities/ring-color.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    环颜色

    效果

    通过 ring-* 来为元素添加通过 box-shadow 实现的环边框颜色。

    作为边框
    ring-border-light
    ring-border
    ring-border-strong
    透明度反色
    ring-light
    ring-gray
    ring-dark
    ring-darker
    ring-darkest
    语义化
    ring-primary
    ring-secondary
    ring-success
    ring-warning
    ring-danger
    ring-important
    ring-special
    灰度
    ring-gray-50
    ring-gray-100
    ring-gray-200
    ring-gray-300
    ring-gray-400
    ring-gray-500
    ring-gray-600
    ring-gray-700
    ring-gray-800
    ring-gray-900
    ring-gray-950
    界面
    ring-white
    纯白
    ring-black
    纯黑
    ring-canvas
    画布
    ring-inverse
    反色
    ring-surface
    控件
    ring-fore
    前景色
    ring-focus
    焦点色
    特殊
    ring-current
    CSS 值 currentColor
    ring-inherit
    CSS 值 inherit

    环颜色透明度

    使用工具类 ring-opacity-* 给元素添加背景色透明度。

    ring-opacity-0
    透明度:0%
    ring-opacity-5
    透明度:5%
    ring-opacity-10
    透明度:10%
    ring-opacity-20
    透明度:20%
    ring-opacity-25
    透明度:25%
    ring-opacity-30
    透明度:30%
    ring-opacity-40
    透明度:40%
    ring-opacity-50
    透明度:60%
    ring-opacity-60
    透明度:60%
    ring-opacity-70
    透明度:70%
    ring-opacity-75
    透明度:75%
    ring-opacity-80
    透明度:80%
    ring-opacity-90
    透明度:90%
    ring-opacity-95
    透明度:95%
    ring-opacity-100
    透明度:0%

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/ring-offset.html b/dev/utilities/borders/utilities/ring-offset.html index 4c4e37acb1..dee1215d75 100644 --- a/dev/utilities/borders/utilities/ring-offset.html +++ b/dev/utilities/borders/utilities/ring-offset.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/borders/utilities/ring-width.html b/dev/utilities/borders/utilities/ring-width.html index 8f640e3986..88bbf0cbb4 100644 --- a/dev/utilities/borders/utilities/ring-width.html +++ b/dev/utilities/borders/utilities/ring-width.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/effects/utilities/animation.html b/dev/utilities/effects/utilities/animation.html index 6f7c757556..f5aa0c153b 100644 --- a/dev/utilities/effects/utilities/animation.html +++ b/dev/utilities/effects/utilities/animation.html @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@ </div>

    弹跳

    使用 animate-bounce 给元素添加弹跳动画。

    html
    <button type="button" class="btn primary">
       <i class="bounce icon icon-arrow-down"></i> 下载
     </button>

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/effects/utilities/filter.html b/dev/utilities/effects/utilities/filter.html index 5bc14d04d9..77659fd014 100644 --- a/dev/utilities/effects/utilities/filter.html +++ b/dev/utilities/effects/utilities/filter.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    CSS 滤镜

    高斯模糊

    通过 blur-* 给图片添加高斯模糊样式。

    原始
    blur-none
    blur-sm
    blur
    blur-md
    blur-lg
    blur-xl

    灰度和反色

    通过 grayscale 将图像转为灰度图像;通过 invert 将图像设置为反色。

    原始
    grayscale
    invert

    形状阴影

    通过 drop-shadow-* 给元素设置形状阴影效果,通常用在图片上。

    原始
    drop-shadow-none
    drop-shadow-sm
    drop-shadow
    drop-shadow-md
    drop-shadow-lg
    drop-shadow-xl
    drop-shadow-2xl

    背景模糊

    通过 backdrop-blur-* 添加覆盖区域模糊样式。

    原始
    backdrop-blur-none
    backdrop-blur-sm
    backdrop-blur
    backdrop-blur-md
    backdrop-blur-lg
    backdrop-blur-xl
    backdrop-blur-2xl
    backdrop-blur-3xl

    禁用滤镜

    通过 filter-none 来禁用之前添加的滤镜效果。

    filter-none

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/effects/utilities/opacity.html b/dev/utilities/effects/utilities/opacity.html index 0371ad9d36..d6c7ba1811 100644 --- a/dev/utilities/effects/utilities/opacity.html +++ b/dev/utilities/effects/utilities/opacity.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/effects/utilities/shadow.html b/dev/utilities/effects/utilities/shadow.html index 5d3ab4035a..9a9c0c9fb0 100644 --- a/dev/utilities/effects/utilities/shadow.html +++ b/dev/utilities/effects/utilities/shadow.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/effects/utilities/transform.html b/dev/utilities/effects/utilities/transform.html index 1e92e825d9..7948992358 100644 --- a/dev/utilities/effects/utilities/transform.html +++ b/dev/utilities/effects/utilities/transform.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    变换

    使用 CSS transform 对元素应用变换效果。

    缩放

    通过 scale-* 为元素应用缩放效果。

    原始
    scale-0
    scale-50
    scale-75
    scale-90
    scale-95
    scale-100
    scale-105
    scale-110
    scale-125
    scale-150

    旋转

    通过 rotate-* 为元素应用旋转效果。

    原始
    rotate-0
    rotate-1
    rotate-2
    rotate-3
    rotate-6
    rotate-12
    rotate-45
    rotate-90
    rotate-135
    rotate-180
    rotate-270

    翻转

    添加 flip-* 给元素添加翻转效果。

    原始
    flip-x
    flip-y

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/effects/utilities/transition.html b/dev/utilities/effects/utilities/transition.html index 008ff89730..68f571a3ca 100644 --- a/dev/utilities/effects/utilities/transition.html +++ b/dev/utilities/effects/utilities/transition.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    过渡动画

    过渡属性

    通过 transition-* 为元素应用过渡动画,并制定过渡目标属性。

    transition
    transition
    all
    transition-all
    colors
    transition-colors
    opacity
    transition-opacity
    shadow
    transition-shadow
    transform
    transition-transform

    过渡时间

    通过 duration-* 为元素应用过渡动画时间。

    75ms
    duration-75
    100ms
    duration-100
    200ms
    duration-200
    300ms
    duration-300
    500ms
    duration-500
    1000ms
    duration-1000

    渐隐渐显

    通过 fade-* 来为元素设置渐隐渐显动画效果,默认元素不显示,通过控制添加 in 类让元素渐显。

    默认
    默认
    fade
    从中心显示
    从中心显示
    fade-from-center
    从下方显示
    从下方显示
    fade-from-bottom
    从上方显示
    从上方显示
    fade-from-top
    从左侧显示
    从左侧显示
    fade-from-left
    从右侧显示
    从右侧显示
    fade-from-right

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/align-content.html b/dev/utilities/flex/utilities/align-content.html index 88586ddbd7..be45e74ae3 100644 --- a/dev/utilities/flex/utilities/align-content.html +++ b/dev/utilities/flex/utilities/align-content.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    align-content

    使用 content-* 应用CSS align-content 属性设置 Flex 容器中多行子元素沿交叉轴的对齐方式。

    效果展示

    content-center

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    content-start

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    content-end

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    content-between

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    content-around

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    content-evenly

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/align-items.html b/dev/utilities/flex/utilities/align-items.html index bc451c4ada..7934abf12b 100644 --- a/dev/utilities/flex/utilities/align-items.html +++ b/dev/utilities/flex/utilities/align-items.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/align-self.html b/dev/utilities/flex/utilities/align-self.html index f5085412d0..c1977a8789 100644 --- a/dev/utilities/flex/utilities/align-self.html +++ b/dev/utilities/flex/utilities/align-self.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    align-self

    使用 self-* 应用 CSS align-self 属性设置当前元素在 Grid 或 Flex 容器中的交叉轴方向上的对齐方式。

    self-auto

    self-auto
    default
    default
    default
    default

    self-start

    self-start
    default
    default
    default
    default

    self-end

    self-end
    default
    default
    default
    default

    self-center

    self-center
    default
    default
    default
    default

    self-stretch

    self-stretch
    default
    default
    default
    default

    self-baseline

    self-baseline
    default
    default
    default
    default

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/basis.html b/dev/utilities/flex/utilities/basis.html index 3ff752e020..9dda54da5c 100644 --- a/dev/utilities/flex/utilities/basis.html +++ b/dev/utilities/flex/utilities/basis.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/direction.html b/dev/utilities/flex/utilities/direction.html index e3e0562f44..ab5c0b4d7b 100644 --- a/dev/utilities/flex/utilities/direction.html +++ b/dev/utilities/flex/utilities/direction.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/flex.html b/dev/utilities/flex/utilities/flex.html index f983c80d2a..50c39aa9d5 100644 --- a/dev/utilities/flex/utilities/flex.html +++ b/dev/utilities/flex/utilities/flex.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    flex

    效果

    使用 flex-* 应用CSS flex 属性设置当前元素在 Grid 或 Flex 容器中的伸缩方式。

    flex-auto

    24 × 8
    24 × 8
    24 × 8

    flex-1

    24 × 8
    24 × 8
    24 × 8

    flex-initial

    24 × 8
    24 × 8
    24 × 8

    flex-none

    24 × 8
    24 × 8
    24 × 8

    混合使用

    flex-auto
    flex-1
    flex-initial
    flex-none

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/gap.html b/dev/utilities/flex/utilities/gap.html index dee0255205..983ba7aed7 100644 --- a/dev/utilities/flex/utilities/gap.html +++ b/dev/utilities/flex/utilities/gap.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    gap

    效果

    使用 gap-* 应用CSS属性 gap 设置 Flex 容器中元素间距。

    gap-0

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-0

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-0

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-5

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-5

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-5

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-7

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-7

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-7

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-8

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-x-8

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    gap-y-8

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/grow.html b/dev/utilities/flex/utilities/grow.html index 3ef23c1fb3..d8f2305a94 100644 --- a/dev/utilities/flex/utilities/grow.html +++ b/dev/utilities/flex/utilities/grow.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/justify-content.html b/dev/utilities/flex/utilities/justify-content.html index 3cceaeff19..1998fbf838 100644 --- a/dev/utilities/flex/utilities/justify-content.html +++ b/dev/utilities/flex/utilities/justify-content.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/order.html b/dev/utilities/flex/utilities/order.html index 366898620d..44f61c270b 100644 --- a/dev/utilities/flex/utilities/order.html +++ b/dev/utilities/flex/utilities/order.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    order

    效果

    使用 order-* 应用CSS属性 order 设置当前元素在 Flex 容器中的排列顺序。

    1
    order-12
    2
    order-11
    3
    order-10
    4
    order-9
    5
    order-8
    6
    order-7
    7
    order-6
    8
    order-5
    9
    order-4
    10
    order-3
    11
    order-2
    12
    order-1

    使用 order-firstorder-lastorder-none 也可以改变 Flex 子元素排列顺序。

    0
    order-last
    1
    order-first
    2
    order-none

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/shrink.html b/dev/utilities/flex/utilities/shrink.html index 0ce37a8139..57ca896eb0 100644 --- a/dev/utilities/flex/utilities/shrink.html +++ b/dev/utilities/flex/utilities/shrink.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/flex/utilities/wrap.html b/dev/utilities/flex/utilities/wrap.html index f82cdd4cff..a7a5c67aca 100644 --- a/dev/utilities/flex/utilities/wrap.html +++ b/dev/utilities/flex/utilities/wrap.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/index.html b/dev/utilities/index.html index 3b1f42ecd7..06a3485fb2 100644 --- a/dev/utilities/index.html +++ b/dev/utilities/index.html @@ -14,14 +14,14 @@ - - + + - + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/cursor.html b/dev/utilities/interactivity/utilities/cursor.html index a16911f638..3c2f9a7fc7 100644 --- a/dev/utilities/interactivity/utilities/cursor.html +++ b/dev/utilities/interactivity/utilities/cursor.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    光标

    效果

    通过 cursor-* 类可以改变光标的样式。

    cursor-auto
    cursor-auto
    cursor-default
    cursor-default
    cursor-pointer
    cursor-pointer
    cursor-wait
    cursor-wait
    cursor-text
    cursor-text
    cursor-move
    cursor-move
    cursor-help
    cursor-help
    cursor-not-allowed
    cursor-not-allowed

    MIT License (MIT)

    - +
    Skip to content

    光标

    效果

    通过 cursor-* 类可以改变光标的样式。

    cursor-auto
    cursor-auto
    cursor-default
    cursor-default
    cursor-pointer
    cursor-pointer
    cursor-wait
    cursor-wait
    cursor-text
    cursor-text
    cursor-move
    cursor-move
    cursor-help
    cursor-help
    cursor-not-allowed
    cursor-not-allowed

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/disabled.html b/dev/utilities/interactivity/utilities/disabled.html index 1e33b7c406..a317227314 100644 --- a/dev/utilities/interactivity/utilities/disabled.html +++ b/dev/utilities/interactivity/utilities/disabled.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    禁用

    效果

    使用 disabled 类设置元素为禁用,禁用的元素会以半透明的形式显示,并强制使用灰度显示。

    注意

    禁用元素仍然响应鼠标事件,如果需要完全禁用鼠标事件,需要添加 pointer-events-none,如果是表单元素或按钮则可以添加 disabled="disabled" 属性实现完全禁用。

    MIT License (MIT)

    - +
    Skip to content

    禁用

    效果

    使用 disabled 类设置元素为禁用,禁用的元素会以半透明的形式显示,并强制使用灰度显示。

    注意

    禁用元素仍然响应鼠标事件,如果需要完全禁用鼠标事件,需要添加 pointer-events-none,如果是表单元素或按钮则可以添加 disabled="disabled" 属性实现完全禁用。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/loading.html b/dev/utilities/interactivity/utilities/loading.html index 07d44afd6f..d9bf6111bc 100644 --- a/dev/utilities/interactivity/utilities/loading.html +++ b/dev/utilities/interactivity/utilities/loading.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/pointer-events.html b/dev/utilities/interactivity/utilities/pointer-events.html index 642d2a5561..2fa080ab6e 100644 --- a/dev/utilities/interactivity/utilities/pointer-events.html +++ b/dev/utilities/interactivity/utilities/pointer-events.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/scroll.html b/dev/utilities/interactivity/utilities/scroll.html index 4064614b9f..689466e1ac 100644 --- a/dev/utilities/interactivity/utilities/scroll.html +++ b/dev/utilities/interactivity/utilities/scroll.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    滚动

    平滑滚动

    使用 scroll-smooth 工具类来为元素应用 scroll-behavior: smooth 属性,指定其进行平滑滚动。

    1
    2
    3
    4
    滚动到:

    立即滚动

    使用 scroll-auto 工具类来为元素应用 scroll-behavior: auto 属性,指定其进行立即滚动。

    1
    2
    3
    4
    滚动到:

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/state.html b/dev/utilities/interactivity/utilities/state.html index bcd5e24cec..18b4b251b5 100644 --- a/dev/utilities/interactivity/utilities/state.html +++ b/dev/utilities/interactivity/utilities/state.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    状态响应

    效果

    通过为元素添加工具类 state 让按钮响应用户的鼠标交互,包括鼠标悬停、鼠标按下、获得焦点时拥有不同的样式。

    提示

    在按钮(.btn)和导航中的链接(.item > a )已经默认应用了 state 工具类,无需再次添加。

    MIT License (MIT)

    - +
    Skip to content

    状态响应

    效果

    通过为元素添加工具类 state 让按钮响应用户的鼠标交互,包括鼠标悬停、鼠标按下、获得焦点时拥有不同的样式。

    提示

    在按钮(.btn)和导航中的链接(.item > a )已经默认应用了 state 工具类,无需再次添加。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/interactivity/utilities/user-select.html b/dev/utilities/interactivity/utilities/user-select.html index 0483097d5a..486da99bf2 100644 --- a/dev/utilities/interactivity/utilities/user-select.html +++ b/dev/utilities/interactivity/utilities/user-select.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    文本选择

    用于控制用户能否选中文本的工具类。

    效果

    通过工具类 select-* 来控制用户能否选中元素中的文本。

    禁止选择文本
    select-none
    允许选择文本
    select-text
    点击自动选择所有文本
    select-all
    浏览器默认行为
    select-auto

    MIT License (MIT)

    - +
    Skip to content

    文本选择

    用于控制用户能否选中文本的工具类。

    效果

    通过工具类 select-* 来控制用户能否选中元素中的文本。

    禁止选择文本
    select-none
    允许选择文本
    select-text
    点击自动选择所有文本
    select-all
    浏览器默认行为
    select-auto

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/aspect-ratio.html b/dev/utilities/layout/utilities/aspect-ratio.html index b15adb44c4..d7358a4d83 100644 --- a/dev/utilities/layout/utilities/aspect-ratio.html +++ b/dev/utilities/layout/utilities/aspect-ratio.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/container.html b/dev/utilities/layout/utilities/container.html index 3f0ff78624..78389e32ad 100644 --- a/dev/utilities/layout/utilities/container.html +++ b/dev/utilities/layout/utilities/container.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    容器

    定义

    使用 container 类将元素宽度限制为当前屏幕断点,具体规则如下:

    屏幕断点CSS 属性
    默认width: 100%;
    @media (min-width: --screen-sm)max-width: --screen-sm;
    @media (min-width: --screen-md)max-width: --screen-md;
    @media (min-width: --screen-lg)max-width: --screen-lg;
    @media (min-width: --screen-xl)max-width: --screen-xl;
    @media (min-width: --screen-2xl)max-width: --screen-2xl;

    提示

    .container 还会为元素添加 margin-left: auto; margin-right: auto;,使得元素默认居中显示。

    用法

    .container

    MIT License (MIT)

    - +
    Skip to content

    容器

    定义

    使用 container 类将元素宽度限制为当前屏幕断点,具体规则如下:

    屏幕断点CSS 属性
    默认width: 100%;
    @media (min-width: --screen-sm)max-width: --screen-sm;
    @media (min-width: --screen-md)max-width: --screen-md;
    @media (min-width: --screen-lg)max-width: --screen-lg;
    @media (min-width: --screen-xl)max-width: --screen-xl;
    @media (min-width: --screen-2xl)max-width: --screen-2xl;

    提示

    .container 还会为元素添加 margin-left: auto; margin-right: auto;,使得元素默认居中显示。

    用法

    .container

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/display.html b/dev/utilities/layout/utilities/display.html index 2cc5fd00db..9322fa0c2e 100644 --- a/dev/utilities/layout/utilities/display.html +++ b/dev/utilities/layout/utilities/display.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    显示类型

    定义

    在 ZUI 中提供了各种工具类来设置 CSS display 属性,主要包括:

    工具类属性
    blockdisplay: block;
    inline-blockdisplay: inline-block;
    inlinedisplay: inline;
    flexdisplay: flex;
    inline-flexdisplay: inline-flex;
    tabledisplay: table;
    table-celldisplay: table-cell;
    table-rowdisplay: table-row;
    list-itemdisplay: list-item;
    hiddendisplay: hidden;

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/floats.html b/dev/utilities/layout/utilities/floats.html index a043ba758a..eb498fb562 100644 --- a/dev/utilities/layout/utilities/floats.html +++ b/dev/utilities/layout/utilities/floats.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    浮动

    定义

    用于设置元素浮动或清除浮动影响的工具类。

    工具类属性
    pull-rightfloat: right;
    pull-leftfloat: left;
    clearfix.clearfix::after {content: ""; display: block; clear: both;}

    提示

    浮动应当仅适用于实现文字环绕效果,布局请使用 Flex 工具类

    效果展示

    向右浮动

    使用工具类 pull-right 将一个元素浮动到其容器的右边。

    So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all living things but I tell you Jerry at that moment, I was a marine biologist.

    月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。

    向左浮动

    使用工具类 pull-left 将一个元素浮动到其容器的左边。

    So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all living things but I tell you Jerry at that moment, I was a marine biologist.

    月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。

    MIT License (MIT)

    - +
    Skip to content

    浮动

    定义

    用于设置元素浮动或清除浮动影响的工具类。

    工具类属性
    pull-rightfloat: right;
    pull-leftfloat: left;
    clearfix.clearfix::after {content: ""; display: block; clear: both;}

    提示

    浮动应当仅适用于实现文字环绕效果,布局请使用 Flex 工具类

    效果展示

    向右浮动

    使用工具类 pull-right 将一个元素浮动到其容器的右边。

    So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all living things but I tell you Jerry at that moment, I was a marine biologist.

    月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。

    向左浮动

    使用工具类 pull-left 将一个元素浮动到其容器的左边。

    So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all living things but I tell you Jerry at that moment, I was a marine biologist.

    月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/object-fit.html b/dev/utilities/layout/utilities/object-fit.html index 4a9f942458..5ee47ca3db 100644 --- a/dev/utilities/layout/utilities/object-fit.html +++ b/dev/utilities/layout/utilities/object-fit.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    内容适配

    定义

    元素的内容应该如何去适应指定容器的高度与宽度。

    工具类属性
    object-containobject-fit: contain;
    object-coverobject-fit: cover;
    object-fillobject-fit: fill;
    object-noneobject-fit: none;
    object-scale-downobject-fit: scale-down;

    效果展示

    包含

    使用工具类 object-contain 调整元素内容的大小,使其保持在容器内。

    覆盖

    使用工具类 object-cover 调整元素内容的大小以覆盖其容器。

    充满

    使用工具类 object-fill 拉伸元素的内容以适应其容器。

    使用工具类 object-none 以原始大小显示元素的内容,忽略容器大小。

    缩小

    以原始大小显示元素的内容,但必要时使用 object-scale-down 将其缩小以适应其容器。

    MIT License (MIT)

    - +
    Skip to content

    内容适配

    定义

    元素的内容应该如何去适应指定容器的高度与宽度。

    工具类属性
    object-containobject-fit: contain;
    object-coverobject-fit: cover;
    object-fillobject-fit: fill;
    object-noneobject-fit: none;
    object-scale-downobject-fit: scale-down;

    效果展示

    包含

    使用工具类 object-contain 调整元素内容的大小,使其保持在容器内。

    覆盖

    使用工具类 object-cover 调整元素内容的大小以覆盖其容器。

    充满

    使用工具类 object-fill 拉伸元素的内容以适应其容器。

    使用工具类 object-none 以原始大小显示元素的内容,忽略容器大小。

    缩小

    以原始大小显示元素的内容,但必要时使用 object-scale-down 将其缩小以适应其容器。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/overflow.html b/dev/utilities/layout/utilities/overflow.html index 270411bcbb..9d619cf1ee 100644 --- a/dev/utilities/layout/utilities/overflow.html +++ b/dev/utilities/layout/utilities/overflow.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    溢出

    定义

    用于控制元素如何处理超出容器的内容的工具类。

    工具类属性
    overflow-autooverflow: auto;
    overflow-hiddenoverflow: hidden;
    overflow-cliptext-overflow: clip;
    overflow-visibleoverflow: visible;
    overflow-scrolloverflow: scroll;
    overflow-x-autooverflow-x: auto;
    overflow-y-autooverflow-y: auto;
    overflow-x-hiddenoverflow-x: hidden;
    overflow-y-hiddenoverflow-y: hidden;
    overflow-x-visibleoverflow-x: visible;
    overflow-y-visibleoverflow-y: visible;
    overflow-x-scrolloverflow-x: scroll;
    overflow-y-scrolloverflow-y: scroll;

    效果展示

    自动

    使用工具类 overflow-auto 在一个元素的内容溢出该元素的边界时为其添加滚动条。不像 overflow-scroll 总是显示滚动条,这个工具类只在需要滚动时才会显示。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。
    小楼昨夜又东风,故国不堪回首月明中。
    雕栏玉砌应犹在,只是朱颜改。
    问君能有几多愁?恰似一江春水向东流

    隐藏

    使用工具类 overflow-hidden 来剪切元素中任何溢出该元素边界的内容。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。
    小楼昨夜又东风,故国不堪回首月明中。
    雕栏玉砌应犹在,只是朱颜改。
    问君能有几多愁?恰似一江春水向东流

    可见

    使用工具类 overflow-visible 来防止元素内的内容被剪切。请注意,任何溢出元素边界的内容都将是可见的。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。
    小楼昨夜又东风,故国不堪回首月明中。
    雕栏玉砌应犹在,只是朱颜改。
    问君能有几多愁?恰似一江春水向东流

    需要时水平滚动

    如果需要,使用工具类 overflow-x-auto 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    需要时垂直滚动

    如果需要,使用工具类 overflow-y-auto 来允许垂直滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    始终水平滚动

    如果需要,使用工具类 overflow-x-scroll 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    始终垂直滚动

    如果需要,使用工具类 overflow-y-scroll 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    在所有方向上滚动

    如果需要,使用工具类 overflow-scroll 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    MIT License (MIT)

    - +
    Skip to content

    溢出

    定义

    用于控制元素如何处理超出容器的内容的工具类。

    工具类属性
    overflow-autooverflow: auto;
    overflow-hiddenoverflow: hidden;
    overflow-cliptext-overflow: clip;
    overflow-visibleoverflow: visible;
    overflow-scrolloverflow: scroll;
    overflow-x-autooverflow-x: auto;
    overflow-y-autooverflow-y: auto;
    overflow-x-hiddenoverflow-x: hidden;
    overflow-y-hiddenoverflow-y: hidden;
    overflow-x-visibleoverflow-x: visible;
    overflow-y-visibleoverflow-y: visible;
    overflow-x-scrolloverflow-x: scroll;
    overflow-y-scrolloverflow-y: scroll;

    效果展示

    自动

    使用工具类 overflow-auto 在一个元素的内容溢出该元素的边界时为其添加滚动条。不像 overflow-scroll 总是显示滚动条,这个工具类只在需要滚动时才会显示。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。
    小楼昨夜又东风,故国不堪回首月明中。
    雕栏玉砌应犹在,只是朱颜改。
    问君能有几多愁?恰似一江春水向东流

    隐藏

    使用工具类 overflow-hidden 来剪切元素中任何溢出该元素边界的内容。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。
    小楼昨夜又东风,故国不堪回首月明中。
    雕栏玉砌应犹在,只是朱颜改。
    问君能有几多愁?恰似一江春水向东流

    可见

    使用工具类 overflow-visible 来防止元素内的内容被剪切。请注意,任何溢出元素边界的内容都将是可见的。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。
    小楼昨夜又东风,故国不堪回首月明中。
    雕栏玉砌应犹在,只是朱颜改。
    问君能有几多愁?恰似一江春水向东流

    需要时水平滚动

    如果需要,使用工具类 overflow-x-auto 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    需要时垂直滚动

    如果需要,使用工具类 overflow-y-auto 来允许垂直滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    始终水平滚动

    如果需要,使用工具类 overflow-x-scroll 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    始终垂直滚动

    如果需要,使用工具类 overflow-y-scroll 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    在所有方向上滚动

    如果需要,使用工具类 overflow-scroll 来允许水平滚动。

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    虞美人·春花秋月何时了

    五代·李煜

    春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/position.html b/dev/utilities/layout/utilities/position.html index c2080eb988..2e8808ebec 100644 --- a/dev/utilities/layout/utilities/position.html +++ b/dev/utilities/layout/utilities/position.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    定位

    定义

    用于控制元素在DOM中的位置的工具类。

    工具类属性
    staticposition: static;
    fixedposition: fixed;
    absoluteposition: absolute;
    relativeposition: relative;
    stickyposition: sticky;

    使用方法

    staticabsolute

    使用 static 根据常规的文档流来定位元素,浏览器默认 position 取值就是 static。任何偏移都将被忽略,而且该元素不会作为绝对定位的子元素的位置参考。

    Static 父元素

    Absolute 子元素

    relativeabsolute

    使用 relative 根据常规的文档流来定位元素。偏移量是相对于元素的正常位置计算的,并且该元素将作为绝对定位的子元素的位置参考。

    使用 absolute 将一个元素定位在文档常规流之外,使相邻元素的行为就像该元素不存在一样。偏移量是相对于最近的位置不是 static 的父元素计算的,而且该元素将作为其他绝对定位的子元素的位置参考。

    Relative 父元素

    Absolute 子元素

    sticky

    sticky 元素根据正常文档流进行定位,然后相对它的最近滚动祖先和 containing block,包括 table-related 元素,基于 top、right、bottom 和 left 的值进行偏移。偏移值不会影响任何其他元素的位置。

    黄鹤楼送孟浩然之广陵

    故人西辞黄鹤楼,

    烟花三月下扬州。

    孤帆远影碧空尽,

    唯见长江天际流。

    闻王昌龄左迁龙标遥有此寄

    杨花落尽子规啼,

    闻道龙标过五溪。

    我寄愁心与明月,

    随君直到夜郎西。

    宣州谢朓楼饯别校书叔云

    弃我去者,昨日之日不可留;

    乱我心者,今日之日多烦忧。

    长风万里送秋雁,对此可以酣高楼。

    蓬莱文章建安骨,中间小谢又清发。

    俱怀逸兴壮思飞,欲上青天揽明月。

    抽刀断水水更流,举杯消愁愁更愁。

    人生在世不称意,明朝散发弄扁舟。

    fixed

    使用 fixed 来定位一个元素相对于浏览器窗视口的位置。偏移量是相对于视口计算的,且该元素将作为绝对定位的子元素的位置参考。

    MIT License (MIT)

    - +
    Skip to content

    定位

    定义

    用于控制元素在DOM中的位置的工具类。

    工具类属性
    staticposition: static;
    fixedposition: fixed;
    absoluteposition: absolute;
    relativeposition: relative;
    stickyposition: sticky;

    使用方法

    staticabsolute

    使用 static 根据常规的文档流来定位元素,浏览器默认 position 取值就是 static。任何偏移都将被忽略,而且该元素不会作为绝对定位的子元素的位置参考。

    Static 父元素

    Absolute 子元素

    relativeabsolute

    使用 relative 根据常规的文档流来定位元素。偏移量是相对于元素的正常位置计算的,并且该元素将作为绝对定位的子元素的位置参考。

    使用 absolute 将一个元素定位在文档常规流之外,使相邻元素的行为就像该元素不存在一样。偏移量是相对于最近的位置不是 static 的父元素计算的,而且该元素将作为其他绝对定位的子元素的位置参考。

    Relative 父元素

    Absolute 子元素

    sticky

    sticky 元素根据正常文档流进行定位,然后相对它的最近滚动祖先和 containing block,包括 table-related 元素,基于 top、right、bottom 和 left 的值进行偏移。偏移值不会影响任何其他元素的位置。

    黄鹤楼送孟浩然之广陵

    故人西辞黄鹤楼,

    烟花三月下扬州。

    孤帆远影碧空尽,

    唯见长江天际流。

    闻王昌龄左迁龙标遥有此寄

    杨花落尽子规啼,

    闻道龙标过五溪。

    我寄愁心与明月,

    随君直到夜郎西。

    宣州谢朓楼饯别校书叔云

    弃我去者,昨日之日不可留;

    乱我心者,今日之日多烦忧。

    长风万里送秋雁,对此可以酣高楼。

    蓬莱文章建安骨,中间小谢又清发。

    俱怀逸兴壮思飞,欲上青天揽明月。

    抽刀断水水更流,举杯消愁愁更愁。

    人生在世不称意,明朝散发弄扁舟。

    fixed

    使用 fixed 来定位一个元素相对于浏览器窗视口的位置。偏移量是相对于视口计算的,且该元素将作为绝对定位的子元素的位置参考。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/top-right-bottom-left.html b/dev/utilities/layout/utilities/top-right-bottom-left.html index 208be53b60..9748c04646 100644 --- a/dev/utilities/layout/utilities/top-right-bottom-left.html +++ b/dev/utilities/layout/utilities/top-right-bottom-left.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    上下左右

    定义

    用于控制定位元素的位置的工具类。

    工具类属性
    inset-0top: 0px; right: 0px; bottom: 0px; left: 0px;
    inset-autotop: auto; right: auto; bottom: auto; left: auto;
    inset-x-0left: 0px; right: 0px;
    inset-y-0top: 0px; bottom: 0px;
    top-0top: 0px;
    right-0right: 0px;
    bottom-0bottom: 0px;
    left-0left: 0px;
    top-pxtop: 1px;
    right-pxright: 1px;
    bottom-pxbottom: 1px;
    left-pxleft: 1px;
    top-0.5top: 2px;
    right-0.5right: 2px;
    bottom-0.5bottom: 2px;
    left-0.5left: 2px;
    top-1top: 4px;
    right-1right: 4px;
    bottom-1bottom: 4px;
    left-1left: 4px;
    top-1.5top: 6px;
    right-1.5right: 6px;
    bottom-1.5bottom: 6px;
    left-1.5left: 6px;
    top-2top: 8px;
    right-2right: 8px;
    bottom-2bottom: 8px;
    left-2left: 8px;
    top-fulltop: 100%;
    right-fullright: 100%;
    bottom-fullbottom: 100%;
    left-fullleft: 100%;
    top-autotop: auto;
    right-autoright: auto;
    bottom-autobottom: auto;
    left-autoleft: auto;

    效果展示

    1
    2
    3
    4
    5
    6
    7
    8

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/visibility.html b/dev/utilities/layout/utilities/visibility.html index 8610d1c549..cd3292584f 100644 --- a/dev/utilities/layout/utilities/visibility.html +++ b/dev/utilities/layout/utilities/visibility.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/utilities/layout/utilities/z-index.html b/dev/utilities/layout/utilities/z-index.html index fc8da3df8b..2dbce19720 100644 --- a/dev/utilities/layout/utilities/z-index.html +++ b/dev/utilities/layout/utilities/z-index.html @@ -14,14 +14,14 @@ - - + + - - + + \ No newline at end of file diff --git a/dev/utilities/sizing/utilities/height.html b/dev/utilities/sizing/utilities/height.html index 912408c3c4..ba44288e08 100644 --- a/dev/utilities/sizing/utilities/height.html +++ b/dev/utilities/sizing/utilities/height.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    高度

    固定值

    通过工具类 h-* 设置高度为固定值,包含如下工具类:

    工具类CSS 属性
    h-0height: 0px;
    h-pxheight: 1px;
    h-0.5height: 2px;
    h-1height: 4px;
    h-1.5height: 6px;
    h-2height: 8px;
    h-2.5height: 10px;
    h-3height: 12px;
    h-3.5height: 14px;
    h-4height: 16px;
    h-5height: 20px;
    h-6height: 24px;
    h-7height: 28px;
    h-8height: 32px;
    h-9height: 36px;
    h-10height: 40px;
    h-11height: 44px;
    h-12height: 48px;
    h-14height: 56px;
    h-16height: 64px;
    h-20height: 80px;
    h-24height: 96px;
    h-28height: 112px;
    h-32height: 128px;
    h-36height: 144px;
    h-40height: 160px;
    h-44height: 176px;
    h-48height: 192px;
    h-52height: 208px;
    h-56height: 224px;
    h-60height: 240px;
    h-64height: 256px;
    h-72height: 288px;
    h-80height: 320px;
    h-96height: 384px;

    百分比

    通过工具类 h-* 设置高度为百分比,包含如下工具类:

    工具类CSS 属性
    h-1/2height: 50%;
    h-1/3height: 33.3333333%;
    h-2/3height: 66.6666667%;
    h-1/4height: 25%;
    h-2/4height: 50%;
    h-3/4height: 75%;
    h-1/5height: 20%;
    h-2/5height: 40%;
    h-3/5height: 60%;
    h-4/5height: 80%;
    h-1/6height: 16.6666667%;
    h-2/6height: 33.3333333%;
    h-3/6height: 50%;
    h-4/6height: 66.6666667%;
    h-5/6height: 83.3333333%;
    h-fullheight: 100%;

    特殊值

    通过工具类 h-* 设置高度为特殊值,包含如下工具类:

    工具类CSS 属性
    h-autoheight: auto;
    h-screenheight: 100vh;
    h-fitheight: fit-content;
    h-minheight: min-content;
    h-maxheight: max-content;

    限制最大高度

    通过工具类 max-h-* 设置限制元素最大高度,包含如下工具类:

    工具类CSS 属性
    max-h-0max-height: 0px;
    max-h-fullmax-height: 100%;
    max-h-screenmax-height: 100vh;
    max-h-nonemax-height: none;
    max-h-minmax-height: min-content;
    max-h-maxmax-height: max-content;
    max-h-fitmax-height: fit-content;

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/sizing/utilities/width.html b/dev/utilities/sizing/utilities/width.html index 4bcad97fc7..3c4d133457 100644 --- a/dev/utilities/sizing/utilities/width.html +++ b/dev/utilities/sizing/utilities/width.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    宽度

    固定值

    通过工具类 w-* 设置宽度为固定值,包含如下工具类:

    工具类CSS 属性
    w-0width: 0px;
    w-pxwidth: 1px;
    w-0.5width: 2px;
    w-1width: 4px;
    w-1.5width: 6px;
    w-2width: 8px;
    w-2.5width: 10px;
    w-3width: 12px;
    w-3.5width: 14px;
    w-4width: 16px;
    w-5width: 20px;
    w-6width: 24px;
    w-7width: 28px;
    w-8width: 32px;
    w-9width: 36px;
    w-10width: 40px;
    w-11width: 44px;
    w-12width: 48px;
    w-14width: 56px;
    w-16width: 64px;
    w-20width: 80px;
    w-24width: 96px;
    w-28width: 112px;
    w-32width: 128px;
    w-36width: 144px;
    w-40width: 160px;
    w-44width: 176px;
    w-48width: 192px;
    w-52width: 208px;
    w-56width: 224px;
    w-60width: 240px;
    w-64width: 256px;
    w-72width: 288px;
    w-80width: 320px;
    w-96width: 384px;

    百分比

    通过工具类 w-* 设置宽度为百分比,包含如下工具类:

    工具类CSS 属性
    w-1/2width: 50%;
    w-1/3width: 33.3333333%;
    w-2/3width: 66.6666667%;
    w-1/4width: 25%;
    w-2/4width: 50%;
    w-3/4width: 75%;
    w-1/5width: 20%;
    w-2/5width: 40%;
    w-3/5width: 60%;
    w-4/5width: 80%;
    w-1/6width: 16.6666667%;
    w-2/6width: 33.3333333%;
    w-3/6width: 50%;
    w-4/6width: 66.6666667%;
    w-5/6width: 83.3333333%;
    w-fullwidth: 100%;

    特殊值

    通过工具类 w-* 设置宽度为特殊值,包含如下工具类:

    工具类CSS 属性
    w-autowidth: auto;
    w-screenwidth: 100vw;
    w-fitwidth: fit-content;
    w-minwidth: min-content;
    w-maxwidth: max-content;

    限制最大宽度

    通过工具类 max-w-* 设置限制元素最大宽度,包含如下工具类:

    工具类CSS 属性
    max-w-0max-width: 0px;
    max-w-fullmax-width: 100%;
    max-w-screenmax-width: 100vw;
    max-w-nonemax-width: none;
    max-w-minmax-width: min-content;
    max-w-maxmax-width: max-content;
    max-w-fitmax-width: fit-content;

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/skin/utilities/ghost.html b/dev/utilities/skin/utilities/ghost.html index 289c0777ab..3bbe78536f 100644 --- a/dev/utilities/skin/utilities/ghost.html +++ b/dev/utilities/skin/utilities/ghost.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    透明

    用于快速为元素或组件实现特定文字颜色带透明背景外观。

    效果

    默认
    ghost
    语义化
    primary-ghost
    secondary-ghost
    success-ghost
    warning-ghost
    danger-ghost
    important-ghost
    special-ghost

    示例

    Ghost Element

    MIT License (MIT)

    - +
    Skip to content

    透明

    用于快速为元素或组件实现特定文字颜色带透明背景外观。

    效果

    默认
    ghost
    语义化
    primary-ghost
    secondary-ghost
    success-ghost
    warning-ghost
    danger-ghost
    important-ghost
    special-ghost

    示例

    Ghost Element

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/skin/utilities/outline.html b/dev/utilities/skin/utilities/outline.html index 553d1de738..157e4951a6 100644 --- a/dev/utilities/skin/utilities/outline.html +++ b/dev/utilities/skin/utilities/outline.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    轮廓

    用于快速为元素或组件实现特定颜色的轮廓描边外观。

    效果

    默认
    outline
    语义化
    primary-outline
    secondary-outline
    success-outline
    warning-outline
    danger-outline
    important-outline
    special-outline
    灰度
    gray-outline

    提示

    轮廓的描边效果使用 box-shadow 实现。

    示例

    Success Label
    Gray Element

    MIT License (MIT)

    - +
    Skip to content

    轮廓

    用于快速为元素或组件实现特定颜色的轮廓描边外观。

    效果

    默认
    outline
    语义化
    primary-outline
    secondary-outline
    success-outline
    warning-outline
    danger-outline
    important-outline
    special-outline
    灰度
    gray-outline

    提示

    轮廓的描边效果使用 box-shadow 实现。

    示例

    Success Label
    Gray Element

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/skin/utilities/pale.html b/dev/utilities/skin/utilities/pale.html index 7c530a6f6e..f0b5daaf64 100644 --- a/dev/utilities/skin/utilities/pale.html +++ b/dev/utilities/skin/utilities/pale.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    浅色

    用于快速为元素或组件实现特定颜色的浅色填充外观,包含语义化和灰度工具类。

    效果

    语义化
    primary-pale
    secondary-pale
    success-pale
    warning-pale
    danger-pale
    important-pale
    special-pale
    灰度
    gray-50-pale
    gray-100-pale
    gray-200-pale
    gray-300-pale
    gray-400-pale
    gray-pale
    gray-500-pale 别名: gray-pale
    gray-600-pale
    gray-700-pale
    gray-800-pale
    gray-900-pale
    gray-950-pale

    示例

    Success Label
    Gray Element

    MIT License (MIT)

    - +
    Skip to content

    浅色

    用于快速为元素或组件实现特定颜色的浅色填充外观,包含语义化和灰度工具类。

    效果

    语义化
    primary-pale
    secondary-pale
    success-pale
    warning-pale
    danger-pale
    important-pale
    special-pale
    灰度
    gray-50-pale
    gray-100-pale
    gray-200-pale
    gray-300-pale
    gray-400-pale
    gray-pale
    gray-500-pale 别名: gray-pale
    gray-600-pale
    gray-700-pale
    gray-800-pale
    gray-900-pale
    gray-950-pale

    示例

    Success Label
    Gray Element

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/skin/utilities/solid.html b/dev/utilities/skin/utilities/solid.html index 7101d1a471..7c153b1aad 100644 --- a/dev/utilities/skin/utilities/solid.html +++ b/dev/utilities/skin/utilities/solid.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    实心

    用于快速为元素或组件实现特定颜色的实心填充外观,包含语义化和灰度工具类。

    效果

    语义化
    primary
    secondary
    success
    warning
    danger
    important
    special
    灰度
    gray-50
    gray-100
    gray-200
    gray-300
    gray-400
    gray
    gray-500 别名: gray
    gray-600
    gray-700
    gray-800
    gray-900
    gray-950

    示例

    Success Label
    Gray Element

    MIT License (MIT)

    - +
    Skip to content

    实心

    用于快速为元素或组件实现特定颜色的实心填充外观,包含语义化和灰度工具类。

    效果

    语义化
    primary
    secondary
    success
    warning
    danger
    important
    special
    灰度
    gray-50
    gray-100
    gray-200
    gray-300
    gray-400
    gray
    gray-500 别名: gray
    gray-600
    gray-700
    gray-800
    gray-900
    gray-950

    示例

    Success Label
    Gray Element

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/skin/utilities/surface.html b/dev/utilities/skin/utilities/surface.html index 85552fdc60..c2630b4c84 100644 --- a/dev/utilities/skin/utilities/surface.html +++ b/dev/utilities/skin/utilities/surface.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    界面

    用于快速为元素或组件实现特定功能界面颜色外观。

    效果

    white
    纯白
    black
    纯黑
    transparent
    透明
    canvas
    画布
    inverse
    反色
    surface-light
    加重的控件
    surface
    控件
    surface-strong
    轻量的控件

    示例

    Surface Element

    MIT License (MIT)

    - +
    Skip to content

    界面

    用于快速为元素或组件实现特定功能界面颜色外观。

    效果

    white
    纯白
    black
    纯黑
    transparent
    透明
    canvas
    画布
    inverse
    反色
    surface-light
    加重的控件
    surface
    控件
    surface-strong
    轻量的控件

    示例

    Surface Element

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/spacing/utilities/margin.html b/dev/utilities/spacing/utilities/margin.html index e74de0f43f..541919c070 100644 --- a/dev/utilities/spacing/utilities/margin.html +++ b/dev/utilities/spacing/utilities/margin.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    外边距

    定义

    通过 m-* 工具类设置外边距,可用的工具类包括:

    工具类CSS 属性
    m-automargin: auto;
    mx-automargin-left: auto; margin-right: auto;
    my-automargin-top: auto; margin-bottom: auto;
    mt-automargin-top: auto;
    mr-automargin-right: auto;
    mb-automargin-bottom: auto;
    ml-automargin-left: auto;
    m-0margin: 0px;
    m-pxmargin: 1px;
    m-0.5margin: 2px;
    m-1margin: 4px;
    m-1.5margin: 6px;
    m-2margin: 8px;
    m-2.5margin: 10px;
    m-3margin: 12px;
    m-3.5margin: 14px;
    m-4margin: 16px;
    m-5margin: 20px;
    m-6margin: 24px;
    m-7margin: 28px;
    m-8margin: 32px;
    m-9margin: 36px;
    m-10margin: 40px;
    mx-0margin-left: 0px; margin-right: 0px;
    my-0margin-top: 0px; margin-bottom: 0px;
    mt-0margin-top: 0px;
    mr-0margin-right: 0px;
    mb-0margin-bottom: 0px;
    ml-0margin-left: 0px;
    mx-pxmargin-left: 1px; margin-right: 1px;
    my-pxmargin-top: 1px; margin-bottom: 1px;
    mt-pxmargin-top: 1px;
    mr-pxmargin-right: 1px;
    mb-pxmargin-bottom: 1px;
    ml-pxmargin-left: 1px;
    mx-0.5margin-left: 2px; margin-right: 2px;
    my-0.5margin-top: 2px; margin-bottom: 2px;
    mt-0.5margin-top: 2px;
    mr-0.5margin-right: 2px;
    mb-0.5margin-bottom: 2px;
    ml-0.5margin-left: 2px;
    mx-1margin-left: 4px; margin-right: 4px;
    my-1margin-top: 4px; margin-bottom: 4px;
    mt-1margin-top: 4px;
    mr-1margin-right: 4px;
    mb-1margin-bottom: 4px;
    ml-1margin-left: 4px;
    mx-1.5margin-left: 6px; margin-right: 6px;
    my-1.5margin-top: 6px; margin-bottom: 6px;
    mt-1.5margin-top: 6px;
    mr-1.5margin-right: 6px;
    mb-1.5margin-bottom: 6px;
    ml-1.5margin-left: 6px;
    mx-2margin-left: 8px; margin-right: 8px;
    my-2margin-top: 8px; margin-bottom: 8px;
    mt-2margin-top: 8px;
    mr-2margin-right: 8px;
    mb-2margin-bottom: 8px;
    ml-2margin-left: 8px;
    mx-2.5margin-left: 10px; margin-right: 10px;
    my-2.5margin-top: 10px; margin-bottom: 10px;
    mt-2.5margin-top: 10px;
    mr-2.5margin-right: 10px;
    mb-2.5margin-bottom: 10px;
    ml-2.5margin-left: 10px;
    mx-3margin-left: 12px; margin-right: 12px;
    my-3margin-top: 12px; margin-bottom: 12px;
    mt-3margin-top: 12px;
    mr-3margin-right: 12px;
    mb-3margin-bottom: 12px;
    ml-3margin-left: 12px;
    mx-3.5margin-left: 14px; margin-right: 14px;
    my-3.5margin-top: 14px; margin-bottom: 14px;
    mt-3.5margin-top: 14px;
    mr-3.5margin-right: 14px;
    mb-3.5margin-bottom: 14px;
    ml-3.5margin-left: 14px;
    mx-4margin-left: 16px; margin-right: 16px;
    my-4margin-top: 16px; margin-bottom: 16px;
    mt-4margin-top: 16px;
    mr-4margin-right: 16px;
    mb-4margin-bottom: 16px;
    ml-4margin-left: 16px;
    mx-5margin-left: 20px; margin-right: 20px;
    my-5margin-top: 20px; margin-bottom: 20px;
    mt-5margin-top: 20px;
    mr-5margin-right: 20px;
    mb-5margin-bottom: 20px;
    ml-5margin-left: 20px;
    mx-6margin-left: 24px; margin-right: 24px;
    my-6margin-top: 24px; margin-bottom: 24px;
    mt-6margin-top: 24px;
    mr-6margin-right: 24px;
    mb-6margin-bottom: 24px;
    ml-6margin-left: 24px;
    mx-7margin-left: 28px; margin-right: 28px;
    my-7margin-top: 28px; margin-bottom: 28px;
    mt-7margin-top: 28px;
    mr-7margin-right: 28px;
    mb-7margin-bottom: 28px;
    ml-7margin-left: 28px;
    mx-8margin-left: 32px; margin-right: 32px;
    my-8margin-top: 32px; margin-bottom: 32px;
    mt-8margin-top: 32px;
    mr-8margin-right: 32px;
    mb-8margin-bottom: 32px;
    ml-8margin-left: 32px;
    mx-9margin-left: 36px; margin-right: 36px;
    my-9margin-top: 36px; margin-bottom: 36px;
    mt-9margin-top: 36px;
    mr-9margin-right: 36px;
    mb-9margin-bottom: 36px;
    ml-9margin-left: 36px;
    mx-10margin-left: 40px; margin-right: 40px;
    my-10margin-top: 40px; margin-bottom: 40px;
    mt-10margin-top: 40px;
    mr-10margin-right: 40px;
    mb-10margin-bottom: 40px;
    ml-10margin-left: 40px;

    示例

    MIT License (MIT)

    - +
    Skip to content

    外边距

    定义

    通过 m-* 工具类设置外边距,可用的工具类包括:

    工具类CSS 属性
    m-automargin: auto;
    mx-automargin-left: auto; margin-right: auto;
    my-automargin-top: auto; margin-bottom: auto;
    mt-automargin-top: auto;
    mr-automargin-right: auto;
    mb-automargin-bottom: auto;
    ml-automargin-left: auto;
    m-0margin: 0px;
    m-pxmargin: 1px;
    m-0.5margin: 2px;
    m-1margin: 4px;
    m-1.5margin: 6px;
    m-2margin: 8px;
    m-2.5margin: 10px;
    m-3margin: 12px;
    m-3.5margin: 14px;
    m-4margin: 16px;
    m-5margin: 20px;
    m-6margin: 24px;
    m-7margin: 28px;
    m-8margin: 32px;
    m-9margin: 36px;
    m-10margin: 40px;
    mx-0margin-left: 0px; margin-right: 0px;
    my-0margin-top: 0px; margin-bottom: 0px;
    mt-0margin-top: 0px;
    mr-0margin-right: 0px;
    mb-0margin-bottom: 0px;
    ml-0margin-left: 0px;
    mx-pxmargin-left: 1px; margin-right: 1px;
    my-pxmargin-top: 1px; margin-bottom: 1px;
    mt-pxmargin-top: 1px;
    mr-pxmargin-right: 1px;
    mb-pxmargin-bottom: 1px;
    ml-pxmargin-left: 1px;
    mx-0.5margin-left: 2px; margin-right: 2px;
    my-0.5margin-top: 2px; margin-bottom: 2px;
    mt-0.5margin-top: 2px;
    mr-0.5margin-right: 2px;
    mb-0.5margin-bottom: 2px;
    ml-0.5margin-left: 2px;
    mx-1margin-left: 4px; margin-right: 4px;
    my-1margin-top: 4px; margin-bottom: 4px;
    mt-1margin-top: 4px;
    mr-1margin-right: 4px;
    mb-1margin-bottom: 4px;
    ml-1margin-left: 4px;
    mx-1.5margin-left: 6px; margin-right: 6px;
    my-1.5margin-top: 6px; margin-bottom: 6px;
    mt-1.5margin-top: 6px;
    mr-1.5margin-right: 6px;
    mb-1.5margin-bottom: 6px;
    ml-1.5margin-left: 6px;
    mx-2margin-left: 8px; margin-right: 8px;
    my-2margin-top: 8px; margin-bottom: 8px;
    mt-2margin-top: 8px;
    mr-2margin-right: 8px;
    mb-2margin-bottom: 8px;
    ml-2margin-left: 8px;
    mx-2.5margin-left: 10px; margin-right: 10px;
    my-2.5margin-top: 10px; margin-bottom: 10px;
    mt-2.5margin-top: 10px;
    mr-2.5margin-right: 10px;
    mb-2.5margin-bottom: 10px;
    ml-2.5margin-left: 10px;
    mx-3margin-left: 12px; margin-right: 12px;
    my-3margin-top: 12px; margin-bottom: 12px;
    mt-3margin-top: 12px;
    mr-3margin-right: 12px;
    mb-3margin-bottom: 12px;
    ml-3margin-left: 12px;
    mx-3.5margin-left: 14px; margin-right: 14px;
    my-3.5margin-top: 14px; margin-bottom: 14px;
    mt-3.5margin-top: 14px;
    mr-3.5margin-right: 14px;
    mb-3.5margin-bottom: 14px;
    ml-3.5margin-left: 14px;
    mx-4margin-left: 16px; margin-right: 16px;
    my-4margin-top: 16px; margin-bottom: 16px;
    mt-4margin-top: 16px;
    mr-4margin-right: 16px;
    mb-4margin-bottom: 16px;
    ml-4margin-left: 16px;
    mx-5margin-left: 20px; margin-right: 20px;
    my-5margin-top: 20px; margin-bottom: 20px;
    mt-5margin-top: 20px;
    mr-5margin-right: 20px;
    mb-5margin-bottom: 20px;
    ml-5margin-left: 20px;
    mx-6margin-left: 24px; margin-right: 24px;
    my-6margin-top: 24px; margin-bottom: 24px;
    mt-6margin-top: 24px;
    mr-6margin-right: 24px;
    mb-6margin-bottom: 24px;
    ml-6margin-left: 24px;
    mx-7margin-left: 28px; margin-right: 28px;
    my-7margin-top: 28px; margin-bottom: 28px;
    mt-7margin-top: 28px;
    mr-7margin-right: 28px;
    mb-7margin-bottom: 28px;
    ml-7margin-left: 28px;
    mx-8margin-left: 32px; margin-right: 32px;
    my-8margin-top: 32px; margin-bottom: 32px;
    mt-8margin-top: 32px;
    mr-8margin-right: 32px;
    mb-8margin-bottom: 32px;
    ml-8margin-left: 32px;
    mx-9margin-left: 36px; margin-right: 36px;
    my-9margin-top: 36px; margin-bottom: 36px;
    mt-9margin-top: 36px;
    mr-9margin-right: 36px;
    mb-9margin-bottom: 36px;
    ml-9margin-left: 36px;
    mx-10margin-left: 40px; margin-right: 40px;
    my-10margin-top: 40px; margin-bottom: 40px;
    mt-10margin-top: 40px;
    mr-10margin-right: 40px;
    mb-10margin-bottom: 40px;
    ml-10margin-left: 40px;

    示例

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/spacing/utilities/padding.html b/dev/utilities/spacing/utilities/padding.html index 5d7770130c..f40945dcc1 100644 --- a/dev/utilities/spacing/utilities/padding.html +++ b/dev/utilities/spacing/utilities/padding.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    内边距

    定义

    通过 p-* 工具类设置内边距,可用的工具类包括:

    工具类CSS 属性
    p-autopadding: auto;
    px-autopadding-left: auto; padding-right: auto;
    py-autopadding-top: auto; padding-bottom: auto;
    pt-autopadding-top: auto;
    pr-autopadding-right: auto;
    pb-autopadding-bottom: auto;
    pl-autopadding-left: auto;
    p-0padding: 0px;
    p-pxpadding: 1px;
    p-0.5padding: 2px;
    p-1padding: 4px;
    p-1.5padding: 6px;
    p-2padding: 8px;
    p-2.5padding: 10px;
    p-3padding: 12px;
    p-3.5padding: 14px;
    p-4padding: 16px;
    p-5padding: 20px;
    p-6padding: 24px;
    p-7padding: 28px;
    p-8padding: 32px;
    p-9padding: 36px;
    p-10padding: 40px;
    px-0padding-left: 0px; padding-right: 0px;
    py-0padding-top: 0px; padding-bottom: 0px;
    pt-0padding-top: 0px;
    pr-0padding-right: 0px;
    pb-0padding-bottom: 0px;
    pl-0padding-left: 0px;
    px-pxpadding-left: 1px; padding-right: 1px;
    py-pxpadding-top: 1px; padding-bottom: 1px;
    pt-pxpadding-top: 1px;
    pr-pxpadding-right: 1px;
    pb-pxpadding-bottom: 1px;
    pl-pxpadding-left: 1px;
    px-0.5padding-left: 2px; padding-right: 2px;
    py-0.5padding-top: 2px; padding-bottom: 2px;
    pt-0.5padding-top: 2px;
    pr-0.5padding-right: 2px;
    pb-0.5padding-bottom: 2px;
    pl-0.5padding-left: 2px;
    px-1padding-left: 4px; padding-right: 4px;
    py-1padding-top: 4px; padding-bottom: 4px;
    pt-1padding-top: 4px;
    pr-1padding-right: 4px;
    pb-1padding-bottom: 4px;
    pl-1padding-left: 4px;
    px-1.5padding-left: 6px; padding-right: 6px;
    py-1.5padding-top: 6px; padding-bottom: 6px;
    pt-1.5padding-top: 6px;
    pr-1.5padding-right: 6px;
    pb-1.5padding-bottom: 6px;
    pl-1.5padding-left: 6px;
    px-2padding-left: 8px; padding-right: 8px;
    py-2padding-top: 8px; padding-bottom: 8px;
    pt-2padding-top: 8px;
    pr-2padding-right: 8px;
    pb-2padding-bottom: 8px;
    pl-2padding-left: 8px;
    px-2.5padding-left: 10px; padding-right: 10px;
    py-2.5padding-top: 10px; padding-bottom: 10px;
    pt-2.5padding-top: 10px;
    pr-2.5padding-right: 10px;
    pb-2.5padding-bottom: 10px;
    pl-2.5padding-left: 10px;
    px-3padding-left: 12px; padding-right: 12px;
    py-3padding-top: 12px; padding-bottom: 12px;
    pt-3padding-top: 12px;
    pr-3padding-right: 12px;
    pb-3padding-bottom: 12px;
    pl-3padding-left: 12px;
    px-3.5padding-left: 14px; padding-right: 14px;
    py-3.5padding-top: 14px; padding-bottom: 14px;
    pt-3.5padding-top: 14px;
    pr-3.5padding-right: 14px;
    pb-3.5padding-bottom: 14px;
    pl-3.5padding-left: 14px;
    px-4padding-left: 16px; padding-right: 16px;
    py-4padding-top: 16px; padding-bottom: 16px;
    pt-4padding-top: 16px;
    pr-4padding-right: 16px;
    pb-4padding-bottom: 16px;
    pl-4padding-left: 16px;
    px-5padding-left: 20px; padding-right: 20px;
    py-5padding-top: 20px; padding-bottom: 20px;
    pt-5padding-top: 20px;
    pr-5padding-right: 20px;
    pb-5padding-bottom: 20px;
    pl-5padding-left: 20px;
    px-6padding-left: 24px; padding-right: 24px;
    py-6padding-top: 24px; padding-bottom: 24px;
    pt-6padding-top: 24px;
    pr-6padding-right: 24px;
    pb-6padding-bottom: 24px;
    pl-6padding-left: 24px;
    px-7padding-left: 28px; padding-right: 28px;
    py-7padding-top: 28px; padding-bottom: 28px;
    pt-7padding-top: 28px;
    pr-7padding-right: 28px;
    pb-7padding-bottom: 28px;
    pl-7padding-left: 28px;
    px-8padding-left: 32px; padding-right: 32px;
    py-8padding-top: 32px; padding-bottom: 32px;
    pt-8padding-top: 32px;
    pr-8padding-right: 32px;
    pb-8padding-bottom: 32px;
    pl-8padding-left: 32px;
    px-9padding-left: 36px; padding-right: 36px;
    py-9padding-top: 36px; padding-bottom: 36px;
    pt-9padding-top: 36px;
    pr-9padding-right: 36px;
    pb-9padding-bottom: 36px;
    pl-9padding-left: 36px;
    px-10padding-left: 40px; padding-right: 40px;
    py-10padding-top: 40px; padding-bottom: 40px;
    pt-10padding-top: 40px;
    pr-10padding-right: 40px;
    pb-10padding-bottom: 40px;
    pl-10padding-left: 40px;

    示例

    MIT License (MIT)

    - +
    Skip to content

    内边距

    定义

    通过 p-* 工具类设置内边距,可用的工具类包括:

    工具类CSS 属性
    p-autopadding: auto;
    px-autopadding-left: auto; padding-right: auto;
    py-autopadding-top: auto; padding-bottom: auto;
    pt-autopadding-top: auto;
    pr-autopadding-right: auto;
    pb-autopadding-bottom: auto;
    pl-autopadding-left: auto;
    p-0padding: 0px;
    p-pxpadding: 1px;
    p-0.5padding: 2px;
    p-1padding: 4px;
    p-1.5padding: 6px;
    p-2padding: 8px;
    p-2.5padding: 10px;
    p-3padding: 12px;
    p-3.5padding: 14px;
    p-4padding: 16px;
    p-5padding: 20px;
    p-6padding: 24px;
    p-7padding: 28px;
    p-8padding: 32px;
    p-9padding: 36px;
    p-10padding: 40px;
    px-0padding-left: 0px; padding-right: 0px;
    py-0padding-top: 0px; padding-bottom: 0px;
    pt-0padding-top: 0px;
    pr-0padding-right: 0px;
    pb-0padding-bottom: 0px;
    pl-0padding-left: 0px;
    px-pxpadding-left: 1px; padding-right: 1px;
    py-pxpadding-top: 1px; padding-bottom: 1px;
    pt-pxpadding-top: 1px;
    pr-pxpadding-right: 1px;
    pb-pxpadding-bottom: 1px;
    pl-pxpadding-left: 1px;
    px-0.5padding-left: 2px; padding-right: 2px;
    py-0.5padding-top: 2px; padding-bottom: 2px;
    pt-0.5padding-top: 2px;
    pr-0.5padding-right: 2px;
    pb-0.5padding-bottom: 2px;
    pl-0.5padding-left: 2px;
    px-1padding-left: 4px; padding-right: 4px;
    py-1padding-top: 4px; padding-bottom: 4px;
    pt-1padding-top: 4px;
    pr-1padding-right: 4px;
    pb-1padding-bottom: 4px;
    pl-1padding-left: 4px;
    px-1.5padding-left: 6px; padding-right: 6px;
    py-1.5padding-top: 6px; padding-bottom: 6px;
    pt-1.5padding-top: 6px;
    pr-1.5padding-right: 6px;
    pb-1.5padding-bottom: 6px;
    pl-1.5padding-left: 6px;
    px-2padding-left: 8px; padding-right: 8px;
    py-2padding-top: 8px; padding-bottom: 8px;
    pt-2padding-top: 8px;
    pr-2padding-right: 8px;
    pb-2padding-bottom: 8px;
    pl-2padding-left: 8px;
    px-2.5padding-left: 10px; padding-right: 10px;
    py-2.5padding-top: 10px; padding-bottom: 10px;
    pt-2.5padding-top: 10px;
    pr-2.5padding-right: 10px;
    pb-2.5padding-bottom: 10px;
    pl-2.5padding-left: 10px;
    px-3padding-left: 12px; padding-right: 12px;
    py-3padding-top: 12px; padding-bottom: 12px;
    pt-3padding-top: 12px;
    pr-3padding-right: 12px;
    pb-3padding-bottom: 12px;
    pl-3padding-left: 12px;
    px-3.5padding-left: 14px; padding-right: 14px;
    py-3.5padding-top: 14px; padding-bottom: 14px;
    pt-3.5padding-top: 14px;
    pr-3.5padding-right: 14px;
    pb-3.5padding-bottom: 14px;
    pl-3.5padding-left: 14px;
    px-4padding-left: 16px; padding-right: 16px;
    py-4padding-top: 16px; padding-bottom: 16px;
    pt-4padding-top: 16px;
    pr-4padding-right: 16px;
    pb-4padding-bottom: 16px;
    pl-4padding-left: 16px;
    px-5padding-left: 20px; padding-right: 20px;
    py-5padding-top: 20px; padding-bottom: 20px;
    pt-5padding-top: 20px;
    pr-5padding-right: 20px;
    pb-5padding-bottom: 20px;
    pl-5padding-left: 20px;
    px-6padding-left: 24px; padding-right: 24px;
    py-6padding-top: 24px; padding-bottom: 24px;
    pt-6padding-top: 24px;
    pr-6padding-right: 24px;
    pb-6padding-bottom: 24px;
    pl-6padding-left: 24px;
    px-7padding-left: 28px; padding-right: 28px;
    py-7padding-top: 28px; padding-bottom: 28px;
    pt-7padding-top: 28px;
    pr-7padding-right: 28px;
    pb-7padding-bottom: 28px;
    pl-7padding-left: 28px;
    px-8padding-left: 32px; padding-right: 32px;
    py-8padding-top: 32px; padding-bottom: 32px;
    pt-8padding-top: 32px;
    pr-8padding-right: 32px;
    pb-8padding-bottom: 32px;
    pl-8padding-left: 32px;
    px-9padding-left: 36px; padding-right: 36px;
    py-9padding-top: 36px; padding-bottom: 36px;
    pt-9padding-top: 36px;
    pr-9padding-right: 36px;
    pb-9padding-bottom: 36px;
    pl-9padding-left: 36px;
    px-10padding-left: 40px; padding-right: 40px;
    py-10padding-top: 40px; padding-bottom: 40px;
    pt-10padding-top: 40px;
    pr-10padding-right: 40px;
    pb-10padding-bottom: 40px;
    pl-10padding-left: 40px;

    示例

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/spacing/utilities/space.html b/dev/utilities/spacing/utilities/space.html index 2f04e94990..34533ed6bb 100644 --- a/dev/utilities/spacing/utilities/space.html +++ b/dev/utilities/spacing/utilities/space.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    子元素间距

    定义

    通过工具类 space-x-* 来为元素内的所有子元素之间设置水平间距;通过工具类 space-y-* 来为元素内的所有子元素之间设置水平间距,所有可用的工具类定义如下:

    工具类CSS 属性
    space-x-0 > * + *margin-left: 0px;
    space-y-0 > * + *margin-top: 0px;
    space-x-0.5 > * + *margin-left: 2px;
    space-y-0.5 > * + *margin-top: 2px;
    space-x-1 > * + *margin-left: 4px;
    space-y-1 > * + *margin-top: 4px;
    space-x-1.5 > * + *margin-left: 6px;
    space-y-1.5 > * + *margin-top: 6px;
    space-x-2 > * + *margin-left: 8px;
    space-y-2 > * + *margin-top: 8px;
    space-x-2.5 > * + *margin-left: 10px;
    space-y-2.5 > * + *margin-top: 10px;
    space-x-3 > * + *margin-left: 12px;
    space-y-3 > * + *margin-top: 12px;
    space-x-3.5 > * + *margin-left: 14px;
    space-y-3.5 > * + *margin-top: 14px;
    space-x-4 > * + *margin-left: 16px;
    space-y-4 > * + *margin-top: 16px;
    space-x-5 > * + *margin-left: 20px;
    space-y-5 > * + *margin-top: 20px;
    space-x-6 > * + *margin-left: 24px;
    space-y-6 > * + *margin-top: 24px;
    space-x-7 > * + *margin-left: 28px;
    space-y-7 > * + *margin-top: 28px;
    space-x-8 > * + *margin-left: 32px;
    space-y-8 > * + *margin-top: 32px;
    space-x-9 > * + *margin-left: 36px;
    space-y-9 > * + *margin-top: 36px;
    space-x-10 > * + *margin-left: 40px;
    space-y-10 > * + *margin-top: 40px;
    space-x-px > * + *margin-left: 1px;
    space-y-px > * + *margin-top: 1px;

    示例

    水平间距

    1
    2
    3

    垂直间距

    1
    2
    3

    MIT License (MIT)

    - +
    Skip to content

    子元素间距

    定义

    通过工具类 space-x-* 来为元素内的所有子元素之间设置水平间距;通过工具类 space-y-* 来为元素内的所有子元素之间设置水平间距,所有可用的工具类定义如下:

    工具类CSS 属性
    space-x-0 > * + *margin-left: 0px;
    space-y-0 > * + *margin-top: 0px;
    space-x-0.5 > * + *margin-left: 2px;
    space-y-0.5 > * + *margin-top: 2px;
    space-x-1 > * + *margin-left: 4px;
    space-y-1 > * + *margin-top: 4px;
    space-x-1.5 > * + *margin-left: 6px;
    space-y-1.5 > * + *margin-top: 6px;
    space-x-2 > * + *margin-left: 8px;
    space-y-2 > * + *margin-top: 8px;
    space-x-2.5 > * + *margin-left: 10px;
    space-y-2.5 > * + *margin-top: 10px;
    space-x-3 > * + *margin-left: 12px;
    space-y-3 > * + *margin-top: 12px;
    space-x-3.5 > * + *margin-left: 14px;
    space-y-3.5 > * + *margin-top: 14px;
    space-x-4 > * + *margin-left: 16px;
    space-y-4 > * + *margin-top: 16px;
    space-x-5 > * + *margin-left: 20px;
    space-y-5 > * + *margin-top: 20px;
    space-x-6 > * + *margin-left: 24px;
    space-y-6 > * + *margin-top: 24px;
    space-x-7 > * + *margin-left: 28px;
    space-y-7 > * + *margin-top: 28px;
    space-x-8 > * + *margin-left: 32px;
    space-y-8 > * + *margin-top: 32px;
    space-x-9 > * + *margin-left: 36px;
    space-y-9 > * + *margin-top: 36px;
    space-x-10 > * + *margin-left: 40px;
    space-y-10 > * + *margin-top: 40px;
    space-x-px > * + *margin-left: 1px;
    space-y-px > * + *margin-top: 1px;

    示例

    水平间距

    1
    2
    3

    垂直间距

    1
    2
    3

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/font-family.html b/dev/utilities/typography/utilities/font-family.html index 3734d08eda..a163d261d3 100644 --- a/dev/utilities/typography/utilities/font-family.html +++ b/dev/utilities/typography/utilities/font-family.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    字体风格

    定义

    在 ZUI 中提供了一些 CSS 工具类方便为元素设置不同风格的字体,包括:

    工具类CSS 属性
    font-sansfont-family
    font-seriffont-family
    font-monofont-family

    无衬线字体 font-sans

    The quick brown fox jumps over the lazy dog.

    白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    衬线字体 font-serif

    The quick brown fox jumps over the lazy dog.

    白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    等宽字体 font-mono

    The quick brown fox jumps over the lazy dog.

    白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    参考

    MIT License (MIT)

    - +
    Skip to content

    字体风格

    定义

    在 ZUI 中提供了一些 CSS 工具类方便为元素设置不同风格的字体,包括:

    工具类CSS 属性
    font-sansfont-family
    font-seriffont-family
    font-monofont-family

    无衬线字体 font-sans

    The quick brown fox jumps over the lazy dog.

    白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    衬线字体 font-serif

    The quick brown fox jumps over the lazy dog.

    白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    等宽字体 font-mono

    The quick brown fox jumps over the lazy dog.

    白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    参考

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/font-size.html b/dev/utilities/typography/utilities/font-size.html index f8180c2fe2..ebda50e3c6 100644 --- a/dev/utilities/typography/utilities/font-size.html +++ b/dev/utilities/typography/utilities/font-size.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    字体大小

    定义

    使用 text-* 工具类控制元素的字体大小。

    工具类CSS 属性
    text-rootfont-size
    text-smfont-size
    text-basefont-size
    text-mdfont-size
    text-lgfont-size
    text-xlfont-size
    text-2xlfont-size
    text-3xlfont-size
    text-4xlfont-size

    示例

    text-root 字体大小
    text-xs 字体大小
    text-sm 字体大小
    text-base 字体大小
    text-md 字体大小
    text-lg 字体大小
    text-xl 字体大小
    text-2xl 字体大小
    text-3xl 字体大小
    text-4xl 字体大小

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/font-weight.html b/dev/utilities/typography/utilities/font-weight.html index 831e577b79..d556b02e18 100644 --- a/dev/utilities/typography/utilities/font-weight.html +++ b/dev/utilities/typography/utilities/font-weight.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    字体粗细

    定义

    使用 font-* 工具类来控制元素字体粗细。

    工具类CSS 属性
    font-thinfont-weight
    font-lightfont-weight
    font-mediumfont-weight
    font-semiboldfont-weight
    font-boldfont-weight
    font-blackfont-weight

    示例

    font-thin 字体粗细
    font-light 字体粗细
    font-medium 字体粗细
    font-semibold 字体粗细
    font-bold 字体粗细
    font-black 字体粗细

    MIT License (MIT)

    - +
    Skip to content

    字体粗细

    定义

    使用 font-* 工具类来控制元素字体粗细。

    工具类CSS 属性
    font-thinfont-weight
    font-lightfont-weight
    font-mediumfont-weight
    font-semiboldfont-weight
    font-boldfont-weight
    font-blackfont-weight

    示例

    font-thin 字体粗细
    font-light 字体粗细
    font-medium 字体粗细
    font-semibold 字体粗细
    font-bold 字体粗细
    font-black 字体粗细

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/leading.html b/dev/utilities/typography/utilities/leading.html index cbd12ac36c..32b6f844ac 100644 --- a/dev/utilities/typography/utilities/leading.html +++ b/dev/utilities/typography/utilities/leading.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    行高

    定义

    使用 leading-* 工具类来控制元素文字行高。

    工具类CSS 属性
    leading-3line-height: .75rem;
    leading-4line-height: 1rem;
    leading-5line-height: 1.25rem;
    leading-6line-height: 1.5rem;
    leading-7line-height: 1.75rem;
    leading-8line-height: 2rem;
    leading-9line-height: 2.25rem;
    leading-10line-height: 2.5rem;
    leading-noneline-height: 1;
    leading-tightline-height: 1.25;
    leading-snugline-height: 1.375;
    leading-normalline-height: 1.5;
    leading-relaxedline-height: 1.625;
    leading-looseline-height: 2;

    固定行高

    使用 leading-* 工具类给一个元素一个固定的行高。

    leading-3 行高展示
    leading-4 行高展示
    leading-5 行高展示
    leading-6 行高展示
    leading-7 行高展示
    leading-8 行高展示
    leading-9 行高展示
    leading-10 行高展示

    相对行高

    使用 leading-noneleading-tightleading-snugleading-normalleading-relaxedleading-loose 等工具类,根据元素当前的字体大小,给它一个相对的行高。

    leading-none 行高展示
    leading-none 行高展示
    leading-none 行高展示
    leading-tight 行高展示
    leading-tight 行高展示
    leading-tight 行高展示
    leading-snug 行高展示
    leading-snug 行高展示
    leading-snug 行高展示
    leading-normal 行高展示
    leading-normal 行高展示
    leading-normal 行高展示
    leading-relaxed 行高展示
    leading-relaxed 行高展示
    leading-relaxed 行高展示
    leading-loose 行高展示
    leading-loose 行高展示
    leading-loose 行高展示

    MIT License (MIT)

    - +
    Skip to content

    行高

    定义

    使用 leading-* 工具类来控制元素文字行高。

    工具类CSS 属性
    leading-3line-height: .75rem;
    leading-4line-height: 1rem;
    leading-5line-height: 1.25rem;
    leading-6line-height: 1.5rem;
    leading-7line-height: 1.75rem;
    leading-8line-height: 2rem;
    leading-9line-height: 2.25rem;
    leading-10line-height: 2.5rem;
    leading-noneline-height: 1;
    leading-tightline-height: 1.25;
    leading-snugline-height: 1.375;
    leading-normalline-height: 1.5;
    leading-relaxedline-height: 1.625;
    leading-looseline-height: 2;

    固定行高

    使用 leading-* 工具类给一个元素一个固定的行高。

    leading-3 行高展示
    leading-4 行高展示
    leading-5 行高展示
    leading-6 行高展示
    leading-7 行高展示
    leading-8 行高展示
    leading-9 行高展示
    leading-10 行高展示

    相对行高

    使用 leading-noneleading-tightleading-snugleading-normalleading-relaxedleading-loose 等工具类,根据元素当前的字体大小,给它一个相对的行高。

    leading-none 行高展示
    leading-none 行高展示
    leading-none 行高展示
    leading-tight 行高展示
    leading-tight 行高展示
    leading-tight 行高展示
    leading-snug 行高展示
    leading-snug 行高展示
    leading-snug 行高展示
    leading-normal 行高展示
    leading-normal 行高展示
    leading-normal 行高展示
    leading-relaxed 行高展示
    leading-relaxed 行高展示
    leading-relaxed 行高展示
    leading-loose 行高展示
    leading-loose 行高展示
    leading-loose 行高展示

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/line-clamp.html b/dev/utilities/typography/utilities/line-clamp.html index 1ea6e10c3e..13ccf6a544 100644 --- a/dev/utilities/typography/utilities/line-clamp.html +++ b/dev/utilities/typography/utilities/line-clamp.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    行数限制

    定义

    使用 line-clamp-* 工具类限制显示多少行文本,在文本超出时进行截断:

    工具类属性
    line-clamp-1overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;
    line-clamp-2overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    line-clamp-3overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
    line-clamp-4overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;
    line-clamp-5overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5;
    line-clamp-6overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6;

    示例

    至多显示 clamp-1 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-2 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-3 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-4 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-5 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-6 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    MIT License (MIT)

    - +
    Skip to content

    行数限制

    定义

    使用 line-clamp-* 工具类限制显示多少行文本,在文本超出时进行截断:

    工具类属性
    line-clamp-1overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;
    line-clamp-2overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    line-clamp-3overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
    line-clamp-4overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;
    line-clamp-5overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5;
    line-clamp-6overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6;

    示例

    至多显示 clamp-1 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-2 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-3 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-4 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-5 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    至多显示 clamp-6 行

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/list-style.html b/dev/utilities/typography/utilities/list-style.html index d04a60cb22..de02f109fc 100644 --- a/dev/utilities/typography/utilities/list-style.html +++ b/dev/utilities/typography/utilities/list-style.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    列表样式

    定义

    使用工具类 list-* 为元素(通常是 <ul><ol>)设置 CSS 属性 list-style

    工具类属性
    list-unstyledlist-style-type: none; padding-left: 0;
    list-nonelist-style-type: none;
    list-disclist-style-type: disc;
    list-decimallist-style-type: decimal;

    示例

    无样式 list-unstyled

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    空白样式 list-none

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    圆点样式 list-disc

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    序号样式 list-decimal

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    MIT License (MIT)

    - +
    Skip to content

    列表样式

    定义

    使用工具类 list-* 为元素(通常是 <ul><ol>)设置 CSS 属性 list-style

    工具类属性
    list-unstyledlist-style-type: none; padding-left: 0;
    list-nonelist-style-type: none;
    list-disclist-style-type: disc;
    list-decimallist-style-type: decimal;

    示例

    无样式 list-unstyled

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    空白样式 list-none

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    圆点样式 list-disc

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    序号样式 list-decimal

    • 这是一个列表
    • 含四个列表项
    • 作为示例
    • 最后一个列表有嵌套的子列表
      • 子列表项 1
      • 子列表项 2
      • 子列表项 3

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/text-align.html b/dev/utilities/typography/utilities/text-align.html index 1794f00075..1fa23b5837 100644 --- a/dev/utilities/typography/utilities/text-align.html +++ b/dev/utilities/typography/utilities/text-align.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    文本对齐

    定义

    使用 text-* 工具类来控制元素的文本对齐方式。

    工具类属性
    text-lefttext-align: left;
    text-centertext-align: center;
    text-righttext-align: right;
    text-justifytext-align: justify;

    示例

    文本左对齐

    文本居中对齐

    文本右对齐

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    MIT License (MIT)

    - +
    Skip to content

    文本对齐

    定义

    使用 text-* 工具类来控制元素的文本对齐方式。

    工具类属性
    text-lefttext-align: left;
    text-centertext-align: center;
    text-righttext-align: right;
    text-justifytext-align: justify;

    示例

    文本左对齐

    文本居中对齐

    文本右对齐

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/text-color.html b/dev/utilities/typography/utilities/text-color.html index 94f11b28ee..5a8de5cff1 100644 --- a/dev/utilities/typography/utilities/text-color.html +++ b/dev/utilities/typography/utilities/text-color.html @@ -14,14 +14,14 @@ - - + +
    Skip to content

    文本颜色

    效果

    使用工具类 text-* 给元素添加文本颜色。

    语义化
    Text 文本
    text-primary
    Text 文本
    text-secondary
    Text 文本
    text-success
    Text 文本
    text-warning
    Text 文本
    text-danger
    Text 文本
    text-important
    Text 文本
    text-special
    主色系列
    Text 文本
    text-primary-50
    Text 文本
    text-primary-100
    Text 文本
    text-primary-200
    Text 文本
    text-primary-300
    Text 文本
    text-primary-400
    Text 文本
    text-primary-500
    Text 文本
    text-primary-600
    Text 文本
    text-primary-700
    Text 文本
    text-primary-800
    Text 文本
    text-primary-900
    Text 文本
    text-primary-950
    次要系列
    Text 文本
    text-secondary-50
    Text 文本
    text-secondary-100
    Text 文本
    text-secondary-200
    Text 文本
    text-secondary-300
    Text 文本
    text-secondary-400
    Text 文本
    text-secondary-500
    Text 文本
    text-secondary-600
    Text 文本
    text-secondary-700
    Text 文本
    text-secondary-800
    Text 文本
    text-secondary-900
    Text 文本
    text-secondary-950
    灰度
    Text 文本
    text-gray-50
    Text 文本
    text-gray-100
    Text 文本
    text-gray-200
    Text 文本
    text-gray-300
    Text 文本
    text-gray-400
    Text 文本
    gray
    text-gray-500 别名: text-gray
    Text 文本
    text-gray-600
    Text 文本
    text-gray-700
    Text 文本
    text-gray-800
    Text 文本
    text-gray-900
    Text 文本
    text-gray-950
    界面
    Text 文本
    text-white
    纯白
    Text 文本
    text-black
    纯黑
    Text 文本
    text-transparent
    透明
    Text 文本
    text-canvas
    画布
    Text 文本
    text-inverse
    反色
    Text 文本
    text-surface-light
    加重的控件
    Text 文本
    text-surface
    控件
    Text 文本
    text-surface-strong
    轻量的控件
    Text 文本
    text-fore
    前景色作为背景
    Text 文本
    text-focus
    焦点色作为背景
    特殊
    Text 文本
    text-current
    CSS 值 currentColor
    Text 文本
    text-inherit
    CSS 值 inherit

    文本颜色透明度

    使用工具类 text-opacity-* 给元素设置文本颜色透明度。

    Text 文本
    text-opacity-0
    透明度:0%
    Text 文本
    text-opacity-5
    透明度:5%
    Text 文本
    text-opacity-10
    透明度:10%
    Text 文本
    text-opacity-20
    透明度:20%
    Text 文本
    text-opacity-25
    透明度:25%
    Text 文本
    text-opacity-30
    透明度:30%
    Text 文本
    text-opacity-40
    透明度:40%
    Text 文本
    text-opacity-50
    透明度:60%
    Text 文本
    text-opacity-60
    透明度:60%
    Text 文本
    text-opacity-70
    透明度:70%
    Text 文本
    text-opacity-75
    透明度:75%
    Text 文本
    text-opacity-80
    透明度:80%
    Text 文本
    text-opacity-90
    透明度:90%
    Text 文本
    text-opacity-95
    透明度:95%
    Text 文本
    text-opacity-100
    透明度:0%

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/text-decoration.html b/dev/utilities/typography/utilities/text-decoration.html index c627f2d4b4..eef2519911 100644 --- a/dev/utilities/typography/utilities/text-decoration.html +++ b/dev/utilities/typography/utilities/text-decoration.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    文本装饰

    定义

    在 ZUI 中,你可以通过如下工具类来设置文本装饰样式:

    工具类属性
    underlinetext-decoration-line: underline;
    overlinetext-decoration-line: overline;
    line-throughtext-decoration-line: line-through;
    no-underlinetext-decoration-line: none;

    示例

    下划线 underline

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    上划线 overline

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    中间划线 line-through

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    无划线 no-underline

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    MIT License (MIT)

    - +
    Skip to content

    文本装饰

    定义

    在 ZUI 中,你可以通过如下工具类来设置文本装饰样式:

    工具类属性
    underlinetext-decoration-line: underline;
    overlinetext-decoration-line: overline;
    line-throughtext-decoration-line: line-through;
    no-underlinetext-decoration-line: none;

    示例

    下划线 underline

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    上划线 overline

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    中间划线 line-through

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    无划线 no-underline

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/text-overflow.html b/dev/utilities/typography/utilities/text-overflow.html index 7fe8d9dc03..9e9b4b82df 100644 --- a/dev/utilities/typography/utilities/text-overflow.html +++ b/dev/utilities/typography/utilities/text-overflow.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    文本溢出

    定义

    文字溢出包括两种方式,分布为省略和裁剪,在 ZUI 中可以通过如下工具类实现:

    工具类属性
    text-ellipsisoverflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    text-clipoverflow: hidden; text-overflow: clip; white-space: nowrap;

    文字省略 text-ellipsis

    使用 text-ellipsis 用省略号(…)来截断溢出的文本。

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    文字裁剪 text-clip

    使用 text-clip 在内容区域的极限处截断文本。

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    MIT License (MIT)

    - +
    Skip to content

    文本溢出

    定义

    文字溢出包括两种方式,分布为省略和裁剪,在 ZUI 中可以通过如下工具类实现:

    工具类属性
    text-ellipsisoverflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    text-clipoverflow: hidden; text-overflow: clip; white-space: nowrap;

    文字省略 text-ellipsis

    使用 text-ellipsis 用省略号(…)来截断溢出的文本。

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    文字裁剪 text-clip

    使用 text-clip 在内容区域的极限处截断文本。

    The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。The quick brown fox jumps over the lazy dog.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/text-transform.html b/dev/utilities/typography/utilities/text-transform.html index 564202fe9d..7159f4e40f 100644 --- a/dev/utilities/typography/utilities/text-transform.html +++ b/dev/utilities/typography/utilities/text-transform.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    文本大小写

    定义

    在 ZUI 中,你可以通过如下工具类来设置文本大小写显示规则:

    工具类属性
    uppercasetext-transform: uppercase;
    lowercasetext-transform: lowercase;
    capitalizetext-transform: capitalize;
    normal-casetext-transform: none;

    示例

    显示为大写 uppercase

    The quick brown fox jumps over the lazy dog.

    显示为小写 lowercase

    The quick brown fox jumps over the lazy dog.

    显示为单词首字母大写 capitalize

    The quick brown fox jumps over the lazy dog.

    默认大小写 normal-case

    The quick brown fox jumps over the lazy dog.

    MIT License (MIT)

    - +
    Skip to content

    文本大小写

    定义

    在 ZUI 中,你可以通过如下工具类来设置文本大小写显示规则:

    工具类属性
    uppercasetext-transform: uppercase;
    lowercasetext-transform: lowercase;
    capitalizetext-transform: capitalize;
    normal-casetext-transform: none;

    示例

    显示为大写 uppercase

    The quick brown fox jumps over the lazy dog.

    显示为小写 lowercase

    The quick brown fox jumps over the lazy dog.

    显示为单词首字母大写 capitalize

    The quick brown fox jumps over the lazy dog.

    默认大小写 normal-case

    The quick brown fox jumps over the lazy dog.

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/vertical-align.html b/dev/utilities/typography/utilities/vertical-align.html index 75169f3cf9..d2759df3d1 100644 --- a/dev/utilities/typography/utilities/vertical-align.html +++ b/dev/utilities/typography/utilities/vertical-align.html @@ -14,14 +14,14 @@ - - + + -
    Skip to content

    垂直对齐

    定义

    用于控制内联或表格单元格的垂直对齐的工具类。

    工具类属性
    align-middlevertical-align: middle;
    align-topvertical-align: top;
    align-bottomvertical-align: bottom;
    align-subvertical-align: sub;
    align-supervertical-align: super;

    示例

    参照文本中部对齐

    参照文本顶端对齐

    参照文本底部对齐

    参照文本文本下标对齐

    参照文本文本上标对齐

    MIT License (MIT)

    - +
    Skip to content

    垂直对齐

    定义

    用于控制内联或表格单元格的垂直对齐的工具类。

    工具类属性
    align-middlevertical-align: middle;
    align-topvertical-align: top;
    align-bottomvertical-align: bottom;
    align-subvertical-align: sub;
    align-supervertical-align: super;

    示例

    参照文本中部对齐

    参照文本顶端对齐

    参照文本底部对齐

    参照文本文本下标对齐

    参照文本文本上标对齐

    MIT License (MIT)

    + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/whitespace.html b/dev/utilities/typography/utilities/whitespace.html index 4647a4907c..41232cd98d 100644 --- a/dev/utilities/typography/utilities/whitespace.html +++ b/dev/utilities/typography/utilities/whitespace.html @@ -14,22 +14,22 @@ - - + + -
    Skip to content

    空白处理

    定义

    用于控制元素的空格属性的工具类。

    工具类属性
    whitespace-nowrapwhite-space: nowrap;
    whitespace-prewhite-space: pre;
    whitespace-pre-linewhite-space: pre-line;
    whitespace-pre-wrapwhite-space: pre-wrap;

    示例

    不保留空格不自动换行

    使用 whitespace-nowrap 来防止文本在元素中被包裹。换行和空格将被折叠。

    The quick brown fox jumps over the lazy dog. +
    Skip to content

    空白处理

    定义

    用于控制元素的空格属性的工具类。

    工具类属性
    whitespace-nowrapwhite-space: nowrap;
    whitespace-prewhite-space: pre;
    whitespace-pre-linewhite-space: pre-line;
    whitespace-pre-wrapwhite-space: pre-wrap;

    示例

    不保留空格不自动换行

    使用 whitespace-nowrap 来防止文本在元素中被包裹。换行和空格将被折叠。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 - 欲穷千里目,更上一层楼。

    保留空格不自动换行

    使用 pre 来保留元素中的换行和空格。文本不会被包装。

    The quick brown fox jumps over the lazy dog. + 欲穷千里目,更上一层楼。

    保留空格不自动换行

    使用 pre 来保留元素中的换行和空格。文本不会被包装。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 - 欲穷千里目,更上一层楼。

    不保留空格自动换行

    使用 whitespace-pre-line 保留换行,但不保留元素中的空格。文本将被正常包装。

    The quick brown fox jumps over the lazy dog. + 欲穷千里目,更上一层楼。

    不保留空格自动换行

    使用 whitespace-pre-line 保留换行,但不保留元素中的空格。文本将被正常包装。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 - 欲穷千里目,更上一层楼。

    保留空格自动换行

    使用 whitespace-pre-wrap 来保留元素中的换行和空格。文本将被正常包装。

    The quick brown fox jumps over the lazy dog. + 欲穷千里目,更上一层楼。

    保留空格自动换行

    使用 whitespace-pre-wrap 来保留元素中的换行和空格。文本将被正常包装。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 欲穷千里目,更上一层楼。

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/utilities/typography/utilities/word-break.html b/dev/utilities/typography/utilities/word-break.html index 9747e47747..7387495666 100644 --- a/dev/utilities/typography/utilities/word-break.html +++ b/dev/utilities/typography/utilities/word-break.html @@ -14,20 +14,20 @@ - - + + -
    Skip to content

    文本换行

    定义

    用于控制元素中的换行符的工具类。

    工具类属性
    break-normaloverflow-wrap: normal;word-break: normal;
    break-wordsoverflow-wrap: break-word;
    break-allword-break: break-all;

    示例

    字内换行

    使用 break-normal 只在正常的换行点添加换行符。

    The quick brown fox jumps over the lazy dog. +
    Skip to content

    文本换行

    定义

    用于控制元素中的换行符的工具类。

    工具类属性
    break-normaloverflow-wrap: normal;word-break: normal;
    break-wordsoverflow-wrap: break-word;
    break-allword-break: break-all;

    示例

    字内换行

    使用 break-normal 只在正常的换行点添加换行符。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 - 欲穷千里目,更上一层楼。

    单词内换行

    使用 break-words 在词中间添加换行符。

    The quick brown fox jumps over the lazy dog. + 欲穷千里目,更上一层楼。

    单词内换行

    使用 break-words 在词中间添加换行符。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 - 欲穷千里目,更上一层楼。

    任意字内断开

    使用 break-all 在必要的时候添加换行符,而不是试图保留整个单词。

    The quick brown fox jumps over the lazy dog. + 欲穷千里目,更上一层楼。

    任意字内断开

    使用 break-all 在必要的时候添加换行符,而不是试图保留整个单词。

    The quick brown fox jumps over the lazy dog. 白日依山尽,黄河入海流。 欲穷千里目,更上一层楼。

    MIT License (MIT)

    - + \ No newline at end of file diff --git a/dev/zui-3.0.0.zip b/dev/zui-3.0.0.zip index 354e735ef636dda9c470256d28a5e62f3fabe516..a77f1a2e9ba0962467429f7fb3355200a37cd541 100644 GIT binary patch delta 588866 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\_SU(Nf4rTJ%JY&m+{tAeAKUyJ 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

    OuZ$?eV49M)wi#&$0eziZwbv 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

    Q@rBPJ%snOVI{~V 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 z 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 #W)*YImHe{WxgeV6{H<33E+kJw|T3HYCJ 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

    -Hfb@S$2{J2K5*k#=~ zhoio1FmjqX5?)Doq;8KiXP>U+jD^v)+;K)RmXx!Fnw41|I_qKYkmtlFh84}w^0((_ zqFhQQO3u*i)P(DkJk#Jn3Y0(oGN#Q@e?p_K@LWU22u70eZn4`$e<=su1XLN7@EV$l z!XoEnRWp=C=E=(x8nuEpVoq?|XnISxx>qiz)9gHOlZG3qlVyvaS2RSP+2xYYLs!Ui zPv{M=X_${!n%Cn7)eVBf-e5qDy?pBf4Q~4qlsKFn+=YSMIONf*ftMh3xek6&BeRbs2adou(*?sQa1zR zY$0G<3oj{#4F~K<<46dyix9mj?Nd1%5O9mUr^**uH4B3(pClJSWGR|H#fA%^0C&DV zTEr>Fz`~cymt0QxPGnNi1-C%-fFcHqxMH`q1u!c%VEnU8e=w3bSu3H+lf>{TdWC)n z^AoN&NdYUf+lpLI{T;IiPTQRb6OkC4*0F#{pc}#{pbn) zeg4q{`1|6)ef<6YNAUN(XAj};?%n6j)_*5i^znK6690LW6!_2GlY*}<@SpE27yQqh zo-L2?pWXDN!hfHP>7U2>DgJXm9rvN_MiBXQDN!2ne^xV21D7^F>usxT2Ex(&G9lg= zn$ruvaVzVk(XV{ttB_>&0QF&Ti8%{%K85Qn3_CCCXOLmaQDL#G=$ju{|WoguwNa^Xig$4| ze_qAG1^ln~=uvMn2{6skJe;dnk-Ce&#`x<&9ESJf<>-TO$qY)vZT`O9Q_*N7lJ29s zpB(Joeec1+!^h7beEY#O^(e+1B{L{x)>+C8uM|$AINW(RJ~JR64_y_@3z(Z1FgGvk z+&r_yV~0(P_u_Es*D?*CVey+=LpgTue|a8;;k|g3;F=lSGlc4U@iV4B=>MvIfKuc$ z9G0j0KGLO06@Qq){fkI_r--ju0iu+7+y_=G{6Qq^7C zwu9Di*yT(~+W}=1w#6Yco`;1>kQUAD29Eqw!EF0+TnxwW#@X=Jt#Op-Ijt(az(k%6 zY!`yTSZhMZh)L&(MF;{gruZ{aI#BGHS&~yTz7BaFQ$WBK8qkuIol`Scf6liFPW|_p z%XyI|uP`F@6Yo;^ijUXv6{%hssh$4sI!mL=2ESwNX{Xu|B&Qu7UaY9&# z#VCZO$UXNkG>C1Fd^c5jAJ|U*Vt@N~9Ss_8_E*U<4)ZbC7o>=gvE zGbU3r60PHbymFhu>|)l*EM^|7Sl0*TEI-?&k3;QQU^-gHckl`yBJR$}tA7Q-w)rx3 z=$HXW;+ALBmgi`3@wi(ng9Xr|rWlrAgIP}2GRvB&of}4XtSno;#Ic;=SRz^>jnq`e zW}+wb0C6FX;{yV+!vQ^wVRk+UgY9p9W2?8_+eVf=9@DMcTi^OtZ~J!dt?l3{LPx?x zx2b1p2tu2h?kpUNxc5n+iGP^N$C2Y|nMU0<^%T(u*bE-9EAPfz+qX~7uW=G@ob+z{ zubGpB#sx<%7zHOqcAOL!y%RX&19PSjl1G5P17i>wDzw`AtczWBt|f`ebUOTT2;wMP zs{G2CoBIXV&V{-s&?woP^tShj73mtL={!9r8zAg{bv$YdBYPd^t$%GD3si3NriL{8 zGEUZ**I9a6k{!2U<_&}+n-YI^+N8C> zxm`5w8D4X0P9(GexPR;Ubq%H0zGOou)X;5e+V<^sYt9$iUk4^u6PhXme$Xd0diseo zKU;Y0*^Ym?>tDX|FQ5CD=lO8Fmzq5W zD)X{hkRf5&oQ6aBl@F z`buwwD_jofV{|!ax;GfjtY6K~<(q((t5j%Lb6~Y)n#<>4YcHk{7t$}+iq1VGE4nx1 zMzNqB2vXl`pd_~#ZS@B7iszPfHV|u@AH>0^rsATH(0~6jytEoID~j&dJf_=oauaR7 zKac!Q&>+Q$O3))AQF$~dMnGsrC3+(kH5ruX@9TEctQh>vx~}N(5$EhjMfJhZ}M+wJh4U#|`9 zY>ef*ySvi4t299fJ-=C33TP#ya>5eDsNulBZ+~tX#2zGAIpu~52-zoPt^XRQek<;j zuDFvq`i8=4Kyqa{!o*?!fa3;!OLVWuLoO{z>9EZ0P1M1D+(F-(4qHdz$4j+Z=QBc_ zr`Q8?{KfgHbTx$s|9QSLH9j&qceoxJEtkZ|Ml! z5`PHTantSeRr!X-Y?oouEBOOLK(lBAbS^onz7%;5cDyScA3QQESSP&F^T_jA-H^@k zcDHCR&a0hOTQ~^KmQk!QxfG8|+eo0@rQ5Q!-I%hoF&#dMe${X0jo3KoySMQkoa9&g zXmv|V-QL?)ToMxKSJ^FlWv3au6Od?T9Dl;B>-?8=2;(TpafeS>WB)Yv#&*}<*bome z*E>wdT0Ae^Sc~VS#9Cl0bf^W~w4oOH9IuP?2vJZ8OPY!~_lh~!#o*-WV$R)SUX^&= zD&~e)%ni4g%4yLJx2W+Puic_(^?gQe?6Y|spw2K*7e!1!j2|uICUm6aas5^GSbtyi zFhn;{FH)fxFH_U5<@J5lD-UVN0~K`$h?eOnrHtd>LXC=sn;@_v+$j}8H%&g^(7ylC zG7?8^NzZQbw(1~!_?NT^73|v-aco6+)4?v-V>E2moFZTY!CZD9eE4AJ`IBcxNYl+C zs28^}4KYq2;^;LT{zX&Fqnq@2l7A)h{HXEVExP}MWm;UY(ia9?n$Y9#0tUA!@|VpT z;8uMgXvGY)Y|vKGSOk=+4G^9F~N4Uvhb|=OJn${JaAua`k}UI-=?82 zz;+-%ldNtrFllgn6-7pC!{$&b%(Vb>?By!iH^^XRb)TBB3$+kE40BjQ*?;9_f_Wz+ z2W-!MGu{J>60yNdd4K-LG}pFA#H40}sNq+=XX;{-X6v?dZWa#w_ED|vvJh)| zO>ZH?M`|US3cY&K{83 z>3iL-*VcUP3T;IOJAYC`-|Cw41;VTtYCUctiKNFEa6}tbFJg(b5wcubz~GCb`xOn& z87?Ua7KUf;q2Mw_ZNq**U<|qi2tW^aL&DnZXzHQ~wAtBKl;DB=e`gDp_g3u>zK$C8 zN6vHtwoJ`~CkQOv=T39iY^%;<-OY%@qv2d^rx4oa3M3cq6MwN=>jxKsGG9~qY)){L z?aJZAXyQXj$eaWN#h2pc#MhUagKbYa%r7ENqcdM!h#nyuf4{YXAL5D_0n+1>{sE2KR%m_9z1362^ zP_-0@SR1uP7mX;ES4ndCV9kfe7Y>F zYu=~RsT?>j_)5xg$i5uc@{P+H z>Ten~0ioQ~%(hbw3kr2Te36Q7;1MywAgcEteSh@f^M?lyAMZZD`*`O8GJ0_H{)6}K z!hHmi;%z>l<*KkC)E2%LbQ2ax0V&ryI*c)a>qygGxEbaE;KP^tA|# zl#7X>p4zAwFrt<6Y~Et7*NxsH^wsrf-$M`RyAvC-THCVMKz%n0?}oXnTwp&|J-(kN zgrO&+IipL;zKK5=@I^-tblGz^UiP!{V}G{}0 zthi_0{a@c4slwF-V9I@ot@=U_tf}Cw?jNCQ3RyAQtokS3(S;H`Q#>L3cJ29lG zj!ua_R8=Y;1@oLiyC}}XwDc;+VSiK3ShF;4M8_Vrz^6&dxo38&dy`kG%G`T;*`OC{ zKJwc!pk|{YCmSblDsAXqIP1S&HccW9zLd6UOnz?UCpqvMo>@~&(DorTDz;$|T2##F z;r)Ef^0Y6G@xyy|hr-&Z#xpV6w4ivoQhJ5!eUbo!Idm;JAZ1xMU*j8#XUNSG3x$&Q-eVyTAJ#Zu+iq4Q+F$C8; zX0K4u*IlJvYc4sTt0~{*Sen^c*Qof7NtWgi(PGW$2=!A%OoGxl&E}zzo=QRX5?y~O zNtWd@^DaT2Y;Zs#Y8K>fZhw=6n#9Y_oknY1wQg#Op(Rp0Qe6kBej*_07I?TU#sg>8 zmqj~o7;dpa_s&BSFlmwicQYXsz_oDdrbnb{q{vecCaM|6NFa*qgQ7r#(oV8ip~q!xE{FDm7WC4=Q!HR4)tl zs8nZ#g&z4}>7@8xjekL!&W|l8Yff@>;njXe#OGw@6=cV{JryI&O7ADx-uQu6A2MPD zRq#pg`yV~*vAl}Fkjs=Etusz-n4$`UO*5D+SS+j9zO(z}ai5$j!?E$f z(yfB83;eUJB}cIK6HP<~NdRF~=xA@eKkz@K5p|c}-wGCg+umT~Fr<1wOBv9NgIp-P zqRAUvczP+hrxk@pwdIdNMy~1&UaRxC<$oc(|R)*MHlSS*+2j;C-nwLkF z{)(STliOK;NA-&z8J&%DxEn@8&?L)nI*&ZdzFXSnX4oijlL{n2^>$HWd5O9l3h=!3 zijw2lpsur2q3x&)Md$Q+SW@c8w4Y5bFAsT1m=rtrQZu5Z$wPEQr?zu*G{qU)bPm6A zV^wkvS6JMHH;r^8Y-Mry;KBDe_{2^8Cou-E(u-k#(l+ z;^^=Ru7}j~6kz+ZbH_IqisAVQ*^U}U79QQLTZ6T>G*ctx=7?wFJAq1%US!*{Rc8w8gacS|eZRP&DS$5K_ITIpV zy(5tt*WJjX=CxPIw0Cc%t?oh_to2W~`2)t_umzR_)RAyg)w|2{z#=p1R%l7G2gHMK!@_7pK1<<-f zI(`Qm!gtYF@J87<%c>bc;BN$&%{O4zfzq`u8JeFs2GyKWgzGs1a@YIFQh+V9F7m%Fxp|&iDF3IkT&69ps z-cPG!JWD5-;ncO|=&u?%x!g2g7IDOaDVMR9lUR;J`GxopVP{s_xInjtn>kS}%-jNe z2aEz=#{qH{z$}~Rm~B2g=o_kHuj^rU@pcgs{vy^@Orh&M{ecf>LCn4KZd2nYJYJv>*#orvj|8kRs`n=^Sqd5#jy#0ieXI@ z`m{3xH%AK(hU^?1P~!q-mtme}u?}ULdjiB91c-TrM=Hnf#7@AIS@>li`C+TTnxHFh zkuS^n1xRBL$*}qS(T9W8!2vPO{C@2zCLNXcFyru>wOTn`XXvE7ag?0&-rk^i(4N>A z)vRxnztPoNzC#?y4J2>yr@*9t>T0?#(LGmJzOI&OZ6kru&(M!w&7)C1*vt2=5$hCP zI>?b(hV|6RHbQXUr#1YiZRn@G^qoa?O8GT_v*RC5crLxG=r2%^)Bek9fkGa=D!=1H z_|ZE9wgUPuW!p7mPzeH3-}gkz5CGE$<=wm~U}&d6i}&^!d+R_te;iMLba>YarfBfC z0CG<}K<C0wN(n8;Ra?K=!Iro=o~w{ygb8(0@E|rny7=A`x+)bx1NNj z>I^wY6UwIOuLMc zY0r|DV2sL^d9dFgGKf4!E@H;ND9oE{3f@poMo9cZ3;phEewR<+@Hu%yI_kx$rs(_b z2ho`k$dq`RA$X4zlbgv*97EDv&(~NJO$KO=Q#FMZX7>HJZES~s8BINFxYL(r-mS8J z8;cy*P7Cl9otSpKo*vD8T8Gvl`8MY`c^!7RCgPCG;-T)*yBls0;>K~+dn=&mLJlUx z{1x7a`Xg=wI*wsU%;IA&RJ(@9AEX!eaoCT=tL;=>43G7Cc|fFm6i!jUblmpQ2f{gN zDBv$IPqo+nz?M^gj+2uVS4nu$@x_Jp^M_L$Eh=!*O-C~}c-6y?Di6zH;zK)p;6J_V zBR#w(S7wy=ckG&Wfqt9u^ zWzbDhCK!g=Nls>xnKm4(*Jmg*thgU0g8BznPmbJ}%)_V}c>FsH{w<}L1T?~ed&K={ zsm6o{cD!kSTc1;JTOZ1yj4`11Py$U0?TX$p61cole>gByNaq^V3Ko%5XFx^?m@BXe zv?}I;N})&~L&J7LV(}G>{PTp3fm}Nufy@G5j96MR>;Z5@o2AGz@(mOyRv+}V)wfv4 zxp@=o+@w0`3-~h5P?l?mHhkkyqUaCc0)6<)+MNi0-&)r-ik_{G=7586O!5rR`(KfA zp)yU@f>#4`;)pG3+4zyCr}VvR)A&lA1a__|c1_;f>-DBoRT5!q3d>MpWjsa3nB2ju>hfC7wS z23~f5P*ilEn_CrDtBz%<>yJIhK8b`66x?Q*hj_KHv<|q`R~c}ddm0*GU)j{l#M>gK zEXURm!+Hul-uuXD5Tw?($zG@F)5ob8@bIwSDN@1bZsh;|IA!BnjZJDr9e!sSYXo@) z#d{2w9KS(#;`+b;?T-+01eG0J&OiLezxmm}|6^Sa^a_STYWR)c{``ObyU&03w*xg< zp3G6tORAeez;AE-w;%pKja>cTe)tDaH>~2{{HLG&#_yO;PzjCV4X(a7wZHb`FaGs!yl!fL_G|ysKgp?u zcK_0*mdpN!AOGDiZ)&-UFaFJsUq7{fX=BUsENofW- z#kjNjjDEMK6d!tB+6cKv(MB>yKZFaY7-&w}@0idlKIV5z@-iTVgbiSdyoUGJP31L9 zrP(9I8m9t(O8Z^Y_+=Z-)7TGcW=ylRf$s3#riU}1@os}6y5$UlK})i?&?~`z{f1Ml zX0hXZpkpr5!GuC&3s+^RAC~yA#5hi;@Ho3ujL=R(T!R0o(N_OM;LQBDG4t`Gd+5XA z`*D+C>!dWqmF!$*llTyC^-4L7SrWE(QiCv(XxQrHIr_g(k#%9Op8VvQS=Wwd+=^B^ zW=l;Ke9EBF9!xNE1*BWCC7@k@E!<4e^)nJ9o!vHsQY&70%@5-)?{CwFAZTT1V}P*K z@ypUM;X@4Lo2R7?xUh5qkviy+Ma7VsXxu(PJsSDkH!8bdBu7t9G21m%m#zuHXHU=x zym|ypmUwhe2^+HMz>pHL|%&t${SS}>{wGR~M( zfo4pW<1`dFo9b4|af#yRG8Vtjbzk$Cv0Di=H9MIbV49V_0kXAwm#OOt9e-R{GVE;E zDN@B-jmqLRIYc_Drt@&{Ov1xx7`7wj7LU(5bRz`YS2-{1j?(Z6G%uZ_)Os4a4n)R; z2X%d%kCrjJ=1-gtnQkI17a39bk~{^`mQp$U+}Mirg5oBSK}EcsO{nn2V$8&V$DdYk zwSHBQBM$|!!NC_JIHY`Z?|%Zf{`Ee^MZzC5HEMew(@JmYUeN&xXoqpcaA{fPL}Q0K zh?)sYzF^L?kKt(>**U9S022*avx6M zRyjb5Z{3Q9+Sl)Z5^LW#ysHJ8B+#{87$T;nAWGY}P-*V5yQ0I&wtv5gx(@eI5P9(u zEcAl6g;A~KBLtjV3oKV))CB7H2v084ehoIf`YzdqGTjVi_M_g6 zwebdW$LE2=pgT~U9&?#5+_zwanq0j%MvaI5D0%6#jD4nv+mY2HVpIpIjcUh!yc-wf zD)O44y8b{_v{%}r<$sZ`l*i5+I3s}AQS+H_ciha&&fs|xOy>x?Z~VN&h%T(uw_Aol zo0a!JZcr;T4sbg+i?VY?(mBvtlKN!Yaz>Z$m2JVTb5!-yYmTTne{OB-0W02x{r$QD zOMf8)<~169E}h{r^w8o010_UEV1qQ>>|xpLU>2|ChpL9fRDW=i+f$Tj*F&GEZz-Vm zgVwhWL52@u6xWtco9oRAx0~|H@92!TQ$`C%p}9a~)BIHQ10U3%}&a%|Rr{FaB-K&ONLxI&9RZGaXKy4fFdV+Ng$9Li_9TDcN9dVBxN2+sK&AXQs_adIxGJk5=Yjh*(+NlrDDBHhxM`EaV-@ z4j3Ji&sL#4&YY~hx#wV#TL%;LrO@y6<);6xx%;vGEtEI)DQ{}ICD^OH0;db(Dw1nQ zfEtOZUVow<+4ol_8L3E&FuAv`wWj2wVSeSp$|VD(KBrt^z?1}JoC*nBugEGW=w$Ai z`Q{gO=YmD>5OZA-kMFGtr-K@W)+1P2l?4l(pc6_bD3s|c0$WpqP}SiapI&0<*SjGZ z)SJ##QaP)nva3X+y`$L7c5YZ1uq3n}DI;cQCx5PB))sT2NM(uvNkC)85~R2DsSic2 z6`;zh1IS}Tt`w`FfP3H{IvJBjgkOLl9Ei)@RJ8j#jFD>TMtIc-W6`bWJhy!IUr#6(zsX1 zyw+ZQ7)#((XJv0niqVQc8x;fRrtwd$IOoe?h2B$fXJRSu^oMSG01u9nn(-;X<()<9 zC|#rl2IoA72lUk5x?3ET5`#}mh5WYEJbxx{g`*-vKc9F$TGh7H=Hf9JftQyl!z-N! zlH3JPAo9lZlSYmjeZhKqFRMk+>?9VYawnk3%>=0ep2?sSlA&1=lrAl4}j>dL+n_Y^!ns$`kM8m08QGeot zfH(ZZaZX_fn3M=>!RxY}A=@H^b|9vOX{=pANwQA&D&%kWN264$ZJDUfmd7s_Nj4YD z7^>Yej3lejHAh=sn1)pPU7cykVUx1*;c>zlI*cxXJcd4c_F;caP819;2G>#tclPcn z99%_<%W1Za!}_?}WxT@Z@w9dW>whx)os1vFK48)$NmZepP=KXiMXJ*^q)cWLX$qnj zR>@fskV5tA?e_T|N{*kzi%hF(u~XdPgRi4djrAQgCLoOVne z?9w>PO9DNm!3e4%DQAH_tjk9AWn6YwUpm#7QhiwuN?m=~RlSyCO!es`!+&ISMm)Aa z?JzePGs>%=X$T1hsNvHosnYhF#)@L!#HF7ZIw0&c&JD77oCB*9CMTtH#=^X;TPa<% z5sPjSN4m*mVxBEhbbRK(Wv!K1zT|69Gm+5du+-da78Ckn9{H@7>EDAP*|M*!#M4(P) z)3taiOl$>ZuYG}%4h$O`;PA#Od&9+EZ)9ap>sSu`rN4e%JL}emRDbH6SQ~tj0jIWC zNES_|GNh~uS}dOqwTR>#_cD+=9EF!%$scT!u2U)^e6Dsy94(^jIRc6F>PniP3^)_$ zVrUqWHQN(I=`C|3LYy+{E#KK_H8#lV33#*xL!@_(c}h`gh#k&{QN!ykqc*y{^KHsgF+JJLCCdH5%WPDPdqmRwgKRO$_d zEI997*>2t#XcdEZ)5;zDPBsnHCYk}kv;Jg`*wg(W>YwB%A^Ge_{VM-3KTC_9q;&97 zt<}I6WJ)%Aaer7niZFN#yHOA1#34QeUEh#n5P7vI2`o!ZjK}C52lFw_*fDrlUS-9LWp>&_j|%Z9~29l9c5ts>pB5 zkgmJBeWAc5$jrj@>~y`-tjfQ#J5WGt?O!KK*8N1Ff!S&wJdNolM>HW znMT&H%N-?aCgvJxyu4Osh@w*0!z^uJbCK%DU}IXT*67T%ctkL}T5f_1qt7D9T`dvf zg=ehXs(%&Ki3e}|ohAKr1}YBd>T6$B{gcI!>VJAde^U5+lubDm?M~6~8_m*HJ=`hU znU@-UQ`|MC#3JxF>eoBw`^#7`wx>m!ewJ#)Z72>HBP=Z~s*7-SZ~**nl^+~1%IJGW zCzb>EmnvE)=EhD@tKEy^m-!rs#x8Bc=gE;yQh$lz6U#ZGhwAvOr(SNQr#iQiTS=gv zx|x-r%BQFfr?AHuQ8uWchh9MsbwOV10`<@>X{W$zTawDF@cT=>*q%_Trd>S|^RX!( zC`s!?@n8dBNsnKNF;^p@{>5N9_l5V^omWc47j;nA!CU&o&9ALYJ zj4w162T8BNhguSgJ-uiaD1uervGhhHk&lzp!O{H9*4?YZT`sS5 zcOGMR;L0wNqd6{%Pt3A-pO(dY^!Ek*{eP7H-lM-C)8CKi?+5hv2lV&b^!I!8_dE3W z`;>Otpp%^}9CR{Z78d;zSh!@|zPz;Hix}ZJrn_IGpHI``DZCdAuQrJg9DV`3>!^yi z8Lu7jF6yg!Rc5uPBHLNL4NwY>e3$=AeKR!}vfjl!FZe+)Vl?V!>&QUTXZ*N&IfNUlz`z z!N+j?%p*i4!Kgx8N=_f+J;%yvzkkj7+g!fYnmjie(Yaf0+WT`FJb1C7A6hCDngpWk zQQoWa9zF{O{IZOI9oB>9u+m_rEKO3bX*-&klU7|c-Ybp!0z;WO&_89oCO>n6eJv4= z;3)jADE+Nq0JE|0w(h&jkh`-m(_M+vXbN(Z)3(x^X@S9EPNcLu%XcQo>3=+hItd>e z{n=GQ?)!*+gL91umT3hD^h-LQXD21_|1*4G<^&EBXXGmx8nldrOEt5;98=UZYA?u1 zyc|y6jc3Ejty|GbDx9cEiV1`_xLU6g?ap(6V_m8VE0}Y4VKo=!0WZn}v}Urhva6k1 zz@JKfQb!*Ozu~1h?BDHZUw=6R`EI;TQMt~Ibi{8HO2a(7?YxnbISJNnw~NItyfrVNos*J*F0#$vhu zgeX77z)l)m-g_&Hpe7*A=-ox>iyf3ot!65WtZhZ|#KO?eRZ}pfS6nVK}|K%#g#l=u(nS z?T){2KVvJ)nP2cR8K(#-9m+kGa?iTTJ+#KC2)wDc42EMJJthBuFCQu3AfIV<9+OgJDTDKlbiW!?kt@MHp zFa@}7B{tqJXx-Z#$vI1DVLhhpxn|m)a>-AV1zO*qyWCqfk$>5~Fez70=aO<&hvtpP zUnY$zG4k2?)jhNUL-RY(*AK*}h2USc4&t29OEG2BC+fod{+^;NOZHKfpEwUWKhu`Z z&$Oj8G1)gb9h3RKuCJ5j)P-d=4hr~yGsQF?@?CmCd+Rjb&>eOXt#Xu6>qWZzpaX?d z1Su|vl|aCLIDZ3aG{_o-qdnGfX#)w<%gaMqdI#dzas<6R^u1widV3E+AzK61VO_h( zOM({rfIm0ob22hLSh`%I-54`yHQRkdM9~?pnpCD(spB&)Q4&eZOaK(p$o78 zVLQTk=%nimSHP7d7pU}L#IP}P4Ut>=9G!Bo^bNVe#ssd+wDO7_JL6H;m&=Xv8SIB0rtA_;(1lH?)wdJ);}L+{fo30mnN^ z(;M8NfuMq{`&Ro^SE4EXW`sKpJ^v8R=43$m><65yp#;Ad3Obv@{s!g23bYeZzH6hW+p|zIhYCkJ( z($riX;8(3+=V#|aP@LrYK#AgDI!St7u2z|CrexUoJDfGd&>gAatEZGaN3cHe*U z;(zhM(+SSdi_eCIayQruV>P={zu5XNT4d!-vsC z4x^<#1zC3-(&pJ1)n%Qh@&HZd^52{f*;H{poz&OXKV0?#0}#>h{(a z=ftgbPC_q3>gDBT$9~YBZf?C6Qqe^~OP&0H=sHL@Go_QvVy+0;D>;##$LX1TnSZqR z&b+aA#+EL6t!r(nWyhxSX$0o#UG`a>VKxD*YdwzH)j4>_9=bBlOMaa-J*G8H56!NK zOdzSOKh37i)|~>wnU`|5W088e>Fsq2`~2q3nb(DR)J|gyY-*2e5yvF|)(NJR)|-BY z_>E@M&m@^68@%{8-t`kux0Y?8hkv_xP0r!QfFo55(G9a}VY<6q4v^Z>5BiJwSPAyDaWrBxs5%B@WeH_>Wu5z=)Dg!wRU88Pt+PJsUaNK2#JzvNxPAFJI(}Aa2YQ!MMzo8+&>huS}I6R|v~)tA*<%vQ@+7JaVds>oGdV zuH@lT3_E_F zo+Sklufc&b6lid)V7h^`Jwo_vy$;q$2RCnipOWjY>=xa$i%fJdPJh1JQ&xCPNzpN> z)md!%a6vNe8U0@2<7U2Qv>SCKYd+&)HEHQ4sB_0kUiUpsg#KJ+MNK1{czq{6)_w;) z3YS#7F||zRgBJBmfYk+BIYTL-xdj0|59+<0ef26n=#$QD_zHWOtfT*G#{_SRij7Bv z3VhW+r;&Trzo;c$OMgJxtUw*o+k~Xvnk3EqJ@AlAR107h{n+CqEH_UzAga-GwmRGxCWRS<3x#+VZ&KXq^ zny&JbU1W52M5m3vca>iE>y|kp>#T5nBTZ*SU6SqH{uRB`O(LGs4T|w3apO}! zH&0NXiVBcIt0iFWF;3V$Tg`c*ijf(TG8%*hMd3a#2x&zXgd55NCWD50sK$mFr#j<; zk;h72_>?oEv40bo@FCmCX@bI&@K-T;(FS!b7Nzu^cfW=Sjeb=RjJ0h<&1@dEyu9l&Bsaks_F3QuiIg|mO{Guf3#vDwS94zo7!!T@DOv#*I1E6qaa*jCZaZ@RO`o5$^@Y=5zbX5*y#GHlYy?&?xa=NQh% zOvEm`{FSo|h-a=iH6<_}Y#^Ik3NUVnK+AYON*mCyW*M@nWfm_-PRdpu647Svi zbieXA@s9Ll;M~>`eyigoTiiX*%0Y;3vHbh;ax1zuV`Dws=S%Hagj|}}Z`&8=a3`w~ zEDvsSK7TqX+#qXRdoGUq@*31M8%>LFieT<^XFhsw85*VKQd^sfQ92J-uodSQ@Xu+I z%~41DLO3ULLpUps$Ec%~Ir&$X`#R`_dwhWEGj<;i>+yUEq$g~g#?fd7B17-C<>e;5 z+o;!-488jJx|ip$E*DYFKDrIs>pHPkmSt_KlYiKB)sYm^H?kIl7F}!O)}d>2&E*;0 zI`j>&i9C~=hhh+$JGQiO?4%lB$`YPw`|Q-S&rYN`zIWJ(U*77H+tfy{8jW>&&+S~X zC^~R;WMmkx-41j#e`MH}O4yb|3eB+AX!M6?P6p590E0ke1<#yaHygZDpPV1oj_G=H zYk$qy)OAyI)2W74X<@TGvB-tZY6#GsVwQitV*Z2FJzXOwS+6-#!?KIEnO94jg3UcM zz50CRs?Nmdo)btx&G}I=+3uj)l~8P}g?|0vQR#z&G|z|?;48@6VDcFFJGp3XHNrZP zP|G;A=?;yh^3eJhnL{)zbsocwuX&jaO@Cm$Wc4=t+sQPDx}g%24T{I5ugN!P_YBx4*Hqh1ZWh`tbQfxVQWK?&F;YsJ;FuwK*9qy=Izhj+h{MS>|()n*u&=;eR{c z(CAIehwQdt$pb=~3luU@+yk^gY&jat%`N3*P8Yuyv@z3(>&YDU*s$-bH_?3y zy5K7+i6?!OoY10rTE!ow!>5&jaM$hJ(+w5<;=YH`zS8j`Fcvhk0nj!K?(!WtPr`+n z^3+M2iAfX@cF48NhN&?M2hs>MZ-3JJG6xzTBeI`S7muu&#zTc)d8>gO{i+(N;&WE4 z$;*p|wG`1dY6W9rG33<=Z|;*&FG*JS(-`${tl(vvx9w0Z4AO2xM_kqMQvvv=h*DoB zq5;#~F=mo*U`apI6TOd?kXUc_QR#|E5iF!4&PJT?Iup+t7Z)gr3&Y3bDStl#fu&(z zXYdwX^WmQB-eXw;4U1|XpuIZSKh&%|%z-e>j=cgsSXRPAA~aI?daid{b9dopmgr zFNp1jJ8cm3Ir=&okMm+8RIkwrtM`Zkk~-iw{6(M<0`ygT8AlbzM>i(x(j_c-ItbQ^o^Gc2im8CGC9k|7LHV|@mFxY5Jq*2C4K`fl7bg9a;tdr^I! zUG2Doj=FFn6gD#m_kV$}*3xU30`pSezT~L5_;t0Z_Y_)77#oUyVJitvho92$iO zUym4d1zq*<3$9`S#{SVjc8Vf`)TQ z=Lwukz=G(6I}N2q5_N(Z^Vqq=<-PV1J$TJ~FS7akqs6h5Xpn)g7!^mmXFEE9Pq_Roanaw3=Pa-Hz}?gGK)4_bTwo2b(f$&a+|k zJ6g1k#K*6BU3SfV>%jf$`n!gY&Rr0>#xu(0=cEcaDD7>ED5yI=LimL%zS(9M(5!qP zkMrloVN=6g(2-=6<#cX!f{#?A%H=szDpe0dV}onZFMen(p19tYLm#6CYZM+gE1!W} z?lXi{94F$vk=ta{ zJ~{*z^;L>^3e^m`L8q5o4&tXFgNR6*!~p}BQ@G$fR`Hd4b08oJC|V_=y_{>oYV5sv zT!aW1?TBh_EA&lIBbYcE!MURmoI4u9xvvqN76@&*UfDNmDf^}ze|D40!rPmugZ=oU z1>6|su`$OT;1c_lU^Mw^+pss7sA=!Ehq{mE!q~WZ*nv0`U<20Z|!W9W8fm@FO#B2+se6yrT`J_ z4i??751ibP))3XWf7>u@U@4Djw+r#r@uRYF-w$OEx^!Z+3TR1V>OIWq3s*t_y4Ln+ z6cn(55kLgatTLsvp&sr7m8~BWWMBI+0@yh{?`pFkk^xPAugH&y19k-t`*HIXKhd7C z!*y9?8vC5Lwxqo%jfAJY$4l+GMx%xHu+q|wFGEC-eq=-}e@J+3gv_t)p(;=jUTbI) z9z4c|(DQ8|bGeMQFLuyrU40?Wn|ylgAeVnmTs;So6g)pKisXb%jdlarhPzKyMa2_{ z2L6!c#peOt9djKtScArm4K{!7>rP|ICkS+bI^K?T(fyY3t!Z_t1J9BVtxcnXND-j| zIh=ie*AA;ed>wN zLL_8On2!A1@PAzlUh6H`^qi@94cDV_q`LVVSkNz15WP}M^E`o~HD?&qC9P?ESl9Q< zHhjXX%7;%Vb^B3bbmU7K3@u*D7d&I+oD46g=P-_wefB6G1N7{4Xm}%$iYem}ROU2M@@%tV{!U1<{?%=2n?w8jMuQ$QE zi-`%=wQ;$X7nf_qyLj&%wY{ab-%+=>)a`fFTU+X_chuWk>g{*bJ8*w%3;k%}C;U#| zQn%B$fA+1aBa2rxOKOF(NN^^)8+p(1Fk?|UE(vRBX+pJTF{?6cEd5|vJEBXjFdTZx z0no6$mh~Z_-N6C2Bup0jA)&#fqi%S+aE8IRse*sRQUgZ@Lmg8@wivaRwQ=L78t0Vt zCuxMFJA9h00&yv!in)S4mytR^;+fG9K-XS8e_l9_`EG-+9y@qP0Zkk=O^&Nt9fhzq ztQeHFLdaj55ONOMR}z4(BeqK~gj}$AG*(n@A>$HnsmwVuyQb;fw=st(&xYFB&m=J) z&IFMl3{Oqc^F~ikSUT&*dJiC+GaNUvfdoZijgi1!vJv`RwWlgD?kB2hejom_K ze*@=A+IY&L@v~@{AfNzd2ZM1q6+PcECO!{Ml6K5!8!z3E?&g%A@|2$q` zUNBdFe83+c5R_m?UVBcucU0u)Vesk4n zXc0Ph#|oV^2f=n=&;h5lhh{*=t)*Ese-mQ&MTh>Zl(5e4+F;Sg*O$tvm%IXjFIa>t zBOdT(o#0L{;(HkxMZR0~8D=6hpy8}X zdrVK8;6n~(wD3XhtCyF10g_eN&xG6)SlX@v+}p03P1>nvY=I4fL`NwEBIlk)so9hx zk}k}+e2LyODekDD_Rw1euEcy$x+CW&ouIsV6%n1w%hGG;fv0sVf zx_+y~peF}I=~jl8i+p6EN{X-L(O}ECbzxCP!{&aNMu@m$YA@Wna|d@Rsq1?9Ohc*B zhzAO;eWf_<-L|Tn7@LDRP0rwWu3$a~-(9*CXRw$koZ7+5d5y)kF~l^_7!VML169k6 z-+2)~D@6%^!+*nuxM8p%xY0LUP>AyaA-%qgltiTs;CuS6|G03_XBxSw z8(EuKHh$R1-F%!T=*#5XVJhYM55GRUv1VWVq%>S5oPT-BV~#|oZe$T^oV(B0dbK&v zyV`uEcbnh2EHs&)#rBcD1j;{#Bjv3v%#(wuv=FWtmsD~@=I5}*i9iD-MRMy^$tsPn zgpI_vGB!qm!GnUZrEK}RK>)7$Y&i)Jzj6RVK)t^LYldPeJQD?Z($$jhtC=*^ne&d+ zq4H5J?bGg)aJGNOx&*2tB3cRWI1Z0&*>0sFl3qb4Y?y$_MYh&DDsRYPHOniEkn)*k z50WE|?`Ck`t*GIH6}=riD96c38YrHYV&KHl6Xq{B4eg}Ip>|9ex%0!v2#&i=XM`>U zPjgH?SSt#rHnrh}t*nH)$~7sn{Sw*#>@F!Gg2n==MLB=*7?lT7(OqnXI!E9;|^>z0I{VoAuPncXR~vpWVN8y_MaOAB7R2PVP0jtS~oetjtbB$`!; zg$&x|iaZ^_4KgcZ{7$#gT)6%Pfx)j`Fe|Ctm`F9*Q|5{GXmZ<3;?T{T4$DQkuC!fX zm~r4>Xpetzb6%$c<--Q2%rQ@#(1-YJP`U`@PB7+w5aiQoa8>rP&QuWc z$j+d%7CFHZ?rUOX&gO=ZNsDXid$>G@d6Cp%DN|Wt@Ez7eKVg_(=$QBeQ~r~(_S7`l z8Uuf$jORp(q6|}Byd#ZZKt!`NLB0;Eqk+J|#008(9f!fxmAc`a`)&eL!%WnjpE8SL zX}y@T$f5*?Te!KUoP*mG!4zOukB>8sk}1f`Z?$eaQ?8Dl8RbBys_95Uq;>1w>TYkK zMgkTOU@)zX?#s`mB)%$I`;bg9!i2H=uV{a~JI9C|$W-FIyoySAi%+>LVjyhtwMoc6 zCg)%^cU`+8s?F^#N&x?vGI1)x^fY-tlOWc*JUEJs^RVH;z_wm4i;{Q9@GNqnDyU%A zR0jLL;a%|>*zlCbCJhHKQF~OIZAt4ft;MGIe#ZDq!W;U@)gBj0^8m1xB{M*a>?nVa z)24La^0U2VlyJO*HM^-nGi|d>zqHF%yJLplq-gGh!**e)Zl=3C@N3AG&i0n@n`rXK zurj@n#)_=I0ukzwu~}T+yjjo@JQbO85^v5(=gGv$*r$NW+k~Bx8@S@g0DJktkJC7D zd|T%V@yYFb7UF9fe;g)SUe37bCANQ?P=DuAKPBjluTMitXZKHQ6*v!~XfPQ~yANJ} zO*+Ht6qh%O8+_Sz?Qy=EPD&c7*~ot&TYv)|8%voJ$MQ7bRZtIlg|>}a+xY}a*f{Nv2J`|I@l4g`NOPkhPamN|76Zk>5YPVY*jXZmC_jzw$kV1-lDQr$G| z@`Ne0^8ILNQ@RU5WS-ELgt0EI?7{CDptjbRqr=Ou{_AlZ$l)Gsu4v45y%O3M#*I zMr1MHH2W$0r_Ab<(5rd+WqBRVN0cr0rp3%?F6WoU)R?fJjwR%@b3MOfGq-h#TFCln zwt!fmqHb_JGAfCs<#S8RF$f)=Q!bySVUA`l7lcreYHzY1m+F8*>S*yE$z1e+Pkd1NPj|iDe?HcUi!#nKOJFh&MsKQ}@q{id zaEX>i?lSRcnKRj2A= zUmst`HeTzZTCHETw5VBLBf2{k940TywE&opu9e3GFyd<<(AOvYRZ)Oedqt{KOny2!Wo@=gCQFt`}&2o#O=> zVOfa3X~h40qo4?b>89CnES01 zNhmZ>32R(KFS=broi4yp;|@-MexuIdpcjZ49P}WiMfI5%&h$%ORM5L?Eu;Fg(wm0Q z-qd0COOFax)nV{{)i!ve^>+`mqIOQ?erlvc8&-?xq!? zE5N@t;1@?Iru{CCnPW1l*vJu+zR2bT)P`Xx%;lDi)DdYmQU;?yc-b72;`k$%aauD} z>BN~C&>E;>YfvzjEk!&a#vn*@d;7+KpTq@X zw17k#YR%iQidVV_;6^wlx!{>MxY-fk(5Ea%StGbaIx&Y*xq~-e=I57}rWAR{2@@C< zm?<(J1xSplv^dTdz(NIs#GK&H>Ek9jT~VNq)--=Q`K2nukULYtvK@VbgNF&u$)!81 z5k`Bna-8D0{gj7nS4P97!d;IE=@N;GFf-T)9G{yvB{33T4o#kgaO_X!PJ&@o<5z7b zXPf>TF=|F5!!4tm+Pu|lXPF~DG`zuctL8@3a=orv3*R6dlpf!BMH|aT8-0n6J|sCa zWS4)%N*M$X$Gbx7i!YEYXOu0KN`LAlx2fbl0~SL*%f)mVD1s@;FG z(4*l?m4zRgvRoIAc4;0;C>BO8nWgVWjiHB_tDee$lT;GcY<8(s45|k(IC#Qkq)=%N z7z1q4nry@~13w0rPvMGTZmhPAaFQ_ImbxXrF6|z5tDCmb($@5{;-NeVI|kEIM!(Gg zz0|{o-;vQq_*#moeYmLdkF)eFbnt)1_IZ90W^I30fjZILks zaEOgYN@?IM2o?ne>X)Jr$(T6+UI3^hBK48pL(uLLwa6bK8Xc+V2w59vzvL9fW0jtd zQw;q)&MJCiNsbtNe9yGB}vFLA}81n>bWdVqfiBfJ%; zSXa>zMzQ-1U+SN1RoH*+95j$b7_X<%O<%+^~VzQP9q{+_toN4!0{;S==!VqdgtTV*0}Y;sZpM z^mbi)XtL7m?o`-iQ;L5Zm*Wp@>|OQIFV6)g&B_PHLKnC0IIk0LXzFXQht2*wezD?T zf?pGbvV}J}QEMvPO)bowWayIcI4DNkU)iWt`N(c5Ys+^L0JtK*Ss=fz4KkyU*~)d- zfmLFo)Z68&c}^I&7^7_%YNe}lYz}+-wM}c|^~EmKmXnrj4+MX+g90MuQy+{hN_|v` z6`hk*^1}t~haAq0A1t$i)CWc`nm1*f)Fg|+)Ok96r_m1C*gAbr2-#Q*Fu;y!oR*Do ze2TPUC~-#Jo1icnCcOzk${Vv(r;`Ablu&DPuH~mI%Fv!}`d*yEmJuQbgg2_Sfv>3D zCESXj@|PK@Vknm@9SaP9yH7nRK^bOR>%@sSQa@CYg#30w$f zp^uX+LVZ$$QefLK*1%GTpQEKFd2||6J5@v5=IGf(+Y3EPo!+oSpT&1FSCc>^otedy zloyNf2JS6CCE!8wGA}9$RPEDGlpLu6ckyb6ZJzVAP|oXdHT0-|0O35)UL_=Y-`l~+ z#X<}0pm2VJJwjn>Zp5gFQ+78&6wR|Ft2Vv^9Kq$~J6k4c5w!(RSBr>(MdoqppmpS) zbvln%2n>+dMq%q9u4AS-c*?I4+yK7&G3W6%-AEVXe3E|j?4i*qf2r+i94q zJw7z|;k)c;f#H&Weg09eZ@!<@k%w9s%c6FD3tXd(NJh@n(j1pr+?B|2MC6aH{w>8~ z*7Oa*Js~<5`9aS-GFD)CMIV=RGiWa@Y zH3`-=343rHPy{(9l*Dt;Il=rF;!L4GA0LINkHuNw1&Db+JJBCrT;zh^|mg|pV z4pz(^NiO`c^D2{uA>7la#~j9Ojym6%{*FeXX4N}q-f@`C{liQvW_8*xe+G=IQ5CwY zsLd|~9VAhI7AJ()gdPGj0IZBN%Lj%Goeywnjd3I~yUsS;Ubg~6U4c%+#pA3ufM%xX zML7etHc?{)OJj%Vh0I(5)Mpt`(OCNjWRqFDdDCxT9w8-aoxiy`fBn=`g*~g+Onsr( zY*k!z0#vS#&U2o3Nk&&j=XHosvS}mp)U@%b89PKO%1 zs#1MewrO?ehBk(ttB3e1Jy-3;VHi9s-;v5bQ8 z^VnxlNVSjLrCpEamzU$Pj2tIY%d5hNMyy(*4bOb-nqTtKcrYe>H9Ws;NprWPWL-&F zXG!dTT_-+I2Ia0BRIBxt9k|Nud*f17=>R$38>{bJDHA)Y9oxnKi7Z3-%XOO9Z{daO zAB8zE^o8S1wYk|4T=hU~R)%6Z4x|lP*^%UU5%?0NYvl2?33h=w9JBAQMonxOlbTu< zDyDLtX&Hg%>nXcvUNKkR8;Z4}jK)n0Tn1`?W-Ts*-&w6=Wz}w7^V^&=U!Pm`y=$$2 zboF!3^BgfIfr6|ZeOFs)n1Ru!eM-*+r)wa$@P!~UZK3(Wdn5PV#ychta~p+KR04%+>&==PvfM@;fTZUSei4m?R4}8=9Q&}e3TBXhP7=~_ z%sHA|#N9?i(M<2j$yUuv{)EFP9Wa#78y8uf;&*@lAO6e#@x>qf$ru0opM3G7zYl5!ov6-Qo%ppM zuj$0E{rHQ2{Tm&f_=kV~N79L3`|;2I@Yg##@zcNk(dWPZC*7U+*+2W|x)Y!O@LzEu zU;O9)1@8UqkN(1T;`jc4-B17Q|Kd*kbqbncsMRzZr&(b2@K(}%12vLNMMP6+PlMH+;%C{R_E!I)x8|ab{)Tm0Y z!g8Y5=zHE8eNV4Z1D6}9_uOT=Eb-b|rdZh0_!tt3&)h-rdElXcA3f0MN5Xmp>Vb=Y z^ti&}KAGv_#!f*mN;kdF`ZS5;hF>{!sv{#}BWn)pUQtbFJPOldXnnpEnGa$SZR zlj@Ao(j~z_SU(53num4zJMo( zA3pbDmZtOAXp&cFc)er1c08~rvin+x#?5dOSny49_w9mzNhpjLUKSaz+03fpBh44& zv4_j0GJkCH&isWb)k*CcVh=m8^qs{n2=}a5%>Q(e!flm3(8+HPcluU{+B8|5l2ecx- zVkj7#=96B3);}NUtM9?ph1+q&$fLgBD!%Ia4AVnI*!!9r$Vg@2U9Xu4MT)tso8uOB zjN3;iaTBx2jGd@OEzp!5RZQ>QQ5r%f(JXWoC+6j@;#PJJW_ z+^6#Os9`AjxOSID!buOuacGSu@aSH?TyRoXY}hk@0;QD5DkP+O9x&yInJVAhtj2Me zcdZAE-kny?k|=$kl{GXCoPYf0B2G~mwkhz&frHMZpIXQR=U@+OwN z63nNaF0ZBi*aiDC6NDv0N`L0v77;Ws3rtV;uT?zpQ|1s@}hlY%z zO{8jJ%Shb`D;X{^i??qhpz=NbY*55+eKotXF8Wd68VS>{reDMK?cEx0lcN+^XhOL~ zDI{H>XXr8RAWTymbd$G8z3yW~nC{r&+FPk{I{2xJFsjTsYdWA}bnS!G#QUnL`IiAF z3l(a*%h`Ls{BW)R{{QRk+nO6klJ(yGDmK#AG+L=I+rwa} zAp#W9f&euDO3k6@updr19Dej4upj+szu5jkJ`v|%I4^YtL3Pi1!yPjeP$(4Ynw6QA z`Q@q}bGLve3pW81@8j_1B)o%}!W12|XCR3HWhy@gy-&34VPR!-&Zxh2HHFSP z&NesK_eW5Bby+2Xt{$ex)_Qf=z_Z)vH@ z>q=9TmafThb|0pRu0%_?jXq85@llO&W2wAEie|SMf9Ng*F{cv(Hb}!cg>g07$o}%j z%0N$`!W>W1Crt)Cy~}w1B;+?9MY4bWpG%rrlB4!qei3Anw5(3b3mvRm7b(hNjlgby@Iaf`3pLM2LVj>q%d zrON(ETRZh~=eQi}UvT{mdx4uxu(hiIl_@GV8fu{h;hboegUmm%LvxE?)y^j&f!fYL;Jlv-)bSkn1t(-%Jw;X?pJgTk54Am^~e`eXg3RW+4x08q%wwUNG zf0aGo@qL-1Q308Q%k>Yfpnn$@W&9$|k$4B+!^m{K6k}Lf`4L1^;p-;x@iBo-^b}vA z?^J%>3alHNgT<29@j5I|=cG^(8eZTTGa;}tE4G*O6Kp5==|bJA&RX}MK0f;Q&v6@5 zNzdcuj}VRW>!I#J5cQt~b9G-!H*`}ae|IuqnW~VdEe9)wHTit!@e%(*v5se9wvBit z&S7fbrgXXQ1d|4r8iZTzl(IcO?gj#56&Z>W8j6xq2M&^FJN*{SuU5AOec2ke6JfEE zlkcENQ_}Z2qUeVR&B>LQA-8BNMaG9u6?b}SNc9)hk?K6L@4-&t+)0Jej5eXff2Wd7 zAgqvMbc~U}ly6BVyBi7X#NFGoen!zFpomtV|EQ>P@OMPW;4OzuQA^I)EzRrXCh@3E z;Srl$jFT^M^cp_G38CEKq;vcrr=^l&OpN3O8msbJx$w9A_JzD)<0V{V7ZO(Q1*&l` zp6${@hp)c)4&}OwKuqPFDJc5;f59{W>T0G0T)R^bve>EC-B}0@#y0)>i=%cJEX4TR zv!j=OWCFW#cY_F1s1UUv?7%xD%HTY?m&QVVh7TT;*{pT2xG>6DpvV}aqU_!P3%(ac zFbLh#g}mt9Y;LOKQ}|ku08e@o*l9P|6G!Cx^f1^P!i>W|=nWJ@Y_AF78m5FU9EexO@GxUe+RdGu@HyyVQ@O^9d2$Onm+kpXvk-69Pz<3MgO3tv^Wa7 zA9|n7FsY#5N8&TgV-tpt+O%Oi=2$vi^Iql)c_hwpWgIb`fIS9dsGbmAk{e{r)8Ey2 z9~*Xu>Tf{%P83asE%yA`Zr@o@=dhr<=i*qr4t|kAv6xGZV9x!h^zDMpD zrtrPqKQ3hZMw}vhc*EKI{Tp^S3_9&ooph>_dY8=h0g0J#&Gqfnza4wG3)t1isP|Dl za3IUhSnYI%dHDlOe^SHh!V434K^$Po-fjyLzIs!YARzBF5OX3xmoP2vKoEz;5;@FM zO41v0=%0IrV$@Df6_;5et4H>+eB5~e44$L)A-Mkwx(Tg{AmwyE!yKtaHx*t8YpN2+ zom!Gvzz%=me~pP-sVzl#senzePKIFDiu65DkK%|z~#e=BoO*Ia>_)2@dF8bT?y z=RnRsP0K17&kod)?QQ?o*$_FhYL}9DSM0Z-6ClOG!ns#ECni7_njYNXK6WYxt*Ao5 zvV+xWi4p9c4`SZJGhfcw;a&HJ*5u>kjrqKAGpRk<%cVl$4#l4T6?0N7W<#K>?a#mp zpiEH%EciUQe;5MY9HjmJ5jwIBfp8W5qJ1LfJmNeh*uLcmq%Uz>1>F;|ft$}U{=CN+ zr{{Wq+Lxpj>K$r3FiZW;csEe%@XYlzI@{b_zuHd9cPMlpF>pcq3_0P}q`FN}us?fz zY?%Sn2{ixo4T98{Caao+`o0RU&5PzpHLBzphpGUIe|OwF+s2ReBSkZs6>e@9Q{BXw zMJUo*w6ksc3qo9W9RtxU(;2MPV+tJq=HzvEetC)ScKM47oI7U(vS0T5^Th%+iK>YD z7NF~U**y>{OW@W3x=d#|?d}EK60e452IXaQQ#aM7;d83Ust>;h%CE8nm|1l!44}#Z zHQ1LXf1MFx%%HEEL4SN~7;qTzV^t%w&A}GA{{$5O7vMgO?verNVam2(3Gxlh;#N07 zFj2n8njly`{sox^jl_@!;m>;q;riIb_t@OLZh!E@}TC0xQh7Z-DkCQn4%Ke=Y(ExzvnHs7YTcl`_EAZX}R4TZFf% zOe2R1PJ9wRR#AxW4S2e5d6)%#=!|R#^clm|M(7_<4^@kYsCc+}E2A3b`d3#Ff{N?D zoKqWBlb0I0cv|!9mf3LvP^+S;&`wF+*h#i7ozfyB0?vRYA6OfM3t82gq2J0Q*e_amhTK}8`834j;!k(kvOWmh&eJY5Lrp}A*#{7n3wSOd? z;*5~wNKtR*_F3AdLCbWB{>-LnU-F#ie-TKucvC3x1~yD*{)f)&PrWH^=kHVvX?-3$ z1G->4-AkILy~Nd%0ByRI*X@&{Y4Q;J${Vq+yH_7<2bZR062)q{jdp8V?_S=~19msO zfNg9>CRiKC0D7V#PTP)539?i^P1AN<+>NYweISJs`mG)_R3bS)`t+nSbt~^CkwYy4lj9h3*5>R($RP7XZNXG#9YH=?jB=|@~k5j3% zks1nxbjz7OUqWG=&zD;2q@#rgxZ;(4t$oag3oSfgS{oPn?b=jgc`6PI z@j4afh4?iU?@IBy5N}KIQz?Ee#LtEJu@El`ai59LrFdD2_l5Wb>8aRi3tk7MD;~I|i;tJc zGz&q0{qbn;@aP;wW=)fSq!T490{9e{P`6B|9xa*=(jlIeN;ko499KK=mx>29Gty;@ zR=lexkTM0=*=uQyUyYq^{Hb*2nlUwTEqCV5Rt;}<8=m1F$U(kzu|V-+b&47a*dBf0 zH1g?8a9>8JYK4PUJ9fsgJU(PWUfJs4PN`&nF7!hxb-)WfRzVJ3&OMaAXQ% zyuU-QbLRFtvH8ZT5t^#DO?vH#oIdf5$v1ohy>6V4JX5Ye(}``R-8~1EgOM30^7(|P zXc8#@EBI}<(|WV(mC=Gvx~fXL!|^W$nx49qBub$%%6gWtOpvg6ofJ@YMso5*9Y+6u z?{)CV(9b;GYyjk&cm_hl>-+%*B`jk`@*GgSZ8Yhl3yNYYV8-7f+#qVkhSu1nG{8RI ze6RAZ2?yP#QsC8A;LZIX{mR_6Bvdj4L$|)bl+c#;)CbK7E|JmO!URO|jML zN+mY)8|1@o=z_gbuQugnRz^6m1qheYn3F99U7!Ul^}(=dz&8di3PUr2id_VMU2^M% zt-FdH2wj&8Sg;jzZXA*rHABH`8}JM!NwuY1X_6Bt`~6FG|M-aJAqhg^{Sl_oLq$Dm&w-cq!JAd^V6WXCgfnI6_f21DklK1*a7MLB zapM`t9rw9fCFy~0+k766VgfdQMzjMB?xOlrTfvu;e40i^QD%@}6uH`29nst2)BD=R zb`FXF4vle)@Bv0sQBx1=>Ns2di3J;2;Q#w!jHA zWIYx~=GW};^-9xK_jB|-jYG8Wex(Unz+(Q~vC)Z5WW0H-aR6f3V$M{5@OZT>uxqUR z%+a~pF~K{J(R}#lt1>R2O3zx;mW@A+#!e)-_?g;E@`w(+R^(T*P+h|n&~DYe(zDwL z*QKs09`}XF>!=#{bF{O|`CGsQbVFoj;rYKsbVSnb0ryD|qPs!Ry=#ZTc1(m0xG^Ae z_T3R1-z7FEuIl219nf2UYdRvj*OrB28LI0T*q2q(WkG$?YAQg7%#KGlilDRodC(kH z{43M5sh}0au~Nh_?jgerwdHR_4m`Roeeoo;5Er3G)hQrKN*Lgb{D6ACu&7r7#X`57 zRB1UWCEF1$R1nafP*lozOZ96j=quEwCWixuN74C_P0|Jf>+9>Oa-UdS?V^bZ zd3-Dy3UpT-^yPT$c4q#YJG0sU(E+qZBx^D_w(!+vYteCkI(4DSFu(e0|2NT+zta$W zrRb+dA#Waqytzz&AmZDkI+y}Ax}|Kq)SES7t_qtn_v0>d8~*F_D6YaJMKz2-WL`$- zF@y#N`G=hyy=VOmR7`Jk_14CGL{An=s8(-fdB^zNw;BlMDzHJ8R+h6X>ZW5?)W2Uk z-{*d>S7CvF{h__kMC|*F^7*xUdQGQ0d^qz4?Xy@Zp;8bw+8o`4>WEOC4bC0I%T%5B zj21dlE7NL$3Iuc~BQDjc!o;bnO%+3 z9GHpx`!M(}G%+)$#v(@*qfV42vQ*_L(;zNr{>2ZN|1tgBNNv`~%%fB%b2grc^; z|3x-`7|vy{eOcG>v7doi43`ewh{z>$iJuj0F$ljH8K~(w5NuTVpt?LyNp7v!14q^Z z%Q@mvwd|o(S<}4IxDxX!Xn_3E2AnY+p$@8HmqN9}1y7!aJZB&|9c~ku~5EUvC#Sse~V7I!TXPpbSQOT-FoV zvk4+nq&c@*^QG4H73hK2JI&r(j;pqQIW{lrF^+4SyF!+!9flJ~ z0sD0g^(4@Zdl?hdR$jxg(dY3LTF~JX&5=dnOoROynKIWQ>XpJA2MMQ*26jePo)K1m z*F9ERH?#>_n@>^%zN>{ddxB>I1t~I3$0q7jFKA%Q4I!kA8Zn7yauaXA?kU@JEtkt( z_>>|c=(^_^PsplRi*4s_3w`MYN0o4oUtDZD7XT*a-Cb*}VOJ&NL1NxoO9=gU?f5t8 zx1E?>YyoD|Cup?g2j-RK28Y!a^X`Lp|2o*OVG7>ZW@aby5cKfTKV>7;_ErW9ll$ zGy!%@Q`r*Cw;-Ch-dlInkwYIaqobJ_RdN96G?FV^(?*;FwZLJS} z`7tRc8 zM673V1K-~E^*|(Lhb9Qwc-kQkOKli9L*wR}?DgDD5xym19Cb(nLLp!C)z5d9Gbv%k z%O;n;)Oq?#%7LMB#DS)NZ;^L}mq{w`GL{h?kDreJ;DH?-(HYGcxhtYt5*-P_E37l#F%=&LzsAuMe=Jg*LZ(ZagCaau*!=!Fu621u}a!2uFEd+RUl8d zY*_(=htS6#j7gd}bZHPwQ*(Yvc5*A8k@cMajOZ`*Cbq$J$%8R}Y!koM-&m#eU$N4( zAIVJv3aonhv>GpN-tb6pr_%cE`5fJw>_RSF8q!eV6;vJ@-%4 zvjbhDLL;1*s5xwZ^E_5q-GS+cv$Sb4b8#*E<)&|1O^vJI*>MbR{o<696A61y35EQ} zx7B^6jnV?!?FFn9RZ$yhWC@+R!c}D*4?ZVPwO5(<>h>;_Jw*vSo?59fFVt+c{|UTCb2PaVNH9C8Kyc-u%~M*xxou zxDxeAl5M-#7i<*n>~&k2zmc066@Sx=GD)TR&`XnKds9EtV-20FY75!n_7B1Q$dbuj_v{%}=GhlCoQbUck z$EbvWeG&0U`a9juB-k1;G}=Ve@c;Ctg0uoF(ddMKP;>7nCn0cUYv|NN{wS^=Q>j<% zbSp&Tz28!r^1Seh+e-Wbp{>uu#y(^`G24f^2g2#Yb2jxMJN=L*Ok=t9JLr3_It~}r z^oj0ckUC^$l$N*Rs0iX+=~I@%PJLDZYR%6R7WNHh4a#r}^*IEx*T~}dMh*h8TU=el z@{5Rnq~g2+^wMJ)e)4aBExg;G{o5b?+ZX=redcw`=dxi#GS(DATNlOFuENk&M?Hm3 z6Ef?Qw*Vmkbu*Lr8IZfCx58{`tyLxyw zit&Bn55hrlU=)s0?g_IkjFN`#80sSh{$*r;C=SO?Sa@1K)+m#zApaScfnQV6=N(nt zKr7iW1U=>B=<{I|HI{{iK@+J$@VBu-q@7z)A$rDTJXIm=MXC^7tgH}~6?mQ>$wIvJ zSI~QJ1=Uro^;n%1X(Z50QRoQ6t{sUV<9glNTNT#ZS5B4Mh4gDh_<9TBKz3Whj>MCDx(TY@F}UTDsj4W*Lj);p zNo^bqO~BgN#T(C9=cjtU^i5AI$FSIV_jqIolWpIrZnzEaSmB9JgQ5QJex9dsnBnQx zLVWVMil5UuX+05#+6Iq{?PiLAxPeuF^)9VhGX^g)TNiIgElMOnGiVPyNl-AVXJVdY z_wGyYHZ0(SU8qI7(<$%5Q5^Iz!uvJhl&Ex=?|Gq=T0u|kbbs9W2l&LIml>+Rp{V|Q zRmEf3elIta2I+N^#qN7wwml}!6ek5m)jqbSIc64bDE2K-Aty_tV@l+X!|;B8O`A(6 zAmsS1skkzK+_0p3BS@h7yd^VW79AKbZ-YBpy}ZzbH&n2+mB?`6&B+8j*GP1sBrG~B zC8YBAf5cnZvT=h(B_^U?Op(=`$o2*S#i-u>AQaTd+PQq+@6QL}5GpP9C4Xepch!F9 z;uvveK!n^-vg1^3{Q6iC+WG!}@v*(Xorb^8P~H_&UQ7G15w|~(QQ}?{fkagsyARH1 z_Te+ZIy-P#Gr}`8Bh1(d<1@lUG#B)_UJ!eN=`O8>-c`q#WUYu3U;~DI<5}L@*xCvv z?T;Jtjm1Z?!EP*TO<^#N)*gD*F|yxq&Lp`U=vajFfZ~p!z%D216g~fc#&X(o&iUyi zLbuaICERd&(WN@B_FN?dAcM)UWlc!6mpgLVpoZ>_fjw%AGjrai`9&Tt7YS2+5%`9vdq5EVUH3Ar>P3Y#N65q8g9P693gjS5zord@m5v1^s*(HaL+m!>|!3^HRMNx7zQ# zY9lORjNpVOcw{Ltd?cj2%1vl3uYV!zg2v)GHOFzRFpIY&alKGJXr*1^u|GMndT3k^ zGj!Ry56Y;A;UwFzK`~Scv2A-``3Jv;EiT- zO@uGNVXc3D=n3a^Gy9b<&;2xI)B{R z30f}v=ES2)yd=p4J}g@O>o!J;aX16g?8H%LJjF9+g$AYN3=FzRjemc9oC-$~l!&{y z!2aw4C)mAiUqhKDg%2M>Rd?-opxcY!V{W53Y_(!Z7U&%xR|!Ldd z$IGRt7Z+lA0xc~i;J#?eiwOn?P56KZC9R@~e$uw3S1XcfsmL;1seJ{uF~~v_G=N=F zZC|h)i1g-AD8s!pYJWd-S<`Uh*9HF@i!op)ViKNy%cP(BPImC(F@IP(Dk8hxv#ehv3G1djTEj80smB)=d zl=OGHnt9sosvy`%R&(g47=6$|P;aaB1Oo`tY*}5ypW5xOR(}#f8S$(J^M0+el-EYo zxMruKwu)N8*Ff}$1Ni^daf%ml;wh9tXE`xJ>N$1EFybq>mIB{kD&bp^GCh;e*Vi+G zVip?J!N$RZ)cu(jijCNnX}@|U@KLT6fSJKU7@e29W>wL?$gHfy*W)JBZmxJ)GXhQ6 z2$XP3o3zG#Gk?v?Mc2uowS>?iCjQR=%E*RZ=n|_4hBC`V2m+JbRr zMr6}&@Lp2Vt(Buzf70ztG;JVYuqAvU9vKd&!3ONhrhoTX^$s%Zbz6N04@*1vY%9C? zz!_4v3zi2K<^lq-dEw0x$wz$bo)KbbcV&^T48q0ymLiwq#3&j<8Ry&qgzNO&M#Tsv z@^_40-V04PLGCDqi!LS6B~jg0mS=H`@Ks9fhnk38Ah*B+iP5F7~<_>s9 znZ8mpD}N^xt6UwmBnjHi)xiw10lPm{|4$lahE3iU0`7d2Q9B}SUcQ6mFu zDeO7tH=20~W$r0!p0$F$*CT?Cr>M#GIQ=L zlYf{lq;_i?NhH9kmZ?idM<%>i6b(`oZ)&@8I@IPCQxruQN$Z-govc8Ts2tl`9XNRDInM8)jIXM}rm#TiB8bZECjT#5bY1D!F_+Xwox#3*V z1?S5IVsrIIzVdYxcqoL;qcDAP6xt);QK0jue&weNgRl_^Ie6r2*Qigwa45sco| zOb6?`V^rggS&(6n@att;kLvQ8iJR6;*-WG3KF;B`M(=2>U|}k#O?^~6LJd!9P?R~C z`*sr1P-{i~R(l=#d%fJ;Ouaz|ISv>gv4fx(@W9bR-9`rYOn0I757c01D}Qj`bWN=_ zP868U-<`6}!|9p}Wjdg#t=DB_ZT&{3zpJ`v<5Go8u2&StRAx(|=?Uu0j$7vH@?WM# z5ht`8u9=J1?NQkX*^gyiz~TwJN2?OD%ZYKmP8wK zd#4QqD6*bSrq83pQ<;NIPSZtKmJ}Y$Y&+p3UAnUXqN9-==gNjs6VUEmB$84uO6dD* zyx*g_sgpjZ!Yt@Mtig61}s`$2CE|LzCO`)6#8Dch8nCsCoe#6Q>xYoCAz2XNobGP|j7)8L& zopZELpjo5#@4s_R-hYA?E|@!@E^I&t;s$DvkFh2;ejjQ%P~`36u0u7bO@OxJwLvRc z`_b?E&egg>uW@C6R zQbiL`I61E2sV;4Q3Zfdh!;&QMCHA<+2^Te8H%DF@LEqjJY6@!A_&)xgytxr z{W5cr>V@a5I)8?I4+Dc44ZLaNY;QFEca0TOflYCFg`lSd?Wt%KXwYfbY+sg{qtMGW z0o{2kQ7^#<*es$^AJQ-|`O?7X-b|WB@6{H~C0aBarBX9FgYMSIUfJe+ zZ|c0PQORd5*iqcxRwHDlq_5Tk3D8CFsFsv|Mn(7`4Sz6FK_f9WEE+8uSK+7t+3^VP zH`FSYcWqrSrCl^=a1Of2Rh2>ST}`Vh&$hF?>R46<#hqJ|ei!TjFS(^nwDH7M#a8P!d`rXEv;2U4tZBAcDtDDoCd zU983V#n<9g7FD@4pf7<9H$a##6v-r4 z9qf(?!Zr1o4rM{uETv(ES_*x-kcRIqZpQs1RE$SF4J_{c;six7ykw#2{z<>Y;RKR&afU z%_e`!t=+&HOgSs?FKI2-I0b`;n(zoYh;6Fb2@a0w9@La3<});I>e`!*B~G$f(8mh; z7~*)_T2v!l3$%Z55#@>%wIS{mfn;q}%pThg(FsuZPz~>G8~U}FkvXVVe6FvzF#?Sx zKX}(oNOy0nGo>6Y$V?A0+hj}F(3~tR=L6 z*Wf-H3XJKL6!9Lqw{{0~=1$6$;nIH2uWQu`-kc5Ke(G^t7L%N=+o{4&!daZux=vRu<6c&l!cYb^z9SYDNj<&}tH7&sL6FM0!pi48opLt~xk z!DzX9h7^JYX;Gr!Y4uxrA5>(@S5T=mUpobIXQiIJp?Sp`DwnI{r!}_Dj;0P{mgxoN zBrcY8T^_ynbX{hRlIGz`Yp%{QG^T%2a~)`&qWcSJxx6*q{ZM*BIBw=@nx8r!&6ZUf z-T?diOA{Z+`^R;C|KJ@mLqs~o46N%@eRiCyw0B-i-g&ip)NwGlEFLJcM&v-KF$JSa0r}~P#r6MK3^Lf@i%T%cHXRJ$NQOYcQ-$j1Uj&LOe}ox15ytfsmMlaM%m= zVGr8?PGq=!m)~(nsENgrHTHixl&oyp(AS4rHVNQuIng2TFz}WlJd#dYc3S2LPqe4H zk(z8x{pLAa1~kp=8AD=9^cE`z3{0=ORpfz4bqlz+L5xRC^@&{WZ}nm-5VUyWuoCTw z{{ef;Y6}`cd$esMG9m+`dV^B5)g7= zxX^dNH}EnhL3YB4RNdw74vFDXd>)03Tl)QEt6;~=po7*jjV3UdD_6OEeU)#yGqMg^ zj7g)ER0&$|5{bjuQ)2FJCm5m-JDoJq6sgeY1k)8=m(=xr%Bi7va@{;W+I2&`o#!So z1$sJtzN6+;&xw1biRga>&38&*)mP|%p$#26=vw1n*T{Jd&67Lj?b5y=K&bTJJbn%&Ug%iVv>n@1;s*0(6MSd&7L zBX*~}e9-zzq%7pPlDpzUr!sfuT5n4BipqPac8>49*YEHCV2rPxI1^B;ctS53tR6OX zpMIyRwbi=&(n6iQuloEpRdC{~f{hqqOyb;C<_vf8n}^%g8msdpj8v$$imwg)-*IHE zlG-qO?ZDF{Sz&*ghJTeNxlu_>y1I3%8UDCUt@s!OfoqDf%*HUr#!3aT*38vD7HdD> z2HDeDvFq`-SE!r*~cXlW=gee0~ot14TA|2zD(7Pcv>+n-vpr_-l+!m0I)wKib6E$#l; zL@}{j_{hD(=iF=8;az99)$mzOJ^b%lBU_~sxo{O9x+T`5i&K1`uI}ezAxsyqd`2~1 zdbng^dsFvh=wP2TyEBm1bLpT&JpjSV_%}3LOfP@gN-N)G0vaM8fBlU_MG5werj1JK z@iA%gs-yQ`qpNGdM&A3grHBR0Xc*rQ*BLR9);&cy=Zy*b5U^=Atex~X8dry8T>ULZ z(1?a-I)WMkVwdWQk>w$+DZMhJXY2dbq{NHbI~AezPaSz)5F>Ux9~t-pyqn;{f+ala z{WgEY@OR2YwiISqr;MjHc9x6dgtczGMIIloVDEf~j+!b804>RY9B8`=<~=pbSfAWF ztVw;Azbqt7*SQvjVAyw&&oGKC+b|<=g>AWZ`P+_Z0$Fp;ZDoEn8cB$U^RxDvTTQeQfN2M6Bd*uC{rxQw|DEOq(^@{+_FNZ<7bryOH!o)fFVytw9pl~)Y!dAXIHrj z7kEbAD1y~NtkpVV=_~iZG=hcRJXRr0cf!&yKwI%qXtafEuY!x&GgF1ZVqV3gIULyN z0v^T(2igdvF|dMB>B$`YAoMt#{jMK75JFB`yk-;0;ON+yPq` z)CF5N&W1~WcSm6IswM@^#?%v_x~#3P3| zP_S-c+Kw!5^Sqj% zwN^v1JM1i3>pEbbbTrcyEsDOiNl`)bQa+IY1yxx4fC822Y;+KLdS zUz?f>Jb?3bRj1nd=0IGC8*$omW0StgPq07C>8!S?vRGc~L^FTCyKrAH?CM=!Cioek zP2}{6l|`tf80kl8LU24j9@3d;{?HCO@w27)f$a;~K9CyDe0wx43LAk{b210pFzCgM z{SSb^8#ih znBRt9E~*$~1w?;w1!-r@3t=p*yEu*zM-C(;M2&?#;7fNZW)$-ZZR+p3V-2|<0aq^= zvi?#b$=@zy@%Wg~)_D)R;PlyLC+y$Lj)CdR1*E{1+nqkY?Sw!H@1^r>+G#^-5b$y5 zj4^m8&&E*5%qs*^I+LI~c^*+AGq;dQryWrt!l(rHtm}W5f5JKn`lBv7JQ}X|NSxr= z`w6NLzO?#Byk+P;RRx*t(&L$ZjPYcJi67fl$tM80+luoZlqUNHn7QC>38>m znAKjuaISyL`5_gu&$K%wM<0IBUq14bb<-;6434EzJQ|vvaus>>M0d8raLGW8{iT`x zS7cM@>I2KME8gAKq(j2It_0$KxFlESZIfu03Fd!*+7)3pmOm_NQkWwFWk&RB2wb|k zX_mh6#Vp8GS)qOA7VWcah~uoHyQB*Va*r$-W3zvBI8RP`7WNBwv^li{3;B8K#pBw- zHREL+b!s_cGHglw%5bEa6-cootlg9l=wOQU=&w^FoKBPm^_e~&c~!t?)6NJ#>TLi# zy9z#&AxiJ>2hQowoWg$IhiUguJBo^J|55D-KkV!XP4YZ-kZB1pzUl0kf`@e1cWYGf z_d9>iE@O8Ta?x3=nrIT|BW%aVs#@*kd{|!L?#A8&XD>EooJQMM2za4lDQ@dF2iQAH zo8|m(t^l_{?d>QPn5d55Tq<(PXQUI`tLx93T|V`bM)f)QOE@${9Ff7JcBo=j-ZMRe zq5Zj_ct84-6N-V+d{My8h{V~NxMCafACtH{)^iM!9VQEQVw z%7yBWW$2n8!z@Y>6Il9TY8!M2j_-=8bQP=!WUI-V8(UX-M38we9gi-@pZ4R1IAl@1 zVXSi78sor;{|(K#z(u!YkLyAWWj?xlZ&@_xS#xQ%J-7>2^(0nG&c`@23Kgxrn|FVb zZ70a?Dqac+8dC>aGat~aEiBE=qAr?D@ATl7&cNwP_)1z&*Yh+-?09xws2NMkfk#Qf za~d##xw{r}XVQn>d{6Pz35|0$H&X{-suq%(yyPSKJR*aoDcPot@bFa`8Hush#IkM~ z4b#S3yULHBg7M(mP!Br#0c*5@shxjoJp7S{Jer7IXtur^iyaXW99@DtD!P^m3!Bou z6t^hBB!kPLywz@_mlPLh%3hr~g_MIQn%lL@rnwl@t&;6D%ta_tG@9Y5NatjVdK6}H zFWTYbBk`!=Rf*>dW|DNOZD;-j&;OwPwd&%ZCe%y?j1b!XR=B5;d~RT3=6`=TYABMv zLu>IkYh-B~Zjs4iK{25M2VP^;TQ*d}UOvif*x*q^7mL+`Y28`RNTz?>3ABUC@}k$7 zp5jD*(=z?qYDA<*6EVDoJC!Vv6WS#uuECxl5`}Mu zU8^CD$G@9j7!ZoAzO*SdcJO>S!2QZ00*7X={k;wu*Q72@Cue^vH8;k!Pe63zy_))P{w%zr!ymhBl=3;&0`?a2l0opMZ6`l% zx3I_w&B>_D<(GEm8Y?->C>k;};09O>Y_FoFJ4%T&N`*H-`BKj>LBNHK84v3hHtCTH zJ+4|tU_Z3-WYTG-)Z5IKZMC6aAYZ>9;-8??roWv=Jq0R&lzM+ADRtvJxX@ZQL`z|< zMhaUSG$B>*endO5&Rqf9Z82MO3aWDdj!^>f?2M+xbH(+b3F_u%?(j4S-o;t8wRXRu zo|*ybs`8#Km&Z%n6!%OQXX@^jr#LMwV2_Lg;EF?$)H#6}X#}?uSC+dAuQ@8KgM*>n zCkaZ9(R9x+8<~H|*&sOAu$RbPkl;of^&^%$cyksPn7dobA9e)hQZYf~?!qk=cM&QT z9bDA%qe6?WD%&a9E7vX50cy=09M+5@ST0mY%^lYg=3 zB25PZ@>Ko34+uPHIi>S_bt^?{s!hAm>t46+0g)XFhO5QxmC=rFWVMc9OZ| z$A_B{z?Xk%6$PDLA&wk6H)Ab`1&uWu`&9QjzZN3!Ll57zS zgYID1ylFl$JCTp`7HZ53)m@tl`I|dyfk4x7XE*o`QCZB1dGW_gbL_(h_cQ+zo z(Z*(Q!|12uNRYiq_e~^R!<;XX@+9jXM1lw7BvP@Z4>k7u`?Quq#-%^$)E68ZI zQ=WaD=f~;(<# zp)98`Lff^+2JM0D0+r91%iUuvi^Wgz_UYcqk!&%VNJ~J%fd(#>?+UzE^MIocg%u{% z0uf=74nBGo>4=AV-;zDcNSb$yAI&B zp*o2CsY&YiPy{NXOx3?@J4!uxKrqSV$%ak`hX}*Mx;u*jkT~UR(>4P#)Oy`hpjUtT z(Qs8u5lq5{wbhA6`v(uJs%W>+=Cu`|zL4ytTC9F-p;?$tLcRjC6e5%khR!zhZrMU_ zIPLKW>>pJZ8h3{n2&rv~_KIp-#|th2b|19XZ)(C?l40=;t=NVYaE-futDNKyEiuT4 zYK-u(U#I5YxHTQb^Amq~>&guG`&fS=|Jzyf$Fus^Vb+M<9TfAgGPQEvVD|~QRkKy` zZ#ZYggmuO~N*pRFX>PgRD#tW&O4HL&UYwQFBF3;R!M2*JG3pnt5W4I-DRIu}iLg&g z=pFsOrQe_E_cQ&zq~8zp`-*;lq2IsK?_cP*x<=U?QD(%e$5 z$8=9kml-ziqJmG&WQD!(=J@33@^J5iJjEK~Qj&jH*qArAzu(~dZ}L37f@yeEsGBOe zlkf4#yQA}q@k3I~VcAzVKy?Yx3{ z`WmY@3d;$t0or2XQhuRpXb^@dl*t5d^(5R+=#C-*@6Rg89brR8gq$D`6LU?~`pMiP zQ$l~m9pxrX_4;{eQqJSCdnlH0>h2{l;fI;MIRlnYe#t2Tck36Ke3;N3 zaJljo)=8@yNr0E{C@(CXL&^qIInBceC$c=nTF2utOh1|7H|XU01@L?z{Ks)7U*Wqk z@GS3;ZINRvJ^m7pphr|E%b$~_v{EM6vT=V5qe4x8iSKbxAMU#I$|O*CUHJECaVYmD zCXM+g`3@4$Q~*bdh{-HbDQ1HHHRcrC2E9Cg%J_+z3c%0FJ@tBRlJA9_{5DHIPh)h( zlbK5Tg_`pQKQfWGSm}wHS@&35M9`F<@FGiqAmr-mWtv|hrl$G;G#@{ll!wW9EMI?T zbo~N5>w*o{Wl4pV7qGn?!l3@OGPfr{M<()hViMlR@s0dq^M8QZD_?S%Z-6k&HF~*bT2qIw<9jaEnsx%OsK`tQN(q z(R1NLR!b>m8R{e`j(V?{=oE~>CEtJIJB2p_u#F^?$XlNsnO|}znR^xI0lIw4x9+pr zh~^bNLw@CL#>*z+_I%+F(e`j1n`?iADazV|^SGR*l{~|?71Qk1h5ReFqSO=Q9!o7J zz(3LL9#*Ynx>!+01VfRNQeRT8U-3y5-tgVebeA8LCH2y~if)nZaF*vWerHpfc{J~r z%%o|mcgESOB1GIq`C=lP<-V(Ll2{f&?_YiY{l8u-^Jy_cx#$jZzCC{}f1M^UYw#TN zU;STDO9KQ7000080J9==S*H*kj6b*p05peoZVR_|ZVX(OfA3a}s~K}7Yv4C_y%z6J z^68mZ;Y1bqf|Rg27-a-Fwk>&G5b)BBpjFdQqkb#FYfAvzI7F!I>cc~S!Q|jXpOdH3 zad|dtDOR<0QcTb0Ae<~40W4WRk}sIQJCpn9!o z?nIWIjUJh+e==fTw_cA&MwH$$fxlqw@c7v2EAlDcSl~%z;`44CZqthicFIp&yy_IPU)%fzKBmr$|>6@S8NPtQvHLKDurnT9?`n@pr8oSlC)l7F6|fs)}8 zLXHpT_bHY+-URp2^@24y&L`?^_;*g(;113j_C~&WoeOrjDH`ctpi!WHX{f9*xe88) zvkKL{aIqpwx@)bf1{th?AG>>p=b69uCX%eBQ>g2V%Wi4g2U}l!@kMWQOZ{JVT|W#D zf_&!HqpA9UuD4%d$fSOub}qX*r2E>y2Z+2>C$w3`n6ZGNjD!CuTJ{7;A@SVx^0LI*qp~tVCN3bdJDG#7#fgc+~M8 z0jlM}wVavao7E2Iavy-aw5$&Gy-fCg53E)0&Zjm+X)W|tD+Xk~g@3Ye?N}S6b!}`1q*QG_pwN_2R!Pvl+y`8# zmR)<)%w8fvNb0K1&B5j-JXc7UH;AGZ>o)~)*4d2!HWb-jmI<3ne<}yp5!iBYUGqj> zOon9~_(xw$_8x3Acz=>-=u}@X-OQ+AyBQA&(A7suQqfm$4LYC!?ec?((wgYQN3s2F z)3d7PMI(S%?44!89UaLOfur%EbW1wEQGZP#V`Utxf1uXA-T~9aOSOZysrIPvVN!To0no`2B$qK*08CGQeh`xagN zS5`ux2iS2rL4|sOj|sN#jJKL~P+O&^!&9@Hr4lk|rW3f$1J01^I9U)OE6`ZLkeZwA zVZds;d)1HH%pC@{8jTS#!wC=4W&9Ng;n7w|8wqJG1F9TUHT@6_AA#&XU2;u>k?JS3 z4YGMNj8+V&fPWfK@-%Ib68HOZ`G>nZ0SHZavK%@MrR9u zgK&Pl4S~hY!honISQa?9F_!+UoTyKXptm`7FEg#A&c4!j*1JlqL&8N^7aOTGMbh;MfCcv>GAs`Ht}^wvgESvzP@X{wd^|#MyRZH+DX`` zoKq_17CXK&ZxtX>uwDri5qRN?ma8?)5mK9-Du!QxEOu{l>*9ONp`o? zu#6CF$$#FyYG)xrTuF-L^^=Aj4Uq_II39;mDNOPP3{n#j71UAP%u$10qhqlt97n^G zQ_J{~5C#!|~!s_pBbKCgwK6(|lfac1VM2 ze+tH>cqz48H^6MS)#7kLMU2ZOa z{r~)5{PTI9e-DQ*T37$(fBxSAe}DDozruh1-G4{F{t*88^}qa=RQSjE>!17^&no&v z9n;4a&em`KAE&mX}*dv{*c zAmV4kX&)=+hxqT4;SB%1b2`(%7x?eb&Zhd`34K3%jsNcDr*r({>4^UQs(ge0-ha=AC}aY5``*UCx#f+CW}RC;*6ZKYxL~_Mj_JI|D!FjnDF~CJP<)&2JNcuAyeVY^$4X z`Fa@B=IPP5swjJBT@v7Tt2Q@XX*UQ@N&$AmL)SjD1C;La)=bh}M%+Sp(?^^I~ z6F~assw!7^*a2`Ah{bt4Bo^?NuY;q$Jt3q0SnJWp|aV%|%B3T$=bZ+LS+AU)uO6snLD zYS}MQ99wtYM2+01s1+O~FzoUisy|d*+AmZ|TLcb7r7Pmmug-=W>gWk0F%_?mC!p-C z(E29~bA|pFI!Ao;RX;-Fm`OsZ+KZD(c^-U8ixe&9BmrQ`wCNB8ZhzYPCS?_jb~vpS zR!*O*e{S4JNXlVoj})j2z_6o>8(D!T>#YQFz(mLhDKOf(1Z{sT$pWR;#Mwog)pr427F~P% z!^#FXEx!oawHj|d$bW|E-){=JZGg`%tM| z$F11*&g>t$#Jo$b?KYQpmqbA9Hj{w3Jy;J!??$6UHsXX`{us0p1$yFjb{XTayKAgK zp4|EQtGzo9AG~_>)r$u|eehf|A@sV^@(;f&BLb1T;(NOAGZf~3APwc)K z93qPbE4k+0=8NyKZ!jz=zBGUx!kMPINOr>Q_JLY)o*cpUS!adj{>dZI5e_IjcI%%PBO zp7I}(57z{mjelV(+u;45> z0}Bv5JNUuWL49B_bk<7#&e}_J6tj8h6N&D2c~atykAGR^>6+G*q1|fWmn++mL2~Dq zwC3{Cutdw0p3=T0=EWRbejL(|i|Ks1bLj-XTYxghox+RC{o2lpy<-$ zB_(I6z<+YsHUtbTuV`hQ6i7Am!f9rpd>2W>t3uS`n;YvwPqm|{G@l&}M|p-;F?)FG zmcB!*+V_EwNG(lJ;u+T&iHlj8U6z-J$1sFE7_n6zc&G##7?K!xBNRji@eHg8;6q9~ z<}&dFK0eH^=R?7-XASYf>d=nYlCd3E3l^@M%zvWIg$w(5Dk7R+wqnNDMj6nMo!kMx zM1qGmV#oqBrS^?CQY-)(X*H)NyWSOLjAr!XG;=G9KZ)s5f8u?k=PkUH z?SBlwB?l5%D854*sv=_TJv-MH(BEW@xJnyvo%8_j(!a9d`R{2x)I;fTIP==fsVv!uG6d?DDSu84Bx(kT z3VirT%i;=kMw7Is7j(H_+@E8!}t( z;PUdPD%@U85#-%z>$|NAx#onP>$1-UhwgY-=Uu7K6)mUd1{7#mBZ`o{9AB4`OjR9H zfsWJ2cL%)3)neYLIurKR86WWjaSaCH%GbBLknv&jGP;lLy`3=CWY*k>==h#Duzy>f zhWdgJtMg($I(|_;o8@neprM^$iI~_j8J86ecnA(Wlsfg9%`R!3QJRk$LA{b&HPNf-PEcVm(3>rmD;}VVd6K}nE4Gp^S7M%jg=E80@8esr}0g>y08&<{aq{g(P;P< zrJfRbMGsmczOoBqDB*-_dhTfk27f;GIXjAO>|N04BouIzlftP+lfqKNe4{%*{ztOz zU*Cx)wfRNnTzK;@gWy9fhVL>!=)E#gsj_Cjs4NWG`+(7HN8 zu&N?~0c;J8>Wv%S#hJgHg6@*M*=^rlpe1(pwgxGmJg(#Dpp#Wf`9Y%?RrF= znxSGG359Kg$hQ)+z|^>VZ|?|KR2I1Cd4aAF7kB&ek_QJRl_7?RIh_?J!F|ijRW9bC3TU9#D@aU_G#=2#yTw$<#K2ero*!s zl=1>s$K^ROnQeP!!6`}3ihn3!hQE-^)5jjPX#YS(^^jf6j}%uC{*{SYGL^A6t3~+@N@bICHob@}Qwf+>dLNpoQiG^M^JlmW>4l z<`21+)e1K<5~yL#SJ`vmtuD-7G=K;OlkjY+Xit!ui_t6+VoHZfLVp!*hrJsX47ggg zwe`j4o4u{xRx7Ci&b9*_14zHX2YGYzi!XXxH+vuZK(BcEMiEC)6jCFONr(N8I36)V zSU8|jKAG4MX5W3F^O1eLb@TKhDO#80@Y!kaX0ib`;^+J&UvWAOcR>JycS!G4J=Re& zMG>Z#=uD=%!RU0Op?^YksGo6%tQSWFA$OKLmt0`eHYY_F>AK^tkgE({pWyFf^aL7) z&yE^Ti)7z1pg^LhN0Z5f%Xc)%FEGLmy12<&5ld_7Ph`1d_jP?m_}^~UUR}wIc&Ay_ zXtkUem9K*~a|-rZ^w3@I7&kz(T}blOo8(7x?GV@i(rYGyc%DgWGtAiwdHd4-xoqAPH}$qtTsCa#4uoxXQZ#K$ zcb#fUe>81Iw=TN8t^(@DSF4ku&SDvaTp{nh#{w5la0F7 zO1E_gx0u?^;mf6)Z%n%>uLK})Gi5TpAA|TBtbfc#HJeytw&AKo)_~ZE^LjtT77*P! zXP-xXTkAFgirc!mW-FP@o~$|OjfT8Qr&+aCd`Ata)PLE?U#zmvW5?jXnqKA_ytjbj5c8LSImU|jWC^uP6k z3BJGJfq%(Z9F>r`UYpX93_(#9<&5FM2WtarSYuN`2SzZ*LIA-kHxk4!qE-}{PE?c1 zk&@EJb1s}6k72i7;JV19D?j&g8!_ai;!`Dqq#0PLU}r4z=APg-uoPnh{sWCz=5&^8 zMJx-KkGZ_+z>1f3(eu2(brhA$1@_Vg-n#0FfPZ?R?KCkcDE%aaK$A7G4TIomX*qp; zo>yw13VIM0Pf8QzH4)b^F;c%_?J|b>Wmy1{WQ4c6Xo4Kss_GjZO0Yi4U`I+51n{57 z*`^?-9ojO7k!!q?mvXFm9sNd&Nmc|^+&8DIR^nR)h8MoYsV|J3t*RqC@dln z^nZbY(2i?y2Bm-?;{eOG5&d5CEh;HL3_Y8SuU6baY9{c3@Inf8GoI@-ShP+j73t4E zO;eF;kz45eoeO}AgMRA(xQ#>5lG3VG7fH9V^1Bjrh76z>fHC4yf2;tESf<*%%Seoz z-~Z2%82?rxF)|0CA3YkQJ`9Ph48MSD$bT*?{Tc2m`pa@O_Kt*uEp>*9p&sMuc(EUa z*-|h_fpO!}Aq6wFWVpz}LZC^>a3zX78CQ}*QA)vu>tj<&Emj4q z^xOP>h+O#(C{iUm-rputrH^Dk;rta5Y=G1v_f%K%5G&`qZ-P_AC1?8dX5na2>b%k!cNsGDMM0^=p> zV*3~QTz4A8EWI-OW3|FvrtoEvLAsf5*Yks0&QgvW5q6W2>7nWg>k31ma3 z`n-F6obS*+%9pG*J#jVDx|AQarho2OuF_D`-dL;NQ0Z@0hqQ=jyDD7IX5qG-O|%q| zVq$@@w{Z)sj+|wzFeQazO6VlrnMP-BOm~I$tCju@%n3ZjIQwC=D*P;P_E5kxS($5e z%{I`WTq&zlb18nTDiGBKS53eac-KV-MpFAj_2oQMk!D5o;+r=~DkUf}=6`Y0BBt9A zA+M#TaKLJm63QZfVra%&n9Jz!*-%$-+B~fI2kcj)C)Pj;BzQbX3 z>!;&1b40a^6`n(}@6W)7#XK(M--j`3m1x$fci~RK~_*_i+$NP`=o;-rj4<0|b_u}bus6mks z#zl2fpzQwyhVtD9FL}E!AKicO3L$4`M5=1^fHxJW#7>`?ReyyjQ9#0?9VxkdfI1e* zAw@S>KO&bWUq62F=+&dI_Fmli>K@e7@+q&<{Ra>4sConY=!l2tJ&jKF8Y(97sF?HT z3@k}xX7zo(I4p;=ar9xR$Y)4^f-mqI7^|x}`Y_8Yg`x^WK?a}Zv*EO&`12ocZgwN1 z7n&=q-P8H8dVho`kOAsaLnNZ*QmcPrQ0?0-QTtz-Sj1bOZf;7ZVz4b|82?oGI4cj) z9t>1!PYU!8df9_u%$eh3OM#2gVHMGM!CbEYB;eZlk{5w8`njYVwm2_(A)&nGLpYRN%AkhUOC zt2)@G;4GdMJ;G?daJG(?WeFENq%Y@?!#6^_}vWtq$WL;$*49C zGM3Y5YcVMHzOBy@bAF^oVgXEsi}GwPh7L}wL?UMEVP9_{LtavtQA5URoNha&HR^Vw zqWI|1w3rLFJms|A8i6rF%P7#9FLWfV;M*9eG=C9aM|}x{5r(F0!HIDzssRI2x79eG zs*#a7kFS*GlD;hK?n-_XaXbIiIPpZ# z2gj~sv|sE>+O+JMK|sKFJ0QREzC-X! z-yH>!)MbxcHWgZnV0g3ygVefo1rHE~j&87bnY!kq>`PF}l<;~Y#-5Ihs-Jzd5r4&k zaZw=+f_afTku)o7#}*JStKDahHe>s1E@Acw7#}jp70+i4%U&l(fXAFS*QqAUJIl~FHn}k(MG8qxKf@330y?^|? zQ-r)7B2sLshn#Y{r`D2L^h7oDlYe5aIRSxJdsUGtAo0Y}*cgt-@u@3bEcM_R$Rn^` zXzhbJ;t`k>zHD{&H(&1d@kcw!MEmoeCMKRhz_b-z_#XDV*{7S5gOfYP?E?Aq&gXf( z9X;tg4uR|%l0c>&;E9Lj`d3m|RU9q9Hxnx!EC!sftBDZBk5?eV=3^9z(tjJKdX>}= zjXzj;!9*Tu-n{}usP7f3|M%izxu`iZFWlvEVNcHFS$JL5Pp@0N8P+%`8*Ea2cp9ni z?jRw_uSgOZ3iPkC7wf$%(;_PJd6VT+O(0*Vw#Ze-a)^pVB>2znu1_vdcq{al{AElr zx(B_0cjoh1TL%SIwOg`C4u3xF0doeD;ZZpo-!>kbB;Cz^$ZXcl>{1JY!Q;dTfm>1F zMJ7w6Suyidkqqq^`bK~TCG_J~U3Dus!}`aPz>N8GL}Owp#P?e#W60TCoxp!5ui?L# zJ@93}n2siA>ZwOKmmjYh@xuV+M7N#vki=z7qon?AZbkw8x^182U4P7$1Cv?vXGnPb z1FB=<+>K2no@+@t*Onc!rFC;k=b2B;y?yC*kmmV}XFP71pY8p;e{XLOO!sp2>dvb; z20X-Ci(DH}4^__R<%#%dX7nrGmt~j+5p-C=E;U+=ZEi4U8Vo1JYjvbfjt0E8ZXX5~ z0KMNRhlD$=Cdei@F@LIUp8yX-^BaIc6HWpfEAwV1yp=HMYdoFDg3h8OM4Zias!P0CX7 zYv+oMFVEF6HqB>RjNh|D{Eh76PG@;~anNL#M6pdq3Q6IbKz~$&ztY4dfT*a_6pI{} zL@ucqL z*3lu?8h$|2|KU9fKRMl(jwkh08XDeGb? zyy|v+I***bV9>uGr1$d0yia-SyR?OKqukU0;43P_-S*P#xOmB5N>k z+Ix2A-h<^q5CKQf5!MSW^*KffL12tSW}y|HUnlN~e$vEr<3y4&8Y+XbWng@#og2H^ zJ#{IRCx7}*=w{a?OS{<>GHtQcSu??)k0mGr54~?7D2mlO1Iu8n^zmU=Mjc27_XZ5@6rNiNbRr7^&Iyv&7}%a`zbQ3F9&QaK?A%Ds+B* zI!31zt6rXo={lMr31x_E2y(CA7L&=>(-T_975yIO>cGqIlaAXL$Vz>X_r{m`aID4c zF@KGO7(2$wUAY+LkI^^GTNp+CHL$m{5cnwFE zhD*=!)lkzAZhJ?$lq%Dh5F;QI(OE=xmaquWaQl*qDQ-w=K-SM^)*vC~s;+mW%@t=* zCXF|s5duWuA38O2G>WLSmMHI#PjEx3G=DDUVYxZ%*P*^^rV%PGO|qo7Ad-NbdHN+8 zq^|MSD{aUT;k=J^=iHhnL_Lt8UC~esHlf962=*Ad7J7YOdAs3%xZ7egkHy*y>{b+kzKi&Je}8l|Q&gbO z!XPBb*=%Aoa$3A|KAew^Nm;YYy{G8t1xRo5>{w-RBH8#Ng1 zo}b+M*bIy0$RQ9Wees~AgfKB;>f)#beuPqEPXo&k={faz0TyEE%%g_@mkVfY?K&qq z9fP3;g-g!`j+XL%IjZvwbARHC-M&65zD23#Zhu^k&LriXA}E>Uv$<1fTmD#RQG&^JemmR|Jh%B(VKfG5>#^(`LN7Bg2 zBQfWZKHEnKrhlu|80O`-#6aBKLo5z!3+L;=G~kgbNFl;Q3mQW?>MYK(P(s)s{c@t%6AA-OkyWStFsd0brIOx~?A~lFYL+IZ3 z^WJ~)^`joeRT*S0=&`}Wk+-YIZqF7nvk48=jDEKF z^s7Fm*l5EX6TX#_4NgFUY~UL2;y36v_`)q*H#V}oniSJ{PkZe4;Ku2xl02K1y&R%D za{1E;IGe2fO3i=SJxC00%z|5Q3y?WEs*w?9V%h^XSS)fG8Nxn{CQo}<=r&FYd7Is; z0%rn{zWV^VaK#xwyj-7#w=cb)OP?`N8z0&<+4XcK{RsQM!7j%w9qeRyP^EV2@v!>R zJakh22+UBF`4D&}&9~lW$vv^;AQQRSh(ZL}2AnI~fPsG{e-3P4UbB;2x_JF|MfGD6 z77|aPz{4ZHyP5QarZR{wPiNP}8|t3nG#mu?MQsDZ#2_NJWTPdEpY{0Zo%@fz`l$<{ zWrVZ|c~lrXD~OvF#mr(sw?dhe4r>*K^>t=rx&}`Ps79yl5(nAV=H@1k=&NH1JVie} zUsT0I_IiHE+8r;^k0*Z=_z>GiJubyrT+eG`kl4Txx*9nV zAAEQn5`!Fo|8O#BNlnnF@AHMh4Ez~Vo;ZMZ3seU?twf?+^3|$|VWgh6>5t^&rN*L| zH}&5{&1I@@Xx$FoOZ&g`;1?7oDAf$C{H;$QNFZRPFO$94*b;Q>WZHlOZ+Tyn(y|w~ zOM-uq#M|kqIvih=ZL`F}qNc5wD@|@izT+@FkvyvZKH& zLEQ2jwBq2*)H0pa^m-z6T_Ru%v2Mw?*V$Jh!g^x~&pH+ZqOe62rpOg#fxG zyCv(W0=V!k*g6y$$n5H*gK}+nqK00`YsP=dLDx)N4_?0`qY+t``#Pkc{AdcI%*5o$ zeg5P4L(L)&H6d9WQ9}rjq&Frx58qF1Pg6m5SFu~NN!%hWvt79wG-bbbD#@+17`8*5 z@mzl%^A|`$q7z6X*dqp%Svvv)0(u@@r>&lyRXG83{&-ixO5B;vh6_mh1ONKtNd2LI}!F?gXSjj`? zGEVenXT&Kjs3Yfr4z?PoC>{=rN&A0D{U=wipVQreUIoh6}7sm%pT~kruML3WWE1v|nG4)D}&IB5{!m9s-P$;;CKUkQ9FdmAu%) z5#wU29*q!YA7H z%pDVl!Ai@7|l{-G1&u(@tG{`00%PkWyndX)>Hl_H_;tU;n_@1`&M`9wMJRpHhTfC?vTWLUQsh?q+uIyCHncaI-BKfO9@>M zWXCR@2XAVijNzd#E(~vo5Af z={B)KMm2n$4;&|Ih=C8~R!!b?&3S4-UCf0||22$f3x4z_ud{!XvpHz>jO!f+QX)Gd zkh4;Dda}uP>P*@KtyixQZ!LG!Jaw#dd}`^ah1@p9B-vZb{)6PmL9{4sYvPordhU__ zRF|V5!dUE&A*0!>JgX*)y?p)%V-Kl|Vf*s()hn_j;;oj;9eON53VIaVn-$Xzpdph4 zsFs*zJ>d4*-WY#qa62o{v)9AZ-X~cx&rhnJ4w2LKG2CaqXNhNF*x3P$H@l8W&zJgN zgs?nViW%$3(?VMZHGEmFOkC*j(*PN@v$jK{fz<6A+5}*E2Kl2SJG6aBR^cV32&7`x zXLi@_r$M%_|9r`Ua=?;_f;Lqy%Zr$)6jkCe0e7=YwI_cE_+^>VznxG3gNgB?Ii_$Gmu^*?D~@A+C=D{1E3{!Crajl_4wE*R5j3>KQwg^4YE(VF)=IPtbI^H zUoY@U9i_MsT?#j~tk>=MtQ3Xck(4|xZb_1%N(AXbf&i^low6sHdq*^#*3WHAZgq-b zejGhFExp?qM7)SEkuNf{@*sHjWN9t7W1||!9Or*>LhiySyf{2|-cx%9&>y@;!6A&JfEm zPjNm1&Rca;E-6;Kp_aOq+0`dpirw|C$Qi?{jo#irm+Oz9md_0sR72`(aioDDj0luo z1ebqeunl#kGak7$8cs*~r1erh+-PWn%-gMr!_5p|@9p?fs@d&p91ib-!u)a7(%UI| zAf(96^G}eTS0Dv{|1{?fqn6|}6Yvcr(uP-%S`;+bJuWAxBy=>Wa|*C`m^pMzi53Zh4tU=ZeEn0zb5t0s{5;vuBE;KaCn$$l(7dfE2qc**j5=XifO zSt4ua0Z;V^#$fgNm{0!J5&$T2yRXRIK&UZRI|8WoaC<cuaCpjQNwZNxTjfSWB>N&05Tf%hj-M!0K9R6*03MfuFSQ2>lYPuQlh~6f^zwXc=G}%#mjfp`^2==M{T6@t^sVLhCz){T?o+`8{L$5>GuBmGQXpMpPR-MN z1ZKiD9{XHO?3o%`$+To^=rkBLS;N>x%@iJWSG69QRf+hiYb}sYIzaO>N^zq5E!41q zQB#BA=6{J1*mkvM9G>dtmSnt_#(Oa>=H#g&#Dh&G@QGJ071fr}hg!_Lq|bjhiQ+oG zAEU6m@m)$v3i*z&gwQ%EZu`(13NSg8S|+Wc(*7|N`NA_+)vAB^)IzavD~$es&F>Di zMPd}^c36?_JOvY=?{B^&!u_x%+qwze)F`Er2FEfOsT6{HhhsjQP0WDdC?*|T<{r?i zV?d|S29SU2x3ac4KEMlk#Up(88!6o_heR zXtk>?Yh}|)C{=wxqET}v;So@OeMl=5IviE{mJZH;_IPN=a_J~jf`O89OIqR3gO>Z| zawyb;ZkRZ)y*ov`P7(rD__*80#1z%H#r(LPyb_QHa7YP`ue8=+h1IAfE1x;K&6t{< zw(S@0M4Q@JWSTtYT(f_f{dxKN^@K&ynlf>!k$YC(7a$DX*ACC)mtB*sc-%$#u6nKZ zD5tY&qQ?FvpUuC-M>~_TmeZf+^S0!po6Ij@M*7+{v^OL$Wr&H^1e)WgH z`EURAZ~mv>|Es_FGcJ-oQlE)9Uf??Yr+@zkfA!~o^dJB1pZv%F_xH2Qli>xlhjdlT z|Mc(wkT)cgFAe>#|J7go&A<557`j?jMG|HRzyC+S{vZCsum9N}@fzc^(+T)%p)sDS zL@=_y{MDbJdB}hAFMsvFsUclfdIZ_8|L_0v*Z<~!`SqXtAOGL4{!0!gzZm8DI3L4M zn?a&E{?)(xul;FefBnDySAX*_{@Jhp;Lj30yeQ|Cu5Zn5e)Frp`1POut6%@yf0|v+ z0Yvj2??JG!b$k2g|MqWw|DW2aAqcrAvk!oT=I3=J^pAi4{5SvO@2^2ZfAf$3`@i=j zq~`czkPvnA*MI&WeiRa--hT7X|9njn%BN}SAqvUhR~_-RzbfZ?)W8IIcQ0=fJ7T<0BU6WQ)vqU;8aPzBQg?KoO^TC3vGqs(B>N2r zreOz2BNTrg!u917PJaclTy-i$EPYNO%Ug25u5@&+AkE8{_D;3|xlVG$HDZWN7Q5?u zSIzuhRng9<3DN}u^5OjMVh*4*)1iOSr#<9EJs8LN`75&N^fpC{Ky z12l?=$Hn(~5GL&fnixJ(=!L&li)RU&*tLLCS(+=vJ@b{rwRj^ykHY0pt8fCgk7`w- z%GwY{C+tnd9rK#pd83wQCXHu^U!n%EjUG*p$}S#jhJn{>!iz8%WjCYOmuV#lvA>&c zeDr^j+K?Y%bNA}7^wx)u8-a+LcXj)j6;eloQqKTkpnGBi6FN33b8$+{ZomCZ0cjRJ zH|jo!o2wQcE&@$S!6gI~s$jK_#5=_1LyB%7>C1RFeEk}BQ1oSfe0Fj;9Tu_i2tPOn z*=7{d*LX;%Ev@b1V6WTHw6gHOkFqm?Zy~vB?Ug1@JXFPtQPEaqF zb~4-6v&iX^0(g4tfGF~&dW=P>k(6*wrke#k>UL%Vye6#mh8H?7va!u}z`Wp9*{=6# z;N9JAKGI}gbHh-%-n`L<{rMk*9({it3VlW>1Oc9&?T#CZEF20tmn#i8MjGo8q;Uyk zQL7IKBy+2&Me4M*wYmA^ZYw26_cOsI^1uZtOB8TL_L_S2eE~gIAne+I*-;}nZC`+R zG&&AngK_^+*}mw6#?iR3e+NvcH$7X%VU_KPF`dw5KBbzY%n&%z{wyD#jq-ms(NY(O zkFs0h;cs9;zrt;`*^%|IQAqSuUu2yt28&WiDo!W4sLM4UyWU;ZMX4WJI7NY+qc~P= z-V*gXTc|KHpdptjfa?PbKyuUlm#t1moH2whkO%6~)}}vRRq_>X>;98FKYz7%=i!4_ zkG^{G;HM9suNwZPWLV1H5F~%kr#0FNDTj?IXp}hXoXvjnbn|z8x>LNicpHS@)(F5hbMohDh6}PhqOR7 zk!sX3LZx;w9@J#%jqr}K&&(x}u{-bq0ULzIw=i z`BZ7FDAc*lGERUAY&#LD!bz>Fw!TH+2RzxcA2Oo1y37;hlz3M!uO$NN)Htr!MFY{R z>R3L(PE*lL*8cz5d;6C&=>~3pG2R|}d8>c+3y<0t;}1T_d8{j(LUh1JC*xB|w;D}E zHgZr5^UL;mq#ajF@PB%CQJ=lMXJvCZBe;)gAKmO*JtI+ z{%rOG^{VQ2yibr8DRC|6VNfy#JEA8S)tF5XvS1I(XJqm@nR95`qdW6|!28AyP^1dg zz27*b0tbtSvQvcGxs^iLflONXo5T;nn9dx&Ih1?~_D(3<@!M1q*5P!8gay%sYvG)@ zsW)XlCXW!kKt|#FOfY<7B=#=&*_8KLg`#I4jf0OFL?*L|49ngIm)gGJw&rVsiF(^t z?AwRbTO0rmRPPAruH7krxC!!m=FI+{v_$@(RTBLNcAourb{YcS_4_(2R>5)OgW|nd z`BAZ5SE4#aJ~X^W)5*z;P~PI~2oj0J=?SJVC{pkDSo-0grwThu> z&-8@d+gKfvJA0x1IF!@Dc)LOU(}DejCxeMz-u3Y?u-)=#m}WotvG67^D9!}Y#tn{v z4)($xM1<_^5PddPk0bTK&_-@qBsG=Z0zVCy9E!$*Oe4yOjOB+*57Vs69&L2y^oP%o zu%|?(HvbJPIA*nfU$+|3K3t@E3lB(P(ze!H>;PN4zEhJx^f;Uh48_a!`v75d4NJ3+ znX}B)ZRPKC{zN5JHy8#C{s@IFjwa7&5Rc8Ph13)E7ff8KK z>4a&yk=ug%>4D9Gh@v~21QA_%m#c24?u>6vPsUWMu267l0 z6b2e$;a;l3Ik?H@!at`%-7X|(Gbjq+mr1#k&_+@pTlL#-{i~Ivqcqf3LPmRg5wc{j zEmJ9Bejh}CN-(uO;S$ZT3iyITA~3Ckf3|V%5Xj(cF@7+g400T&+rX z16q9CyA#*wlr4KrF-zRXz77IBT!IJC_ISOdU(#)BY@j=cc|F)G8wIw6G$CK-!^TN@ggLDuo{R>strSDLlutQJlcg%{B7I> zMnCS@n7!E(YEUdHiM_giz3Q6N7K?@v-WyMQwHGV7XvaucZ?-0N(T>v_LLDrDpQ)*y zVw&X>C0hgp3b3eA^0r_X7yfxFg;AW%-7S<(NNjH&dsdR*qwT<;D(rrXD5dETDCN#g z2qTVv!)SUm!#HtoI4fzr$s4!R*~C4Xo5k2Xr|$6^UnDoZD_}yEo|v||%w8Q{&1g^^ zqLEo{LW*nNBprt?Y}XWxE*i&$eK`w^M;jv!C1S{mGwXXHC)>}^wezf#yK=26%iffzu9;eGF@+{Z+Z^9L%PRjCuC(Zos@lDv)iGUai=m&Q(K6C zSXtx>{8iEsnT<;anARReNkgxuFQ>ED(>P(4(Zql-I!CUt0=q%f?`^^{`$M(6A-szI zmB2n#m>Y-0=%~gACe1>kK{(1|+^t-$goOL|lkuE(A@ctyg|eGM+6Zof^;U&lV}rnV zJkKmcVc}>}+hf(`&c8CpYJ?q9T+xJoh=Rh=l8}Myg0^Kxxs4L%~qL~Opi5`y*bQq2CXk(2}b(#68 z&e7Rf4e6iBzKVWr3QQJx@XdRpv7*z%H-qVHT7UDN36TcyP`?)Sxg7!q<`K+)sF?3K z#K&qxj(dyYi-)h!R^Olp6p1K8NRf#xMhavH9rPTLvLFT9Y3h+1iAXK?vMczk9=@vI z$r6$?!#gRDWM)3Id7G*54YO;|IUe`2Hy?kss}HMsL1%{+H)8GI5C zf;mdkq%%6J(J9^Xq&DrZqCNM2jPDViQOQ1f+a^?W=M9I!@paW$5$u9;%&~p)VCe z)W%8DY*@J|Uer^CW~#G)C+Zv3V1*woUZ}zocln&g;UUA=kMZ)x%bzXK1rE@afb>EY zboTO82V5Abr2^%~;)6iH!uK1sqWJ52z~{5;B%dgSbtTkC4&|HoXa^Om0DQ7J9vjLi z=}l!Lg@Uz<==i$_FzBh?Fs_>a31(Z_gUE7Ir-H_=H42HbIcY6_xwIK^a83aa16ZWd zQq5b#DuB*m8qkXwocs~=bv2o&<{&;&zm}H~*roWSiS?&&Gfjm*nZf^EZbybmFGZJs zWw}R*!p8isTCf_=XF~y;n}AE5B2JOot&t0E;C~%|>*ku}YQacEt(DoiXrnIUv+w13 z2*P=-t?P8&7|T|F+v=^u-i5Y<{Ogcavmv+#u5^=6SZ%7Ep!7o#_)~C5v&F`Zu;CeO zT)abwhA&>{W@NOulsnC2KG&X@raN2Cnc4C3!KHfTYj2>`TUmDv!+iPpvp#t=lgqRE z?dGx5QtF~sN#P7)r18QWq%cR{jCN%#%AXItFrp!aO2~|V5;3Z}x7eT!d%#?Hi?e~7 z%cf1nA-MM-`4OA9JwlRvRLtz;&jPb3wH8xTyVQQKQ|5IHt%B=1;LbYBD368?{7NrNZf3MhsuS4$kI8REL67( z@{|d4uoc~Z-=Q9%Y$T4scxlm@8%^`CwrG>egUWkO7?`qNFUC`!9d{~Ac%cB6E9_b= zhRci2rp3B6(3|0CE4sgL0!MGWG#uS%7LEozQgGxwC*a6>72s%;$qbJ5XuL{+k*5Yy z%nqEHI4_wuwU|ayV=@U4hzccB)&^P_H)UWvLS^EAVTY1(jy(ucS#2c6@!L!j+P9ph zIriI4)6l!KrZ~Tv9rdk?BOU=s5GczuZ=9k#rbhl5@6sJ*Zvp8Y10x6z87vMx&VgN> zD3UBEH(HHX6RmxgG|$Vc=cY!WbxvuV4MSk>VaAt4bjq%LaxFvK#p~R0D)WLI*t0GB0no^>+C;!0} z@a)z)E4j*1{Eb4!o-tQ@Cb^5|?|^N|cAgM3bO$*oMk0*ny@*182F(Ue8p%$~pg2i? zC3G}(5~fo|@&$aF!cFv|0Ntc&p>cq?I+GZ!v=SkmOSCs1qGX6m%5>_sgSCK?fIltg z0_OMPTqr-Co63vDu*Ez=TgSvqP9s6Td;@O&PA)@S5W59GpIt3$@hW_q*QHOIZ|RE? z{3N8C^S&RhoHcxoZv@@m`BR*PeC}y~brN#ur=3Xq4Be#^n9Zwz0bnxF3H;qHcS0XG zFgkM2m!#R1=cW=il3!K2mU&^yT{ENEuzpUfdi!=!FBKJA_4FS1Kpooyx>o!>45^9H z4|`PU_H@>}nku9j^Phz3LC`{fsBmk| z_1SPa;4J_YzrLKW-gLlf!$1H01W8H&-6KR>lcEM$^K5<7%1oaPh!Q@X%JQwX0zmh- zQVB$wtTwtUy`6Boemx#3*d7#jKHRMeDEPDoV{U5AxC1c!``-4iFUk!qjDj#;H4yX#A`7_z+5#?#mXz5CUXB8AF77f za99BivcYk*Q}*Yxc~|FhEBmY2XS3J!;_h%Mq_}efSzmaPA?Rps*4Jhe9zp8J)Pr zp7wt+8>^SXpd-g(Sh=WWW>3p@nj(FtsWHByjAbOESvJMJS?X{%LA)9nrjo$XLh-98 zGcYXPkm92w4hK~?4GISFBjBHc&#j z8v@{6I{5qc`&ECgFr)vAIsT_s|9vq&??lnZm()@|MaE2m+2PY4Lcqiws)}BD^k@DJ zk_lj9G#$_h*efipUyGV9{M*&0n+kjMs000np(s^HkixPa`^%ZS)?7g@z$kA0@BVJV zYaeK7pO{xNy~u=rTbb+G%P`hYWEkUC0Df>?*HO9Es4hD1?e|*@x(a5>=Z_vXiVyDH zDO(0x4I?(B2tGHBh)^{df7HWp<5a+oOlmZ4Rh)_%Dx42F?c|LPNEC%uFjNk2Bbc7- zNbLKDMRv;#$FIfdG9g|8Y?k#+9DQM9*mz|E8#Z3P8J<*sz$It)dCfRg3ZjsgQ$kLx z;bqM58j1NY_TzrrrMQsVd5=K#=->nOc{f#*3IiEYR&4Oo>w=>{OG~kl({g{Jpz|2A z#AH+N@Bz#fXMTIF6_~9B@>0x^vhD78Lq{pM?ezB>vaVpIR5ET}F}g(USV005>@lpo zsOOX684Hzv^HyN@F>@H8YAe9M%OfE`J?^~{CYge}S2GLvxX&#iZ}Ku?TibIE`tJk4 z9ZW3^LjO{ltlVkWH7fliT0H+1o(S)Cokay8{SE1-ZkyakZ<8v?xs^nzr5dtIeKCAx zoj29rL9(R`vZ>1ZPb`wTZXoo({oyhV0VMXHq)=*qI(!u&k|wGTjJko*XH^tXWY2+O z%&F~oI#rKW_IcQ;^3FYtB9~^kPpNEQD>F7QAVjr9)J@3{0sSgRo)1Fa!3Gaa4*&SiDe8 zo>bm{U3%m;izCDD793GwFtU$5vSUW(22+k$=EX`=iETmj2WK`w-NPG^j0nKCQq31% zvs5=!)VT4sHlp^QL#(4Rek8L+Nx`$gd4IsFwR_;BwubFOeq5%<=8b@UCLFgb)Ebu@f_$WI zd5R(wLzdTBNICOv&*4iCe9FC@Fz33snvaI7+P3eGF)ptCT@}#55tX2e5Bq4qO*9!Q zV&p`yF@jJVu0TBiKOe3x`e*fcf+O@7^%;G-U6|jG>IL*{P@kDO&9i|7Fu|9taXwyu zs2e=a*hC=)?#N15*BoM$C0pACHT43n#>rkRY>HmtL339+5=M*Oyq-iu zFx^CFA({^t%ld)B;WGyRnk$DN`cGOrE2sI>2oPt>&$rai!dKeGh=Jq=}hsP zEqGc*lVy;S=ZCG#^jPh9j_jkJXgE{8!Hv_k4%*(Fo1?dCRAbu76ar}z$O9zO^RlF;s&%_A?qEpbVf^q4LqgoACTVB+`NqKsc1zNpza zl!aGUai=_G%&R~j0J-i+nrFZFm{&{mbrxmX5U1%EqNI_{{KKk$C?r~D1-1Tj*i};x zOP%+oSA1B$i)pyts({#a%doyMLP=;`?FzJ4Ne1qjREueA8s?BQN^{fKO^qA<$ zZuU>g;x_J4Q27I@d_I{esu0%xezw$O`Jz*lkmOduVb8E&v-#{5NYwJBbo{)|<7Q_jEBP)1a1q|U$+^{o)rB(-G zZXLcrkU}FQq?potRA+I|#$s`^Sf882HEXQhLUZvr2q3xjQ4PL4DiK!4pqpNtKcZWk z8^3(g>{Zq zA9}_c5dFk|6d!syUM|54k&gN|?;Y+h=R?0g-Q;lpHhfb5(3pqC01eecXKN9zxLnQZ z`R>DOeiSzv+`3G3L0;nsu=XG@p6k*b;SGzI2Zewadft+w1P8R}8`13b%~r~LOK`5d zwmTXX!^6;h4@pfUd7~LV*Y4p_Yjb@jkn6D~sF?JI@iWPtO_m6+SD(Y9m35GPNoL5{Mj4++(pH`PI z?13#j9*^=WaMsot$0m_!ywo7NSFeU=7xgHAnm6*M8YtgP>Ds#c*+<96Pme!+_%+}G zMDCZret}}CsfUheDPb0)T1GZ1qk1xYb7TZW#kYmd(5X)&I#?g+@Fu$KLILIB>Y`qN zO^~a;Ngjj!hxQEkz<1bc0e?R}F0^qNPgyX~*ne0RC&3oqKdlNc7IXGUMW^W>Jbmzg z#l8E#50caWXm>aK`uUfiJ$ayN96$N!i@W!oT+gd?@BSwrsd~<4%3o(->V^iBmt@Pf zn$5Ybo4Qui;d}80u9N4>*+d;H{uz!eNjX zmr);xErVj052mnt2#bm;n|nL@fY(WXRI0^JfTboH#q06vqGwJMB0j4RX!u3_`r-7` z@u>EC+l0G;r{n3PhmRh9b^r0PPBZuUaK3M(q63Lw zZ@>ZdtW{mT3mRJo9Cg)!^vP|Teu6Wbu8)BbbjL^DxVdJSJLG%?(uMJ=)dHb^#k5sT zm!2y-@$n@fE$v>eB2wTZ{|TO}udsV|wfcIvQp9+!OCZ6uvuX$J~*4$P+nq)~#sJTS0$vUQBe?Rd3ZZ8)!>PB1avi^02|{xi&d` zfbZ4ol(cYRLc5t|5`qLH!i{aC=szt~kX+q&3<0ZuJ(R#qs%Blnt-j$6x z;#vS1`3ecAlj!KSM$zwo?piZZ$gmKDy-DtK$-y{*tQ;JSh5kUXq(T5U!4s#1lK~E@ zo1TM&Frv^VhYGh0S>7ZN;kOM3SPG(x(9Pl9;LN6B?}%1(*9gF>V0g93b=#PksCoC> z#M{=F2mnX8cR3WHN+P_KcVM)u$b}KP5eJ1{A{Que^D`$&!Ptd=n>NpHNAATEgCpi+ zT?eTFYhz-UgoPQyHdKoo&Cae6%b(9iZ$un(!z2(;t@&ffB!SZ5v8wu5ailDUAjaJ> zHLB*zK}<#+@ffw3VV)}Mhm@+dV;7rXY4SPgS}>bq#U(z`%x1XN$@C01#2nu#9cM0L z1NBo6Ruk1Al)=(}GUuiJl=Qh~qRrV3^#t<~Slu#i(r+q^H&$o$Zpr=v-UM!SMKlRQ z_VuBsh!imc1Rc7MM{m&K{00eXzwHc6R6sKl###8ivTT)NK=0@+-MT#4jotQuqG^P3 z4^t+ZlO8lk05z{rG5K4FpzaG$8N>al=Sh@_jFP{JG&g*I0@cCWCsI`4?DE*XsF#pn zNj;IfNw&lh{0P|kZnH7qO^hb9Zu&Z)T3Myaj?Q*DUJ0=$L-rZ(E`6cqdFXsj1RMME zsmv+lTkFS+N0B&D+lty`a%1{0Zc8-wa`89ySaJM0D;0#)KY-ol->H3(SCPaob2aL2 zeL>zvNK*)Z`=n`^K3l986Z&&F8sUIlCp?ezgJuD78s4xITb1Ky=X^M-!FAVll!N^* zO=4+1>AsdhfAB$c-5?Id=A=4iCmNpcp?r`5dUuV4g8X%vl8m>b?K*Ofw^8oO`VxYa zpjfu_L>;%^FW^N{%zzY;P^-}Lk!8Pl|F#clN3ueTqBM6_Iv!+c3Lj{-9>1CT-u;nkP^XzQw)d15G2Mkcwe;e%`gyD5VMwZ}Z$U ztkv8IQu&di=WMHyM-5{(Q-8yLrcX8qhB_b^f&dM}>1f%TFJ{+oIu%CE!*IRuxvxJz z(jUctr$L&(w{%a$&6fO%r9x4sE%U;+yPz|a^9%p*x9`(YnQ4N|B*@LQBX9^G?)n~} zRq@l^DCiU(@{!{27PB`_d08eNc|^G&kd$yiCeAEdbQ7V_^B@IQRd`n>72&_5n%|k8 z*6RjW=&hI`_OAV=Alh$x1^ahcXto~^d~ykYu=kaJJpllkuP1<)hb{(_DV%i!GJhZR z8mTija3uOIh?XzoZ~f4T=0>$OSUyToz*1MZC)2>2Q#*hB1WEH|ho*Px_U>8jd8aMS zGi--FNZ%*t0q&iK$yyB~Z9*~R>0=?CL z1!eM?*y?U!ECY5Y!%*=YJGug9iX_72Pl-z#AsVLtbx`b?T$2U;?yWvc#*VQQwcsD1CY|?1fs&;CX-)YWwUjLx zDW7M~z10#|eA6ap?+6PlvOtj3+K$41XT+WhP>TFmzMay-Q(2ly8yD^Pz9uTA0b+7wR4>N0pRJw991H8QTB;nG`wC^;Gq zcaX7R5N8ocD?H5fdD;Y1R#wS2w5FhuoT|YY$z8`I>9R~4VI)&nR_(O&dK+KUj!>S7 z2B;gzW1A$`f#B}H*10zHb*O)a?yOkch2R2RR^!g@?(e`?Yh@DC+AH<^|JpXD2{kh~ zmUSaY3N_5`B9fSb&zWwsm44L( zMr792-G0Asb$N9Bi~zeV)t7qO?XIt@;tibU(P&b?9xjl7ubka!W$jEiIo8(fr>v{P zI3}Tmvo#PZvn(3&9hlyAFO@nhp{d`zJGwE~5FJ=(R4MDEb9H*J6JJ+plkE)ERer?kx)^`BQy_6pocC zs^`GgI0)tW3C7UWqAISFLu|@z&_msJ$H?2eQ()q5_d1}tV{&n*nA|&Z>!GgJ8I0&W zpRHCiF+VsWI9&-H08*-d4)qWliN`?hV0TiT&52(5b_+Dr2BJ)QRHToe6DaC6ZA8&w z>Rn%%-GWRG(^0oWgLcX$tR`T1v*=$}4X41b{w9fSdcNrD0O@wf?~4T5n;!kb|MqUJ zEt1IAgoz6#)-1Jzp`FvMwe+FfF{oa2N)t>xF)-Rv!jC**vauR(C0)F4A73(N#pa-A7MD3 zgO|XqZpS(MJ9l*LL*5Y%n)5W@DYt)LdK;0E>$0qk53g2Bc)`Us{aWU0{YpiNw6Ws? zpTmThS9Y9#Nee;k2DEdXfpZ+E6Hb^0`U-xtscCJ6sKD8z0s9V8=(4@hqUfjX_l8OC zjhtHB-xYUucfEDCkcelrqB{Ghai3HD>vy2;4lq!ZkH!sm_gZN)D&Iy>N@N+%SJt7} zv15FN_Gb2B<-KjzvB_rJ3`9MH;>3FM#vb{#;9FXM84FRz4T+BXho^6?jHq+0(oSq- zz#O9OpE_GbrG1{q%TF*|0ZKuRF<1dcE*Q{1wzhG5rhjd*_K_w^X$q|ntjUTZxEXja z#gSQU{|~R~#T%0=$6Xb1z!y)D0I3`O0gkMBwl`4V1L1ue6hDP=cB4TQ*dKC8q#W^> zP58`zub($LXQsbiyJqesJ=zTAtl60fdhWxankSi zeGJ;#Pr^iG@fR44zbEH)HmPMo8;H@l1=1XKP=K9fQGxc{FxsS*7QUgCT@SH{w3nLvEJvMztNO$b4F z7;YCyFt~fSi|fayOU2KEP=ARHlCO)lJCuxRn2Cd!33r$Y)i@~DCQbx*5Wvu%6ld!l z1almOR8A6MKQn%n$ykkQuALrL?g5E^>kMFXZosi@=GV_QsmPB}yqGq4lFRGNXhUGM z6F+eLxFCJu5!1#RrCIvK5#xeA8C8LMBOG?lI;H@)y_Og*dq|+;LnF=FTDsV z)`_dwO}wdAZQoO?@GTXH_;$<$ZsG-Xlb7f!@d`Eb*!~gfxr6$CtMLs5ghVlav^a$h zI0`r4QMY)TTV4B$PZVUKOfzlkkm&2#k953@rx5ETl*o$FGoxl_~H z>?J~Yfzewsj$9^eTvfQNf4)-!1dh9ZXcA;TVbYL?km$mTe78|Y@PQT_LYfVh_LLn% z`#La&>qf4i9e3dk365?yj->U`%?M2VzTj;`V#=ew&c5)(iYpWL{pR6+X`KChFqHjz zy1ZJ{4UYIutO0(uJSahB7hV<4VYc#(q)j0|4TBV1O3bkAgWHP^`pwk1Ns=yKMqug6HQ>@i7?2#1K zENl_oU_ZbA2W2uJec%&+BRJ}3eNoJId&9!}x1)ihngAB1&_RbT?AyprY_NPZ2Ir7! zfcU~WQ$MW(siQs?QUtK@junu`uK^eorB&SolbKDQkjea+i!$nF6;H<1<1Vs()D@>` zu1o|>gPJDgrj99i%jX|%b-d`j-_+*OB49o^L%={sp*IllWS|O{BX|3KB-B}2rr_7LdNBNYbQFFL0+R{at`LmR zPErBNPpj~ge)Xw;PtUS;tihy`-bpEA^mx``kCE<*&gP9w-eW@w?TD@ueFR(k3WBgL zyX9$rIa?@}e^?dI@vJ>JzFWOwXdJh~v`F3n1>}&`V~L&++)pgPJLWN#QnJ1kG>~d- zh%RX(X2m;?Ul=>g%0@Qc1bKmPRmDY{V9Q>exr?)Fs@+?E%;svK>F4$IDwXUxNcU_R zyC;~|D3N=F>Sm&LCuT(L%(N_D$>-TV{I_Yv7}lU?g?&NEVaVI=KTO3fHZ41iQHP^3 z4uXWV=FI7q?Dhm=ptz!u8LN`R6%)_jLnFaX9D_KN9J!dl;TIN1n9L8^H!DPsgh12T z3fRksQ#>Jms%c-9^nfPy)C8|8@Z7vaiRNN9sm9a!)vB5dpVyPBKUD;>9+}vWkPoI4 z#Sc!9qSh7;Z+T6w{pB@;QQPrrqsLHqA^262bUvXy&$4{-o0%OPkYfnvNnm5ftNL>3 zxhLRes^Mz%ipR-A?xRXgWTLRv zNSv!8Ft~B;q_8*E(74E|WWJfVi)@y{rgh5VJ42H64_x9{0aTJao%Jv%F1q}n0PL@( zFQ*WHGhxUi9QZUAPSj!L>_fft7kW-?vWMG0Eav5H#*3cb>^7lK@f)zs6L1!$2GG6j z^j$|g+|oMLX-FOYD1K<%Zi?`@dnJIj5ncp6@Fzb-uIu#8p~2gyQ*Hxa`+&3%_Fj;T z2_xa~-)LIMVz>YO(Hgb ze;gxuWXv(XwS}HyUTGF)Hp$)P=?glzui_gwzT$3)6Ldk!;})a%A`JsH8d$_nNBu#F z^W7Y`0gSf|Xr)Qaf@7@=)&wIUT>_PmIn_K9!J`N z$~sRCk~}a9(=FAJ`MpgnZ7`Qg9}c2rYruQTF`qtsQ6AxUqHmZj`|xENm$f?DI+gf* zxLDSWNu?-PR+K`^OP)n`XKnIc9oNIf*##Gd;GjT^;#)G5ix|s~&&DsabEfKlG}Onl zYe_D$#E-q_v+JncXNna85HGD(>kE9#5cQ|Op^i>6%{rZ^QodO1FUlKDDwcxy0Bb;$ zzjm-2)7v4`ZV>*sw>hN0ji!=hJA8H`Bk{TIad|yWGLt=}xEPTefnoQbL}DZUUOtdY zo%qP%64O$)VpzQHLP?S9w$FRvsj3WSf5i_RE-^w4a4ay=of0A)Ur53u1+d|C^l(a3 ziNDk1I`vgdm8DI_8&YLO+UW80qF#*kWDyQVoa~?!*Qtt*wL<{KBuEZAr@34~v?5H+ zd5urGIMr!3?-I`Dli3+~hqTJSF4zu(u?h-{a{T0F6O(HJQ&ciSXoD&)HvyCSL zhiHO@Y;ZeZtNG3HJibk zgYY#d0Ng#eyPD0uXVnioO${=ifEv_6B2`f6hWNRh>u>NUueR zM{gt;r1Zu4$hAL%!1ejs8%4<08;&OtIk(`Avn5fSh9Z<`p&6{*ySx z+ZrjXs=-xhLieR_$qb!F^2_sCO0hQft8bG0URGP~Y{h)ukGMJCY7A|okn2k*ylG(7 z&a#I(2>_y&%m4Axr&*)=XbFoNP*}10Tjfc z?Dt4nBC%17zaZoJYFxi|I4sXEb^i9UkF*p{n^AMFCDCiXKfhXDbWPI+(*5;fIM*R> z-sYxr*b#JCRt0;DDtb9y_E16r;XT>ARDU|7Wgt4M8bJ|hf4V!_+mN;eW}#;E2|8`% zm)5-Z15c12TNurTjsc3 z_sks<#I9e!!&l3G8(2$qj6(%Pv;DuP{gOs1BR&mh@3UwOs!??Sh*TTOTUswYug_hrN z_5VMGe>_I&|JA=gR{#E3{reO3?@xXT*^HphE+#sHU-XlH?;6>F*$a4%8z};_Xn^s! z)`poPV6noCfdEr*hqH?raQL$&Q90WvC$2JM^v!zl-~Q!r-d)sZkHEa|MJ+nC=(osP zP1HfNaE&%?H0R-}&Hog)Jz#x>W}WJop(8sRf9+XhsR?!=yb~06*{SxEy4Px(Aas?)&1jH-Q-gAd zk}-NvPy~~8bV&AaZO_MzN5nKxb(4%1e}y1`(yj$@8Ll5bS8fZ+V4S{wTds|5DnA6e zf5hJ5gF@5Bu2pQRtMIGVS^L)fVEK^ z1$BYm93Dw;Y2c>|-yN+cI~_|P7%?`@sYZ{02I#pJssGt*HESgEx%(_Z*r8uT)SYl? z?hXK>^nm7!%0FLCpWw$;n({AQTq$jNf98JS=}X=aYSYyK0dclacw543UOlfr)??^{ zVTLs171U4YJMk5`M;S%0chVJSh97~gthLv4$X>cGRIM+tk8Z7{J4fVtg|4Z0_7ZK_ zk3&Xf;jbsN)o`MygH$?T4I@5QTMtgZw5W?qAR(H(4Akk75B3d`?WR_=e~?%bf2%Vn zq&j)B zC3}W9*R3`Dvw>hg9d&~p`rEsYf4$*a)w7mPzk1P{fVAAlN)=xYuMgG&nr~UbyME5MtmcM-sk7) zH3y)1F@^bN9z-{?YeyslN^GyM+q5yT^HD{B9)Gf!%F?a5_+t1ftT!FLe~PLZzCNt$ z*q5*cTsC2Cz$3vDF?iB8nCazSW3fYLzzDQA^T+DUqK-EQClmJ5+0g0TjSc9G3ns!L z^1t*=P$Lt%grzFK8oX;fFi!_0(O&_FJYUUM`h!9PR^D;j8ocXRCD=^HSfotew0+(K z^O$nxgHROM3tFbA^WtK*fAq9&6sEtkyo|jqnKT9AOLq_Yb>V^BHzQgI9UgYqn^Nk4 zUN!f55SMhd5q1bZ7n&5rv7R*P#fp8R+THl6>Exf4{LNb!u{@Qe>@KrLdIHOrfdLXV zh$Mr5bQ4jF*51S{d0%SQ$BoB`qz%T9^@>(HPsU*y}22f5k88sP&F)rod`6 z1U3_qX}tWH5V}iRD!}-xB_mx{BxmAZBrzX*k!qGv>~pm94|rhNiobvo$^L$FOVNM9saVbfbe7ns1WIQH77PV zQW%%8b=`~-^{Y61e|+k|%6XpJop6^0Arc7*&X^fNK5nX^=CHAJcdYrt#VA$rrcIps zG2X%lp-$fL$xg0?eVs`1qEmSz0->0V`v~s}wBj&`(Q1QWe*GVMmy+VU>|P0uO^OA2 zHC9LNkW^D*#HPJrMq7V4 z@01a1Q2rh2w>UrHBRp>1wrRT=1p-vU#|amqwh7S3bOMoWydKo5BLu^8 z=cDYaroF4b67RUK-@oG4)HA7F@CO0#>DlW!TJ#7Qf6lC_h3OhYxO&+K+sH%$AHhuq-q=n8C{`Zu|6%dmwF+y+08duX$H zs_y==+dI<~fNK7(iichWJ<$H~p|0f$vK#!ce{w6@KUTdSCU+dd*Jd}|^b=NE)aYd8 zjKUH}s0vIftJwRxO{kd)lz*SjR*(lB?@@?_^Rw}&aeM0pSy?q{bafBQC7Rli3Yz}9 z9KM*2&&LoObLsCaUSWI?v!e#s+Dn*p*n1}SPJ|bxdAz6l(Gse7K)bn&ucV<-|G~q& zf9!)m1xvM5<*+LXqb}I#DK$;XB2!`15MjSEbYfBG(^jR2QHfJ4_pK`qxyh^a@+Mo-BHVR3Vg zI3>N^$+t1^g1Sz^W8%UddkB`x$$)8C$uVTratA5-0yI;QxW7Cb&g)d3b7D0Y137(} zC?`Rb>l36Q_{(LtY|6;#K~it?Te}}(XMn&a0!_CAu@)cA=ACkT|3lGRP$;X(f5)i- z=1{2_$pb*V9{T&9`*R z%`;(oCiT2q$GVuL|^I?z$Ja zeKzZnbsiJ#*=$-l_ry7(S*PsJt`v2}YF)^e_u~)CvV8Y~T_Ir-WBue%f2bS}V^LWS z^RK4Q)uT|~`%-V2NODGAL9#yy)E|1OelDOpJ(A#OS3RXAfVhFB?;bhz061F*P zQj9}^b>lbh5hd;EFm?Ja`Q|-{KX|bAE||@sSuVH#Gyh8{94r8~f1c=bW~%tjd-Tg# zNb0#iUrh^t{)kP*@(-`Tst1(?%gX`{rqDuC8#elqb=5+2HH6FNoA->1;l8%)Z(eq0 zo$)AE+~P(`MJ$RwA3L1pRvdKMBF;+|*SrvD$6t%v*t5c}P&f)p!oef?tt%Q&0 z-fIMp&9&i#2DMQNYUADA|LXo1Po6${aQEkat`b$pHz{7me}Yud5`H{fj?bJ75+2UJ zSTZFJmt?ZcX;4p2u2;9urXWl)EhhEEoP2@_At&MUy_y6EMmyO$ zf!1tln%XN`=ZHf^P=igRG1q7vxJ1Ktq{r;3JHlkQq~N>QV<+~}Ftdb5kDH&lr@^k0 zjIi{KP#aC&e_DclrRl8uDs%|hY|nZnT+U$=e3`rGd`|2jahE=u-g+d<^koJh&;3WU zd6&`>a`7u^3$>xK!`j0Z6F_uJr-+GzJ4Man#KPt^*&u=zqGE+IdVAU=vAJ;^335^U zVXkCvdjhFGt{||73tMCMbY=)g=y+<$3Zk+1t9J>+f281-Hg8@w#C5*)-hSlC80PDz2kv`%zpSMEY?AgKXch9Z8A z_?E+c@2)giMh^5sZCncB^5*u1#$3~eDK%Dn^nxiN`s&pLyzNrp;A9S51c>LoUgmjT zkCtx=e@7N$K(=9wf$M0?itJ@D4Bxh`PMCRp+3Q4$9q5lw$H2ZYO-v%vZHRLGE{u1M zSZASpq?lBr4U@za0jnp}@icT9PSywj{M|fGS4YAv)uvaEU_{MXZwF1GrUvhU)p+?; zZXa$#T}&+Fn{B?it1)~BR$=(c{NrXE@^hmm$So003+{+FA2C9y)LK=xyx8zio!4mAT4w; zhh#fw?QXBT^j$DT8QLp)(u~WB^s)m26>+z4v8`ansciPL=^J1rD`3np%*Pmk!2@*1EXcX;u3{+lh9WM!vmNG ze_%TaM3YoQ58r(|7zp*woyi?O`JNl&>k7cA?pe>n~rdj4)jN2eHb!%$Q6-a?}Z!=HemC$S`z zy6(K=Twl&tZ?wB{e9 zixgU%xTTyXbMH!$O4?&$x`7!0GcCmR`J|4{0r6Q11Ewggga7v7W&ibfb4Rj&7%2y1q@A2T+t|H0Sew5#c2^G8=C6&~$Tz_Ft~L2n?}n+maylD{y|rhDV1x(m z8aViUO29$9_4USx*seE+>i_p|)7Qf?A>C4Vi_j28EL)`&Hkk-qCg_}zPW%WID#fDv zEFz1SzKD+P5UNe8rof{qKD=q2fAUBl;Hse0yxqFYDa9noo_h_M_Yh40=NtArp`N~_ z55mE_fL5%=TfQ96HM6KyoK4fxT4$J)Gn*i3NQVmuTdDZs;SW-tA!##fm!7AEDQF;* zZ4+3I$q2WRdTt@WZ7bFct8Xno{az%+vPr61H9U@fYo)D$>tfOqH0K~3e_L2~Z=x#x zt(RAptwM7?a*VT>;*kp@Jobt|g3|JDcs6=ZHYVK&hB*BPB`wwN0G=)q|D(0dFyRh1=deH=l%a6QhsZZ@)AkrTgjB)UgGzzrF?C~ zbqx}~-%x3u&0j50uir%Zf1Z=aB_(~Dnu6qQ6G-@s*iU-GqLB!cGC`m(^E0RvPU^%? z;nX9Y->YO0X|3%qB?wANJY?CDBi`SBo4G(>+8Rb>${;mT?m(Ao3ijIR=v^8xuaoap z%J_F7VYDN*mrcA%8a^SBYEUn2^{~zl$E8!3!|^mBIz(FU>D}Iqe};|353wzamLtSU zv}S`VK{A?I*cLL;r0>7c!hO7&8iO`VV@Ph#j_*-)BWX)FnyTpwAl%OM&C>xI{hv00 zGit!L(xVpY!W)^&8M$jjD3R_0@!-;1qx4J(PJ_UV)W`XxzV4x{OBSQww}cBqpc?~)MZ}atRICnUa!Yq zCF7iG|8_pal*m^#Ncjn4j+R8Uz93Q`n?ao5H<#KM+`i!fa_7T$5*{!Z?ST-W9g_lD zMgvlrk6(4RPRE;0#0&9GKB9{kLaUkVKM&MF?_i$Z$z(WRf4YJx+@%xzb-MSxrlL!y zmaAMKl6ncxBG~#K{vspU({~ZghNoak#k6sCgcXovhdB$gc<6wEWnaw&{@~$mnuFk! zi9jJyX9NGF(W>H^H!cUgIw&+>B9ECLGbae5f-%lmTpWnBBdV6LB8dJP#33ewgRZOp z#*_+2x)+1Se-H>8QHA4mVSKDTcQS zkL&Y?m^J!lF;lotgG+^)Rg~R`u(_k@2P#(u4K4+bX7erdajlhE2?|!Rgs1H&8UVsE z(-t-Xd9xsj1B#Q^f=O}IsN?%)YBPqIko6GcLZ`EID*;L0)l&65oF74et@%EQ7%El= z4r1bqe?e$=(}9WY=<2NAPc%8~b}zx*oH&(O&-T$`F?`b>FY({5V;W)+S-3FGT-bE9 zW_@b77FqeAgBI=wsx$CA?Xvo6K(kIwGAwttFP(U-65oigB7aMG=E;d=}Nk5U45tVk)^Z$0Au9(rt?eG zTX!V|yD)FMWGJK%Ay5JT4DSd^VcnY#e^(cn#~Nw*Q&sdxl~6`&X3hkHSup_2CjADa zJ=IZ?+M-ElJAwRT6kC8D=Z5eH8UloUJ{&q&+Jl83YQ*f6{pHz0y*D0AS2K{jcGsX9 z8LHh|D0Ueebo@ZFn9?zAeb*58BcMiJ?Y+#wK0jB}XCRFxU@jXBGvC0a3k(Qie*=YC zQ5fEU#*LyCW+!`$!gzDZur0TydS#%$TwXnYz;aL$gA>$IoRZoz_<$F3lmge(gJ1!( z%etXv%z>FX2#yTG$Skd|+h@B7^QU1EIiIHZ!U;JsP$l{UUpk4<9xR0IF}1O(TJvm* z`$~`!-b<3CgcbWseK%#}vB`iJe*o1!DqEX9ZxM7-Uk7J>Y55Q%H2=qr6V-Qhro?lX~x)148q&ib;q}0Mi3~Znx z$0wU8-)7)5vvqzFaFC5gFgZeefz0+2HbI7aHOp1KxK#VN!VnY|HFN1ye}&AUG&Pqm zbbT><1s4F@g`LodA$U76%0|Y+*acb9b< z=_S(lri3T#A=Mv_My6Hff278*VQ(fZ9#Z&}yTMiNJ-y<$V-lpP;7r)qSPZYJ1?86< zP+FQnAQY;K$PCh?Nu&kv#U%3G7>^-|21e?Bn*%8m&0$YKX6`BNPO&@TK({ELk&6TY z4N-Vj^(oVPkN8$ycEcn}S^1AWY$Rn;i(I@Ri`p0;;oi88Q1K=if1TFG+o&pL({^jJsUuq=DUqElo&LQJO_1skn7$@W~D5VkEuVA72q_-}!(0z_L>&@E5ZJ7J*Z)<2fm#6C-Rp3ik%syqP4Ny%zPK>#TMLtkFSPrby7#cT>8?qGnoGj~Q zc0AWXTN^bGnG()-e@)U8e?CzvIsYLkTj6u3n!Og5)N-siCvPl`VC>x*SQ}euN-fvU zI#%^)=e5Q3BjLPYK1+GmK`mi@!_G99R}~la5Upg-XKE_y-|6i0;mY_bTn?{^b%S@V zx*@L5YPc~j$14m4kPe22=g*kl@|bwBgxM-+x)HTIA23;Df0`NO;3o5=pe|ev3(%$g z9K-OUmxo_t0&5xs>lK;5alrX8GjAed#}~8L;us{jcsTu(SX7~gb%`O1^o&JrqQ;efsJP2H*ItW-Np~}W@)&?h;@-yD3AUi_=Ym~%h;im8=niK`pLK1Egb8|?Gc3} zv5}!cgEf(RHJQJbpTI^0eztP9ZRbiF8z#(kUK&B29z`L90xuSBxaAL_?ibgd*7^%7eE-3#J@~XIimO(}3jTMY z)emwxX#~<4ldNX{VNfZ`=){W-y~>ohDX?ebrqhun7_>?mSI2xJXJ$xrJD-eKn7*S^ zb-a}Dir2zTd@zM$9`S63Uki#|_yY8LVsjZPe+m&**IspAd1QpG*bfW1&vn*8EuO{I ztM6iNZRBQQSjfY7WZfmLMSymdV!yG;(ZJuN6Eyu>c231-*YLSQ64m4*`1daPe@;;A zA631=02jG5N!EhGfiX0G$mL9Wn9GqAN2~uzi>$ogeF(ab!nTMf8ZYnLX_;ocENv34_~Buh$ct^f^vvl4YgKjp*y*9zLxw~4BO}IcmVO2@MjhzME>1XnxKC!oky@-a zhD^N9I-T|}L+5}v05?@xVIXV=*Syjxf9GKF)j#e_e+jVcdSC^G3dz)(ZZapcT&AQ` zdiz4c2!i52yc#dS?8V3m^C=y05QX3O6=~{{N=#ImW=!5v3FtkWcq5UHFUJg#NFH5nDpYxVG)YIdg|3q?Z+l?_3uJ{RSqDRx1cJde+FAkz<4e0rNe!r#@t%_f{lJE{v1mTCFQ$y;H4UhhVRe`JjrC0=!hX*RPGeCo{UQ+AA2 zG#y5XFUj1RjbhsmwZSPD&e^MgaKbwruT*8a&hWfFG=kcuAl7WzPZR(*Yr+0*#>NxhzIIddcT3T87w~jM`;0lRA z&du9mhCtC&XiF550ta7r}FW}GK6a{!S8i>pJ~v1G?@r#em2;Ui(-@F$Ym8%9#4z5jL6=;QGEkMuaC;?sds>uF2Em*`QH_tD*oOl%!qe~W3W2Tr-qCRgeZ1~=ngJirfwE2+4CH^rEgd8KGrXP)eR=wWydhiZYtdS)>y4_^<*D^ePC z*@OX0e(L9h^ZhCaF2EAX8xhJ`^CSni{1?M(2S7gSbWk9#O;dm#e}MJXVlv=mn-+-z z6Qj=12dM)O8uqQPe@19C5&0pb4mPWoNK=Yy@FETc<1>4SdU`e+)n7h-U^N^jOJHQs z7)l}}aA;#_!XK+`;^PB33DqF#5+P$X8u}FGH-0f4!dBqXrC*yL0`X+tddy7K1q9qg z(n3ojBvq_16UP;@0G2v{nF-%cg3iI_Rh9OH6j;uq^42T?jiv&~)8Y06Mn z_-;EkZ&L_aX6sq2ub{+lnYinH7oR0v9K09Eo8Wh{moay1)KMKcbxT5+;*xJ|apE3bH934gIVA$+HVaoVzjW+4*+D>v3 zOLxkw=Y-?ML1m{P&~-R!qPWgx5xTXB|hx^T4kue|C33qlL^92@ti!AJe4Z;$U>F zZvv#csN%W+>3|8aLT8Q|BnS)LoD{Z)hcdRx2GIL?iP4S^!<_`a3F<%aZe#3|nC-n- zkzwlEzdebGfXLV2OQ0Iizv_5(TU)~FOW}GO0sVC-oxg4^n)f&b@0<#Ty{YjNkGp0k zBEcCde>%*TRv847U7ms~hHX}Y2#2ZN9pZU$f0klB`}*McEC&VU9b?!+Y+=He>PSa) zh!6DAuwHm)*$D|TL%q36OjRIh4bErFTm-DHS2OpXSKIPHWCFry+d4@bQ+fn4G~?~# zA!($@g=#+J%nVA+&OFGe<${axz&5Z7ku*>#f2=|u^UIrllFF9^DYNY|+34vSSuNh^ z6c?o!v7Xxp#9J9BX6My2f$RgbgO&-|rKVvrcC4c>$H3e8r@J>u^Eu++x*z9$S2jzJ9MCe4OsBBYOY&yq>9z#PxUbyegZurqcQfJ+hD-w#Omh$v zs0(JhSQ8FL$4w9l;FD1Nd0=Y+pY5P?f1HC&0GYRfizNvO-ym))QlYsTAe9x;f&N?7uhQszAXFNi9@Y!9_#2MGh35<7q3N>~yTyTziusHlf3oA2#aG#p ztK}hXapXLYI@?{w&5oSB2A*q>fA&M^mNz^Q%tuU%qwTZ&2)$-NTKAdaoVp!d4ploK zyzcU~;SqvQ7|6hD7gXq!W!`;nU_%Id#c{_$g--eZuhSc(ixJF=nX?^u^6ZE1HRxXu zA6x>zu1J|rLhF~vlc^X8DdNiD)HctiIY*Ac_fT8DUKx+9jJN)du9UK7e+ZHTRo(c!<-GLXZ3`(q3uXsn`p4p ztZ|**mp<*10ab-Y0BcCM0ZYH^RI=-7p?wkuCKO!G>PP$YmMNoX6Z%DK!yWjt=FqxV z=kK7K$qo-ub8A{+9UnYHf1GrLf_TRMHf%F#W}UbFv}M+7>laKSj+(+%(ep#J$r~7= z5m-K3SDb{02&w|`&eQE9yAUmmkHfLij(`O?jV zHjNM8XdA05pS%jwG{@(*d#isn9sl7~jY>dHuuo1)!8DKTtE%EUe|1K$5v-V-M%^6O zEh6;mnNZJp5yG`ovR|W+hWUCJO$o3j*HZjUK_k+n3(*;$QFD2{t?^*AAWsn~od93B z#SL7gU>qb0m^2x<3Knw{FTXJULO+Hk{4L~1Qv~OZAJDgI?^^317`7N>=W9%xV&mK0}nk{TIIc9{$pPy+-JHu z(@c8sS$uFE88m1PegDZ~cKH|_%^ThK>xBcD*P`Fgx#PD_OrZxc4!Q9Z_eIBY{FF*U zp+ldBKCQNI>)DFE7~f+mQsnuCg1ffaWWY;CJ5Xx}j&C>`e<8=Gr_}l7#nZECXW)s> z4I`oWwqO16zx?$-{1e|>*Rd#2;h+BZ-~FHeg{t%2KmJ#p$O+iK{8Y{F{@I`Z>Yx0Z zU;pucr7HjWFaC|^QtY0WQ1O5JpMLdc|MFM=<)8oUzx#LnexFy2o{OEo{lEY8yFdGr zV!gX5{{3J5f3MW_cmMh?RM~fb`qzK+KmT9<&%gaAzxtyvLw^*%TP^Q znk1aRjk~K~-Y^gSXPe7U=NqI3?e|tU;Hd_^E+CblS8$j^0>5hI&42&NVG0LywJZkk zuJ%Ia;x}TOAI;_v?W`*FACHF9dLpHfnbUV6e~nLbt}Xz>YCPX=gH;0;b%X}r_d5!A z#-v8|wn$Zvw&>pdPd@tcvnMPwWYBLEzl6r`>xPWp>$v`k&SO+!eifiA#{ir+yl5x0 zW&QDL8b>ft0KS^X#Z!umveHXoUxo_ELzuAod_El2{@CiJHhc4M`ssL7;~e-TAd$es zf0eqI;#hm|>5KZcX~<`j3g}28Uky9-DvD7_imrxHomgmSj5s$aW(uO?=@a--nQY3Y zR3}-s&m?_G2fjJj5h(0kPeBb6Z~4IQH+an1T3O+N>uVK^g!rN7(qKK;LRl4nxe~^y z#F;e*>2}yv$h(61&ZtgLz1(^f91zo*HldFmr z^w3?aRq^+af1hPiOU5%(Q=~*1AlSB<#5B27EM~npAD-34!|5^Bf;VtIRS!gsOI>RG zXtp$wt!a}L{M8v%8}TiWuEj4q+I}ktEae6`Hj|(bPlohj=`o7dsrx9|bu9HAc=fFxBS}uDXXweZI22 zRwg3EJSJ0{rP-xM=dwdK~RuCFn+1=}lx}MxMDO8S_e9qKit~c(_+4=brv@7&`qo!(1 ztmD{acI=o{+xJng3g&6qfFCV}=MP3+)T$rh@*mG;Y8LlqXIB6jH4O$Q^$W$s2S)9d z3|!^UVw)&da^xchS0?fdPXI_gcSAE72l_|eNvd!wfj}&)DwD)jew$`7lpe_QG)aUxfSswCF4 z3HRhW*gg)11*#+0i9{^JbHxuF2T*94dr@8Y+Idb0fM)uN4M?Jao#8;`+LaBFl@@{$ z5ZgXPKBVijBl3QFu~Y~KKIn@NG+Ptri4y_m^2x+Eg<&(Z6wFjAg>((USe2Lf4@57Z zGDSu^hw=PmKtvdwe`f{{QzEuhO9~t$lIdnL$&`_i6xI6n+hV7Ih)V&3{LZ>9s5&@; z`Dtl_VM~^AOX^6+o=B*C326Wb;T~aQd;~$VE(8(42DgLuKrw}r)$sSh+A;n44@$)X z@Xj6Q4`^^F8OT96BeER=?H;%%0lPqaYPVU18>K$7w+BNuf0xuKfpM1S%|;Efwd6Q@ zcxm7(K~|ijs^}vlSNmiE>EC&yyu}5pspbea;tGp`-n#khgE0Slu$z9wuN0p2iRJr! z#kks)_tEym`~C;s_cxO2o)bJ*RU_>OY+moj487(!S$WJwr{T2Q5-qf8J`Dw^+2A>_qR8aZ2-naArhXPCj_Bdl-c8b`NLV^WDDyH=D#Y+_+Cv zVYwo!`{4^b7TsiqG@Bi*C5h0i_Y*&DnO~aCUbf@ay+K^M=fLKv%j7YI3iP@I1J{rB z_qzyTs3l|qv4U~w71?mpVshb!?xtxb8+^)r5Ne6Uf5WS#_D|gpJ$-=mi&&li594r- zL{Ipv-Y-0wArp!$COJIOR=yHv6^gtqEQ13Apbn%m_LZIxn}_v5Y!^nUR&WeQn$3d} zk^+V)aX?G^F0f3sV59O46R*4w|RVM-8=Kw-mPs@CiAXa&I<9C`&+&HQXleqvH}0gmP|N$*Dc zmQ3t5GJZ_>(+dVJ)j{)~nvHL{c#T;=Sa3B%!d7hqiWTNmcsG!sfwQ0xqDlwJ<@QJ8 zR|4y1NW;O}YSgUCrsHYT5@z(B@v?`{G|DARe@Kc2Rk{HpF>incnFet3U%*>u;J6kk z-dwqnqL(Wm9<1%2ZzNA_%f}q7xyS`C@}R+C++GH*58!X!vw-cX|NrK_RP1q_t=ard z%6m95VOuOTydBJZ|F)X;p_oF@Gxs1%h}qbU&QL9jN~QY=oFb<+@9k%QYUH?+l%3%9#Na6i+^T=r13rv@j}*g_-YJ6 zvvtFPADx=3D{aQ1;YbhDrCAILA2K5jjiW&tQkID8+YQVmFe3$4)q8==o!@02EEE>w z5e9(q){Umg&`lYHmR`(WBSh{m7PCe7e;G|_P*Ahtwb~Rk)+lc2Nem}okn*OeugA;P z@)<)6L{V={czREfLeRuZHuGTO8rbNK>;v9;*T>TjYN9Uz)(Z6Q;YQKm)Qs6%McAc4 z9+fGCNjK2gaVR3d{u9;qa2qrjh$n{nF>nZxF7OM?V4#7L=CXC~z+!6)ltJoff6@%Z zC)_N+;L!h(W3c$#SZiIOr2>j+nt@r*BNN&!>LY1q;@ZinGas6DLIyl(Ty5JWsUj`# z2yA@~{a|_~tE&NSup|DK?j_Kb)Bt*y$#ly4Y6a3>;~e0fL&~vkPsS!plg4L+wH_`W z3HS>nI6z4r0@O@_`GWDj(gAd7f8QryzVD*NJsUvH5hf}ap zJ_o+bjQGuaMBB^=n{VEGmY2zUJG^PJY8R?h(YKDiq6+oZTbUrS=imEV4=c%Tg^v9m zJ-~Gg;2un04JTs*GsXUed*UP2csgF`9ee;Os5Na``q%?5OZo%gR*Y?~e?pjxs|K0D8ccpgIY)(J; zeO#{+2WZZ3>Ujhfw={LDc}ueoc`K*$&f+pfI@#2_4XCDl=rp_WF|igH6&C!_Q}~8H z#z7Nx$OFzq04zt;tLgG$e|)~`sw>BDSjMM)hcy&;%!KYgjg2B4u3`x4a9e}(SeZNl z=FoLZpJkxBk11>n1;hw|#N)^FHV+pge$BJmc<9LdXnoAW5TCiOb|`5JFJT52>TFJLn4Md zMKAjFyzj$tlctjDfB7DgNtdS3nqmhWrN^&L!n}f`;c6HZsfXpyFTf^(spkxU^SwKpd`(^c9ychw1m4JnRv@gzID(Xk-FzNY%^tLn7K_KmL)^vSpDgnGYAs z`U_lLS1r=6fAm`$d-Gh!MgK~t$qmeHINN`9nSNT~NBD0aD9@01>h}lAtFGJ|y28-W0vq+ZfiIO>c*P`}W&ny!>ML1$JHvv-SEFshO%5`JFM4 zR)lFTBfB1YFG|HefzYc}q5d#=P&5OhN|v7u-ze1PeuQBipoo+Z+Uu%`eu7^WA&`*DoU^~3$gG;mpF|o0KwawTbX}U=P z6y6lxSALYDj}@z5N~79k0DkSnokNW7sPNFPzVs*TeQB7qsVL1VuI~?nk@{PLsSv70 z3c~t&f3+BX9aRTAZ}_pAt%egmTWc@2W4DcUaR?{@fyktfFn1w2CC%e}Qo~icG_!!; zpLyX=ykbRKEVhY}c5&jLOfaFQ>D%(9_z^J#IV1e3I4poZjsQ!zQ&vTkQ_A*aSZ38C zYpnzg40HimPZ&J*i(T;hQs{ubUJ8vnr(O45fAfTA^?1TcL46m@6AX*YYD+O_EYx4r zdLs$KdYeCRGu&%omSa#A12~ZucGteh%;7h%foa11HmV;;PcK6<+{^^jNX$DW^PL#o zF#NOUf3XumU9JAx^LkV*KRECQ-D84+NYn|WUUfvs?gHh2#};&ku3Mv>& zf5EY+6L80Lc8<&;!po2vADKS}wqy8HcasxaFls+qkra;TeN_bVd3yyVrEHq(wwzUX z%bDfee!qC2h6aFMU8?tp&9LXo<_!Z~aX!1^thK&^K2uA#H;*oR3{bFzAkg<6UQMc& z$=N4R-P9z|YQEjDAl?{`V-(EdSOeXoeVIoflx=ZyqjY#d>a{!Sp0QEQR3(&u30SaVQB7yTpfP@ z`MtZ_&6WFWfa9jGCEwrOE$(}rt&h3g07u0sBVqVWo3lHo@}z+v$8!eg59}Uze=pc6 zKBC1HE$ESK;UEqO*A*?xE-02SLZ#0k58C7UOg)UP@J%=IayP-1IIZi^F=pw+l^9-3>roTf0Y$28gD?og31C%RLpAj7^_AkO{aiS=&%^qOIOb^ zBPV1uda1#5nv+NFL_o#Xr%91yqJEh1G$V^l^q`Zm>B6!FkLH|W2$q6VOn`wjhOIBK zeWpy`t^G630(Y;Lcm(;wE6MQrb^90N(Wsu@z>auLHeC=Qp)dw5e&4a>e=oyteS`Zg zVuMX2U9#0WkVW~6zQscBCWt9Mp6YvtGd)qI0)!XQb!`JHj+bL(YXcc0sT@Zzw86{BoEgHnFm~RpppOVp z3Jo4mm*Ff>ddgwYCnZ#9f8rZedmh%?2-e1$Mi>%74>&r4Pw=#{j0eB{pul+N?X^ z>tNnH=9?A29#PrAe}R}To$)t_>h1j1i$pc#9{T2sd32C)$2|%Iut{UVnIw~mICEcc`jz3jkCQra9YSJ6=1#bGEkp)05V`spc z2l+2Kqho~^#~6Ag6kZVhah(a)XRy=ond~2j_HM0;=RQ;49qOqc9TmgAHc;pl-RG|O zxh~!lFbx&FZm=>CW;s;IRCF(>#;W!~m94p95Y&(S7>1%6f5JW3$V$e0=BUHZ4xdsTy_H1-$E@DhfMZeg%ek+V?LRZz~(tFw%>$R3gb9bzL53sySw& z?fUM;crsele^U$?)-*;vnP}tRz}O$O;&Jt>wnHLOMFjS!3hi5TO09se%xiO%BAVjBnn`5vvg+sM*_Huvo8fO|# z1N&Fhp7MSXLRaLlhCXW60Gf=ZnQNsMYp}r^JmH*Be+THBk=c7vIfcpK*rYzI_4j=r zIsG)C6Q(<`?*hRFL_^X$5h8dbDbZRThZhR305`Bc{i&hE;{?to7JD@#*I#;^oVgk> zxF7cAgXI?r)5hm-?wW9pI5KDf=nr2Dumr~>Py_IGK=-r}M9Am^?2O;lplOU@@990ibo{xa+C~(kv?qMB>vq%%@A!G)6I*x%= z%rGk=_*HTb1ii*CsG0%EskFK67j0ubGPF7k1coLbGMogkj5_L{Am`|ftQmZwP-<9_ zYQgC7!G|+MV?ZR7j^FR1sY6bh6z1`tU2jrqf9H^vA)&+ZHdUdM$~{Gv->V)Jvbq< z?%~Ps1t1Q{xJKhw9mWy>e2(mU1;VALbyW0~+3$l+9t*)a%D?Y*N++;~=v=HWC+Jjw zb-x8&rGG(XzZhwSUo?cZ2aPqv{n8aJ(H5p`159f$GsbL6SD5R>#|nHjdOI!{Y+`d* zn;hIkH>6hxI9rO2tNZ{XoGO}@ty^x4dnK0R-!1bZhnig%fWnUWqq`?zn+>-2UI#XFQ^wTUCFJ5XZimx2Gz*MLTPiU1-Dr!-tZaa&(p|d} z(CKh(;asJgYUpWD6V62KpwclM|Des6Z`A_cqDxW zm>@{1gJ%4-;!ufo`~%7 z1F|`k58FDJj&N-EZ@VcSmf3@}_HHuvk$=0+m(jbuRW$7yg6A3IRrAKpzNA~cpqJtk zntGOBz)KSuN}<-0yrZ1mSY zz`ZI2H=995lBtB9){N4(piJr0!+-xdseif-0@%avd|mk8%lgg1`q?eI6ksBo!7aQ2 z@CtdhY3@P5q~=EOzh~oRj}2V>PVphgH)bQ0Z*(B~Rc8ZN*0ZWzhX$6=3wEIfK+Nck zr_fJl+kOtTK{oAh4|QA6samG(GtA_W`=7z9c!FEZ&UON`bHpH+-L_K;X@6hte`Oo2 z05(MZr$tr6l(eX-PCoH3KpA`9v2Sin#0lHeP1K?dzXBBJ#eOw3zI~VhWGWl*CiQ`( z43!vpOli8w2j+P<+{V&pH)3~{k0-OUml*~kWFN4;VIQ0@*c0rAtOFoDV=xBAnl2$y zvQ(s)*+hIs$YUfJgzzNrIDc#bN5G$e#2~okTL!_H(|cg&6sDaFbu7ZDW#F>2B z;{4jpQ^d#oDaPt*d8}{Cp{=Yq4>3;OS^AdTTd(O>yGt#%-Y#MDX@A>#=?>lDF?$Su zzb!5>$Ov^NI9e7NG{We9e!EZxiIa>m_$lpU#~N;hFW7J^a*%BC?&yJAYYP-m9Dc)I zYmA^?e>)K3oxIha!+q1{t!4v?lE%03p|&=6PbkfBbSwN~5j1MDt?Ywk2|HWV!&Uvb zK38)lONK_vg{rt!6@QRoxzegFEvf<2!0Xk|#-qwpc~!+|c9~DzYTVepTGs#l_HuFN zymDPR@507jt9US#$_v=V7^aJQGOriQ+Z5rdrw#6Thfy2`p|w`J^-L~b*4%d+6WUJj z18;(?jbr}^^P0p>Xt;q91Hmq88xxUA&`VZD-ee>naG)5 zo5%1lH2~5-@Q-`L)sRZ=MSa0LHBNv^!wadFlT}L z$wc|*Alxx@D1X$!b)D+qX`F!V>3B47S`S?Y7KVg@kss01SrF{;q4jt)SymJx8|O`% z@zwX@bd?iso-Qyc)&haSmrEN-Z;%dp>Vl&3WfQHiQzo2tpD~QN*sF){a7q8IH+-!!r6jbN27k^do)20?AozvlA1hNZ?d9sGc zhuSlE5BLih9PoS(*qoz*BM%2umvUAyRG8TW89YB>G6|oD6kFurQ+Q}hyZU2Hi1JKx z5VzL)R_vCWXM3sCeU_mEw+Qwuz@HR|9>q}V_eL1qA+736>oU(5b^Xh_>&0Ee`Dvsr zqj>tPn}4=pt=5S8uhq+*0b2p1%JpxMw7)Iij4299W^D)U35BC=+pzfW_LU8d-y z+D*>JX`L`7i(0c8oDOuSE}K-DlrU|iK-hbY8e)KI4peM%{in1A@L#gI#~HO41UIei zC`-CtDK|)~VK%~f`4OO{jc^qq;=C;u>M&rl>3?0kKaSjt!cfN^#J!}8voO#WdpFQ@ zGyyhIXfaU}eqaSs;4T|u_Mzuj?~SgPni<`N42v4m#JZ(_H8iZlP0QXSQODyb6#A`|oI=AL}Sf~d*(&c`>7O#7}h=9||EDh`I z<$rP`s{5}VE6xYz($$%e{pjBun=-jemlw0E$;k3+U(QF6dPkg^kgl#F8K=!!#5gE9 z>5n>>XSEr;UFyCcVfwnqI;Tp?1&q?JPrDsV>SA&${)lJnvDoWzHxUhiPF~h;Mv93E zy7@VkW;%*9=^6Gu%6fv{!rHUfM3Vz@z<<1bu}p>|OcFC!LX}{epPTX)D~>x<9Ft3{ z$$P{PExPo!1q5qr7pyK072<+AnmS^JH22xs2#fa)uUB+ltLt_4x}vk%$=_$z^j5b& zRtp9OZ;8(jQ`%q7C*xJOQ+33&b;L3FTrL?&*@M|B(_Wo!oco$J4>J}d+RdJ84u9Pr znhxa^9ycP{$+TxrsSowvkZtKJd(zd z>_`|i73*cIkwo)(e@44tn(U=pBxcEs?#yIQc28-(|49>2d`uz>1=CA^sR&}-y;CNc z&ZL>D`QI(uS=q0V#eQ0uD;XJU4u1ht{x&>rObPVLGO=Gdb&J~lVm4MZujrVhw@t^S z*(y^)f1CQk;<7kXOM|J_(*>U6PK&8+au?#$vy1xdrGA=Gw!LhkZHX<&U&2kpybWtk zvl%hoJkOIiXO*_3?x;T+FBMsvnp}6$&0QOJJn`nXm>$NiQ1qm$WBg%8RDX3H(4Zu2 z=_}4cF>+Zu_c=jzxQY#ea>TD2t(l z{EigGQ#1*-bCb*_;SQ$h`V%I4Pk+ozHA}qo&ZXz!50@Thn`3wb+$Z$SWB=QTVeClv z>ZPJoZ?+i+o@8MnI}gjx6o0e0=q9qKbJ<#K91bm?j4x|=p2pR4$&~fs7PIK4Gw42z zGU#q1O`uIxif_WBC}bZ6J7TSz8aw z+Gb>44fG@oG^hu|tHcadruZN~*RHLe!FR=m=*+f8>~11*3}kf}r6)fc#CowsLY!cfXlDn;=k^0YOWlg_*+A zOra`HOc!EOgKaNN2BlI#(%5Z-rn?0bG!L9pMIYBLOOW{EiU*?=5(B&|9|~> z>@=K@=0I^{9q~6fNm%^wTs%yag$J4)@(|~VGYMjtvzi)Iev*z&b}?BpX&|Gst<@50 zyv1St-Z=Dkb6&q!&b;lBeH*qsb873$@rq1Tu;u<;Yr?rur||E_pzd3(?b1pRd&y;o;C>kUo&PWNqi;gs^5-=s9sHI;jcnY-b2KP|u(BqEgng2jV75`ZNygH1>jC%o!^w!PdEoxU z4`6ai2AfYPyuT}`n16ur2QVRo*DiXQ_EFnxY~J??*MBau`K@Lf%z5U8Z9@$McS3U} zuC8)$QfBm;z+F%eDg6_7BMz9xJRkYeA#;J(QpfG<-GOA^7!T`wGMg>B4j{#C2N9@b zf9%PQ)-xV|hE3E2p%-VW9XGxG<8!s~YTRU_;Qs$FdGEH|NRlOp{R*>0wPK)1!Vsdeo!zBI$#)X8RZN zb8|m_ivXEf-Lq0#R}vB7cRzmo+)q3PfXc?DdD2{;0lcw^0F)q*mwnUHIv$MX1!)-| zoT%moRMfup+>)hPWrrLTPDp@q!2G&u%|Z5B_XOTG)NYq6WCtOCh9&ft&&INQGH|JG zd^gt+68b4BQ8fxGKyO#l3yETa%vQG2I?0*S4z^94_O4;x;FQ&PJ{uMQ8h7(2&}f~0 z08J}`PbeIz?;#ms^Q2zRDvUHVtemf=WP0wI4b`Dw#R(tzn%1Rtu*Iy>D>lgp*{xL5 zXv^4-vule*YiO%~!Zy?3_xu*K-J%=oj*XhhS)(OZbs}N3b*=JRK-}TN)!#R@tqV6A zwwX+etS0JLX^dzNbV;7@XcW#u0O>%GkzyOzS`Y?b(rlxOKBAE1b7RHbEOUJ1!ys-zR^*uBfSCf%A<*2G{ zd6;d%Jl=cx86mpI2in453)0gjm~?tK=;$TUEZJW4e{8<4yKy;Re1@1(z{rc64sz_| znZ<;_PDc3#DPU&v;v*~Q4%t)0E9BVqC6;&3Nb35Gzxo*FdGnNy4@Kx!ciF6fa}nGV z7JdjeRtI|5jBxD&E3bewq}r0qDANXHWV=cIYJwvS8kHT+wA!rM4R(TtkTG0LSg|ed zKabE)f5aniF-asqA1gB<82X*(BqHB7)LY1cz3lfL)TOQv<@qLZRFctd#;$R>gULB0 zQNtn1gAINh)*bNg@(r%t@=_s?k>Ib5(WI)2deQ4{Oe=~RiLE6>;O#fY8q_!ASrhe) zYF)?DjV=eQnBzX$`vvs55B*{@5G}CRm0)q*e|{=e1qb(wDuB;pzmcpZBUR2njO%DG zX)}gLx#Yxc6Nw|Kiyt>{KOKM{C12?N$@277X zf19GOm&)Yym2F&5$ zW;t)ZhTY|`Y4LrVJCr}cCrJ}RDNh>`g({OFq!j`W$UA6c zbM4Nwu(TR(@3uj+8n(=#px<_o+Anq$63`kxDW++Pi1dZnFzFDrb{Hw6*Z4LITzH|S znr-!u3emy^g~Uko;WkFq7OAFgYMEo6LxyMl2hV8aof6 zft4k_g>s-*vsOtucLK;IyewiQkjNVJNUawf_91x=#k8iHfjj2#l1wsE+e;;Z%SR#y zZ@gr|^La7+rQM2UE7)me3KZ^lw84?d3LBq%U{fPDB*RT#euxR8lyT3)e>=4XM6KNt z1Nvhz1dkJ<^n7RK#ASPTg~iF*0AeW(u?ez3&>B4YVnaVe>iU!z_YsxL32arAu!Q)8 z>gL@Q;{a1O1`|f~NuzFx97b)Y0)b`1hqY9o=x?A3Nf(d^oq9zxMOThY7X2uLEAU_zHJ{XM=OSkU=5Pkj_fg%V7){+r(#6g(= zxz$kwYys{aJ`NBCn|__fy2B{2or?FAi*J_)ItQU$Z=y;~HMH%f zI`_YyS3!@`_KpnEf1pSD^_9>gHMSahq_QiZM^YzQwK&D;_MQPPjK4Gu7+IcQeEtWZr2iKtnK7TY=oA0lmaekJf#fCmV!5KqOszp3-PP1 z^*H~lwa{Bq_S^SCifn@}HbwbQ8Deu;XtxubsU(|)YhK0eLti$CE-7hst!bS$Jj9y5 z*)sHoe<6=_b)DNUk#$t$z&emL8%9uqz0k(4D|{9S8(~bCp+~b{-L1&bS#0u7;;v2; z90`l1+iK$MqCnVv&#aC^Zd26Gk=nUN4gbBAhxBo!srl2(SNv)-YYUH{&)hvXr>*Mm zu{&bXD;b!R;&;OPFhs(9@6fSExfPN{1k$Nse~XA$VLy|hm<|Az%{WDn6J)|6kosM& z7zM#^M|lsXn#s(ZVmCU41I8juY8_aQr|ireqKVAYB5jqb_W)b1J2FMGc1qgD302&# z^{t4K0xPd3Gj=h`eU%A1m2gjSs0`O{C(?oq(Di}FT8J%{9&}!9xiTV&G{?WssG975 zf13RAltsES1y*80G6_LD^=*B3;FhJ-h;5q`VkZbcyxL+gcv*|;^x`zf#?0DhWK05- z29~$j1~ZdL;7v9SF2eHPc8ZPD%vnF&TLmkzU>#yIZ_caXeB6MW3>#zZTFvi`MfJM+ z1oueo2h4-zJL%4bm&MHtA}zo#jz??IfA%%R1w@C{Qx{&)G?%k&?L6|3@uJ#+$a%erbZ zFZ|KQY>r&$LUJmqagsLEg`po3WT(w?iJYAfWwO<@loWtBVHmo?6jY00ISO@fe_}a@ zeaANt>ErCc?M<9CVuF96!p1OI*SDT8u{#Cb*eYz%xeWFdIYDV@?M^6NpeY@wI_o zo*F(qJzaJ-gX9l-&|x5ErkY4k3AU`0HQ7|uTZc$RBST-=6SB(3)@kq?!WpYTyC2@-9SpMfogkY;5>V3_9jj6nB%-SoeCIc)*rrTgSW^z2CS5Q+(&}YSv2D zE4e~8j`Yx^ezPsT_$Yf#_;GdaAfAyd&5RPxX7X92+^DJ`uTsQ!SezKG`g1>-l1&}n zy7tz&kAJ+W#^psx8t&w>98YZi4J`WkU1Ip*HU(`bH!9txzkL9SiE_(9$CuD>2ONK_ ze3Tk^wSkt$RuGxh;1kYwzTj!wX|))b;W@K zw8$Q_NSPDu$zssI9?q<*w<*v+mC3x6&`&^t-Z!h3H?D@nAc(|Yb26C(fykp&bYb8J zZGqg!0}Tj+S`O_1qRe5j*!uYiUVncsNLEU*f4YtFaRVEb30MN6l8zK_fB6Pq4R03J zU%p8z&&;cG49a`28Y%Lh&ThA^4QFF$&yT}-Z+*R<8BVOf1;WJ3d1WX>es8YaYQBDM z<^>0k6?y;k60h_uA8x*=M*2C9WT96gKM8xE))Bb*2XKjK`PTf z1#6j?*ku%VL13I!ovD`rC>(znBnF(}&9&KJ4-l+tZH>I8&dur{2LZjB!`UTs3Xo2~ zFc*J7K~T3Gca@o@dGn9|gwK1`6a@H0fK(X_$iY6Wx-U)=!{x?fD6uH6L3ZHMURn!h z(IJ$k2nCSY$K-K2Y%!+-uprRrj^VaXXilewwH}8j*j93Z8D7v*YRvrNZPb;#jPaBirub0eq&97!n#nxf|5WC8n@gn7%(bJ96? z%J05Qj?tZj-iNija`}J3%&lE_0E6-^Lov5v)B|d$ts5Xfm|ME-78gc5NR9E5GIKD0 z~?Wd6crhPJRjPA|R|#I9^-D0w)_@rr3q=<$zI-94YAX>A0YV;GLXTyY zj8nE#K>)*}mvb63aq7=}>Ae%2sy(kjQ+sfjh*yZo*Q;)uJ)iUUw^JehyHWH_!tlB69Zn9xCLUU5L4 zdXPlw@!KDB4YYh9uZ3_hh_zFmMah>+WRPkoIRej3B8pC=8(Jn3B_}kNHqwtHIuhcR z*a?bn>DTFCV!nigY7bm@S<37I=7Dy=4Jl1c$0U!pvkmGt&o!8{ZfeC`Olk$Z+V@Yv zlug(*NoIe;{%O(Z#oyS_PqoU0@qHe(fblFDi8Grgpg^&VxvH=K-a zCLmHHixG4!Ny$_0f@}cv7ep(|q{~qdbi0wd-lai{h=`llVq^ z%l3nzn9&~=!&G2-)ePz*4kvxku7QwG62d_6qZxYxxzv9TnxI=k=jS6Awq3FSbes z?^u6|)*2Po6Sa6tMq(E=o3!-B5;M#_oRp_YS(%96vcf8F#CbuKX@+xDdKG%YTJ}$# zoNndovIH=+D#+gx{tInFs%3-83hCSGF5BWD6Tp9v%V?0KaKvw7)4)YgKs%5pKKqWf zi2|dBPvYUW+39wZ111F>8g6CrjA(L`x9)#D;qe2IYcFfME7jec2$w9wBuoWnEGRFL zU&Tazl4h&Y3Y62~!V!O0{-nFU&d0~V(>j&zo>F#62WU*6&2B%e(h|p5 zN;c;Cj>hdd%$0Kv=5`$JO6(M$l^u&3%6c7fEqd~G6IC+1X))HY7VqoN-9+#VaeIzF z44T`eHjD8(+Vk6n9oe|ud9rE~oK!2-$O}O(8!?$2edw>+A>|GW`a?$H9;1H-$Ax4Q zZp@ehg*XqNO-p=db}ez_5>CdcD5=yU;mqA>Z z&f`p9*+2=arxjggd59KFL>hn0od{h)h3s0TxEEllzrxf42zB&v_9pVDtUHgQ*{qm? z{43qZ*1^`w{_cMfKcYsyif5Y(`APKjilRh!D#gv0tKYjK6jg80V|8{y;L&GnwGm`4!ozJz=_5JRjkN!M} z`7>#3HZO)FJt3+Ds|nonJy(<~E3brs3(jHVa?p23)-7eyAvgR9L)$#R;@0(MT76wk ze{ouGYut^}EXWCPcQc=e5#X}(4;`~28{l2JyD+cLZx%)U93OwDqbq~rN%6Yf$3#S& z7C9efWQleiU#ri4YI?92-_r@PlN8?}m65F1^W&WiI`3e0jMC*7HHm4EMeH>r0e8 zWjYWf#d%1m2Bl}{9?o^B81tCx#(c_;(0t^`eo@~by5fLd(YJ{?`I`X>&>?ur%W_dC z>d}?48G(3IWFK>ur4FH%Y)uVxlw&FzP3>xNO;DlWTYbI;3qKDK{f|epNx49!Vbrqu z`p*>vpGx&wPFOn8et56;xKt}aGXEG`Fd>7{^2YpPc{wt zK?l77ccS%TEV6AWQ)L+iqiQmjj(Z0nAbujP46lJ-gLMn0LG*Zmy6?$3l12|UBi=Q+ zwfa4|<(JNT2Pc2a2C5EgfKiTs&`l?x;Srwv0+K`tmi5c2%OkWxG^nNMgK$fp4?9;# zb3?uOxqQKbM7@W2c?q~p!K?E1(96U{C7c`m-PwPU;yW8B0(o9aQZG2P9Zu$C zi)%M6-bYFpl{n&FIo?=$7~qasSCQ_M?j{Wtfuv!>;ObhG*M;7)=*D}{Rt@y+sIs!C z4Sa-EQcIz#!eZNKc;1;UN$|D7jKHu3+M957j=yTXvW-58B3 zNQm7_xS4;(sRoTi!GYvkr+f0*{BQmA&71Y{xN~*2d41i@UKi~EYTLaZh{9U*?1Y4~ z9CQR`n|HYda^dcVcuTGEB3GeH?!0RSZ$WjZNEAcwZh=CtY{Zs;y5LYZioT$63|yqg zz5+zmRsa(&ETk%vTyh&#uN6IiomGpXY=)~SyG(zyc*A;v(SjUeJL4FSQahff6y{lc zi@!I@`t9&-j~)o<`u>$GU3f*JG`rZx_KVJw=(?8r4x%~J;Kri*9>NlH?R5Ss|M(^c zmbgM0juP0Imp?jw4q(!l##cfL%j+dBx%Y#u{`7j;~2Ui!(L0l>SK8#NT`>GG}Fs7>KEzYo3L5FH_b zm(yMtw(Xqn1zyj-FCd?(6csCTJ;5KRZGlw+7{$O2AAyuMKTbZPd*8?Y#$OF2^ejZc z%jV^~KRP^OwicoMZ@}XU_Wz1U2}hk}Geds{hj(A5+5}#{KBy*DkW?i8)8d{;GwCr+ zT&LfbppdOP8I(dIPMSGEA}-G$IlAtV<_nTwi)~Va0*kA&ThLK7&wh%-X8jWCn(oM| zt^eRFTnP5Bgqdxc+V30a{|rHyzVJyHHnwd*L~GrJNA^7k&uat{a51jih~D!0?caa@ zHvDmMJ^9*;{$oNy*a?{fao03u-C9D;29gRr+pt0tui*z`*1a*upCHKCBNP^+8pA=g z-2gYz*|AkOeR>9qHBd8Lt)JNAyHKPmy$@W($LwY@b8jGtgoS?AmF4PpG zDzna5YBL^E=yIk4s`n&Lc9{ye>(>Y@d zq;$%8(+-2x zkxFe<7RBx29*exyfY#J4(}sV##(a}+CSssi;vz+iG_=>;7B+<~<=SW;Pj(3MceVSV zk&YVRO*26Ko}UO+GzabIYC|O`e3!;w$1+*v^z#&U(%VpypT5h!kI+CIT zmlCBBR+7|rsP=YrD-r$H7_8@LSwo$j-;@x7nH=2NZE)S`x%Feo5XK^U*QcYfr*2*c5;oe$jcmW)0NoX^4od&d1q5? z$#3qr=c{&Yj%0b{^}FSl1cC=8e-qt`pAxW860&4&ijPmppZKXr-$L!FD*B9yK5Ht9 zLb<1i@;^SyMK*tumxyy+Ps`8mA`QQ4@o8fkD!#@(KJ9NzDsy)hV8&z6VNX6ha}rM8 zd!i=qv4#$d_L9q~^`ao*e$r1bu;0$J`?VvQ<)@Gy>KMdi{m!~+*F6T)CnQwy_W~9k zF01v-j?~5XlM1xXPnB}m%pg(XnXf+fZ&sF=o3qg%m(PL+7k`^B6!3QE(Ibg}1Eno% zu!ozQ3@S~ir6rXx70To{qp%Qi5BVA$skp-^4Dx={uhWEj#g3OF?e$c2z4oDp0ZdTA z#N9&F7y8+p!KN`S88p!9WL_g;MAb*wh0A)t_;nC{xB3%A-C?ZxJBws#D4U(QJgeJy z#UUxnvfs}{wtwbxa6*PX^(pRRPo2qBU_lj25or!4HI^M7#>>wQvOLP#f-Z;GqG`$b zDCH7yaBGGSy(w06+yM@$7CJ|sMo9&-bf7Ta=Y*`6(E2pHt!iE34v z>!y*JNq2QZzfM>8aC$^FzS7bMK5Nu=5J1zr0JfU^u76q_)(8?gnjlclJJR!JXFVw- zYK~NuBOSuqEK0`LfQhmL}v2_bxL7oQV7wZq9u^Z4eAO#4O zAM;7Vfq#VoaJ>O04S4*S*h!ptRZlk%OjB7+Y(;_KB*4q4VVuYz=4B#&i&(g|N#QkH zys+&Wrxo9{dtj6@D*UAzbe^uB4(d_98}B|3VuywKlPFJH?`~Yq7oXYFgnVSX1Iuqw zgN8z3URoa#%TUWoEz$CvX&Ffq!XQd$2-BG1Vt@9R36v40Np2O|aw_Q3PkXu=E#zpE zFTDZn6_I0!B0L-CWAhHj4kgsep6;FKxVXu{SXrt-jsEsq48N}Uf%$2Qq9ecZef^*i zZAT;BwL9I(@&owTXHsfEAEp8USk(QOZ^&f+FW>xi_|Y8fc{y8bZvEw(?K|7Z@=k^* zR)6p*p`*X#cLsm~C@DFg$Ro)e0C#TFTc)MfIVAYERpf;XL!P|QF+6SZLf>H&#+7vz zy@NxcojQGaoReo{By7^mnkOzCRdde?7A5)Yd=QpHXVhp|Z4Sj>?qVBDa>x(_$OJZt zurjo!vP@EtY8WC{7-|xHU=F5GyDmpupnq=cRgz4IFpl?bGd;B58b|S)zxNDjEuKth z7N>=i)V7$x2$-bI;;b{&R$fX*tvS<}2Tdzlu=v%pRgL($Q%MAS|TuuXy;+m|&k6+^;UJc5xu5ix~emRHBtIyQV0 zk6#ilw#1uq0es$t8E1L+`@(Z32!9Wv>P<2g-1L>TwOHHTu{AtqXl8qHLn`B=sBs6K zwW!pxzf47*>TIqsE9pE@f8`)Y{^GVINW}9b{U^wBE&G6UnsZD+2!&4ba9|s3hXiSL z<7Qf4l^2U%i1kivW00s>-l9NU-nWF>V&gQ}@h~5ZHv*fGgcF%IrRcFm@_)i5w)g`u zi(m!C7iW>x!GqcN%d+D36}&cL{bUDx_&Hw)n6lI*YU^O&x~@}0?Tfi8}1!g zy~)E060Ct;!Mml3pYKpnKMAROdJOh=h#9u>z7{?^q65@QvSb_q#V#GF5TDOo*UDq~ z@%Az$b-O3SVlOF=WzqL@z<;BxNz9lWU*It*SHhyq zKI0(s7*G*42*ke8^6NH-(?jl>RwCE(9QMR{RhwqjnvHqXUVs)13yUq#!sJ>m$7;a7 z$NuPQIK3?547A+!_P}5IOsNzvDBpB{YVg$*2e^m*H!XMb_^{`XRXI)o10BkityF*z zYytSW(xN-d5!&tO$bW~dT4+KeBl1jNdiMr|z{lviSX@c7C8TKF!Q+1Cc)VAPs6o$iVkfavSK0);H9LEx$rDe$bS(u%JFd9whFD40B2i z&?X#WJ_s)*Eq(BD#a$d{-GM+b5}hg>cz9=Vo2(PZOl)U6|k@4Oz;SN{oC#&8mn-zXe_hceS+h&$Cu z>0gU|LlT|Z3?>%jb**F!FqMcYMeF$eS?ajg_xt){;sviDzjiYIpFgS>nROs(WUnXr zz936fHUh+hF%D(C${-y{r9>nB&hS%TjDB`HPk&5bp1F)URZr5f9paVJpb&wk+u0mY zS~@)el?VGr1?Oq$m|wl*ra;sc%u}{4D;GpX&{s(Mg!RR=hVEe1`Nq|-?s1dL99IG} z$sK$urg>>U9D?1K1^}iu8b~N9&~dO3Qvf~$BuL9tOu+yZ`|RT;x3Y{^hrG)~ZrO{4 z4u5Be)ON_zXWvO3By0p^7dS5_ilK8}6RBm8sFBiT%1}lG5|B@W2J}KMm!%!Ri@UK! zDL8}|cld|Ra#Sz|Y3|6}f1?Gt>6g>l&Efv3L-1|jaLgYk4A`j3}Bw`88 z8smET4C1Ly)M|h&dR<)?l2;UT<|d4YDG! zK|=I3$O^gwAS$2!$Ei1(U$4$a)6EQvxL4gw7bL9i{y+cc|M6e`yZ`Y&|4;uLM1RnQ zGYDt)zx=QNcNh=^6B2n9|I`28xx=?nd958b16h1pbs+!!|Mj2$=l{VQ$p7-6?l%y> zydFrg(sCSe*Lo1;qPVVGhe3I!WFS$UFbV)AluXKcd;JDt2vIkl>5yXWr>UHin1w*I zO3n~+Hye(}=5jcs;ObpNLyda>_hN~veVQPGD;Dh8j=4AEc;Tuh4F?tsF_9KbAH z44LH;g!7<`d2vS!1r9WnJ@%JiOqsgd23oBXuY;WeT*Z=-%C_z^XfXIb+<(5Ot5_1~ za{+`mR`;0-zXHSu(TbuV>0=Q+=LlY`fRPxTPrAN>5Y& z4?O6ar9+7YGL;$%g6YUIH>c$)=2iVBzs^+jFT-u1=hrd?WT4KNlWhRH^(GAXd~Utf zKl4j?|AYNjmB+&^8t>#5+Ena|O+Jve*kqIZD;_d1S1+t7lix_fnt#bJkeq8!CcT=P zcufkQ;6(FIVegpFj9IWrSXgiv(VM}j*j8)yAx}6E7lsFn8V%Rdg813+i%j6^L9R8 zOb5fk`ORWcO*f|1V%>?UK$CdA4$R2BnhZ8f$!`DQVI0=f4u6NEh&B{P0-o5Z3j}6n z8&gw@&$hEATn!SUv%YM$a8)FYZ{+GrF9SQ*BQrrimR7wGuQ&Yll?+zD+_W@n0g6*d zTYu{4Nl+@Xr`pQcQ*mi*daKof3X3%aS+WDv9!l6nQ-l~-D-IEZJJT*n=4s#^u(D_v zD=9;>v>20{Mt{{0{Oo<8VQ;Qc-q&)x{Lo*vxRLU@`F^BsT>@DBy`3(lZmrM6#zu4w z*uJ~2*GrfOo)!8;@IpA2U;l9*ll&>eI-j~{n-YxN!CiGi2Kbc_@;RX05kA!swymfuiWs@w0$ z+E?XxT;Oo%7u9sNqt2^2`Ep=8REKdE9NP&6m4IJiOLiQtIt?Sjwsz%wcVsrX_1D!V z{rL!5N`Ehmwz!<^L{|GWmC#flqYCV(MsmKYG=jj%w#gM?iWM6D5U9v|9M~U<&nYj0 zy6G#`hnO4FMKbYfQ5W-%JoJ?N!L*`ph!s)=`2L|%N3<6#*y3}dtnTCL)l}MNqx+Qg zyzr*H!fey(DfQ`-IE4G4;&~SY_Vj+TDb8(&dVg=s)2E%QSF^K^Ex@PkOB1kIInV5= zH~++DC3ZWx>UajkF(tZS2Emjf`iS~LziRW3OvYPuEn}X_hp+4lsK`JMyz^;TjGJnncH{Gr{ior>=lGk~P&s6>=;lDM}A zNq>>~!n6R1039AM-gOWF@hJ z;j%C)G@duKG4OAIjWC&~B44qAogJX{5_iW2T~q_PJ=UM5lGS48eEC6wIEs(XcZ<)0 zyJ5aaceRxqVah;{q^pWD@VbS8C>tt;cz@VRQRTub`QFftX}dslZ>ISLzRjOZZ$+m^ z-x3l*`oNcT2rF8!#VrKX6 z2rCVLPfiDpj!xJh;t5n|IB9bwQ8;B>ON~jl!UaN6`H!!5_g@`$V`mU|W}4kW)Y*FE zUzV-@AYMNi$vQw%jdrDS4HOWqsDFr!Bvc&Ilah(QQwTzeP4sgS2=vjt2X0Bwb7=>k z_NbC+lYP~27;Ryhb9Uh+Lsu5x=Y>@rI|O?W0mZumzG&C|C8$rHoIccr#v=jzi@zNA zQ>Gqv9OklvdOPV`_g=e|ccEbSiJ+C$6ZmS z7K{~q=4ueIdkuPWzv52%SmR~wwU`!dBjQ9k5GeY3T{VgBK(A~{+}%(6Q&^0Xz_vMG z3c)KWLKCCUI0T~*3xZ}6rF;P@N%&#tN&A-%fvdj=1W|8g{1}e12FsDnh6@u+(`p;v z^r`QZ3%8Nb2T%Hzd(?^4!GDX+TL5yPGjM4-CJX-lsSo~oA;%qZ(@l_!eEzSKC*P9W zsrw>~L%dAv4^PYN5B`dYMkpi^DeV${_gzb~R*;laMCsMeZkXDXfltlLetZ{rf24rK zwh=)JN^LD1^vFysL!MZnNaPT3ors}k;~g}}Taug}jbS5VBUj?|UVmgcJq%c!XT!3b zl~={yR`>!)CJ(WKy%m2s6$8d13iJ>zH^;fLW+|}bkVAS)A-OhEngEE{jQmD2)AHcG zTs5}FeYRD`^zfZ+b%e2QNuo-5GhCR7L=5uIhB;C5&za2?Rch(`lJ~q#_jruXjt>!= zo}Z<>PDCxzj@P=w5G5jDt>S6*Ly(juj$u-XEHo>p8%RTz$NKqjoAer9dfqo$Qn?40 zD`91o&Nfidzw}?z1NY zFOm-iY_58sgaU`Q3{&NEh)6XBvHv_0O0$oCL(tDbid=^e8!^o;0V8(0?O(|)68Ki>_(wb%lFz7Z!rQ|^bYJVU>eLT&ngA)0F)LmL0t;H&At z39C5MH`)ZJGnOSi^Rye>l;!;GK5$a9%>hoM@P|0THQ1O?)2&7(O3eg@Cgw-4KM1r* zfA+(2bss#RtzO9o&l6-05{jllPOUV^>yK7)wLmFgtYmHRt?)2P3zJR<6|T}0cPP>H&vfl3X)Y@mm8-JwaUXm6S{P0y&S&|KQCu*c8ky2rE>@gXvtEw2^lLS$NE*bF z4Z)#;VR0yR{Wdi;t!lSm&PNm=y{*2}v}dO=bA!^YWp0B|rJh%UC4{e`(w#MxPvDAj zK)-1}C%`#(rWAXP=gBhIr`hoOPT!tzH(sW6b|GSv%-r!XtuQPHrJnVKkG*Cs`}xS# zZQFlT&w?`bzx(3C7Mz&Fjp=2Si4N3o`}as+s7yB+b%XwbG;VvQyF_hr#p0W$MNt@D zj*9M~^r6h&WE48RIPaZ3EuwgsJOA>|x1Fa?o&RW{ppkugm!GJIOs;*X;rk{CAc=`MfLH7}bNVb>l`J29p&cC#`tsP{5k?`2*R zhVqSFPJ#wVtQYL^cOB{&QtS00X))G#*;eDF)MyK_?;_kT+w##IWHQ%T7gA14bC677 zXMITrY;?*7xmnjzEuYq4HmcP@?`ZNHH1lEJ1Zeu8F z^fOO{Q1N4S#uoWIq1~Vp<5p_N5FL5B67N2&-9-wcC6OR&ccBGjw`&N&Zl|o*rxoo> zcllwt9fKWl-sq)eK#Ac5@+$W4gYhIV7k@K*`1IMmz#5?{7qx~}f+aR?4w!_H`c#e=SDXH@zSXv@ z-x=(A3*n(2Z#N&4zh4jpHd?dkRz11;?|B46rx!klihsS=N&MZDpB%1gBbiB7Ww`J zVuR_?{|ELpnsRzm6K>vC-{|>yYg>;vL2y1J@RxXY?|wA&$J}$D9^$KPk}h)mrFv}m zk*gji9oEjr;&?22Kj&~5J155;hLCl#CBZS`(xOg!hNry3XhtjMgQb5-B7|9M(Lwmx z@G|+2kUzJvz#a2ABZ~YpH)R!(LH8>3qjp~|rqVQIJ%%H+yD&pIHy2TjC+a0e z8J9?LL7 zb_1L4A~@1(bg13w2xEVIBI(_=%F*2Ep=yBem}w5us+nrg7+N=}s=kIE7ygPLc&?@Kt%_#QWYb>9?*Y8t3 z^@L&Tr&bi^%37>&OTER$PWZktRg&C9g6x0s%)@<0a1B#ey zxZr8g6?}uKK0Tzk{>ES=98vv`>{by5Zcd5DL|o=9+MH^ut+nD+i~tMb}#8!ptF z-*z17&HwJewzGd3eDVkvw+;c1^_*f)bvQyiJ%PMOaXe;_Fwk{s-+Y8Ml#wsD6I_q& zaG4I{x_yV(gF>?g1A0tjP_Ki$N4edC(RKq&nV)yamIGi>r0I2vz}&eU&eoqA7Vp0E zLxxZ$h!5cm{aL3SFfDplCdPay^47xoc8qL-skVx>g5`fUWAqrsiq)d;&FG@d#0a<0 z_%)j&jPa%IWytoS&>kMyt{2@94d*vt;XWmne)%^J*yL)L^-se|IcDOE<0dt+5f6$& z^wk0hxiAl@&`dGSZpJBvfr1&&!xFv5$feNSF7%bX@&@+V(cN zPCKdiEB}95BpVv(CGa$X5uSpf?bcW*3bu10^fU|)bet55ec}byoDYO)IGNihzeJTvnR6#t3v&E1D=6Y$DnxIcjFGEl z+E6L*j536N&=is<=<@mn5whio*?99u{9+)`*kT#YrC{0lr(#5#Q`JQCiCf64f`ZB! zC9;%yOFUL;1<@3B2g0cty1x@`*jBFD1M?F|f1lR7`@kv~+(PwxeeF&UX89qZ$ZXbD z_~L*5p+PHfP`V&7z#h7r-gK8udNmJFVY`Vi(EyN!RK5IAs-JgNF{o*waFM?iFXZCg zk&AbeUNkGx-Ei}4cnD%VJ^AT{g03ck%Zj}R^ymlP;O}8Ml^k`O@?VXa?-bdQ)jH;r zZK@7{MV^?NmX(yIwsLw!=4Xc~ts;UkG-rRfw5xe>@xnJJzz%_XW2n)0sb0-xe~HE1 zz_#yXrQ9F@b#yCqp6a5e-J?l+wjieTbJaFGR(y0Pr*sJlw3Q=N=tC$itY$Kh(|x64 zwYqcRhimn2+cu8iD@72#2f^Jys&AOWadyX8SfrZ&F+=y4rnOFCjMGKoPnO9}eypbXnK6^dCEbB+^O6?xlaafd{A_fpkQCOP%TPq9O1JXk9D}LaaTP%uHF5 zAgx+@4(YgwxJ)pu5Ol~1Jc`=k(3lz%dg0j>%D-wQ`v z$Axj6s}_cq_tieV=zQ2)yYqWpe#rI{R6UfcGKNf5z`?pM8Yrm&Ep9LHQ=N z^U61Gk+r4`Mhg}l4Q!WRH{!XZg|5f*I0nX-k+>CX<*~diRI!6%K)?)EhDhkgv`t?A z!laBEQH#>)kt+Hi@r;{KJc%45=R7Y-b3if9iEc^CdQ>losDC11w+*~uIV~67*(ZS| zSeh!CrEgn{Pf+4O3ppBCHx`D>1tCU`H%!1nn*mqIZx3?JVcg3|Fm{qj)PcA+eN0Sf z-&Qwxe6BHgN(mD!^wkhz*!BC(gx-CWEu~G)Alsz1Ov=?M7ipkuiZO8i@$mIxhV%yF zaa6b`O26!st=W=3Cz5unj#H1Sx2W=>5@3G%JQ!M!|&#FuI4SWZ2}GTuQ; zpyJ*MX?6xcEr1>YexZ(lLL&9(GuXrNclb#KApDVs`JtyKt~tE7P$O}oDxRWZ0!KY) z#1YG6On-&O=n0Juruln?#9Vwf_~FA=E&=e$cS}C!xbUXqvYwfyHrW!z&oV8P-MZ~? z9bR>p{=y_hicDf)AAaUz@PcVNWcr|CVS31g%~|Q- zeW@HkHZ95_>=F83K?3l%$P4_Yx~Yq61Abm^;D3lUyuLmhUSI~IC^_P|;ahn*t>(qs z;&y?~t6>q@FZ5LP8Nq8ASAAVo04g}pS08=n)p0et0lSg2_To)pOM_v0Y^PnIL1$53 z7Y6w4Ec%-|1LHEA`Pep*=N|oS(Cnj~Sp)wV)Q%WP+eSCP;G>M^c8nZ@)k>lf@;#o- z@qh0==?9asODpV>%Y?a@_9-RYdAG% zX4fEwAu!P2&&>uWs&2JJlZ$EqS6KY(O;Im`wtG1u0GlYT4JClCl6cg5-QXOW>yBpJ zxbtodPqtd(LASz{UiKI}thD~)FW7+b{eO30{FS#LhZDc*UMvR>z^ZhbAg9ige+wtH z4gGvFRHC634SONIH1EWHv6#J3atoWFJ+9SN;t?OgHSrbo54L4h(OoDxGR41=a#d4) zMz70Xiodz95lh!{eTRw4vC`3KUKv`u92eHG&M{T+Yf;Vc?|HQ_#}j|v;=i9WB!3yT zcwFJ)kvWaER)j(yhc-*MWsxSI52kfFc8QK9u=}ilTpM2L>*4LuqL^)V{MX|G8I<7N zq8KgSlVUCS2HhDVNX`E@^>6~2K$hvn;;FH)Gd10Rz-+T~JaSIYF{|nlKAT?eoMl(X z4tlw4qH%X`7FA7sX(Bg;v$$9l=zktu3z9k;c*-3sr3JV_PIt!&YU!211M{IJ7)dXY zaEO8#d#lmVKa0+HoPk+l9k)~Y!ObNxTdkL{_A+OjChG;;HBWH>weHUXje>(#>e-E| zA;N>d!`4~J$3mw;^oPa#vp1aVV)(HfyeZ`pi9Yg5rL->`$357RUNV-zoqrsFLC2ns z0i9bk|JN<(K}a-|eR!gub-R^gGX~p+?hZJs1#Ay@c=(r1Zpj%!`W+cBtFg zFhq=5*`Tm=@!h3+k|KSZD+gF z!x^mJXWS)N%I8|~A;wPsxS9pC{|vJ?Yrn!ksB&uVsru%{=fu=M!++Fin^*2K?(s8B zJ=aQ{;tYT@Aw8|_9bR)xWl;GB89S)%4gxr2%Z0zEeM!op$$;%17KSL7i{d&(I-?}g zd?N>{+qCZ#wm||(E8}Ltb=m~eZ}oF~t3am>ESa{tVW(;XXV_)|g=iluc?5swx>Kui{z`Y#Y^w z?+D{}zI7`ZA2>U!=ALNYaYyhz=*PTDWKgE!y;{-)>o_2mo@t5&vLYQ7#|g0&ZWF>t6&1@d8FyPc0r&j5 zgn!F!K$OZkyA3qs1LCzFa>9dMrSl}zdfFB_J9v-qe~t7O+3~}_WRsb&6N+}@5NVSa zvN7l#X3n)dHrW!W5mL419e+2Pyvwm&L?4xTEv*wIf4tR>Xip+$g*UXxvV(!766 zj@gOboTMO8Zev4+6`I(?)tHm-wA_%{pcE+OKj78w#kEoJ)Nkzsi+M7A*JdCE+Bi35 zu&4e&2DKsk-OoZ-B!9<=pz7<)M3yV1R*15qPX9Q)PUZ8v*I06q&$L|5kA4=Ant?K6 zZO~~7#QQhVSx7-QR8>+DvrTTwzh~652dGby6nxvPJnhHonh*2KoC;BWkXtQkHinQF zJYRt`RWc;j^!9txsTG@Vd7s`_bs$sb569I`rpgg3C*0FkbAL=N_RAHxq11eD)w+rr6*6RI%s@fb)n-y*pAI;G-IP;8HzEl?% zb+J$^AFQW3+?3%L2^R$0pIuQ%#pu6VF@LpgI|DuON%4ntKi48@w>hq##ZnoW%pk4n zjAH(|J1HCU@4;Oq;{ig+6#_*#w0gggFj6lsbs8v2MSmnvkdS!6nax#y4av|0cEcUt zoKLuSYFi57*=;EUN4TX39pqG@WxK&;oBdy}A)QEHvTrD*ngkW=rdddp#o8|Bmzeym zWZ30nq%Rc|s@oo@AelKCa5pDHrxw<1s+P6J)lFBvvR$wFDNuT9U`d&sRBg%xy!tu> zDPZ1L$bT!L&@gFlW*wt!qBTsKLfRThi}Phen!8{GN`&e9N)8DsnGpraqbwEW<%}W$ zEE7rDaGk3TdL?67tMib%&Sv;wA$6W}RF^EEXu4!^3Ua~fX4g5nuK{BQz??#S19jA@ zu7B;S56hJ-G;d~^W2_FGOeE*c>GV~q@Pl`z!GA_07e7?7IRbzlNs&Dhx^gyGWh>p- zkThJ{XriUJ@)A;apAFodd!g_2ja<|sS94JX^^U8?S_rm1)t^BuJ!#}SaF+Df zi+`i7BFBy2vX$3!m6>zzui%DAIMpoIMm;m6LgD%vnAV$I3|$o-&!F=JQ7FWCX{e~_ zg1coy!OCvvY0EgQmm8&3Zt!bP4&>2EIc|zr6%XnWn+J>=Jt1R!68UHf*lzsQ+^;>l zbt>;o`tI_strgC&aJg;wT5hA7FiCRHR)48*FIUkvq+`|z4QPhvbx&Us8}9A``#AkY z-DLgFcIV$`SA=pi26pe6z`{8zaw1Z#4?x~)hVpmky!6K9eDRs0^mYkfcC+4k$Ojqv zgD25F&+0>U}GgVC{wACEy~nsVv{me@@!Kgypx0V9dt#N+qh*J%zsVO zlLb}`k0JEa*LZ)>+MaEtX~4@4h(9Ki9QsLmOb$A|CbXEqGOwoN2P2xy$X0Q?NI263 zlBpFCjG68~rGt6h!-*%Lv73}L4={K6yV1X2fvkPhO4sHF(lRNM9yAIULWS=gX-T`E zyUS)Ts00`Vs^!FDxv*eyWmUT&?ylQ1N6h!$^d_|J+J`W7b3u28QwHS;0jYyOdX^d=J(lHea zHWspF`OUf)+|oSi$tIh+4IuE(rjl)S;_MauTAxF>)wRgPL=Pmf>$hSM3V-I^GA%>^A!i(%o~iw$72qmin|>Ov0mj$dXod#?r^ zX!h51wiAiv)Yty1%^J!O_J6mj2rH+_rbuzj2NrQFOefFza+x$l}*z7l?>OzyC&EIPr%@q4e zr2R5&M3%XHW8<3LF{C=L(R3~q_|8)3_JRpdwFsWyG0%PPkau=!?|(SKgO1PjZRhC| zZA1^>qzFZ7Ha{t**Ry;CIV97cQaujL4AnM36tc6^=>lC&LFG6`rdZQ-tOq`JB; z%#~_(=@#(six@|zg@48*Dpf79;M1pyTuY}d0oSQL8^j2Z4(H+xKMiasUv9peh{4+! z>#0O50L;AGvK<4BH5$az`BT`m87t>q^XLiDH$}j~;gJH)pR-jZ!u4azE^3sO+Xn*A z0Hg#;yn8!N)`m81L@&7|d}Pj2nz?Np z{<)*3vZ(wg&Lk(m`k}?0EZS|9^ly7pz*j)8h68U@24GU6u$ApliP2wW@_Or}`MlF! zJe}uXFdb2hq_$JQ`uY}je*yigRbEz9yCng>qkSco!L^9>dcuH z`KG^QZTfzAN%jGQ4*q0wAkP?h1|PJcE|!doJg(=X$D_&=nwky%YN?XrR7QiyIO~A{ z*Ki_U9Ev7uQ(*3~#-_JcYC9*D;V*O%HnH@L?QD7>aetb04d6QNsLFcZ(COPpP3g>P`*C}vZSX*YquOQ*WD6xaR_ACJ=#ta!U@DN zBhbi5&wt@-E;1_5A^({tHOM#J)BvbNI6b7^IGrDIM}J{OMp9vs=j&qRb{87MkpL|| z6R`^irdGB4vyzS1otr^Rd4Mt7cJexMkdaLv0)FUV{g~I4v?!{&n7$cwhG4tbqJ_e9 z3574pdA(>YU796<((rd3tE^)KjT*PV@l3!9>wkU|8BQ+^i$jqKe&2}zL(w`mAUB~f zVx#5bJ9`Y5|EAU%GRHn-ohh)vzonUgrssY$ff^5n{L?%-wfJGhJV1bP{NNt8g$+a` zdAp#Xpf#+axEqbiS_#jwfdmDmPA-2f)~}1{O&2J6{5UeS*#f`j6OE^kpH%F0Z)V*G zn17VqCkwQe_cl-m^1pX@t8EyHyu6&cr5-d*>+4;TszqgcJIdpQy zhUzzU5nI`>wB|mLRnxsIbN-QPlS~=Y;uEj;3dRA=wlep(nF(xXz_#NfYq;C($sBbs zliQr_L#T})cX>>(Vz1rPK5rlFsjS9wtAD+3A%teDRA|Dd*_~T4r8y7egy>pa1w~yw z-acI^qK+p7yT6ovB?9dM41gy2muZUa>z(fQQ@zaFlf!Akp`)GXw`%aoI>mIXlZ0SR zUCB!ll9AYx4g!rraR>uwH6tEQ2p{C!c#;RjUYh^N;f z+rGLJFWhsl<$+!gi}wHs%Ted;?weO|5mS+_wQ=Rowrwj&z*fRydcA@j4~y!B#%Rj! zF)S(z`9glV0);?CFOIYs0*${K+ke{w@+@<{j{VI}OC2u(n|Qc&>Kg+M8}V4UgD6~> zkRh{SQZDU(4s2K&xn&vBux^`(7sxYp_y(P|K}W(bCXbtlir()2bhh_;_vi?~XFB{C zemgjR_2%s8)$3P#$L|iI%n9fz))&>KVG&;Z&eDKpN*MF!1v{IrM zdk4TwsgA+_`Q6fxY4sI2OrMaqmFQtk2OW4njXx}N2Lk$V$KhO|S2Vg_&1(f7 zulzG{fvuSZk{w-(x0DMZnGU{UrZic%L<{L#p+Ek%^Svo%+ATWJ15);jipRFm`S!7r zK^8QO1El^tGH!Eut=UO9AAiBPV{@^sF&|M*7R9{xVPox1Z<((RAtyHOFDFk|<7t}n z2Ff9NX+OD^E>^LkTn1}us1aU51~{{%vb_GH@`?}^+k>(_0b4yBYF=EBcEx_cM1x(b=#7zDoGR_5ZjY+LSAS}c8i+yIoa%b7 znl6Us0+`FTI>%G^oal9pX8hjFlUyZLBVs7A6TU}ap>ZH^%I^pWUE}x3;coX%RVUQk zGsonroQ%zHn$kLKP`94~gHAd1Awjhk1H*<{_e+p!b^%>=2b~kltnCAd%_v|?g{jUh z<4b5O9p%Q0%FhMUD}SI$Pzaz#oA2}tVHy0{O}*(w%%Gd#G%>??SWoY#5f&ru2Yc)ovc$P8{j1wuQ z_07D%asy2i+%5YXd|j=@ha{rnv8{P=S=NB&kxV}wd;_aee}A)i^36}L4v!Ary*1Rs z%Re5x-amWuZvT~e7*`|n@27G~zh6xX^J6qG46nm3s_>!wX#Pd&8~#GHY4|$_QiQ}? z<`@2bKd%-QP{PnkH60D1I^8@_81%vKF3hj%;mrIC8d>uPnHBh3UE`k_KbPY}YzJTw ze_buEC-`GAynn>MfJ~qUUxd^th-qmSSUxR@eHFGg25B@7384Y!Vh zg%Q3P3Y6k!dp2;pN7V$tn2KL8nBtPwB?#z`8R$oHm)3kFRB`>8b_s#tX1XXR^31Tc z=U~KuCk^{2hEu{q1oC*cpk49Uz(JU|Qutx zu?94AWAK@+BNTtFP)BWBK%kt;nc>s(x~gVR{l{ni<3Hj)0hqu)!_u~ANPS#hI!y9} zP=75CSHt>9rnOc~WRpSYLFeaYWGEeY{b@d&&2VeahKL%@WNXQG?7gftihf}7c(TU^ zIqgnnS3?3I1H}`A+6sYMT(kw@=+QaOYs4tDyhU)K)(PbSn`$4;@q2@~d{o;bcu1&j z@90P!%9$Z*p|SU%i3gZ7BQuNro?i2@d4I18aqD|~{Ns=E1IohJDd9wE5b(~;1y&cx zG-D!UQe5NOnjJ9z{`1khw}i+AU+o(*8DT+wjp@&nkGpx|9^}Hh`GomF^VADli`dq<~$n1h-I78Nfa@V}GvT zjX9m3g_sPB7_l;DyLdGn8H}`d`1TPnPAp!mmA%i+GmrPe44prJ!rP|4IpYe0y+wWJ|pKOsE;uihsClgdWTl zz*mo1PFrXOCvR@=#zQ*glj?jpc|Dw7?$J`Y7lcR*Y^blb_cU=o4a6Kg{f|>dKIYxK zIsGopTcR*scZ65C0s3gk6Z88I#b?(sb^0SZU;zZ;54tK0{LZfr=$3=^U~KWxVUc4? z`U3Xmr{QQ+&>ePbiR zQ@l_nFqz>w_zv@jGidW>J|R40PEyVNjOLa3U0n}}{&y4L^lAL^dm-S-(DaDO#hVc{ z#pH~+K<8g0M4xDdSYRDL{TwEFJiCwZ?PpE;)N zsr&hiN&lz(7oPWsJbxZLN*R&F44eg~qY@7X;E#R(l_|lbGztkI0ks3wT1cCMPmJ1B zTe)y#aEx@fk8imUoVk}I~P*!$7%sMg|1&FK=@uJ?*Mv$;NPX(@+_O< z*W3bbUxhdp;!@hn(%jEnx&G1Cn<{D;mBhd$1ANnMelztOzOui}asA9cfgv+QmVud~ zm^xMxvwtJF4|uh{vX`v89MDtY)h*IK^n1GCs|vHtzLAUKBGCzpRn-ebkY2Y|D79a} z4Tre;%&N}J!yjJ#Z2kqF`iy?Q`Qz*3gR_ITN5{Kw_dvi0nlU(u$H#|UWcM{3)8n7t zzuG^e-lu8|#;o`701Z17;}r!Q70K=*Et1%l2S zW`FGoi+(@lzW1Ol5_3?qZ+XS5>7I;R`g4nlFWi8p#izaC)!L*y4@)u@(66L77)mjg zCpfFexVo5dK4bh7_~ESbh*Lamw-Q{p<%(XzADSMlg<5`8e(+!7;eQKtxThmT2lz)rP5n-x1~&O*Tu=B6r|F90 z`H|_YXxvFaQmG_4UKo7L#w>>>X4fD*7 z7Uk#{WL0U}zY2#sE2rirw+9I?)Y@LxdrD@x<~~l`m1d=yhs-8pdxWd!M3^2QynlIh zw!izcg}8kJWNOC}-r~LPs{r0mVChfx;GlVPq^rxcug#-eo z0oV<=w9GpsvGE5rb6kzFgDFe>e=gv>j#+wqTwPb@V)?`(>`5tOBzD_-Ai1QJv0ObK zRK%jL&e06j35b%vm&!QBBb2Y>EPv^zS?WKc0GFv2q#ewTUk|6u8Ne?{xhoAiDbVmb zs8G8aHCGwdpAj-fu7u$ZMurNGI^pwZQ8AZ`YSemM#C?>PBzq#J5|Q`2H*a>|?w{e^ z$d@3$J352gP?dRq`0md?hcEdNFq7){SM{4n4D|wu7er?e%|(5{=Og(_=YJl)y)^ZC z^VSRzdiz-|lrS{($fY#3nAjwgP9f_LCkjp$ah&kRO1Z3t?A-NkaKCMhV&$?(6vjN} z9XF)yKOZ5Z!>~eh`YupDhc`s8{6xO*z^j(Ury2FTKxytLCder=4MOu&V%*4+5bYEg z$9|(n`6w;FCPBYE9%C=^6n_@BZCzFKgXvG^trffzzkm$I+$vxsA=0AavgO6wq8O7j zd~rpnO6ywYRfP!C5Y&4|uuS!Q#Lu{DYruI}ZHAELtbHPiwt7>IZze?XEQ-r{iBe!_ z!F@o}ubP?{=%-)E>Rn?&dxS{*_0w?fBu7fh$#1aYnp3P`7xtdUr+*`y3;m{BkIB1t zbNXZ-Rr5p;n147d!)F?{yH#P5>Io6QnFTQ_!Vn{sa$Xm66575Z^7F_Y{^4lh z-FZSD9eQ6Z8*K%S(f1$SWqc+&2j*Zhz{9YueoG`(Us?uWste=OYjT!!aT)^c*8S*zK2T&=MggVxq7H zTI$EeHK7AVwbG~n50|C`>68($)l&VnzO}vW;qYvqi{YjHMA*&@&os;oC_h$nCbI2w z%>)~j#s`X9!2(w}U&6W1ho62V#V7T{%E#JWqe_|2!{c&iFn{~k!(TtUi5mhAWpJbk z2!HXo`H4r3Vy2fU&wOnl*NJ=?lu07Qzg$l!sb#SxZm+B_4RSARL+B-bG{jUnVkHm1 z;>Pq&s2!zWPDEuFnsTyEfe+qK$bbw>(30^iWozhZfuU)c$W;a99gD1x-A2Lpgx7HO?^P4Fy_i@_p*eCl{5%<6&rlx(m9FZ^aYe0M10jD6U0>bs9k%+@w*)J_`T@M#Gb78wCFw|+`4wHAX1pk?d-k2vA z^A=+?K0I1TMLFP39oovg?#qQ-O{y+erdwv;(xiA49^h@9GWu+Wb4tVlCCq@e>Oj% z$y%0Mj%i_$a^a!Yk?Zo>j2KRAVOx>$?@F6=o?g4g%&9!&BZ;EL#iX$3A0BqulBvEq z$7l7^jvzp{^e7dn6*>OLSWz8VX;hGn`Y8<#M^=o4qd#^SxCm+%}DjZ?TSzaNst%9O88bN>nwV7S?{JB~^q1quA4tX&c7 z+$X!~J@Ar_OQGu*#mvb~Zl+ec$!cA&S-0pDX*?MlR(UtY$m5LY6ueG&VmPFu<3qz# zzWV;)&nOe2Ypq`B>rLLWtY?p{rTEd>@qf(xAAhjsdu$kB;O=Hryal1cSO!Y(<}Ac1 zot|l8Si6Z6%gbw+3G;!}5bqps2E98Xan=kZ!gIX0ruscjP8OcO@RJ=mUALmgn;LEk z*U#Nva>WQjd38G*@{KqgK}0XwLIW@1m_B;o;C(Hykv%4}&Hk~xkg?RO&$bLtg^I|7?UG*{;ft5mEs-SnWPk7>of5r^>$*nPp%x4g zU=9$}=>p>;BMqGeEx|{-M>Q3DBNj3|6#Lulfc@rP9jW4GE3KW&w8EkMNPqMuReTS7 zz-$!R!N`)Cn#a{FXzP27_JTVOKkV|}jtYR^>vF-ZPvAGzp^Vl+L$9J5JRV_zWpS7S zaSRST$>!H21f7u~B(E8PqTr$bf@nF))qnYzp?1!UOP{T}#)w6PBlM%prjC^TstV4E z`G^K%7W>j5`}*Z@j*Fz8{U_;<=-!u?_NS1$Kx_V)|DtrhU^OWf6G`3NEI1+xX?qVp zd!6qIZSB9Xn}>9oJPAE2&#!)Z_4fGe{lVTJpaFA>A6s1#q2Ko?L4U+_eO7}c*FCj1)i6V=ukQw{%mPINHcwxzZZeiDbl~xk3pk&P^!1#B827{{KVNe^a$GqzP z*fjK`{XJco_O)J&pnvSUa7BXe&>7Pz;G01QeS((?3Kq_htBIG&>-%C-&h)a0^g*XSfZ!u+Vwi+@HtKDAVQrmqj>z@n`C`Tw2 z86n^MXZ!1C`wJ(7PYh~2miI7!aYkTmYP|qq+a;O}mE-ZG_ws!pXOxrhbEMQ~&ja`#f2;XyYW;irtAf5dNa0IOpab93}$}j3! zF)A<0!mv-II`EGtzdUk~DzBhEpn!d)w(%j$-IqKtg?|Uj8l;7Kq!+3Ffv#!jZ|0#f z2hj3UzZR8V%_ugthR@JMT~}DM?sH^>L;7?iF4fraxOq4x)yOl){Hc{Nyp^+hK3TjUHR?`zekX)#xxlFALnX<5ozrPZbT_2Qld2$`P^QDu1H?J_Aq6KAqvY<$}$oEd)dou-5 zg4eiQsN?F|y`NUp0h69TmG#YV;$GR?Df}QbQgBly(*!vmEExhjv#EPzq)XRa>|@ZW zEWy+Phxc$Grg$YTw(Sj{xNUo;2tW+a^nYjeQ`8Ux2gt7cI67gq6s07H)^6d?)-igd zd~oy{9TtYHDnH_Aj?tU})cE=>*=Wdls_f*;TDP;SOw_0h*M;uw$k8!C7B+C3 zycYV@qWjs{nUWHO1V|>tZH%c7tgq!LD4j;U@Bu&13UD|Ts=UPZa1ulkh-Ih zTTBl*T+*Hk>>O9YSwuF>uqd*MvR%jXn<6MWt0tcfRWczGB0kf>oBCto-18nNNYiD| zb_{7FcfTheH{ZWj8$>8hVxd`1+QOH)FwvaU)7J#s5MP67_ znnG5LpD7ljr8i>xVrDpA>DFqu00%UAUN%<^nt$g^brA4gO&7?JoyDJ_-hY8J0K8!E z!}s7_&BToR614Hmq9kT;%zW?{(A4zGl*S*(!Qd|xDl4la;XWbix@ai^-kF3^rQs2( z8B2bgl!#?A=!{?oqx zX(+}lLiJk>%_sQ@bCBO>&VQ)MOz?;;neoBKIjGACa~N8{Jw<)8G=95yCo(bHl4__R zvnt=jNS>|Q$UNIt;K90b;nF+Voq1-dJZ*}K@bR8xckl;y4t4)XV|<>DUTXC`zQ7zu z{2;F4*oG#V0&9 zXYEaXc7P1o`?Rpu&wqw7Dy3_8WO;bds~9}uNaW$l95gh^aIqrng|Ry^M0?l(uhaR$ zn*6{g>!&?LeU2Ff51sv7Z8t~kufQGABQGdd;e~b$>{Fw(z(W`mFYS0J8w+FDXOr`T zsTi`eYod*vb7szD`4LR@#^`87caKJG2t+)^so~aW?`%Etwts-pc@TU?Moa#aRTk-P z5Cx%4$8q)E9C;b3eF>?*?Mt!-kU`Ls{U~FiC1mu+yH!g}lbO?5100G$53R7%D)9zr zr(Ie$T2tHC8|N4-6F$3`+GmdW*^ifz*kkK_Q zwA%+ftL~Ay;eWL-gbM$HKMVhSyW{RX2(EHX>Ng8r$$w!D_8?T&+0l>h{^UJ?8|nVR z(VGK!c8*>@9_(|lLey%Rm7B1k-!=TkwHQt+G&@Bn7f@KsbqT-S)eGev6SF4ufq@;f zxE4ZvLBJK_)t$_I&2|E$gtf#1!RZl2ywM}W-}_Pngn!#`2Z{?PItyAWlPl4|0$*h9 zy?kZru0=f9GRXy;Jpi$r`xwlNe!o<0eL~HyEW(-0`V8UfOe{%RozLgfj$J~aZZ z%HzMFQs+12WK3q1Z=^%#*gO*ZN-PH6@=}O>C*>2(R6e4{n&*L^$-4CQyWRbRw?70x z!d5xQHh-1@)*z}@fWc9JtPgc}!>-79(Nb4AL?=9GKaL}B19Wh1cc-#~P?Az6%# z?E_8R;3D=#uBK!IV7OrBTht>LwndKBw2JUuSXf3}=w~TJ7atm)^MEm|4G#+J#7paM zE_XVVzOFtxe;9OCMAg}dekuE6+DvO(w7`C?-xh`*GSurOMx_^QPLc<+R0fub#5C2! zDSxH@VP1}Hj1gIVHX~YG-CUnf<%q)As6Ot!_nU8@OVgMjPWWxl8a(`f>S#cINn zdNEEgh(3_u0DVkY;6@iSXo&cv*OCpuGA!GHRb-D#y3d|_e7t((W8@K@jIq892pS*8oD3PBsBgGBuRcX(-KbWmr}1g3I90{6`fQj|Tp0q2*()w5+*(;Q&TJxxaRIjo12E zqF3ShY#EjdssK ztmDz=gsBKItuX-%rjf#|kWD992ylORK4E3}d8VKFw963W=(|hyfcN(%kHYWveXzYHjt{j1T!ow%9>`8f%bw1t83Q zeG~@sNHg4Mr70`CX8Yn9VT4Q{2MK;@gIch2pvTC5bg_Ku zn{#Wi43YqRa7M_mbk%hcyyZ&#i|Ky{a_q2QBo2XtB|9qv=F}jQFaYK%n2rkuCr0^4 zg=Q&v-DwgKp>^TV9~L;6>LP4}4IR3ZM!UJsk%oXGv2-s-^Rc$$G6)+W%6nW`Ye^J2 z%4`+yX<100b+o3UR$xXg=|>`~h;}<>2MKy|9Fz9@J(~|NQ2KoK>8da{9qE6p@wbjl z0Hm47rr@_(26EA+8{6WwbC%s&%_8(9mOOwHt**=v;4g=BLGxJ7+$*%}BEmlxHNo5& z8XT#jW(somQ-+iGHZ(6WP*e9}IOeZ5g0GDaqJp-mJRpRp>YHo6a?v5c71en_Sl*|y zk6J%l`v`0Tk49(|4kXOc0_cB<;8qoO+T52krP`J~BsnF66}@}Ma$J$;vMduF)$v;` zA8RkxuTlkoYFGD2mf zSHylrW|k)dI&A(qXD7RwXTd*VH3Z|EpAs^~ASaAcFsX&{GQanfQ@kmR+=O9*!8mNL z->E9ZAYlo{+puIVZelf&)f`3d@qXnt-?&CFo{L}B?vC4To)64|t(9)|s_qq}*<`&3 z$$I!D#-~P`P*M6|*w}xg=(YHU$7SW-bQMJwg*!B{o`Ue(d6v;n>z7X6!CdlOPK)cn zFQ{KJ%sEj9)={qPT*bY?65@U$@iA>g?LGT~*RH0;bH*l!@mNV}^V@S_Z9@+db%ron7!ZWm}dfd3gF};zI%;C0Etjy-#%CRLLBYIUtc3J^(B$fZF*FB60rBX6vB)@SlKr zG%gBSY9a7nPYn`!VgIaI*cip5f7I>@nB+yC(M$Yf-OyghLzj5!v7rS4P zLCx<873gW`%y?=!1U1R^BUKs?0(nI{2?!_bkE%UYxSqxT^1se8qsWl-BEOErN$&HR z-Y)8Y*zDwbRnlS+&{KS*I4=1w&YWx$i@d`4qr0b122g+5K={*d4eYd_TIiK2h`w{H~upQ~JoSSAkEYQpHZBukaLks*6Ru-eebL!QFP z%j@t(B%k2CLq;&Xdmm`TGZm)VsQ}BT5<% zC48mGmmL zLrx{H8l33Kf|(VRPem!_CVyY(9CEY#_+OjqRe>GS+ZrVis-&+7jzxBIv#*AIZuNv= zwFa5j`$o;gna22mi)weiDxa)&FW-2W%#99N{ndF4d5~}td8tAlf8jru`WU_gd7?28 z%1?h&dw{dP+)&~gq%*iBo57sp!Fap>^63r$;HZAa*X9rPA8C$Q1fm5M4RLJ51?rci z8K0FSMG4o6q@Cx^oZy#OvaWMaf*au$CBmdee2jvRl{-7Fa#5Uot{+So0(7cUw` z&DY?A2NZHvU2~ykNbm*Gg+!B}pxG0WlF!Y|Co1X zSPVb9E@wKSj3+fCb{^vTL81tGWiH8yUV>kU{=!+PDPZj1o@v;>jgu50%gm81w~s3h~7}TWmw-98C~zMKr4Urj8%a- z7Tj|HuN>pAbN+|P;g>=%YjL;tb_TsdGi9*&h7yjphjfH>?A~H^c0bk~qaKd{lCW|oi z82ySfX<%Ug8<|SBUI?}2^l4mHwjKOs`UwhgW{eL|y;;5WN|71}#{HKi4Gv|L!{+YP5 zc}%~1{|q8`#6SDt=b+{P&HuTMBlj!wzpvvqE}ciw`9DPz712Lw6lK*vZqw!Te&YYd zO@H|-PW^?lh0FaY>id7o`!O|Gwwsr!k)ngkx&Kymc@h8PqA0C8?_2d<`)3$MBj-PU z?*A$N=~bU{c&chFq5+ilXBmDDe6#pj_-;l#?q2xWw^z|Z>Ra$5J*lp`!(@QxZe8S# z9VYg!`hCV9sHX5#KAT=tvl|WYL27D9{|>6&Rs;6m?a_q^J@S7LxBM_L9nRnF`@da+ zMe{#X%#QpVwebdx$X}&N9CoCgj}$Xg{iMbned+uNUGz(p`^$ca?#A(O-{L5GixYI! zcaq-pf6_vf=oTei(D>PgUzrRqNr#bNK9Sb>lYNsAg#9e`XQ& zpog{gv;NOGipGCOjoI9eL7tee)c;d01$88+>FFQK2d{|eJpH;KL};|Y{S#d9Z_pwS zPQx1&nOC2fW5I_0LhqDj|HFTExbXj;Mr$!O^GnF9D9}Jgv+SRziKIRA>S+Ju|6E4V z<=MZP=|$2OQY|uFym&-Q|3j|a#~64fA3fr4`Zv$yxoLll;W~NlB&FGIg$vc!>#r>0 z#L)CmUc8|;DoUdT==sH}*h@(pcl1kMucoaZMnI#E!bGK;afy|#cKJB+t1~$C^X@j| z1I#adfnM-)T8$gcR1FRyyjm^%EcVkkz;OKn_H^X_QTj;EEG)0q*5Ou|{ro74pMp^{obm*>cz52K7{{c0FbDe@xh86dq?)5YDr|_d{qXSvs zw3rc^&|d`e))v;VG6!__816KJA)IbG2H6!-Tlj6W!|% z!le5-#lD&NZR%;(?Zz0Bf1b#1kjUfDv2rk8vy6Y%sG6rCb=WiBY9nY9KZ#Dp(!}Ds zCg|l6m?D@zx9|&mbRtcx|G9~@-UM-g;YeC|{nwo!CfIM;iTjr=&NQ`dZBSbyV~I?=c5)qJC@zd<}~+>tjv0zvo{^=tWT9wyT5cbBP$9?t6z z_vn9nN2}+&$Fnq|P0xFhcFurikuSQ}L>nZ|cYZ7lZu0R^n+|3$L%-n`eBNgM2=HGl zaVF7}cpiO%?|@kR)iMk_D!CbYwpy1%tmIE@+p0UG0-UOgDC|%)n*Z_A>pG`vvmd!o+xyB)yM`^Fzp!69@0=_^jw{*Fe7#2>)Aq}wI9AKfH1EcNQ%e4V+V}QiSFZ_Q$ zovNKQ<1H(_y`rDvFv(GgdvrOw^t8{b^Iw_lG|FUeIZwTw_AW4Xzqk|s^v|rQ+*^S3-brimhq^!e>$FV2SmF(YYjuG^$BYKT(vSpw zKanKUpS4LYx+fW|e8Q1?Z0I#3DaG%+%cXk-Gs?&nbgzqh8Huar0!e+ua{7O^4Z3_; z^(tvTofCsue%Om2&qDBbr;^uLRl7?k%E=cRn?f7Bb=r9*cHaz9-$Zn_ zR21o5oM2zv+p$;md~bJROIjWHlPzV6+sjmvB{?Av(^ zg=)AJ2l}X3I*AO$qs$#i-~PqB7<|e3E2Mr!*kV7;7Wd?Fsr&QF-0~fgTiJ8+&Ap0A zkhqA2J8iIw8w`RDTsv)MT`*qZJq14Fh@1K*c6sJWCi6|)ItXcw4kdq?^OAPgWgl9I z*P&KU>MU-s!{1HoyHRiGH79d=A2VHggG@z$cX5~x|KacEg9x;x8bt5LS@Fv!Bn@0+xNP(pt#!$}ve2&2FYJ}*SMl`vW zo_OiZPcJ49ETNF&bxeQf-m5Z$JP4|RGG&VAy`iTFtMdbZW9go9w zhXwi2RqCLdo~2(BODAci5+~%VQ;;pB82^{@#cHv3g_4=w1tEyqBC+yp>Q*xlCgZ+Y zPuE_xCun}w?M#F-EG3$#@0M>i+zOqik29-~hWl?YmMzUF(=31Y6Z)mjgBM#`wLau9 zWk$nC*U*~sb+EuSWr1hgiCU;&YRo*V+)7mFkL2lJYVItpWMRw>;n4+n-`oX>1Mcbj5OB(2et@198lD+*IvM;m>r@YV5`KpSEIdwxVyD&MJQhDr@w6 z=Go~4(TKA%J_y!um+CZ0~}ny~S(* zrU}QRtzg{(fsG+InX9j{N)sl zfvUs^MasLS$%xnmA+&K9t0r<2lsFN;NIHKt6Jah-A+jA}A?EOv+_lX8XLh>Kp#3@W z)}R>JvU-28GY`+~+EEY5Hb|=*EfUj~=k0Ha5b8AEiR+#7`bh4HT#Tr6G|W?7b_fSI zD(Ny0f|an|jhsz;yH4M~1)s;sRNSbcg2k#^TD0MmI#Tiuu3kLnpWY?06L$7PT*(k= zW+V(W3Oz|Yz{VP4u_=GK>~Yqh9T95 z_~7K>nb){{-(IwVDUGE%zvxbXNALVvZux=!AOkCuo*?McjWk<+BhvShISc0y9z6S- zCk=JzF_9r38Zmd+3KJ4Kw~q-~fHFT~^+b^6fI6~+2_Pl4_vUo==ivtWX^(T9ULPrR zEj@pT23U)>bnlfq00P;7qB9b!6ZJ9ra>2^v$GZ6aSp8;6;kqjVj~$w$XlZ6a7HZJw z@J}yBvJ}Mw6N5%IZ#{4I`GI4$hiM_7o~PtraLN6%SN*$z%yZl^{fz9-6yIht-@}o)mdJmR@N6V`?3%%CDhK^V!~Q`;F;?#$J!Gx@ zhjovy@m)8=teUG7FBThj=Xe zbDEHbGff(Hx^~lu%eGmy;Xdf}{?vaS^|o;!LOrP&aQ%T0Kk|plYU^&Y>6Ii$n1s_X zJ)V{d@6{)zF%M#MZ_%_Dr=PLii(atZV(wg>#N=6tXd?~Iuq3|k6A_wsB|7ni)CN+bZjVL$2ywume|f@rxJ#tEGPj3yzbV z*5?6q7J&*_vx(d{e-leC#f2Y`CSUDYBFj2ponJghw~(BssZbg;pdx6@=}AK=nJnA9 z{Ze9yNAqOWK%YT8kMyyzQ;zzas4Z12EgztDXb_`k;Ad2yjq>2$@-1wzOx|NIR}@P| z6E!*#`51LKQ0Q*!k!;@)H06JyuWMjf)eDj22xd~A^g(b#4ruDxhZ&Skq5u$Y8un9m zJd@oJ4PO#{`86?Kdwx5edwYDEsXev)Y0W*^$`M1St=ZzAsWMl3+MV8~O$c>#XQM5wnbTC2~Tb5Zy)|f#ZUy1F&nb?tf z`YK1vd2<2z^anMM6GWJ9V;GAt2nfctMkE*tX%I?<=a zXkW9_RuudK5$H9AAnqv+Zy(4$t6nFqa8xZmd^OL8W^U<|<43j7d_j)cW_l>u{%7Zg z6=D5o!76vyTCip3aP|=<&qBV~YLbd^dJxQV!OB;0`J+f|1tou-57ct<8k16dMSXlt z{!2u|JN7ZI$%UAG=UXmibL7#o;?LHu`es5Uzc z1Kn~#ow@wy!Rs@Oag;NMeX}KFI*0556Klg5lGLJYZP)$_d#xaM)14>GEEv?Dk~-AkIWg9a!82oCOF=$9 z>G{~7rs^7}M|SwDd{|bEL9Q*HQrMz`!bXcvTK)jj1fPHhOfV~UC%14DPZO2h8c)G` zM0)dBk`7y$!#&Vxn!!A+m-yKkPc9~#(a{7WgJ3L8u~~P1AUK4FeM}%rI~aj?C~$YQyyKzkG0dEq4xOVU2m8CjdYj4~b|enEFq+_kJ}P zIkxT^G?{FLmU7D8hh0o!4A#=l%xj+>wE_t zpPbUILfqOFF8=}kf$X^J)4}T%~=7NX3 zwiG~sV{o<4<() zM@LrU3=H5Mw7wzV%l5rQE_&656XT}!@@$*aZ;OmNXWPvaTMtAQxZbi=%h9VZ$9_^< zR$712dTZ+|;Zb|>YF+UO4DPEr1@7tvB3TlUgYGqWAjDSBx>8%VdH&QE@w)%q7F+jr z+CT_g{(GtnGq9-7fJkXN1N$-jny}q&XLVjwjU4C6Fj24yuG4z)z8+wBfrSrQD7%Zv z&oXASNudgU0!KUiFhy`lC={Dr*I(J61fzeyTsatQhP&B!GIRCC@iJkT0djV}#fFy} zle+=H{nm+#!Y*6rytwzZ^Nd6JEfF{V2`hTvs;%h6@A7)%_rGsEH1xWHGy-)!|B>hQ z%s-*Uukie+5`_7Xh@11pA9`WwyBhvB@$u&(u7klU<2u}I`Z-EYYO1^I$$xoyKV$D8`^$gjoo4?(UtX~ajja>Lw?jOj_!3(;h6yxDW}M(+ zS=+FdHG{w|e(#)QV^OQN8NWy6!{-IfhMf-a=O)j@v z0gdLpH6;Hq$9*MAnZRyyF2KwliGom^E+gPmCuG@|h>7d?ro$+N`f>E=8s>kcJ%phs zR$!k|vEZY?2=#PX9&>)aX3QiCu#k*%?{1wNFvjq?C7+nrY?*$eJ+^GvBtDQ+6bY$k zV`j9eNJcKYZ#PCVZW_woGJ#|uCS}2HN8tX0I1JNnΜ`o)v|BcB)si=&NIqLEZ}- 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 ($s(n, t, "read from private field"), e ? e.call(n) : t.ge t instanceof WeakSet ? t.add(n) : t.set(n, e); }, bt = (n, t, e, s) => ($s(n, t, "write to private field"), s ? s.call(n, e) : t.set(n, e), e); var Ns = (n, t, e) => ($s(n, t, "access private method"), e); -const zd = "3.0.0", Od = 1732076483686, Hd = "production", Ft = document, $n = window, vo = Ft.documentElement, pe = Ft.createElement.bind(Ft), bo = pe("div"), Es = pe("table"), Wl = pe("tbody"), Nr = pe("tr"), { isArray: Xn, prototype: wo } = Array, { concat: jl, filter: bi, indexOf: Co, map: So, push: Bl, slice: xo, some: wi, splice: Vl } = wo, Ul = /^#(?:[\w-]|\\.|[^\x00-\xa0])*$/, Kl = /^\.(?:[\w-]|\\.|[^\x00-\xa0])*$/, ql = /<.+>/, Gl = /^\w+$/; +const zd = "3.0.0", Od = 1732172418263, Hd = "production", Ft = document, $n = window, bo = Ft.documentElement, pe = Ft.createElement.bind(Ft), wo = pe("div"), Es = pe("table"), Wl = pe("tbody"), Er = pe("tr"), { isArray: Xn, prototype: Co } = Array, { concat: jl, filter: bi, indexOf: So, map: xo, push: Bl, slice: ko, some: wi, splice: Vl } = Co, Ul = /^#(?:[\w-]|\\.|[^\x00-\xa0])*$/, Kl = /^\.(?:[\w-]|\\.|[^\x00-\xa0])*$/, ql = /<.+>/, Gl = /^\w+$/; function Ci(n, t) { const e = Yl(t); return !n || !e && !he(t) && !tt(t) ? [] : !e && Kl.test(n) ? t.getElementsByClassName(n.slice(1).replace(/\\/g, "")) : !e && Gl.test(n) ? t.getElementsByTagName(n) : t.querySelectorAll(n); @@ -22,7 +22,7 @@ class Qn { let s = t; if (at(t)) { const i = e || Ft; - if (s = Ul.test(t) && he(i) ? i.getElementById(t.slice(1).replace(/\\/g, "")) : ql.test(t) ? $o(t) : Vs(i) ? i.find(t) : at(i) ? p(i).find(t) : Ci(t, i), !s) + if (s = Ul.test(t) && he(i) ? i.getElementById(t.slice(1).replace(/\\/g, "")) : ql.test(t) ? No(t) : Vs(i) ? i.find(t) : at(i) ? p(i).find(t) : Ci(t, i), !s) return; } else if (ge(t)) return this.ready(t); @@ -38,7 +38,7 @@ const x = Qn.prototype, p = x.init; p.fn = p.prototype = x; x.length = 0; x.splice = Vl; -typeof Symbol == "function" && (x[Symbol.iterator] = wo[Symbol.iterator]); +typeof Symbol == "function" && (x[Symbol.iterator] = Co[Symbol.iterator]); function Vs(n) { return n instanceof Qn; } @@ -72,7 +72,7 @@ function _t(n) { function Ge(n) { return n === null; } -function ko(n) { +function To(n) { return !isNaN(parseFloat(n)) && isFinite(n); } function Si(n) { @@ -84,7 +84,7 @@ function Si(n) { p.isWindow = xe; p.isFunction = ge; p.isArray = Xn; -p.isNumeric = ko; +p.isNumeric = To; p.isPlainObject = Si; function et(n, t, e) { if (e) { @@ -181,7 +181,7 @@ x.hasClass = function(n) { return !!n && wi.call(this, (t) => tt(t) && t.classList.contains(n)); }; x.get = function(n) { - return _t(n) ? xo.call(this) : (n = Number(n), this[n < 0 ? n + this.length : n]); + return _t(n) ? ko.call(this) : (n = Number(n), this[n < 0 ? n + this.length : n]); }; x.eq = function(n) { return p(this.get(n)); @@ -207,7 +207,7 @@ function Wt(n, t, e) { function Mt(n, t) { return parseInt(Wt(n, t), 10) || 0; } -function Er(n, t) { +function Ar(n, t) { return Mt(n, `border${t ? "Left" : "Top"}Width`) + Mt(n, `padding${t ? "Left" : "Top"}`) + Mt(n, `padding${t ? "Right" : "Bottom"}`) + Mt(n, `border${t ? "Right" : "Bottom"}Width`); } const As = {}; @@ -219,15 +219,15 @@ function ec(n) { const e = Wt(t, "display"); return Ft.body.removeChild(t), As[n] = e !== "none" ? e : "block"; } -function Ar(n) { +function Mr(n) { return Wt(n, "display") === "none"; } -function To(n, t) { +function $o(n, t) { const e = n && (n.matches || n.webkitMatchesSelector || n.msMatchesSelector); return !!e && !!t && e.call(n, t); } function es(n) { - return at(n) ? (t, e) => To(e, n) : ge(n) ? n : Vs(n) ? (t, e) => n.is(e) : n ? (t, e) => e === n : () => !1; + return at(n) ? (t, e) => $o(e, n) : ge(n) ? n : Vs(n) ? (t, e) => n.is(e) : n ? (t, e) => e === n : () => !1; } x.filter = function(n) { const t = es(n); @@ -241,24 +241,24 @@ x.detach = function(n) { e.parentNode && e.parentNode.removeChild(e); }), this; }; -const nc = /^\s*<(\w+)[^>]*>/, sc = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, Mr = { - "*": bo, +const nc = /^\s*<(\w+)[^>]*>/, sc = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, Pr = { + "*": wo, tr: Wl, - td: Nr, - th: Nr, + td: Er, + th: Er, thead: Es, tbody: Es, tfoot: Es }; -function $o(n) { +function No(n) { if (!at(n)) return []; if (sc.test(n)) return [pe(RegExp.$1)]; - const t = nc.test(n) && RegExp.$1, e = Mr[t] || Mr["*"]; + const t = nc.test(n) && RegExp.$1, e = Pr[t] || Pr["*"]; return e.innerHTML = n, p(e.childNodes).detach().get(); } -p.parseHTML = $o; +p.parseHTML = No; x.has = function(n) { const t = at(n) ? (e, s) => Ci(n, s).length : (e, s) => s.contains(n); return this.filter(t); @@ -280,20 +280,20 @@ function Bt(n, t, e, s) { } return i; } -function No(n) { +function Eo(n) { return n.multiple && n.options ? Bt(bi.call(n.options, (t) => t.selected && !t.disabled && !t.parentNode.disabled), "value") : n.value || ""; } function ic(n) { return arguments.length ? this.each((t, e) => { const s = e.multiple && e.options; - if (s || Lo.test(e.type)) { - const i = Xn(n) ? So.call(n, String) : Ge(n) ? [] : [String(n)]; + if (s || zo.test(e.type)) { + const i = Xn(n) ? xo.call(n, String) : Ge(n) ? [] : [String(n)]; s ? et(e.options, (r, o) => { o.selected = i.indexOf(o.value) >= 0; }, !0) : e.checked = i.indexOf(e.value) >= 0; } else e.value = _t(n) || Ge(n) ? "" : n; - }) : this[0] && No(this[0]); + }) : this[0] && Eo(this[0]); } x.val = ic; x.is = function(n) { @@ -302,7 +302,7 @@ x.is = function(n) { }; p.guid = 1; function Rt(n) { - return n.length > 1 ? bi.call(n, (t, e, s) => Co.call(s, t) === e) : n; + return n.length > 1 ? bi.call(n, (t, e, s) => So.call(s, t) === e) : n; } p.unique = Rt; x.add = function(n, t) { @@ -316,7 +316,7 @@ x.parent = function(n) { }; x.index = function(n) { const t = n ? p(n)[0] : this[0], e = n ? this : p(t).parent().children(); - return Co.call(e, t); + return So.call(e, t); }; x.closest = function(n) { const t = this.filter(n); @@ -335,7 +335,7 @@ const rc = /^\s*\s*$/g, oc = /^$|^module$|\/(java function lc(n, t) { const e = p(n); e.filter("script").add(e.find("script")).each((s, i) => { - if (oc.test(i.type) && vo.contains(i)) { + if (oc.test(i.type) && bo.contains(i)) { const r = pe("script"); r.text = i.textContent.replace(rc, ""), et(ac, (o, a) => { i[a] && (r[a] = i[a]); @@ -437,7 +437,7 @@ x.prevUntil = function(n, t) { return this.prev(t, !0, n); }; x.map = function(n) { - return p(jl.apply([], So.call(this, (t, e) => n.call(t, e, t)))); + return p(jl.apply([], xo.call(this, (t, e) => n.call(t, e, t)))); }; x.clone = function() { return this.map((n, t) => t.cloneNode(!0)); @@ -447,11 +447,11 @@ x.offsetParent = function() { let e = t.offsetParent; for (; e && Wt(e, "position") === "static"; ) e = e.offsetParent; - return e || vo; + return e || bo; }); }; x.slice = function(n, t) { - return p(xo.call(this, n, t)); + return p(ko.call(this, n, t)); }; const uc = /-([a-z])/g; function xi(n) { @@ -499,7 +499,7 @@ x.position = function() { left: e.left - Mt(n, "marginLeft") }; }; -const Eo = { +const Ao = { /* GENERAL */ class: "className", contenteditable: "contentEditable", @@ -518,7 +518,7 @@ const Eo = { x.prop = function(n, t) { if (n) { if (at(n)) - return n = Eo[n] || n, arguments.length < 2 ? this[0] && this[0][n] : this.each((e, s) => { + return n = Ao[n] || n, arguments.length < 2 ? this[0] && this[0][n] : this.each((e, s) => { s[n] = t; }); for (const e in n) @@ -528,14 +528,14 @@ x.prop = function(n, t) { }; x.removeProp = function(n) { return this.each((t, e) => { - delete e[Eo[n] || n]; + delete e[Ao[n] || n]; }); }; const dc = /^--/; function ki(n) { return dc.test(n); } -const Ms = {}, { style: fc } = bo, pc = ["webkit", "moz", "ms"]; +const Ms = {}, { style: fc } = wo, pc = ["webkit", "moz", "ms"]; function gc(n, t = ki(n)) { if (t) return n; @@ -568,13 +568,13 @@ const mc = { widows: !0, zIndex: !0 }; -function Ao(n, t, e = ki(n)) { - return !e && !mc[n] && ko(t) ? `${t}px` : t; +function Mo(n, t, e = ki(n)) { + return !e && !mc[n] && To(t) ? `${t}px` : t; } function _c(n, t) { if (at(n)) { const e = ki(n); - return n = gc(n, e), arguments.length < 2 ? this[0] && Wt(this[0], n, e) : n ? (t = Ao(n, t, e), this.each((s, i) => { + return n = gc(n, e), arguments.length < 2 ? this[0] && Wt(this[0], n, e) : n ? (t = Mo(n, t, e), this.each((s, i) => { tt(i) && (e ? i.style.setProperty(n, t) : i.style[n] = t); })) : this; } @@ -583,7 +583,7 @@ function _c(n, t) { return this; } x.css = _c; -function Mo(n, t) { +function Po(n, t) { try { return n(t); } catch { @@ -591,12 +591,12 @@ function Mo(n, t) { } } const yc = /^\s+|\s+$/; -function Pr(n, t) { +function Ir(n, t) { const e = n.dataset[t] || n.dataset[xi(t)]; - return yc.test(e) ? e : Mo(JSON.parse, e); + return yc.test(e) ? e : Po(JSON.parse, e); } function vc(n, t, e) { - e = Mo(JSON.stringify, e), n.dataset[xi(t)] = e; + e = Po(JSON.stringify, e), n.dataset[xi(t)] = e; } function bc(n, t) { if (!n) { @@ -604,11 +604,11 @@ function bc(n, t) { return; const e = {}; for (const s in this[0].dataset) - e[s] = Pr(this[0], s); + e[s] = Ir(this[0], s); return e; } if (at(n)) - return arguments.length < 2 ? this[0] && Pr(this[0], n) : _t(t) ? this : this.each((e, s) => { + return arguments.length < 2 ? this[0] && Ir(this[0], n) : _t(t) ? this : this.each((e, s) => { vc(s, n, t); }); for (const e in n) @@ -616,7 +616,7 @@ function bc(n, t) { return this; } x.data = bc; -function Po(n, t) { +function Io(n, t) { const e = n.documentElement; return Math.max(n.body[`scroll${t}`], e[`scroll${t}`], n.body[`offset${t}`], e[`offset${t}`], e[`client${t}`]); } @@ -625,7 +625,7 @@ et([!0, !1], (n, t) => { const i = `${t ? "outer" : "inner"}${s}`; x[i] = function(r) { if (this[0]) - return xe(this[0]) ? t ? this[0][`inner${s}`] : this[0].document.documentElement[`client${s}`] : he(this[0]) ? Po(this[0], s) : this[0][`${t ? "offset" : "client"}${s}`] + (r && t ? Mt(this[0], `margin${e ? "Top" : "Left"}`) + Mt(this[0], `margin${e ? "Bottom" : "Right"}`) : 0); + return xe(this[0]) ? t ? this[0][`inner${s}`] : this[0].document.documentElement[`client${s}`] : he(this[0]) ? Io(this[0], s) : this[0][`${t ? "offset" : "client"}${s}`] + (r && t ? Mt(this[0], `margin${e ? "Top" : "Left"}`) + Mt(this[0], `margin${e ? "Bottom" : "Right"}`) : 0); }; }); }); @@ -635,23 +635,23 @@ et(["Width", "Height"], (n, t) => { if (!this[0]) return _t(s) ? void 0 : this; if (!arguments.length) - return xe(this[0]) ? this[0].document.documentElement[`client${t}`] : he(this[0]) ? Po(this[0], t) : this[0].getBoundingClientRect()[e] - Er(this[0], !n); + return xe(this[0]) ? this[0].document.documentElement[`client${t}`] : he(this[0]) ? Io(this[0], t) : this[0].getBoundingClientRect()[e] - Ar(this[0], !n); const i = parseInt(s, 10); return this.each((r, o) => { if (!tt(o)) return; const a = Wt(o, "boxSizing"); - o.style[e] = Ao(e, i + (a === "border-box" ? Er(o, !n) : 0)); + o.style[e] = Mo(e, i + (a === "border-box" ? Ar(o, !n) : 0)); }); }; }); -const Ir = "___cd"; +const Rr = "___cd"; x.toggle = function(n) { return this.each((t, e) => { if (!tt(e)) return; - const s = Ar(e); - (_t(n) ? s : n) ? (e.style.display = e[Ir] || "", Ar(e) && (e.style.display = ec(e.tagName))) : s || (e[Ir] = Wt(e, "display"), e.style.display = "none"); + const s = Mr(e); + (_t(n) ? s : n) ? (e.style.display = e[Rr] || "", Mr(e) && (e.style.display = ec(e.tagName))) : s || (e[Rr] = Wt(e, "display"), e.style.display = "none"); }); }; x.hide = function() { @@ -660,9 +660,9 @@ x.hide = function() { x.show = function() { return this.toggle(!0); }; -const Rr = "___ce", Ti = ".", $i = { focus: "focusin", blur: "focusout" }, Io = { mouseenter: "mouseover", mouseleave: "mouseout" }, wc = /^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i; +const Dr = "___ce", Ti = ".", $i = { focus: "focusin", blur: "focusout" }, Ro = { mouseenter: "mouseover", mouseleave: "mouseout" }, wc = /^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i; function Ni(n) { - return Io[n] || $i[n] || n; + return Ro[n] || $i[n] || n; } function Ei(n) { const t = n.split(Ti); @@ -682,21 +682,21 @@ x.trigger = function(n, t) { e && ge(i[n.___ot]) && (i[`___i${n.type}`] = !0, i[n.___ot](), i[`___i${n.type}`] = !1), i.dispatchEvent(n); }); }; -function Ro(n) { - return n[Rr] = n[Rr] || {}; +function Do(n) { + return n[Dr] = n[Dr] || {}; } function Cc(n, t, e, s, i) { - const r = Ro(n); + const r = Do(n); r[t] = r[t] || [], r[t].push([e, s, i]), n.addEventListener(t, i); } -function Do(n, t) { +function Lo(n, t) { return !t || !wi.call(t, (e) => n.indexOf(e) < 0); } function En(n, t, e, s, i) { - const r = Ro(n); + const r = Do(n); if (t) r[t] && (r[t] = r[t].filter(([o, a, l]) => { - if (i && l.guid !== i.guid || !Do(o, e) || s && s !== a) + if (i && l.guid !== i.guid || !Lo(o, e) || s && s !== a) return !0; n.removeEventListener(t, l); })); @@ -737,19 +737,19 @@ function Sc(n, t, e, s, i) { return this; } return at(t) || (_t(t) || Ge(t) ? t = "" : _t(e) ? (e = t, t = "") : (s = e, e = t, t = "")), ge(s) || (s = e, e = void 0), s ? (et(ts(n), (r, o) => { - const [a, l] = Ei(o), c = Ni(a), u = a in Io, h = a in $i; + const [a, l] = Ei(o), c = Ni(a), u = a in Ro, h = a in $i; c && this.each((f, d) => { if (!tt(d) && !he(d) && !xe(d)) return; const _ = function(m) { if (m.target[`___i${m.type}`]) return m.stopImmediatePropagation(); - if (m.namespace && !Do(l, m.namespace.split(Ti)) || !t && (h && (m.target !== d || m.___ot === c) || u && m.relatedTarget && d.contains(m.relatedTarget))) + if (m.namespace && !Lo(l, m.namespace.split(Ti)) || !t && (h && (m.target !== d || m.___ot === c) || u && m.relatedTarget && d.contains(m.relatedTarget))) return; let v = d; if (t) { let b = m.target; - for (; !To(b, t); ) + for (; !$o(b, t); ) if (b === d || (b = b.parentNode, !b)) return; v = b; @@ -787,14 +787,14 @@ function Tc(n, t) { return `&${encodeURIComponent(n)}=${encodeURIComponent(t.replace(kc, `\r `))}`; } -const $c = /file|reset|submit|button|image/i, Lo = /radio|checkbox/i; +const $c = /file|reset|submit|button|image/i, zo = /radio|checkbox/i; x.serialize = function() { let n = ""; return this.each((t, e) => { et(e.elements || [e], (s, i) => { - if (i.disabled || !i.name || i.tagName === "FIELDSET" || $c.test(i.type) || Lo.test(i.type) && !i.checked) + if (i.disabled || !i.name || i.tagName === "FIELDSET" || $c.test(i.type) || zo.test(i.type) && !i.checked) return; - const r = No(i); + const r = Eo(i); if (!_t(r)) { const o = Xn(r) ? r : [r]; et(o, (a, l) => { @@ -873,7 +873,7 @@ function Ec() { function Ac(n) { Pi = n.toLowerCase().replace("-", "_"); } -function zo(n, t) { +function Oo(n, t) { Ht || (Ht = {}), typeof n == "string" && (n = { [n]: t ?? {} }), p.extend(!0, Ht, n); } function j(n, t, e, s, i, r) { @@ -895,12 +895,12 @@ function j(n, t, e, s, i, r) { function Mc(n, t, e, s) { return j(void 0, n, t, e, s); } -j.addLang = zo; +j.addLang = Oo; j.getLang = Mc; j.getCode = Ec; j.setCode = Ac; j.map = Ht; -zo({ +Oo({ zh_cn: { confirm: "确定", save: "保存", @@ -932,7 +932,7 @@ zo({ close: "Close" } }); -function Dr(n, t, e) { +function Lr(n, t, e) { n instanceof Headers ? n.set(t, e) : Array.isArray(n) ? n.push([t, e]) : n[t] = e; } function ve(n, t, e) { @@ -1034,7 +1034,7 @@ class Ii { let v = s; v && (i && (v = Ic(v)), m.body = v), o && (m.mode = "cors"); const y = m.headers || {}; - Dr(y, "X-Requested-With", "XMLHttpRequest"), r && Dr(y, "Content-Type", r), m.headers = y, m.signal && m.signal.addEventListener("abort", () => { + Lr(y, "X-Requested-With", "XMLHttpRequest"), r && Lr(y, "Content-Type", r), m.headers = y, m.signal && m.signal.addEventListener("abort", () => { this.abort(); }); const b = [...this.constructor.globalBeforeSends, h]; @@ -1217,7 +1217,7 @@ class An { return (!e || t.some((s, i) => s instanceof An ? s.value !== e[i] : Us(s, e[i]))) && (this._value = this._compute(), this._lastDependencies = t.map((s) => s instanceof An ? s.cache : s)), this._value; } } -function Oo(...n) { +function Ho(...n) { const t = [], e = /* @__PURE__ */ new Map(), s = (i, r) => { if (Array.isArray(i) && (r = i[1], i = i[0]), !i.length) return; @@ -1225,10 +1225,10 @@ function Oo(...n) { typeof o == "number" ? t[o][1] = !!r : (e.set(i, t.length), t.push([i, !!r])); }; return n.forEach((i) => { - typeof i == "function" && (i = i()), Array.isArray(i) ? Oo(...i).forEach(s) : i && typeof i == "object" ? Object.entries(i).forEach(s) : typeof i == "string" && i.split(" ").forEach((r) => s(r, !0)); + typeof i == "function" && (i = i()), Array.isArray(i) ? Ho(...i).forEach(s) : i && typeof i == "object" ? Object.entries(i).forEach(s) : typeof i == "string" && i.split(" ").forEach((r) => s(r, !0)); }), t.sort((i, r) => (e.get(i[0]) || 0) - (e.get(r[0]) || 0)); } -const k = (...n) => Oo(...n).reduce((t, [e, s]) => (s && t.push(e), t), []).join(" "); +const k = (...n) => Ho(...n).reduce((t, [e, s]) => (s && t.push(e), t), []).join(" "); p.classes = k; p.fn.setClass = function(n, ...t) { return this.each((e, s) => { @@ -1299,7 +1299,7 @@ function Ye(n, t) { return c; }, {}); } -function Lr(n, t, e = "z-") { +function zr(n, t, e = "z-") { const s = p(n); Object.keys(t).forEach((i) => { let r = t[i]; @@ -1313,9 +1313,9 @@ function Rc(...n) { return Ye(this); if (t === 1) { const [s] = n; - return typeof s == "string" ? (e = Ye(this)) == null ? void 0 : e[s] : (p.isPlainObject(s) && Lr(this, s), this); + return typeof s == "string" ? (e = Ye(this)) == null ? void 0 : e[s] : (p.isPlainObject(s) && zr(this, s), this); } - return Lr(this, { [n[0]]: n[1] }), this; + return zr(this, { [n[0]]: n[1] }), this; } p.fn.z = Rc; p.fn._attr = p.fn.attr; @@ -1340,13 +1340,13 @@ const Mn = (n, t) => new Promise((e) => { t && t(s); }), Dc = {}; p.share = Dc; -var ss, z, Ho, ot, ae, zr, Fo, Ks, Li, qs, Gs, Je = {}, Wo = [], Lc = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, is = Array.isArray; +var ss, z, Fo, ot, ae, Or, Wo, Ks, Li, qs, Gs, Je = {}, jo = [], Lc = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, is = Array.isArray; function qt(n, t) { for (var e in t) n[e] = t[e]; return n; } -function jo(n) { +function Bo(n) { n && n.parentNode && n.parentNode.removeChild(n); } function wt(n, t, e) { @@ -1359,7 +1359,7 @@ function wt(n, t, e) { return wn(n, o, s, i, null); } function wn(n, t, e, s, i) { - var r = { type: n, props: t, key: e, ref: s, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: i ?? ++Ho, __i: -1, __u: 0 }; + var r = { type: n, props: t, key: e, ref: s, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: i ?? ++Fo, __i: -1, __u: 0 }; return i == null && z.vnode != null && z.vnode(r), r; } function G() { @@ -1379,7 +1379,7 @@ function Te(n, t) { return e.__e; return typeof n.type == "function" ? Te(n) : null; } -function Bo(n) { +function Vo(n) { var t, e; if ((n = n.__) != null && n.__c != null) { for (n.__e = n.__c.base = null, t = 0; t < n.__k.length; t++) @@ -1387,22 +1387,22 @@ function Bo(n) { n.__e = n.__c.base = e.__e; break; } - return Bo(n); + return Vo(n); } } -function Or(n) { - (!n.__d && (n.__d = !0) && ae.push(n) && !Pn.__r++ || zr !== z.debounceRendering) && ((zr = z.debounceRendering) || Fo)(Pn); +function Hr(n) { + (!n.__d && (n.__d = !0) && ae.push(n) && !Pn.__r++ || Or !== z.debounceRendering) && ((Or = z.debounceRendering) || Wo)(Pn); } function Pn() { var n, t, e, s, i, r, o, a; for (ae.sort(Ks); n = ae.shift(); ) - n.__d && (t = ae.length, s = void 0, r = (i = (e = n).__v).__e, o = [], a = [], e.__P && ((s = qt({}, i)).__v = i.__v + 1, z.vnode && z.vnode(s), zi(e.__P, s, i, e.__n, e.__P.namespaceURI, 32 & i.__u ? [r] : null, o, r ?? Te(i), !!(32 & i.__u), a), s.__v = i.__v, s.__.__k[s.__i] = s, Ko(o, s, a), s.__e != r && Bo(s)), ae.length > t && ae.sort(Ks)); + n.__d && (t = ae.length, s = void 0, r = (i = (e = n).__v).__e, o = [], a = [], e.__P && ((s = qt({}, i)).__v = i.__v + 1, z.vnode && z.vnode(s), zi(e.__P, s, i, e.__n, e.__P.namespaceURI, 32 & i.__u ? [r] : null, o, r ?? Te(i), !!(32 & i.__u), a), s.__v = i.__v, s.__.__k[s.__i] = s, qo(o, s, a), s.__e != r && Vo(s)), ae.length > t && ae.sort(Ks)); Pn.__r = 0; } -function Vo(n, t, e, s, i, r, o, a, l, c, u) { - var h, f, d, _, m, v = s && s.__k || Wo, y = t.length; +function Uo(n, t, e, s, i, r, o, a, l, c, u) { + var h, f, d, _, m, v = s && s.__k || jo, y = t.length; for (e.__d = l, zc(e, t, v), l = e.__d, h = 0; h < y; h++) - (d = e.__k[h]) != null && (f = d.__i === -1 ? Je : v[d.__i] || Je, d.__i = h, zi(n, d, f, i, r, o, a, l, c, u), _ = d.__e, d.ref && f.ref != d.ref && (f.ref && Oi(f.ref, null, d), u.push(d.ref, d.__c || _, d)), m == null && _ != null && (m = _), 65536 & d.__u || f.__k === d.__k ? l = Uo(d, l, n) : typeof d.type == "function" && d.__d !== void 0 ? l = d.__d : _ && (l = _.nextSibling), d.__d = void 0, d.__u &= -196609); + (d = e.__k[h]) != null && (f = d.__i === -1 ? Je : v[d.__i] || Je, d.__i = h, zi(n, d, f, i, r, o, a, l, c, u), _ = d.__e, d.ref && f.ref != d.ref && (f.ref && Oi(f.ref, null, d), u.push(d.ref, d.__c || _, d)), m == null && _ != null && (m = _), 65536 & d.__u || f.__k === d.__k ? l = Ko(d, l, n) : typeof d.type == "function" && d.__d !== void 0 ? l = d.__d : _ && (l = _.nextSibling), d.__d = void 0, d.__u &= -196609); e.__d = l, e.__e = m; } function zc(n, t, e) { @@ -1411,13 +1411,13 @@ function zc(n, t, e) { (i = t[s]) != null && typeof i != "boolean" && typeof i != "function" ? (o = s + h, (i = n.__k[s] = typeof i == "string" || typeof i == "number" || typeof i == "bigint" || i.constructor == String ? wn(null, i, null, null, null) : is(i) ? wn(Ae, { children: i }, null, null, null) : i.constructor === void 0 && i.__b > 0 ? wn(i.type, i.props, i.key, i.ref ? i.ref : null, i.__v) : i).__ = n, i.__b = n.__b + 1, r = null, (a = i.__i = Oc(i, e, o, u)) !== -1 && (u--, (r = e[a]) && (r.__u |= 131072)), r == null || r.__v === null ? (a == -1 && h--, typeof i.type != "function" && (i.__u |= 65536)) : a !== o && (a == o - 1 ? h-- : a == o + 1 ? h++ : (a > o ? h-- : h++, i.__u |= 65536))) : i = n.__k[s] = null; if (u) for (s = 0; s < c; s++) - (r = e[s]) != null && !(131072 & r.__u) && (r.__e == n.__d && (n.__d = Te(r)), qo(r, r)); + (r = e[s]) != null && !(131072 & r.__u) && (r.__e == n.__d && (n.__d = Te(r)), Go(r, r)); } -function Uo(n, t, e) { +function Ko(n, t, e) { var s, i; if (typeof n.type == "function") { for (s = n.__k, i = 0; s && i < s.length; i++) - s[i] && (s[i].__ = n, t = Uo(s[i], t, e)); + s[i] && (s[i].__ = n, t = Ko(s[i], t, e)); return t; } n.__e != t && (t && n.type && !e.contains(t) && (t = Te(n)), e.insertBefore(n.__e, t || null), t = n.__e); @@ -1450,7 +1450,7 @@ function Oc(n, t, e, s) { } return -1; } -function Hr(n, t, e) { +function Fr(n, t, e) { t[0] === "-" ? n.setProperty(t, e ?? "") : n[t] = e == null ? "" : typeof e != "number" || Lc.test(t) ? e : e + "px"; } function mn(n, t, e, s, i) { @@ -1462,10 +1462,10 @@ function mn(n, t, e, s, i) { else { if (typeof s == "string" && (n.style.cssText = s = ""), s) for (t in s) - e && t in e || Hr(n.style, t, ""); + e && t in e || Fr(n.style, t, ""); if (e) for (t in e) - s && e[t] === s[t] || Hr(n.style, t, e[t]); + s && e[t] === s[t] || Fr(n.style, t, e[t]); } else if (t[0] === "o" && t[1] === "n") r = t !== (t = t.replace(/(PointerCapture)$|Capture$/i, "$1")), t = t.toLowerCase() in n || t === "onFocusOut" || t === "onFocusIn" ? t.toLowerCase().slice(2) : t.slice(2), n.l || (n.l = {}), n.l[t + r] = e, e ? s ? e.u = s.u : (e.u = Li, n.addEventListener(t, r ? Gs : qs, r)) : n.removeEventListener(t, r ? Gs : qs, r); @@ -1481,7 +1481,7 @@ function mn(n, t, e, s, i) { typeof e == "function" || (e == null || e === !1 && t[4] !== "-" ? n.removeAttribute(t) : n.setAttribute(t, t == "popover" && e == 1 ? "" : e)); } } -function Fr(n) { +function Wr(n) { return function(t) { if (this.l) { var e = this.l[t.type + n]; @@ -1524,7 +1524,7 @@ function zi(n, t, e, s, i, r, o, a, l, c) { do h.__d = !1, $ && $(t), u = h.render(h.props, h.state, h.context), h.state = h.__s; while (h.__d && ++E < 25); - h.state = h.__s, h.getChildContext != null && (s = qt(qt({}, s), h.getChildContext())), b && !f && h.getSnapshotBeforeUpdate != null && (m = h.getSnapshotBeforeUpdate(d, _)), Vo(n, is(A = u != null && u.type === Ae && u.key == null ? u.props.children : u) ? A : [A], t, e, s, i, r, o, a, l, c), h.base = t.__e, t.__u &= -161, h.__h.length && o.push(h), v && (h.__E = h.__ = null); + h.state = h.__s, h.getChildContext != null && (s = qt(qt({}, s), h.getChildContext())), b && !f && h.getSnapshotBeforeUpdate != null && (m = h.getSnapshotBeforeUpdate(d, _)), Uo(n, is(A = u != null && u.type === Ae && u.key == null ? u.props.children : u) ? A : [A], t, e, s, i, r, o, a, l, c), h.base = t.__e, t.__u &= -161, h.__h.length && o.push(h), v && (h.__E = h.__ = null); } catch (T) { if (t.__v = null, l || r != null) { for (t.__u |= l ? 160 : 128; a && a.nodeType === 8 && a.nextSibling; ) @@ -1538,7 +1538,7 @@ function zi(n, t, e, s, i, r, o, a, l, c) { r == null && t.__v === e.__v ? (t.__k = e.__k, t.__e = e.__e) : t.__e = Hc(e.__e, t, e, s, i, r, o, l, c); (u = z.diffed) && u(t); } -function Ko(n, t, e) { +function qo(n, t, e) { t.__d = void 0; for (var s = 0; s < e.length; s++) Oi(e[s], e[++s], e[++s]); @@ -1586,9 +1586,9 @@ function Hc(n, t, e, s, i, r, o, a, l) { d = y[c], c == "children" ? f = d : c == "dangerouslySetInnerHTML" ? u = d : c == "value" ? _ = d : c == "checked" ? m = d : a && typeof d != "function" || v[c] === d || mn(n, c, d, v[c], i); if (u) a || h && (u.__html === h.__html || u.__html === n.innerHTML) || (n.innerHTML = u.__html), t.__k = []; - else if (h && (n.innerHTML = ""), Vo(n, is(f) ? f : [f], t, e, s, b === "foreignObject" ? "http://www.w3.org/1999/xhtml" : i, r, o, r ? r[0] : e.__k && Te(e, 0), a, l), r != null) + else if (h && (n.innerHTML = ""), Uo(n, is(f) ? f : [f], t, e, s, b === "foreignObject" ? "http://www.w3.org/1999/xhtml" : i, r, o, r ? r[0] : e.__k && Te(e, 0), a, l), r != null) for (c = r.length; c--; ) - jo(r[c]); + Bo(r[c]); a || (c = "value", b === "progress" && _ == null ? n.removeAttribute("value") : _ !== void 0 && (_ !== n[c] || b === "progress" && !_ || b === "option" && _ !== v[c]) && mn(n, c, _, v[c], i), c = "checked", m !== void 0 && m !== n[c] && mn(n, c, m, v[c], i)); } return n; @@ -1604,7 +1604,7 @@ function Oi(n, t, e) { z.__e(i, e); } } -function qo(n, t, e) { +function Go(n, t, e) { var s, i; if (z.unmount && z.unmount(n), (s = n.ref) && (s.current && s.current !== n.__e || Oi(s, null, t)), (s = n.__c) != null) { if (s.componentWillUnmount) @@ -1617,17 +1617,17 @@ function qo(n, t, e) { } if (s = n.__k) for (i = 0; i < s.length; i++) - s[i] && qo(s[i], t, e || typeof n.type != "function"); - e || jo(n.__e), n.__c = n.__ = n.__e = n.__d = void 0; + s[i] && Go(s[i], t, e || typeof n.type != "function"); + e || Bo(n.__e), n.__c = n.__ = n.__e = n.__d = void 0; } function Fc(n, t, e) { return this.constructor(n, e); } function we(n, t, e) { var s, i, r, o; - z.__ && z.__(n, t), i = (s = typeof e == "function") ? null : e && e.__k || t.__k, r = [], o = [], zi(t, n = (!s && e || t).__k = wt(Ae, null, [n]), i || Je, Je, t.namespaceURI, !s && e ? [e] : i ? null : t.firstChild ? ss.call(t.childNodes) : null, r, !s && e ? e : i ? i.__e : t.firstChild, s, o), Ko(r, n, o); + z.__ && z.__(n, t), i = (s = typeof e == "function") ? null : e && e.__k || t.__k, r = [], o = [], zi(t, n = (!s && e || t).__k = wt(Ae, null, [n]), i || Je, Je, t.namespaceURI, !s && e ? [e] : i ? null : t.firstChild ? ss.call(t.childNodes) : null, r, !s && e ? e : i ? i.__e : t.firstChild, s, o), qo(r, n, o); } -ss = Wo.slice, z = { __e: function(n, t, e, s) { +ss = jo.slice, z = { __e: function(n, t, e, s) { for (var i, r, o; t = t.__; ) if ((i = t.__c) && !i.__) try { @@ -1637,16 +1637,16 @@ ss = Wo.slice, z = { __e: function(n, t, e, s) { n = a; } throw n; -} }, Ho = 0, ot = function(n) { +} }, Fo = 0, ot = function(n) { return n != null && n.constructor == null; }, F.prototype.setState = function(n, t) { var e; - e = this.__s != null && this.__s !== this.state ? this.__s : this.__s = qt({}, this.state), typeof n == "function" && (n = n(qt({}, e), this.props)), n && qt(e, n), n != null && this.__v && (t && this._sb.push(t), Or(this)); + e = this.__s != null && this.__s !== this.state ? this.__s : this.__s = qt({}, this.state), typeof n == "function" && (n = n(qt({}, e), this.props)), n && qt(e, n), n != null && this.__v && (t && this._sb.push(t), Hr(this)); }, F.prototype.forceUpdate = function(n) { - this.__v && (this.__e = !0, n && this.__h.push(n), Or(this)); -}, F.prototype.render = Ae, ae = [], Fo = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, Ks = function(n, t) { + this.__v && (this.__e = !0, n && this.__h.push(n), Hr(this)); +}, F.prototype.render = Ae, ae = [], Wo = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, Ks = function(n, t) { return n.__v.__b - t.__v.__b; -}, Pn.__r = 0, Li = 0, qs = Fr(!1), Gs = Fr(!0); +}, Pn.__r = 0, Li = 0, qs = Wr(!1), Gs = Wr(!0); function O(n, ...t) { return t.forEach((e) => { !e || typeof e != "object" || Object.keys(e).forEach((s) => { @@ -1656,7 +1656,7 @@ function O(n, ...t) { }); }), n; } -function Go(n) { +function Yo(n) { return Object.keys(n).forEach((t) => { n[t] === void 0 && delete n[t]; }), n; @@ -1765,7 +1765,7 @@ function Gt(n, t) { const [e, s = "px"] = Hi(n, t); return Number.isNaN(e) ? typeof n == "string" ? n : null : `${e}${s}`; } -async function Wr(n, t) { +async function jr(n, t) { var s, i, r; if (n instanceof Blob) { const o = document.createElement("a"); @@ -1773,10 +1773,10 @@ async function Wr(n, t) { } if (n instanceof Response) { const o = await n.blob(); - return t = t || ((r = (i = (s = n.headers.get("Content-Disposition")) == null ? void 0 : s.split(";")[1]) == null ? void 0 : i.split("=")[1]) == null ? void 0 : r.replace(/"/g, "")), Wr(o, t); + return t = t || ((r = (i = (s = n.headers.get("Content-Disposition")) == null ? void 0 : s.split(";")[1]) == null ? void 0 : i.split("=")[1]) == null ? void 0 : r.replace(/"/g, "")), jr(o, t); } const e = await fetch(n); - return Wr(e); + return jr(e); } class Vc { constructor(t) { @@ -1801,7 +1801,7 @@ p.on = jt.on.bind(jt); p.one = jt.one.bind(jt); p.off = jt.off.bind(jt); p.trigger = jt.trigger.bind(jt); -var Uc = ["Shift", "Meta", "Alt", "Control"], Yo = typeof navigator == "object" ? navigator.platform : "", Jo = /Mac|iPod|iPhone|iPad/.test(Yo), Kc = Jo ? "Meta" : "Control", qc = Yo === "Win32" ? ["Control", "Alt"] : Jo ? ["Alt"] : []; +var Uc = ["Shift", "Meta", "Alt", "Control"], Jo = typeof navigator == "object" ? navigator.platform : "", Zo = /Mac|iPod|iPhone|iPad/.test(Jo), Kc = Zo ? "Meta" : "Control", qc = Jo === "Win32" ? ["Control", "Alt"] : Zo ? ["Alt"] : []; function Is(n, t) { return typeof n.getModifierState == "function" && (n.getModifierState(t) || qc.includes(t) && n.getModifierState("AltGraph")); } @@ -1813,7 +1813,7 @@ function Gc(n) { }), s]; }); } -function Zo(n, t) { +function Xo(n, t) { var e; t === void 0 && (t = {}); var s = (e = t.timeout) != null ? e : 1e3, i = Object.keys(n).map(function(a) { @@ -1835,12 +1835,12 @@ function Zo(n, t) { function Yc(n, t, e) { var s; e === void 0 && (e = {}); - var i = (s = e.event) != null ? s : "keydown", r = Zo(t, e); + var i = (s = e.event) != null ? s : "keydown", r = Xo(t, e); return n.addEventListener(i, r), function() { n.removeEventListener(i, r); }; } -function Xo(n, t = {}) { +function Qo(n, t = {}) { if (!n) return; const e = Object.keys(t).reduce((s, i) => (t[i].optional || (s[i] = { @@ -1858,8 +1858,8 @@ function Xo(n, t = {}) { }), s; }, {}); } -function Qo(n, t, e) { - const { timeout: s, event: i = "keydown", scope: r, when: o } = e || {}, a = Zo(t, { timeout: s }), l = `.zui.hotkeys${r ? `.${r}` : ""}`, c = "zui-hotkeys-composing"; +function ta(n, t, e) { + const { timeout: s, event: i = "keydown", scope: r, when: o } = e || {}, a = Xo(t, { timeout: s }), l = `.zui.hotkeys${r ? `.${r}` : ""}`, c = "zui-hotkeys-composing"; return p(n).on(`${i}${l}`, function(u) { o && o(u) === !1 || p(u.target).data(c) || a(u); }).on(`compositionstart${l}`, (u) => { @@ -1868,21 +1868,21 @@ function Qo(n, t, e) { p(u.target).removeData(c); }); } -function ta(n, t) { +function ea(n, t) { return p(n).off(`.zui.hotkeys${t ? `.${t}` : ""}`); } const Vd = Yc; p.fn.hotkeys = function(n, t) { - return Qo(this, n, t); + return ta(this, n, t); }; p.fn.unbindHotkeys = function(n) { - return ta(this, n); + return ea(this, n); }; p.hotkeys = function(n, t) { - Qo(window, n, t); + ta(window, n, t); }; p.unbindHotkeys = function(n) { - ta(window, n); + ea(window, n); }; function Fi() { return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement; @@ -1910,18 +1910,18 @@ async function Jc(n) { p(h).trigger(u ? "enterFullscreen" : "exitFullscreen", f).trigger("toggleFullscreen", f); })); } -async function ea(n) { +async function na(n) { const t = Fi(); return n === !1 && !!t === n ? n : t ? (document.exitFullscreen(), !1) : (await Jc(n), !0); } p.fn.fullscreen = function(n) { - return ea({ + return na({ target: this, ...n }); }; p.getFullscreenElement = Fi; -p.toggleFullscreen = ea; +p.toggleFullscreen = na; function ne(n) { return !n || n.parentNode === document ? !1 : n.parentNode ? ne(n.parentNode) : !0; } @@ -1930,7 +1930,7 @@ p.fn.isDetached = function() { const n = this[0]; return !n || ne(n); }; -const me = class na { +const me = class sa { /** * The component constructor. * @@ -2236,7 +2236,7 @@ const me = class na { return t ? p(t).find(s).each((c, u) => { var h; (h = i.get(u)) == null || h.forEach(a); - }) : this !== na ? (l = r.get(this.NAME)) == null || l.forEach(a) : i.forEach((c) => { + }) : this !== sa ? (l = r.get(this.NAME)) == null || l.forEach(a) : i.forEach((c) => { c.forEach(a); }), o.sort((c, u) => c.gid - u.gid); } @@ -2297,9 +2297,9 @@ let vt = me; function rs(n) { return vt.map.get(n.toLowerCase()); } -function sa(n, t, e = {}) { +function ia(n, t, e = {}) { let s = rs(n); - if (s || (s = ia(n)), !s) + if (s || (s = ra(n)), !s) return null; const { $update: i, ...r } = e; if (!s.MULTI_INSTANCE) { @@ -2310,12 +2310,12 @@ function sa(n, t, e = {}) { return new s(t, r); } function Zc(n, t, e = {}) { - requestAnimationFrame(() => sa(n, t, e)); + requestAnimationFrame(() => ia(n, t, e)); } function Xc(n, t) { vt.register(n, t); } -function ia(n) { +function ra(n) { const { zui: t } = window; if (t) { n = n == null ? void 0 : n.toLowerCase(); @@ -2331,7 +2331,7 @@ function ia(n) { } function Ud(n) { var t; - n ? (t = rs(n)) == null || t.defineFn() : window._zuiDefined || (ia(), vt.map.forEach((e) => { + n ? (t = rs(n)) == null || t.defineFn() : window._zuiDefined || (ra(), vt.map.forEach((e) => { e.defineFn(); }), Object.assign(window, { _zuiDefined: !0 })); } @@ -2351,7 +2351,7 @@ function Qc(n, t = {}) { } const c = l.$lib; if (c) { - delete l.$lib, p.getLib(c).then(() => sa(a, n, l)); + delete l.$lib, p.getLib(c).then(() => ia(a, n, l)); return; } Zc(a, n, l); @@ -2435,9 +2435,9 @@ function eh(n, t) { }), s; } let _n = 0; -function ra(n = 100) { +function oa(n = 100) { if (_n && clearTimeout(_n), n) { - _n = window.setTimeout(() => ra(0), n); + _n = window.setTimeout(() => oa(0), n); return; } _n = 0, vt.ALL.forEach((t) => { @@ -2454,7 +2454,7 @@ function nh() { e = !0; break; } - e && ra(); + e && oa(); }); n.observe(document.body, { childList: !0, subtree: !0 }), Ri(document.body, "_autoDestoryMob", n); } @@ -2540,12 +2540,12 @@ const Ze = 24 * 60 * 60 * 1e3, q = (n) => n === void 0 ? /* @__PURE__ */ new Dat e = t.replace(s.toString(), ""), t = s; } return n = new Date(q(n).getTime()), e === "month" ? n.setMonth(n.getMonth() + t) : e === "year" ? n.setFullYear(n.getFullYear() + t) : e === "week" ? n.setDate(n.getDate() + t * 7) : e === "hour" ? n.setHours(n.getHours() + t) : e === "minute" ? n.setMinutes(n.getMinutes() + t) : e === "second" ? n.setSeconds(n.getSeconds() + t) : n.setDate(n.getDate() + t), n; -}, le = (n, t = /* @__PURE__ */ new Date()) => q(n).toDateString() === q(t).toDateString(), Ys = (n, t = /* @__PURE__ */ new Date()) => q(n).getFullYear() === q(t).getFullYear(), oa = (n, t = /* @__PURE__ */ new Date()) => (n = q(n), t = q(t), n.getFullYear() === t.getFullYear() && n.getMonth() === t.getMonth()), Kd = (n, t = /* @__PURE__ */ new Date()) => { +}, le = (n, t = /* @__PURE__ */ new Date()) => q(n).toDateString() === q(t).toDateString(), Ys = (n, t = /* @__PURE__ */ new Date()) => q(n).getFullYear() === q(t).getFullYear(), aa = (n, t = /* @__PURE__ */ new Date()) => (n = q(n), t = q(t), n.getFullYear() === t.getFullYear() && n.getMonth() === t.getMonth()), Kd = (n, t = /* @__PURE__ */ new Date()) => { n = q(n), t = q(t); const e = 1e3 * 60 * 60 * 24, s = Math.floor(n.getTime() / e), i = Math.floor(t.getTime() / e); return Math.floor((s + 4) / 7) === Math.floor((i + 4) / 7); -}, qd = (n, t) => le(q(t), n), Gd = (n, t) => le(q(t).getTime() - Ze, n), Yd = (n, t) => le(q(t).getTime() + Ze, n), aa = (n) => n != null && !isNaN(q(n).getTime()), Tt = (n, t = "yyyy-MM-dd hh:mm", e = "") => { - if (n = q(n), !aa(n)) +}, qd = (n, t) => le(q(t), n), Gd = (n, t) => le(q(t).getTime() - Ze, n), Yd = (n, t) => le(q(t).getTime() + Ze, n), la = (n) => n != null && !isNaN(q(n).getTime()), Tt = (n, t = "yyyy-MM-dd hh:mm", e = "") => { + if (n = q(n), !la(n)) return e; if (typeof t == "function") return t(n); @@ -2574,7 +2574,7 @@ const Ze = 24 * 60 * 60 * 1e3, q = (n) => n === void 0 ? /* @__PURE__ */ new Dat }, i = Tt(n, Ys(n) ? s.month : s.full); if (le(n, t)) return i; - const r = Tt(t, Ys(n, t) ? oa(n, t) ? s.day : s.month : s.full); + const r = Tt(t, Ys(n, t) ? aa(n, t) ? s.day : s.month : s.full); return s.str.replace("{0}", i).replace("{1}", r); }; function oh(n) { @@ -2632,7 +2632,7 @@ function ah(n) { commands: e.filter(Boolean) }; } -function jr(n, t, e) { +function Br(n, t, e) { if (typeof n == "string" && (n = Js(n)), !n) return; const { execute: s, event: i, scope: r } = t; @@ -2659,16 +2659,16 @@ async function lh(n, t) { for (const l of s) { if (!(i != null && i.aborted)) break; - a = await jr(l, t, a), i != null && i.aborted && (a = void 0), o.push(a); + a = await Br(l, t, a), i != null && i.aborted && (a = void 0), o.push(a); } return o; } return await Promise.all(s.map((o) => { if (!(i != null && i.aborted)) - return jr(o, t); + return Br(o, t); })); } -const Ce = "zui.commands", $e = "z-commands", ch = "zui-commands-proxy", la = "zui-command"; +const Ce = "zui.commands", $e = "z-commands", ch = "zui-commands-proxy", ca = "zui-command"; function Wi(n, t) { typeof t == "string" ? t = { scope: t } : typeof t == "function" && (t = { onCommand: t }); const { scope: e = "", events: s = "click" } = t ?? {}, i = p(n), r = (i.attr($e) || "").split(","); @@ -2695,7 +2695,7 @@ function ji(n, t = !0) { i.length ? e.attr($e, i.join(",")).data(Ce, Wi) : ji(e, !0); } } -function ca(n, t) { +function ha(n, t) { let e = n.closest(`[${$e}]`); if (!e.length) { const o = n.closest(`[${ch}]`); @@ -2711,7 +2711,7 @@ function ca(n, t) { })), r) : (r = i.find((o) => { var a; return !((a = o.scope) != null && a.length) && !o.scoped; - }), r || (r = i.find((o) => !o.scoped)), r ? r.element = e[0] : r = ca(n.parent(), t), r); + }), r || (r = i.find((o) => !o.scoped)), r ? r.element = e[0] : r = ha(n.parent(), t), r); } function hh(n) { if (!n.currentTarget) @@ -2719,7 +2719,7 @@ function hh(n) { const t = p(n.currentTarget); if (t.closest(".disabled,[disabled]").length) return; - const e = t.attr(la) || (t.is('a[href^="#!"]') ? t.attr("href") : ""); + const e = t.attr(ca) || (t.is('a[href^="#!"]') ? t.attr("href") : ""); if (!e) return; const s = new AbortController(), i = () => s.abort(); @@ -2731,7 +2731,7 @@ function hh(n) { abort: i }; let u; - const h = ca(t, a); + const h = ha(t, a); if (h) { c.element = h.element; const d = (h.commands ? h.commands[`${a}~${l}`] || h.commands[l] : null) || h.onCommand; @@ -2763,7 +2763,7 @@ p.fn.unbindCommands = function(n) { return this.each((t, e) => ji(e, n)), this; }; p(() => { - p(document).on("click.zui.command", `[${la}],a[href^="#!"]`, hh); + p(document).on("click.zui.command", `[${ca}],a[href^="#!"]`, hh); }); function Zs(n, t, e = !1) { var i; @@ -2817,7 +2817,7 @@ p.fn.isVisible = function(n) { function uh(n, t = "both") { return (t === "vert" || t === "both") && n.clientHeight < n.scrollHeight || (t === "horz" || t === "both") && n.clientWidth < n.scrollWidth; } -function ha(n, t) { +function ua(n, t) { const e = p(n), { ifNeeded: s = !0, container: i, ...r } = t || {}; return e.each((o, a) => { if (i) { @@ -2836,7 +2836,7 @@ function ha(n, t) { } p.fn.scrollIntoView = function(n) { return this.each((t, e) => { - ha(e, n); + ua(e, n); }); }; p.setLibRoot = function(n) { @@ -2845,7 +2845,7 @@ p.setLibRoot = function(n) { p.registerLib = function(n, t) { p.libMap || (p.libMap = {}), !t.name && t.id && (t.id = `zui-lib-${n}`), p.libMap[n] = t; }; -function ua(n) { +function da(n) { return new Promise((t, e) => { typeof n == "string" && (n = { src: n }); const { src: s, id: i } = n; @@ -2861,7 +2861,7 @@ function ua(n) { }, o.rel = "stylesheet", o.href = s, i && (o.id = i), p("head").append(o); }); } -function da(n) { +function fa(n) { return new Promise((t, e) => { typeof n == "string" && (n = { src: n }); const { src: s, id: i } = n, r = p(i ? `#${i}` : `script[src="${s}"]`); @@ -2882,7 +2882,7 @@ function da(n) { }, p("head").append(h), h.src = s; }); } -function fa(n) { +function pa(n) { return new Promise((t) => { typeof n == "string" && (n = { type: "module", src: n }); const { src: e, imports: s, srcList: i = [], id: r } = n; @@ -2949,49 +2949,49 @@ p.getLib = async function(n, t, e) { src: v }; if (m.type === "css" || !m.type && v.endsWith(".css")) { - await ua(y); + await da(y); continue; } if (y.type === "module") { - u = await fa(y); + u = await pa(y); continue; } - await da(y); + await fa(y); } return f(); }; p.getScript = p.getLib; -function pa(n, t) { +function ga(n, t) { const e = p(n), s = new ResizeObserver(t); return e.each((i, r) => { s.observe(r); }), s; } p.fn.resize = function(n) { - return pa(this, n); + return ga(this, n); }; const Zd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, isElementDetached: ne, isVisible: os, - listenResize: pa, - loadCSS: ua, - loadJS: da, - loadModule: fa, - scrollIntoView: ha + listenResize: ga, + loadCSS: da, + loadJS: fa, + loadModule: pa, + scrollIntoView: ua }, Symbol.toStringTag, { value: "Module" })); -var Xs, pt, Rs, Br, Vr = 0, ga = [], J = z, Ur = J.__b, Kr = J.__r, qr = J.diffed, Gr = J.__c, Yr = J.unmount, Jr = J.__; +var Xs, pt, Rs, Vr, Ur = 0, ma = [], J = z, Kr = J.__b, qr = J.__r, Gr = J.diffed, Yr = J.__c, Jr = J.unmount, Zr = J.__; function dh(n, t) { - J.__h && J.__h(pt, n, Vr || t), Vr = 0; + J.__h && J.__h(pt, n, Ur || t), Ur = 0; var e = pt.__H || (pt.__H = { __: [], __h: [] }); return n >= e.__.length && e.__.push({}), e.__[n]; } -function ma(n, t) { +function _a(n, t) { var e = dh(Xs++, 7); return gh(e.__H, t) && (e.__ = n(), e.__H = t, e.__h = n), e.__; } function fh() { - for (var n; n = ga.shift(); ) + for (var n; n = ma.shift(); ) if (n.__P && n.__H) try { n.__H.__h.forEach(Cn), n.__H.__h.forEach(Qs), n.__H.__h = []; @@ -3000,19 +3000,19 @@ function fh() { } } J.__b = function(n) { - pt = null, Ur && Ur(n); + pt = null, Kr && Kr(n); }, J.__ = function(n, t) { - n && t.__k && t.__k.__m && (n.__m = t.__k.__m), Jr && Jr(n, t); + n && t.__k && t.__k.__m && (n.__m = t.__k.__m), Zr && Zr(n, t); }, J.__r = function(n) { - Kr && Kr(n), Xs = 0; + qr && qr(n), Xs = 0; var t = (pt = n.__c).__H; t && (Rs === pt ? (t.__h = [], pt.__h = [], t.__.forEach(function(e) { e.__N && (e.__ = e.__N), e.i = e.__N = void 0; })) : (t.__h.forEach(Cn), t.__h.forEach(Qs), t.__h = [], Xs = 0)), Rs = pt; }, J.diffed = function(n) { - qr && qr(n); + Gr && Gr(n); var t = n.__c; - t && t.__H && (t.__H.__h.length && (ga.push(t) !== 1 && Br === J.requestAnimationFrame || ((Br = J.requestAnimationFrame) || ph)(fh)), t.__H.__.forEach(function(e) { + t && t.__H && (t.__H.__h.length && (ma.push(t) !== 1 && Vr === J.requestAnimationFrame || ((Vr = J.requestAnimationFrame) || ph)(fh)), t.__H.__.forEach(function(e) { e.i && (e.__H = e.i), e.i = void 0; })), Rs = pt = null; }, J.__c = function(n, t) { @@ -3026,9 +3026,9 @@ J.__b = function(n) { i.__h && (i.__h = []); }), t = [], J.__e(s, e.__v); } - }), Gr && Gr(n, t); + }), Yr && Yr(n, t); }, J.unmount = function(n) { - Yr && Yr(n); + Jr && Jr(n); var t, e = n.__c; e && e.__H && (e.__H.__.forEach(function(s) { try { @@ -3038,12 +3038,12 @@ J.__b = function(n) { } }), e.__H = void 0, t && J.__e(t, e.__v)); }; -var Zr = typeof requestAnimationFrame == "function"; +var Xr = typeof requestAnimationFrame == "function"; function ph(n) { var t, e = function() { - clearTimeout(s), Zr && cancelAnimationFrame(t), setTimeout(n); + clearTimeout(s), Xr && cancelAnimationFrame(t), setTimeout(n); }, s = setTimeout(e, 100); - Zr && (t = requestAnimationFrame(e)); + Xr && (t = requestAnimationFrame(e)); } function Cn(n) { var t = pt, e = n.__c; @@ -3067,7 +3067,7 @@ function as() { var e = Ue; for (Ue = void 0, ti++; e !== void 0; ) { var s = e.o; - if (e.o = void 0, e.f &= -3, !(8 & e.f) && ya(e)) + if (e.o = void 0, e.f &= -3, !(8 & e.f) && va(e)) try { e.c(); } catch (i) { @@ -3101,7 +3101,7 @@ function Xd(n) { } } var Ue = void 0, Yt = 0, ti = 0, Rn = 0; -function _a(n) { +function ya(n) { if (D !== void 0) { var t = n.n; if (t === void 0 || t.t !== D) @@ -3157,7 +3157,7 @@ st.prototype.peek = function() { } }; Object.defineProperty(st.prototype, "value", { get: function() { - var n = _a(this); + var n = ya(this); return n !== void 0 && (n.i = this.i), this.v; }, set: function(n) { if (n !== this.v) { @@ -3175,13 +3175,13 @@ Object.defineProperty(st.prototype, "value", { get: function() { function ls(n) { return new st(n); } -function ya(n) { +function va(n) { for (var t = n.s; t !== void 0; t = t.n) if (t.S.i !== t.i || !t.S.h() || t.S.i !== t.i) return !0; return !1; } -function va(n) { +function ba(n) { for (var t = n.s; t !== void 0; t = t.n) { var e = t.S.n; if (e !== void 0 && (t.r = e), t.S.n = t, t.i = -1, t.n === void 0) { @@ -3190,7 +3190,7 @@ function va(n) { } } } -function ba(n) { +function wa(n) { for (var t = n.s, e = void 0; t !== void 0; ) { var s = t.p; t.i === -1 ? (t.S.U(t), s !== void 0 && (s.n = t.n), t.n !== void 0 && (t.n.p = s)) : e = t, t.S.n = t.r, t.r !== void 0 && (t.r = void 0), t = s; @@ -3205,17 +3205,17 @@ function Me(n) { return !1; if ((36 & this.f) == 32 || (this.f &= -5, this.g === Rn)) return !0; - if (this.g = Rn, this.f |= 1, this.i > 0 && !ya(this)) + if (this.g = Rn, this.f |= 1, this.i > 0 && !va(this)) return this.f &= -2, !0; var n = D; try { - va(this), D = this; + ba(this), D = this; var t = this.x(); (16 & this.f || this.v !== t || this.i === 0) && (this.v = t, this.f &= -17, this.i++); } catch (e) { this.v = e, this.f |= 16, this.i++; } - return D = n, ba(this), this.f &= -2, !0; + return D = n, wa(this), this.f &= -2, !0; }; Me.prototype.S = function(n) { if (this.t === void 0) { @@ -3242,15 +3242,15 @@ Me.prototype.N = function() { Object.defineProperty(Me.prototype, "value", { get: function() { if (1 & this.f) throw new Error("Cycle detected"); - var n = _a(this); + var n = ya(this); if (this.h(), n !== void 0 && (n.i = this.i), 16 & this.f) throw this.v; return this.v; } }); -function wa(n) { +function Ca(n) { return new Me(n); } -function Ca(n) { +function Sa(n) { var t = n.u; if (n.u = void 0, typeof t == "function") { Yt++; @@ -3268,12 +3268,12 @@ function Ca(n) { function Bi(n) { for (var t = n.s; t !== void 0; t = t.n) t.S.U(t); - n.x = void 0, n.s = void 0, Ca(n); + n.x = void 0, n.s = void 0, Sa(n); } function yh(n) { if (D !== this) throw new Error("Out-of-order effect"); - ba(this), D = n, this.f &= -2, 8 & this.f && Bi(this), as(); + wa(this), D = n, this.f &= -2, 8 & this.f && Bi(this), as(); } function ln(n) { this.x = n, this.u = void 0, this.s = void 0, this.o = void 0, this.f = 32; @@ -3292,7 +3292,7 @@ ln.prototype.c = function() { ln.prototype.S = function() { if (1 & this.f) throw new Error("Cycle detected"); - this.f |= 1, this.f &= -9, Ca(this), va(this), Yt++; + this.f |= 1, this.f &= -9, Sa(this), ba(this), Yt++; var n = D; return D = this, yh.bind(this, n); }; @@ -3319,10 +3319,10 @@ function Pe(n, t) { function Dn(n) { Ds && Ds(), Ds = n && n.S(); } -function Sa(n) { +function xa(n) { var t = this, e = n.data, s = bh(e); s.value = e; - var i = ma(function() { + var i = _a(function() { for (var r = t.__v; r = r.__; ) if (r.__c) { r.__c.__$f |= 4; @@ -3331,15 +3331,15 @@ function Sa(n) { return t.__$u.c = function() { var o; !ot(i.peek()) && ((o = t.base) == null ? void 0 : o.nodeType) === 3 ? t.base.data = i.peek() : (t.__$f |= 1, t.setState({})); - }, wa(function() { + }, Ca(function() { var o = s.value.value; return o === 0 ? 0 : o === !0 ? "" : o || ""; }); }, []); return i.value; } -Sa.displayName = "_st"; -Object.defineProperties(st.prototype, { constructor: { configurable: !0, value: void 0 }, type: { configurable: !0, value: Sa }, props: { configurable: !0, get: function() { +xa.displayName = "_st"; +Object.defineProperties(st.prototype, { constructor: { configurable: !0, value: void 0 }, type: { configurable: !0, value: xa }, props: { configurable: !0, get: function() { return { data: this }; } }, __b: { configurable: !0, value: 1 } }); Pe("__b", function(n, t) { @@ -3439,18 +3439,18 @@ F.prototype.shouldComponentUpdate = function(n, t) { return !1; }; function bh(n) { - return ma(function() { + return _a(function() { return ls(n); }, []); } -const xa = {}; +const ka = {}; function it(n, t) { typeof n == "object" ? Object.keys(n).forEach((e) => { it(e, n[e]); - }) : t && (xa[n.toLowerCase()] = t); + }) : t && (ka[n.toLowerCase()] = t); } function wh(n) { - return xa[n.toLowerCase()]; + return ka[n.toLowerCase()]; } class Q extends F { constructor(t) { @@ -3643,7 +3643,7 @@ function xh(n) { ...u }, d]; } -function ka({ +function Ta({ tag: n = "div", ...t }) { @@ -3720,7 +3720,7 @@ class kh extends F { return L(t); } } -const Xr = (n) => n.startsWith("icon-") ? n : `icon-${n}`; +const Qr = (n) => n.startsWith("icon-") ? n : `icon-${n}`; function nt(n) { const { icon: t, className: e, ...s } = n; if (!t) @@ -3729,17 +3729,17 @@ function nt(n) { return t; const i = ["icon", e]; if (typeof t == "string") - i.push(Xr(t)); + i.push(Qr(t)); else if (typeof t == "object") { const { className: r, icon: o, ...a } = t; - i.push(r, o ? Xr(o) : ""), Object.assign(s, a); + i.push(r, o ? Qr(o) : ""), Object.assign(s, a); } return /* @__PURE__ */ g("i", { className: k(i), ...s }); } function Th(n) { return this.getChildContext = () => n.context, n.children; } -function Ta(n) { +function $a(n) { const t = this, e = n._container; t.componentWillUnmount = function() { we(null, t._temp), t._temp = null, t._container = null; @@ -3763,7 +3763,7 @@ function Ta(n) { )) : t._temp && t.componentWillUnmount(); } function $h(n, t) { - const e = wt(Ta, { _vnode: n, _container: t }); + const e = wt($a, { _vnode: n, _container: t }); return e.containerInfo = t, e; } it({ @@ -3776,7 +3776,7 @@ it({ custom: L, lazy: Ln, Icon: nt, - Portal: Ta + Portal: $a }); class U extends vt { constructor() { @@ -4127,14 +4127,14 @@ function Mh(n) { const [t, e, s] = typeof n == "string" ? Ah(n) : n; return t * 0.299 + e * 0.587 + s * 0.114 > 186; } -function Qr(n, t) { +function to(n, t) { return Mh(n) ? (t == null ? void 0 : t.dark) ?? "#333333" : (t == null ? void 0 : t.light) ?? "#ffffff"; } -function to(n, t = 255) { +function eo(n, t = 255) { return Math.min(Math.max(n, 0), t); } function Ph(n, t, e) { - n = n % 360 / 360, t = to(t), e = to(e); + n = n % 360 / 360, t = eo(t), e = eo(e); const s = e <= 0.5 ? e * (t + 1) : e + t - e * t, i = e * 2 - s, r = (o) => (o = o < 0 ? o + 1 : o > 1 ? o - 1 : o, o * 6 < 1 ? i + (s - i) * o * 6 : o * 2 < 1 ? s : o * 3 < 2 ? i + (s - i) * (2 / 3 - o) * 6 : i); return [ r(n + 1 / 3) * 255, @@ -4179,10 +4179,10 @@ let us = class extends F { const A = u ?? c, I = (typeof A == "number" ? A : oh(A)) * d % 360; if (w.background = `hsl(${I},${_ * 100}%,${m * 100}%)`, !a) { const T = Ph(I, _, m); - w.color = Qr(T); + w.color = to(T); } } else - !a && o && (w.color = Qr(o)); + !a && o && (w.color = to(o)); let N; C && C < 16 * E && (N = { transform: `scale(${C / (16 * E)})`, whiteSpace: "nowrap" }), S = /* @__PURE__ */ g("div", { "data-actualSize": C, className: "avatar-text", style: N, children: $ }); } @@ -4217,7 +4217,7 @@ let kt = class extends lt { } _beforeRender(t) { const { btnProps: e, btnType: s, size: i } = t; - this._shareBtnProps = O({}, e, Go({ btnType: s, size: i })); + this._shareBtnProps = O({}, e, Yo({ btnType: s, size: i })); } }; kt.NAME = "btn-group"; @@ -4229,7 +4229,7 @@ kt.ItemComponents = { kt.defaultItemProps = { component: void 0 }; -const ds = class $a extends kt { +const ds = class Na extends kt { _getProps(t) { const { gap: e } = t, s = super._getProps(t); return e && (typeof e == "number" ? s.className = k(s.className, `gap-${e}`) : s.style = p.extend(s.style || {}, { gap: e })), s; @@ -4246,7 +4246,7 @@ const ds = class $a extends kt { if (r) return Array.isArray(r) && (r = { items: r - }), s && (r = O(s, r)), /* @__PURE__ */ g($a, { ...r }); + }), s && (r = O(s, r)), /* @__PURE__ */ g(Na, { ...r }); } }; ds.NAME = "toolbar"; @@ -4568,7 +4568,7 @@ class cn extends lt { // eslint-disable-next-line @typescript-eslint/no-unused-vars _getRenderedItem(t, e, s) { const { divider: i, multiline: r } = t; - e = O({}, Go({ + e = O({}, Yo({ divider: i, multiline: r }), e); @@ -4724,10 +4724,10 @@ function Oh(n, t = "local") { return new hn(n, t); } Object.assign(ni, { create: Oh }); -function Na(n, t) { +function Ea(n, t) { const { children: e } = n; e.length && e.forEach((s) => { - t(s), Na(s, t); + t(s), Ea(s, t); }); } function Hh(n, t) { @@ -4735,7 +4735,7 @@ function Hh(n, t) { for (; e; ) t(e), e = e.parent; } -function eo(n) { +function no(n) { return n.split(":").reduce((t, e, s) => (t.push(s ? t[s - 1] + ":" + e : e), t), []); } function si(n, t, e, s, i = 0, r) { @@ -4770,7 +4770,7 @@ class Ie extends cn { if (!t.level) { const r = this.state.nestedShow; r && Object.keys(r).forEach((o) => { - r[o] && eo(o).forEach((a) => { + r[o] && no(o).forEach((a) => { r[a] = !0; }); }), this._needInitChecks = !0; @@ -4848,7 +4848,7 @@ class Ie extends cn { h !== t && h.startsWith(u) && (c[h] = !1); }); } - return c = e ? eo(t).reduce((u, h) => (u[h] = e, u), c) : c, { + return c = e ? no(t).reduce((u, h) => (u[h] = e, u), c) : c, { nestedShow: c }; }, this._preserveState); @@ -4883,7 +4883,7 @@ class Ie extends cn { return Object.keys(s).forEach((d) => { e = s[d]; const _ = u.get(d); - _ && (Na(_, (m) => { + _ && (Ea(_, (m) => { c(m) !== e && (s[m.keyPath] = e); }), Hh(_, (m) => { const { children: v } = m, y = v.reduce((b, w) => (c(w) && b++, b), 0); @@ -5093,7 +5093,7 @@ Ie.defaultProps = { indent: 20 }; Ie.inheritNestedProps = ["component", "name", "itemName", "itemKey", "indent", "hover", "divider", "multiline", "toggleIcons", "nestedToggle", "accordion", "itemRender", "itemProps", "onToggle", "checkbox", "getItem", "getItems", "checkOnClick", "selectOnChecked", "checkedState", "onClickItem", "activeOnHover", "multipleActive", "onActive", "hoverItemActions"]; -const Re = class Ea extends Ie { +const Re = class Aa extends Ie { constructor(t) { super(t), this._handleHover = this._handleHover.bind(this); } @@ -5170,7 +5170,7 @@ const Re = class Ea extends Ie { if (r) return Array.isArray(r) && (r = { items: r - }), s && (r = O(s, r)), /* @__PURE__ */ g(Ea, { ...r }); + }), s && (r = O(s, r)), /* @__PURE__ */ g(Aa, { ...r }); } }; Re.NAME = "menu"; @@ -5207,7 +5207,7 @@ let ps = class extends F { componentDidMount() { const { hotkeys: t } = this.props; if (t) { - const e = Xo(t, { + const e = Qo(t, { clear: { keys: "Escape", handler: (s) => { @@ -5558,7 +5558,7 @@ class qi extends U { } qi.NAME = "MessagerItem"; qi.Component = Vh; -const un = class Aa extends vt { +const un = class Ma extends vt { get isShown() { var t; return !!((t = this._item) != null && t.isShown); @@ -5595,7 +5595,7 @@ const un = class Aa extends vt { typeof t == "string" && (t = { content: t }); const { container: s, ...i } = t, r = { type: e, key: `messager_${ut()}`, ...i }; r.type && p.extend(r, this.TypeOptions[r.type]); - const o = Aa.ensure(s || "body", r); + const o = Ma.ensure(s || "body", r); return o.hide(), o.show(), o; } }; @@ -5668,21 +5668,21 @@ const Kh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ ProgressCircle: ms }, Symbol.toStringTag, { value: "Module" })); it(Kh); -class Ma extends U { +class Pa extends U { } -Ma.NAME = "Avatar"; -Ma.Component = us; +Pa.NAME = "Avatar"; +Pa.Component = us; it(Rh); -class Pa extends U { +class Ia extends U { } -Pa.NAME = "BtnGroup"; -Pa.Component = kt; +Ia.NAME = "BtnGroup"; +Ia.Component = kt; const qh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, BtnGroup: kt }, Symbol.toStringTag, { value: "Module" })); it(qh); -const Ia = Symbol("EVENT_PICK"); +const Ra = Symbol("EVENT_PICK"); class Ji extends F { constructor(t) { super(t), this._handleClick = this._handleClick.bind(this), this._hasInput = !!p(`#${t.id}`).length; @@ -5759,7 +5759,7 @@ class Ji extends F { } componentDidUpdate(t) { const { id: e, state: s, name: i } = this.props; - i && t.state.value !== s.value && (this._skipTriggerChange !== s.value && p(`#${e}`).trigger("change", Ia), this._skipTriggerChange = !1); + i && t.state.value !== s.value && (this._skipTriggerChange !== s.value && p(`#${e}`).trigger("change", Ra), this._skipTriggerChange = !1); } render(t) { return wt( @@ -5794,7 +5794,7 @@ function Zt(n) { function Le(n) { return n.split("-")[1]; } -function Ra(n) { +function Da(n) { return n === "x" ? "y" : "x"; } function Zi(n) { @@ -5804,7 +5804,7 @@ function de(n) { return ["top", "bottom"].includes(Zt(n)) ? "y" : "x"; } function Xi(n) { - return Ra(de(n)); + return Da(de(n)); } function Jh(n, t, e) { e === void 0 && (e = !1); @@ -5849,7 +5849,7 @@ function tu(n) { ...n }; } -function Da(n) { +function La(n) { return typeof n != "number" ? tu(n) : { top: n, right: n, @@ -5875,7 +5875,7 @@ function Hn(n) { y: e }; } -function no(n, t, e) { +function so(n, t, e) { let { reference: s, floating: i @@ -5937,7 +5937,7 @@ const eu = async (n, t, e) => { }), { x: u, y: h - } = no(c, s, l), f = s, d = {}, _ = 0; + } = so(c, s, l), f = s, d = {}, _ = 0; for (let m = 0; m < a.length; m++) { const { name: v, @@ -5974,7 +5974,7 @@ const eu = async (n, t, e) => { }) : S.rects), { x: u, y: h - } = no(c, f, l)), m = -1); + } = so(c, f, l)), m = -1); } return { x: u, @@ -6000,7 +6000,7 @@ async function Qi(n, t) { elementContext: h = "floating", altBoundary: f = !1, padding: d = 0 - } = De(t, n), _ = Da(d), v = a[f ? h === "floating" ? "reference" : "floating" : h], y = Hn(await r.getClippingRect({ + } = De(t, n), _ = La(d), v = a[f ? h === "floating" ? "reference" : "floating" : h], y = Hn(await r.getClippingRect({ element: (e = await (r.isElement == null ? void 0 : r.isElement(v))) == null || e ? v : v.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)), boundary: c, rootBoundary: u, @@ -6047,7 +6047,7 @@ const nu = (n) => ({ } = De(n, t) || {}; if (c == null) return {}; - const h = Da(u), f = { + const h = La(u), f = { x: e, y: s }, d = Xi(i), _ = Zi(d), m = await o.getDimensions(c), v = d === "y", y = v ? "top" : "left", b = v ? "bottom" : "right", w = v ? "clientHeight" : "clientWidth", C = r.reference[_] + r.reference[d] - f[d] - r.floating[_], S = f[d] - r.reference[d], $ = await (o.getOffsetParent == null ? void 0 : o.getOffsetParent(c)); @@ -6223,7 +6223,7 @@ const ru = function(n) { } = De(n, t), c = { x: e, y: s - }, u = await Qi(t, l), h = de(Zt(i)), f = Ra(h); + }, u = await Qi(t, l), h = de(Zt(i)), f = Da(h); let d = c[f], _ = c[h]; if (r) { const v = f === "y" ? "top" : "left", y = f === "y" ? "bottom" : "right", b = d + u[v], w = d - u[y]; @@ -6296,7 +6296,7 @@ function _s() { return typeof window < "u"; } function ze(n) { - return La(n) ? (n.nodeName || "").toLowerCase() : "#document"; + return za(n) ? (n.nodeName || "").toLowerCase() : "#document"; } function mt(n) { var t; @@ -6304,9 +6304,9 @@ function mt(n) { } function Dt(n) { var t; - return (t = (La(n) ? n.ownerDocument : n.document) || window.document) == null ? void 0 : t.documentElement; + return (t = (za(n) ? n.ownerDocument : n.document) || window.document) == null ? void 0 : t.documentElement; } -function La(n) { +function za(n) { return _s() ? n instanceof Node || n instanceof mt(n).Node : !1; } function Nt(n) { @@ -6315,7 +6315,7 @@ function Nt(n) { function It(n) { return _s() ? n instanceof HTMLElement || n instanceof mt(n).HTMLElement : !1; } -function so(n) { +function io(n) { return !_s() || typeof ShadowRoot > "u" ? !1 : n instanceof ShadowRoot || n instanceof mt(n).ShadowRoot; } function dn(n) { @@ -6379,19 +6379,19 @@ function Xt(n) { // Step into the shadow DOM of the parent of a slotted node. n.assignedSlot || // DOM Element detected. n.parentNode || // ShadowRoot detected. - so(n) && n.host || // Fallback. + io(n) && n.host || // Fallback. Dt(n) ); - return so(t) ? t.host : t; + return io(t) ? t.host : t; } -function za(n) { +function Oa(n) { const t = Xt(n); - return Ee(t) ? n.ownerDocument ? n.ownerDocument.body : n.body : It(t) && dn(t) ? t : za(t); + return Ee(t) ? n.ownerDocument ? n.ownerDocument.body : n.body : It(t) && dn(t) ? t : Oa(t); } function Xe(n, t, e) { var s; t === void 0 && (t = []), e === void 0 && (e = !0); - const i = za(n), r = i === ((s = n.ownerDocument) == null ? void 0 : s.body), o = mt(i); + const i = Oa(n), r = i === ((s = n.ownerDocument) == null ? void 0 : s.body), o = mt(i); if (r) { const a = oi(o); return t.concat(o, o.visualViewport || [], dn(i) ? i : [], a && e ? Xe(a) : []); @@ -6401,7 +6401,7 @@ function Xe(n, t, e) { function oi(n) { return n.parent && Object.getPrototypeOf(n.parent) ? n.frameElement : null; } -function Oa(n) { +function Ha(n) { const t = Et(n); let e = parseFloat(t.width) || 0, s = parseFloat(t.height) || 0; const i = It(n), r = i ? n.offsetWidth : e, o = i ? n.offsetHeight : s, a = zn(e) !== r || zn(s) !== o; @@ -6422,7 +6422,7 @@ function Se(n) { width: s, height: i, $: r - } = Oa(t); + } = Ha(t); let o = (r ? zn(e.width) : e.width) / s, a = (r ? zn(e.height) : e.height) / i; return (!o || !Number.isFinite(o)) && (o = 1), (!a || !Number.isFinite(a)) && (a = 1), { x: o, @@ -6430,7 +6430,7 @@ function Se(n) { }; } const hu = /* @__PURE__ */ Pt(0); -function Ha(n) { +function Fa(n) { const t = mt(n); return !er() || !t.visualViewport ? hu : { x: t.visualViewport.offsetLeft, @@ -6445,7 +6445,7 @@ function fe(n, t, e, s) { const i = n.getBoundingClientRect(), r = nr(n); let o = Pt(1); t && (s ? Nt(s) && (o = Se(s)) : o = Se(n)); - const a = uu(r, e, s) ? Ha(r) : Pt(0); + const a = uu(r, e, s) ? Fa(r) : Pt(0); let l = (i.left + a.x) / o.x, c = (i.top + a.y) / o.y, u = i.width / o.x, h = i.height / o.y; if (r) { const f = mt(r), d = s && Nt(s) ? mt(s) : s; @@ -6466,7 +6466,7 @@ function sr(n, t) { const e = vs(n).scrollLeft; return t ? t.left + e : fe(Dt(n)).left + e; } -function Fa(n, t, e) { +function Wa(n, t, e) { e === void 0 && (e = !1); const s = n.getBoundingClientRect(), i = s.left + t.scrollLeft - (e ? 0 : ( // RTL scrollbar. @@ -6496,7 +6496,7 @@ function du(n) { const d = fe(s); c = Se(s), u.x = d.x + s.clientLeft, u.y = d.y + s.clientTop; } - const f = o && !h && !r ? Fa(o, l, !0) : Pt(0); + const f = o && !h && !r ? Wa(o, l, !0) : Pt(0); return { width: e.width * c.x, height: e.height * c.y, @@ -6542,7 +6542,7 @@ function mu(n, t) { y: c }; } -function io(n, t, e) { +function ro(n, t, e) { let s; if (t === "viewport") s = gu(n, e); @@ -6551,7 +6551,7 @@ function io(n, t, e) { else if (Nt(t)) s = mu(t, e); else { - const i = Ha(n); + const i = Fa(n); s = { x: t.x - i.x, y: t.y - i.y, @@ -6561,9 +6561,9 @@ function io(n, t, e) { } return Hn(s); } -function Wa(n, t) { +function ja(n, t) { const e = Xt(n); - return e === t || !Nt(e) || Ee(e) ? !1 : Et(e).position === "fixed" || Wa(e, t); + return e === t || !Nt(e) || Ee(e) ? !1 : Et(e).position === "fixed" || ja(e, t); } function _u(n, t) { const e = t.get(n); @@ -6574,7 +6574,7 @@ function _u(n, t) { let o = r ? Xt(n) : n; for (; Nt(o) && !Ee(o); ) { const a = Et(o), l = tr(o); - !l && a.position === "fixed" && (i = null), (r ? !l && !i : !l && a.position === "static" && !!i && ["absolute", "fixed"].includes(i.position) || dn(o) && !l && Wa(n, o)) ? s = s.filter((u) => u !== o) : i = a, o = Xt(o); + !l && a.position === "fixed" && (i = null), (r ? !l && !i : !l && a.position === "static" && !!i && ["absolute", "fixed"].includes(i.position) || dn(o) && !l && ja(n, o)) ? s = s.filter((u) => u !== o) : i = a, o = Xt(o); } return t.set(n, s), s; } @@ -6586,9 +6586,9 @@ function yu(n) { strategy: i } = n; const o = [...e === "clippingAncestors" ? ys(t) ? [] : _u(t, this._c) : [].concat(e), s], a = o[0], l = o.reduce((c, u) => { - const h = io(t, u, i); + const h = ro(t, u, i); return c.top = gt(h.top, c.top), c.right = Jt(h.right, c.right), c.bottom = Jt(h.bottom, c.bottom), c.left = gt(h.left, c.left), c; - }, io(t, a, i)); + }, ro(t, a, i)); return { width: l.right - l.left, height: l.bottom - l.top, @@ -6600,7 +6600,7 @@ function vu(n) { const { width: t, height: e - } = Oa(n); + } = Ha(n); return { width: t, height: e @@ -6619,7 +6619,7 @@ function bu(n, t, e) { l.x = f.x + t.clientLeft, l.y = f.y + t.clientTop; } else i && (l.x = sr(i)); - const c = i && !s && !r ? Fa(i, a) : Pt(0), u = o.left + a.scrollLeft - l.x - c.x, h = o.top + a.scrollTop - l.y - c.y; + const c = i && !s && !r ? Wa(i, a) : Pt(0), u = o.left + a.scrollLeft - l.x - c.x, h = o.top + a.scrollTop - l.y - c.y; return { x: u, y: h, @@ -6630,7 +6630,7 @@ function bu(n, t, e) { function zs(n) { return Et(n).position === "static"; } -function ro(n, t) { +function oo(n, t) { if (!It(n) || Et(n).position === "fixed") return null; if (t) @@ -6638,7 +6638,7 @@ function ro(n, t) { let e = n.offsetParent; return Dt(n) === e && (e = e.ownerDocument.body), e; } -function ja(n, t) { +function Ba(n, t) { const e = mt(n); if (ys(n)) return e; @@ -6651,13 +6651,13 @@ function ja(n, t) { } return e; } - let s = ro(n, t); + let s = oo(n, t); for (; s && lu(s) && zs(s); ) - s = ro(s, t); + s = oo(s, t); return s && Ee(s) && zs(s) && !tr(s) ? e : s || cu(n) || e; } const wu = async function(n) { - const t = this.getOffsetParent || ja, e = this.getDimensions, s = await e(n.floating); + const t = this.getOffsetParent || Ba, e = this.getDimensions, s = await e(n.floating); return { reference: bu(n.reference, await t(n.floating), n.strategy), floating: { @@ -6675,7 +6675,7 @@ const Su = { convertOffsetParentRelativeRectToViewportRelativeRect: du, getDocumentElement: Dt, getClippingRect: yu, - getOffsetParent: ja, + getOffsetParent: Ba, getElementRects: wu, getClientRects: fu, getDimensions: vu, @@ -6729,7 +6729,7 @@ function xu(n, t) { } return o(!0), r; } -function Ba(n, t, e, s) { +function Va(n, t, e, s) { s === void 0 && (s = {}); const { ancestorScroll: i = !0, @@ -6765,7 +6765,7 @@ function Ba(n, t, e, s) { }), h == null || h(), (y = d) == null || y.disconnect(), d = null, l && cancelAnimationFrame(_); }; } -const ir = ru, rr = ou, or = su, Va = au, ku = nu, ar = (n, t, e) => { +const ir = ru, rr = ou, or = su, Ua = au, ku = nu, ar = (n, t, e) => { const s = /* @__PURE__ */ new Map(), i = { platform: Su, ...e @@ -6778,7 +6778,7 @@ const ir = ru, rr = ou, or = su, Va = au, ku = nu, ar = (n, t, e) => { platform: r }); }; -class Ua extends F { +class Ka extends F { constructor(t) { super(t), this._ref = G(), this._handleDocClick = (e) => { const { state: { open: s }, id: i, togglePop: r } = this.props, o = p(e.target); @@ -6873,7 +6873,7 @@ class Ua extends F { this._layoutWatcher && (this._layoutWatcher(), this._layoutWatcher = void 0); return; } - this._layoutWatcher || (this._layoutWatcher = Ba(e, t, () => { + this._layoutWatcher || (this._layoutWatcher = Va(e, t, () => { const { placement: r, width: o } = s; ar(e, t, { placement: !r || r === "auto" ? "bottom-start" : r, @@ -7077,7 +7077,7 @@ let St = class extends F { } }; St.Trigger = Ji; -St.Pop = Ua; +St.Pop = Ka; St.defaultProps = { popContainer: "body", popClass: "popup", @@ -7089,7 +7089,7 @@ St.defaultProps = { limitPopInScreen: !0, clickType: "open" }; -let Ka = class extends St { +let qa = class extends St { getDefaultState(t) { const e = super.getDefaultState(t); return e.value === void 0 && (t || this.props).required && (e.value = this.getColors()[0]), e; @@ -7138,7 +7138,7 @@ let Ka = class extends St { ]; } }; -Ka.defaultProps = { +qa.defaultProps = { ...St.defaultProps, className: "rounded btn square size-sm ghost", popClass: "color-picker-pop popup", @@ -7147,10 +7147,11 @@ Ka.defaultProps = { popWidth: "auto", popMinWidth: 184 }; -class qa extends U { +class lr extends U { } -qa.NAME = "ColorPicker"; -qa.Component = Ka; +lr.NAME = "ColorPicker"; +lr.Component = qa; +lr.register(); class Ga extends F { constructor() { super(...arguments), this._ref = G(), this._handleClickItem = (t, e) => { @@ -7190,7 +7191,7 @@ class Ga extends F { ] }); } } -const oo = (n) => { +const ao = (n) => { if (!n) return; const t = q(`1999-01-01 ${n}`); @@ -7223,7 +7224,7 @@ let Ya = class extends St { const [c, u] = (this.state.value || "00:00").split(":"), { hour: h = +c, minute: f = +u } = t; s = `${h}:${f}`; } - const i = oo(s), { onInvalid: r, required: o, defaultValue: a, format: l } = this.props; + const i = ao(s), { onInvalid: r, required: o, defaultValue: a, format: l } = this.props; return this.changeState({ value: i ? Tt(i, l) : o ? a : "" }, () => { !i && r && r(s); }); @@ -7236,7 +7237,7 @@ let Ya = class extends St { return this.setTime(t, !0); } getTime() { - const t = oo(this.state.value); + const t = ao(this.state.value); return t ? [t.getHours(), t.getMinutes()] : null; } _renderTrigger(t, e) { @@ -7278,7 +7279,7 @@ function Ke(n) { n.length > 6 ? n = rh(t, n.substring(5).replace("+", "")) : n = t; } else n = q(n); - return aa(n) ? n : null; + return la(n) ? n : null; } j.addLang({ zh_cn: { @@ -7307,7 +7308,7 @@ const $u = (n, t, e = 0) => { startTime: r, firstDay: s.getTime() }; -}, ao = (n, t) => new Set((Array.isArray(n) ? n : [n]).map((e) => Tt(e, t))); +}, lo = (n, t) => new Set((Array.isArray(n) ? n : [n]).map((e) => Tt(e, t))); class Nu extends F { constructor() { super(...arguments), this._handleClickDate = (t) => { @@ -7338,14 +7339,14 @@ class Nu extends F { } const { startTime: m, days: v, firstDay: y } = $u(o, a, s), b = y + v * Ze; let w = m; - const C = [], S = "yyyy-MM-dd", $ = ao(l, S), E = ao(c, S), N = ((I = u ? q(u) : null) == null ? void 0 : I.getTime()) ?? Number.MAX_SAFE_INTEGER, A = ((T = h ? q(h) : null) == null ? void 0 : T.getTime()) ?? 0; + const C = [], S = "yyyy-MM-dd", $ = lo(l, S), E = lo(c, S), N = ((I = u ? q(u) : null) == null ? void 0 : I.getTime()) ?? Number.MAX_SAFE_INTEGER, A = ((T = h ? q(h) : null) == null ? void 0 : T.getTime()) ?? 0; for (; w <= b; ) { const P = []; for (let H = 0; H < 7; H++) { const R = new Date(w); let W = (f == null ? void 0 : f(R)) ?? !0; typeof W == "boolean" && (W = { allow: W }); - const K = R.getDate(), B = Tt(R, S), M = R.getDay(), ct = oa(R, y), Ts = k("col mini-calendar-day", { + const K = R.getDate(), B = Tt(R, S), M = R.getDay(), ct = aa(R, y), Ts = k("col mini-calendar-day", { active: $.has(B), selected: E.has(B), "is-first": K === 1, @@ -7368,7 +7369,7 @@ class Nu extends F { } } var Gn, Yn; -class lo extends F { +class co extends F { constructor() { super(...arguments); dt(this, Gn, G()); @@ -7469,7 +7470,7 @@ class Eu extends F { } ) : null, _ === "year" ? /* @__PURE__ */ g( - lo, + co, { className: "date-pick-menu-years overflow-y-auto scrollbar-hover scrollbar-thin", value: f, @@ -7478,7 +7479,7 @@ class Eu extends F { onChange: ht(this, on) } ) : _ === "month" ? /* @__PURE__ */ g( - lo, + co, { className: "date-pick-menu-month overflow-y-auto scrollbar-hover scrollbar-thin", value: d, @@ -7677,22 +7678,22 @@ Xa.defaultProps = { format: "yyyy-MM-dd hh:mm", minuteStep: 5 }; -class lr extends U { -} -lr.NAME = "TimePicker"; -lr.Component = Ya; -lr.register(); class cr extends U { } -cr.NAME = "DatePicker"; -cr.Component = bs; +cr.NAME = "TimePicker"; +cr.Component = Ya; cr.register(); class hr extends U { } -hr.NAME = "DatetimePicker"; -hr.Component = Xa; +hr.NAME = "DatePicker"; +hr.Component = bs; hr.register(); -const co = "show", Os = "in", Au = '[data-dismiss="modal"]', vn = "modal-hide", Oe = class ie extends vt { +class ur extends U { +} +ur.NAME = "DatetimePicker"; +ur.Component = Xa; +ur.register(); +const ho = "show", Os = "in", Au = '[data-dismiss="modal"]', vn = "modal-hide", Oe = class ie extends vt { constructor() { super(...arguments), this._timer = 0, this._handleClick = (t) => { const e = t.target, s = e.closest(".modal"); @@ -7757,7 +7758,7 @@ const co = "show", Os = "in", Au = '[data-dismiss="modal"]', vn = "modal-hide", "modal-trans": i, "modal-no-backdrop": !r, [vn]: !1 - }, co, o).css({ + }, ho, o).css({ zIndex: `${ie.zIndex++}`, ...a }); @@ -7782,7 +7783,7 @@ const co = "show", Os = "in", Au = '[data-dismiss="modal"]', vn = "modal-hide", return !1; this._shown = !1, p(this.modalElement).removeClass(Os), (e = this.options.onHide) == null || e.call(this), this.emit("hide"), this._setTimer(() => { var s; - p(this.modalElement).removeClass(co), (s = this.options.onHidden) == null || s.call(this), this.emit("hidden"); + p(this.modalElement).removeClass(ho), (s = this.options.onHidden) == null || s.call(this), this.emit("hidden"); }); const t = this.constructor; return t.hideOthers && this.options.hideOthers !== !1 && t.getAll().forEach((s) => { @@ -7966,14 +7967,14 @@ class tl extends F { tl.defaultProps = { watchHeight: !0 }; -var ur = (n, t, e) => { +var dr = (n, t, e) => { if (!t.has(n)) throw TypeError("Cannot " + e); -}, xt = (n, t, e) => (ur(n, t, "read from private field"), e ? e.call(n) : t.get(n)), Fe = (n, t, e) => { +}, xt = (n, t, e) => (dr(n, t, "read from private field"), e ? e.call(n) : t.get(n)), Fe = (n, t, e) => { if (t.has(n)) throw TypeError("Cannot add the same private member more than once"); t instanceof WeakSet ? t.add(n) : t.set(n, e); -}, ye = (n, t, e, s) => (ur(n, t, "write to private field"), s ? s.call(n, e) : t.set(n, e), e), Sn = (n, t, e) => (ur(n, t, "access private method"), e), zt, We, Ot, Fn, dr, xn, ai; +}, ye = (n, t, e, s) => (dr(n, t, "write to private field"), s ? s.call(n, e) : t.set(n, e), e), Sn = (n, t, e) => (dr(n, t, "access private method"), e), zt, We, Ot, Fn, fr, xn, ai; function Mu(n, t) { const { custom: e, title: s, content: i } = t; return { @@ -8019,7 +8020,7 @@ const Ru = { custom: Mu, ajax: Pu, iframe: Iu -}, ho = "loading", el = class re extends Qe { +}, uo = "loading", el = class re extends Qe { constructor() { super(...arguments), Fe(this, Fn), Fe(this, xn), Fe(this, zt, void 0), Fe(this, We, void 0), Fe(this, Ot, void 0); } @@ -8028,7 +8029,7 @@ const Ru = { } get loading() { var t; - return (t = xt(this, zt)) == null ? void 0 : t.classList.contains(ho); + return (t = xt(this, zt)) == null ? void 0 : t.classList.contains(uo); } get shown() { var t; @@ -8078,7 +8079,7 @@ const Ru = { if (this.loading) return !1; xt(this, Ot) && clearTimeout(xt(this, Ot)); - const { modalElement: t, options: e } = this, s = p(t), { type: i, loadTimeout: r, loadingClass: o = ho, loadingText: a = null } = e; + const { modalElement: t, options: e } = this, s = p(t), { type: i, loadTimeout: r, loadingClass: o = uo, loadingText: a = null } = e; if (!i || i === "static") return !0; const l = Ru[i]; @@ -8088,7 +8089,7 @@ const Ru = { ye(this, Ot, 0), Sn(this, xn, ai).call(this, this.options.timeoutTip); }, r)); const c = await l.call(this, t, e); - return this._destroyed ? !1 : (c === !1 ? await Sn(this, xn, ai).call(this, this.options.failedTip) : c && typeof c == "object" && await Sn(this, Fn, dr).call(this, c), xt(this, Ot) && (clearTimeout(xt(this, Ot)), ye(this, Ot, 0)), this.layout(), await Mn(100), s.removeClass(o), !0); + return this._destroyed ? !1 : (c === !1 ? await Sn(this, xn, ai).call(this, this.options.failedTip) : c && typeof c == "object" && await Sn(this, Fn, fr).call(this, c), xt(this, Ot) && (clearTimeout(xt(this, Ot)), ye(this, Ot, 0)), this.layout(), await Mn(100), s.removeClass(o), !0); } static isValid(t) { return !p.isDetached(t.modalElement); @@ -8181,7 +8182,7 @@ zt = /* @__PURE__ */ new WeakMap(); We = /* @__PURE__ */ new WeakMap(); Ot = /* @__PURE__ */ new WeakMap(); Fn = /* @__PURE__ */ new WeakSet(); -dr = function(n) { +fr = function(n) { return new Promise((t) => { if (Array.isArray(n)) return p(this.modalElement).html(n[0]).zuiInit(), this.layout(), this._observeResize(), t(); @@ -8200,7 +8201,7 @@ dr = function(n) { xn = /* @__PURE__ */ new WeakSet(); ai = function(n) { if (n) - return Sn(this, Fn, dr).call(this, { + return Sn(this, Fn, fr).call(this, { body: /* @__PURE__ */ g("div", { className: "modal-load-failed", children: n }) }); }; @@ -8670,9 +8671,9 @@ Qt.defaultProps = { }; Qt.i18n = Du; Qt.imageAccepts = "image/*,.png,.jpg,.jpeg,.gif"; -let fr = class extends Qt { +let pr = class extends Qt { }; -fr.defaultProps = { +pr.defaultProps = { ...Qt.defaultProps, mode: "grid", accept: Qt.imageAccepts @@ -8680,20 +8681,20 @@ fr.defaultProps = { const Lu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, FileSelector: Qt, - ImageSelector: fr + ImageSelector: pr }, Symbol.toStringTag, { value: "Module" })); -class pr extends U { -} -pr.NAME = "FileSelector"; -pr.Component = Qt; -pr.replace = !0; class gr extends U { } -gr.NAME = "ImageSelector"; -gr.Component = fr; +gr.NAME = "FileSelector"; +gr.Component = Qt; gr.replace = !0; +class mr extends U { +} +mr.NAME = "ImageSelector"; +mr.Component = pr; +mr.replace = !0; it(Lu); -const mr = class nl extends cn { +const _r = class nl extends cn { _getClassName(t) { const { type: e, stacked: s } = t; return [super._getClassName(t), e ? `nav-${e}` : "", s ? "nav-stacked" : ""]; @@ -8706,12 +8707,12 @@ const mr = class nl extends cn { }), s && (r = O(s, r)), /* @__PURE__ */ wt(nl, { ...r }); } }; -mr.NAME = "nav"; -mr.defaultItemProps = { +_r.NAME = "nav"; +_r.defaultItemProps = { component: "li", innerComponent: "a" }; -let sl = mr; +let sl = _r; const zu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, Nav: sl @@ -8809,11 +8810,11 @@ let Hu = class extends F { ] }, "heading")) : w.push(C), w.push(y, b), c && w.push(/* @__PURE__ */ g("div", { className: typeof c == "string" ? c : "arrow", style: d }, "arrow")), _ ? w : /* @__PURE__ */ g("div", { id: e, className: k("popover", a, { popup: s, "has-heading": i }), style: o, children: w }); } }; -class _r extends U { +class yr extends U { } -_r.NAME = "PopoverPanel"; -_r.Component = Hu; -const uo = "show", fo = "in", He = class al extends vt { +yr.NAME = "PopoverPanel"; +yr.Component = Hu; +const fo = "show", po = "in", He = class al extends vt { constructor() { super(...arguments), this._getClickBounding = () => { const t = this._triggerEvent; @@ -8898,7 +8899,7 @@ const uo = "show", fo = "in", He = class al extends vt { return; this._targetElement = r; const o = p(r), { animation: a, onShow: l, onShown: c, trigger: u, elementShowClass: h } = this.options, { SHOWN_POPOVERS: f } = this.constructor; - o.addClass(uo), a && o.addClass(a === !0 ? "fade" : a), this._zIndex = al.Z_INDEX++, this._shown = !0, this.render(), f.set(this.gid, this), l == null || l.call(this), this.emit("show"), i && f.forEach((_) => { + o.addClass(fo), a && o.addClass(a === !0 ? "fade" : a), this._zIndex = al.Z_INDEX++, this._shown = !0, this.render(), f.set(this.gid, this), l == null || l.call(this), this.emit("show"), i && f.forEach((_) => { _ !== this && _.hide(); }); const { namespace: d } = this; @@ -8907,7 +8908,7 @@ const uo = "show", fo = "in", He = class al extends vt { }).on(`pointerleave${d}`, () => { this.delayHide(); })), this._virtual || (o.attr("zui-commands-proxy", "").data("zui.commandProxy", this._triggerElement), h && p(this._triggerElement).addClass(h)), this._resetTimer(() => { - o.addClass(fo), this._resetTimer(() => { + o.addClass(po), this._resetTimer(() => { c == null || c.call(this), this.emit("shown"); }, 200); }, 50); @@ -8915,14 +8916,14 @@ const uo = "show", fo = "in", He = class al extends vt { hide(t) { (!this._shown || !this._targetElement) && this._resetTimer(); const { destroyOnHide: e, animation: s, onHide: i, onHidden: r, trigger: o, hideNewOnHide: a, elementShowClass: l } = this.options, c = p(this._targetElement), { SHOWN_POPOVERS: u } = this.constructor; - if (this._shown = !1, u.delete(this.gid), i == null || i.call(this), this.emit("hide"), c.removeClass(fo), o === "hover" && (this._clearDelayHide(), c.off(this.namespace)), !this._virtual) { + if (this._shown = !1, u.delete(this.gid), i == null || i.call(this), this.emit("hide"), c.removeClass(po), o === "hover" && (this._clearDelayHide(), c.off(this.namespace)), !this._virtual) { const h = p(this._triggerElement); h.removeAttr("zui-commands-proxy").removeData("zui.commandProxy"), l && h.removeClass(l).removeAttr("data-pop-placement"); } a && u.forEach((h) => { h !== this && h.zIndex > this.zIndex && h.hide(); }), this._resetTimer(() => { - r == null || r.call(this), this.emit("hidden"), c.removeClass(uo), (e || t) && this._resetTimer(() => { + r == null || r.call(this), this.emit("hidden"), c.removeClass(fo), (e || t) && this._resetTimer(() => { this.destroy(); }, !t && typeof e == "number" ? e : 0), this._destoryTarget(); }, s && !t ? 200 : 0); @@ -8943,7 +8944,7 @@ const uo = "show", fo = "in", He = class al extends vt { s && (s(), this._layoutWatcher = void 0); return; } - s || (this._layoutWatcher = Ba(t, e, () => { + s || (this._layoutWatcher = Va(t, e, () => { if (this.destroyed || !this._shown) return; const { animation: i, name: r = "popover", minWidth: o, minHeight: a, maxWidth: l, maxHeight: c, limitInScreen: u, onLayout: h } = this.options; @@ -9000,7 +9001,7 @@ const uo = "show", fo = "in", He = class al extends vt { const s = this._getRenderOptions(), i = p(e); if (i.z("popover", this.gid).toggleClass("popup", s.popup).css(s.style), s.className && i.setClass(s.className), this._dynamic) { let r = this._panel; - r && r.element !== e && (r.destroy(), r = void 0), r ? r.render(s) : (r = new _r(e, s), r.on("inited", () => this.layout())), this._panel = r; + r && r.element !== e && (r.destroy(), r = void 0), r ? r.render(s) : (r = new yr(e, s), r.on("inited", () => this.layout())), this._panel = r; } else s.arrow && (i.find(".arrow").length || i.append(p('

    ').css(s.arrowStyle))), this.layout(); } @@ -9034,7 +9035,7 @@ const uo = "show", fo = "in", He = class al extends vt { o ? rr(typeof o == "object" ? o : void 0) : null, a || h ? ir(f()) : null, l ? ku({ element: u }) : null, - r ? Va({ + r ? Ua({ apply({ availableWidth: d, availableHeight: _, placement: m }) { p(e).css({ maxHeight: _ - (["top", "bottom"].includes(m.split("-")[0]) ? h : 0) - 2, maxWidth: d - 2 }); } @@ -9277,7 +9278,7 @@ class ws extends Ct { a ? or() : null, l ? rr(typeof l == "object" ? l : void 0) : null, ir(c), - Va({ + Ua({ apply({ availableWidth: h, availableHeight: f }) { if (o) { const [d, _] = Hi(o); @@ -9423,7 +9424,7 @@ function ll({ } const Cs = class li extends $t { constructor() { - super(...arguments), this._pagerChanges = ls({}), this._changedPager = wa(() => li.format({ + super(...arguments), this._pagerChanges = ls({}), this._changedPager = Ca(() => li.format({ ...this.props, ...this._pagerChanges.value })), this._changeEffect = cs(() => { @@ -9500,25 +9501,25 @@ Cs.defaultItemProps = { btnType: "ghost", size: "sm" }; -let yr = Cs; +let vr = Cs; class cl extends U { } cl.NAME = "Pager"; -cl.Component = yr; +cl.Component = vr; const ju = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, - Pager: yr, + Pager: vr, PagerGoto: ll, PagerInfoItem: ol, PagerLink: rl }, Symbol.toStringTag, { value: "Module" })); it(ju); -class vr extends U { +class br extends U { } -vr.NAME = "Pick"; -vr.Component = St; -vr.replace = !0; -class br extends F { +br.NAME = "Pick"; +br.Component = St; +br.replace = !0; +class wr extends F { constructor(t) { super(t), this._searchInput = G(), this._measure = G(), this._changeTimer = 0, this._handleChange = (e) => { const s = e.target.value; @@ -9547,7 +9548,7 @@ class br extends F { this.focus(); const { hotkeys: t } = this.props; if (t) { - const e = Xo(t, { + const e = Qo(t, { clear: { keys: "Escape", handler: () => { @@ -9644,7 +9645,7 @@ class hl extends Ji { _renderSearch(t) { const { state: { search: e }, searchHint: s, hotkeys: i } = t; return /* @__PURE__ */ g( - br, + wr, { inline: !0, id: t.id, @@ -9690,7 +9691,7 @@ class hl extends Ji { const { id: e, state: s, name: i, valueList: r, emptyValue: o } = this.props; if (i && t.state.value !== s.value) { const a = p(`#${e}`).val(r.length ? r : [o]); - this._skipTriggerChange !== s.value && a.trigger("change", Ia), this._skipTriggerChange = !1; + this._skipTriggerChange !== s.value && a.trigger("change", Ra), this._skipTriggerChange = !1; } } } @@ -9727,7 +9728,7 @@ class ul extends Ji { _renderSearch(t) { const { state: { search: e }, hotkeys: s } = t; return /* @__PURE__ */ g( - br, + wr, { ref: this._search, id: t.id, @@ -9796,7 +9797,7 @@ Ss.ItemComponents = { function dl(n, t) { return n.reduce((e, s) => (Array.isArray(s.items) && dl(s.items, e), typeof s.value == "string" && e.set(s.value, s), e), t || /* @__PURE__ */ new Map()); } -class fl extends Ua { +class fl extends Ka { constructor() { super(...arguments), this._menu = G(), this._disabledSet = /* @__PURE__ */ new Set(), this._getItem = (t, e) => { var c; @@ -10134,14 +10135,14 @@ const Bu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ Picker: xs, PickerMenu: fl, PickerMultiSelect: hl, - PickerSearch: br, + PickerSearch: wr, PickerSingleSelect: ul }, Symbol.toStringTag, { value: "Module" })); -class wr extends U { +class Cr extends U { } -wr.NAME = "Picker"; -wr.Component = xs; -wr.register(); +Cr.NAME = "Picker"; +Cr.Component = xs; +Cr.register(); j.addLang({ zh_cn: { selectAll: "全选", @@ -10166,18 +10167,18 @@ j.addLang({ } }); it(Bu); -class Cr extends U { +class Sr extends U { } -Cr.NAME = "SearchBox"; -Cr.Component = ps; -Cr.register(); +Sr.NAME = "SearchBox"; +Sr.Component = ps; +Sr.register(); it(Fh); class pl extends U { } pl.NAME = "Toolbar"; pl.Component = $t; it(Dh); -class Sr extends At { +class xr extends At { _getRenderOptions() { const { type: t, className: e, title: s, content: i } = this.options; let r = s, o = i; @@ -10190,8 +10191,8 @@ class Sr extends At { }; } } -Sr.NAME = "Tooltip"; -Sr.DEFAULT = { +xr.NAME = "Tooltip"; +xr.DEFAULT = { ...At.DEFAULT, trigger: "hover", delay: 500, @@ -10203,10 +10204,10 @@ Sr.DEFAULT = { hideOthers: !0, hideNewOnHide: !1 }; -Sr.register(); +xr.register(); it(Fu); var Ut, Kt; -class po extends F { +class go extends F { constructor(e) { super(e); dt(this, Ut, void 0); @@ -10398,7 +10399,7 @@ function yl() { function Ku(n, t, e) { return n && (t && (n = Math.max(t, n)), e && (n = Math.min(e, n))), n; } -function go(n, t) { +function mo(n, t) { return typeof n == "string" && (n = n.endsWith("%") ? parseFloat(n) / 100 : parseFloat(n)), typeof t == "number" && (typeof n != "number" || isNaN(n)) && (n = t), n; } function Hs(n, t = !1, e = 0) { @@ -10420,11 +10421,11 @@ function Hs(n, t = !1, e = 0) { i.realWidth || (i.realWidth = i.width), i.left = s, i.sideIndex = r, s += i.realWidth; }); } -function mo(n) { +function _o(n) { return n ? n === "left" ? "left" : "right" : "center"; } function qu(n, t, e, s) { - const { defaultColWidth: i, minColWidth: r, maxColWidth: o, fixedLeftWidth: a = 0, fixedRightWidth: l = 0 } = t, c = (C) => (typeof C == "function" && (C = C.call(n)), C = go(C, 0), C < 1 && (C = Math.round(C * s)), C), u = { + const { defaultColWidth: i, minColWidth: r, maxColWidth: o, fixedLeftWidth: a = 0, fixedRightWidth: l = 0 } = t, c = (C) => (typeof C == "function" && (C = C.call(n)), C = mo(C, 0), C < 1 && (C = Math.round(C * s)), C), u = { width: 0, list: [], flexList: [], @@ -10473,7 +10474,7 @@ function qu(n, t, e, s) { realWidth: 0, visible: !0, index: S, - side: mo(N.fixed), + side: _o(N.fixed), sideIndex: 0, order: N.order, border: N.border @@ -10482,8 +10483,8 @@ function qu(n, t, e, s) { const B = typeof K == "function" ? K.call(n, N) : K; B && Object.assign(N, B, C); }); - const { flex: T, minWidth: P = r, maxWidth: H = o } = N, R = go(N.width || i, i); - A.flex = T === !0 ? 1 : typeof T == "number" ? T : 0, A.width = Ku(R < 1 ? Math.round(R * s) : R, P, H), A.side = mo(N.fixed), y.forEach((K) => K.call(n, A)), _.push(A), m[A.name] = A; + const { flex: T, minWidth: P = r, maxWidth: H = o } = N, R = mo(N.width || i, i); + A.flex = T === !0 ? 1 : typeof T == "number" ? T : 0, A.width = Ku(R < 1 ? Math.round(R * s) : R, P, H), A.side = _o(N.fixed), y.forEach((K) => K.call(n, A)), _.push(A), m[A.name] = A; const W = d[A.side]; W.list.push(A), W.totalWidth += A.width, W.width = W.totalWidth, A.flex && W.flexList.push(A), typeof A.order == "number" && (v = !0); }), v) { @@ -10673,10 +10674,10 @@ var bl = (n, t, e) => { if (t.has(n)) throw TypeError("Cannot add the same private member more than once"); t instanceof WeakSet ? t.add(n) : t.set(n, e); -}, ft = (n, t, e) => (bl(n, t, "access private method"), e), Vt, je, Be, ci, wl, hi, Cl, ui, Sl, di, xl, kn, fi, ks, Vn, pi, gi, mi, _i, Ve, Tn, Un, xr, kr, kl, yi, Tl; -let Tr = class extends F { +}, ft = (n, t, e) => (bl(n, t, "access private method"), e), Vt, je, Be, ci, wl, hi, Cl, ui, Sl, di, xl, kn, fi, ks, Vn, pi, gi, mi, _i, Ve, Tn, Un, kr, Tr, kl, yi, Tl; +let $r = class extends F { constructor(t) { - super(t), X(this, ci), X(this, hi), X(this, ui), X(this, di), X(this, kn), X(this, Ve), X(this, Un), X(this, kr), X(this, yi), this.ref = G(), this._rafId = 0, this._needRender = !1, this._plugins = [], this._lastUsedPlugins = /* @__PURE__ */ new Map(), this._events = /* @__PURE__ */ new Map(), this._data = {}, this._i18nMaps = [], this._hover = { in: !1 }, this.updateLayout = () => { + super(t), X(this, ci), X(this, hi), X(this, ui), X(this, di), X(this, kn), X(this, Ve), X(this, Un), X(this, Tr), X(this, yi), this.ref = G(), this._rafId = 0, this._needRender = !1, this._plugins = [], this._lastUsedPlugins = /* @__PURE__ */ new Map(), this._events = /* @__PURE__ */ new Map(), this._data = {}, this._i18nMaps = [], this._hover = { in: !1 }, this.updateLayout = () => { this._rafId && cancelAnimationFrame(this._rafId), this._rafId = requestAnimationFrame(() => { const { element: e } = this; e && !ne(e) && this.update({ dirtyType: "layout" }), this._rafId = 0; @@ -10741,7 +10742,7 @@ let Tr = class extends F { s && Object.entries(s).forEach(([o, a]) => { typeof a == "function" && Object.assign(this, { [o]: a.bind(this) }); }), i && Object.assign(this._data, i.call(this)), r && Object.assign(this.state, r.call(this)); - }), ft(this, Un, xr).call(this), this._plugins.forEach((e) => { + }), ft(this, Un, kr).call(this), this._plugins.forEach((e) => { var s; (s = e.onCreate) == null || s.call(this, e); }); @@ -11051,7 +11052,7 @@ wl = function(n) { ); const o = Array.isArray(t) ? t : [t]; return /* @__PURE__ */ g( - ka, + Ta, { className: "dtable-header", style: { height: s }, @@ -11090,7 +11091,7 @@ Sl = function(n) { return null; const e = Array.isArray(t) ? t : [t]; return /* @__PURE__ */ g( - ka, + Ta, { className: "dtable-footer", style: { height: n.footerHeight, top: n.rowsHeight + n.headerHeight }, @@ -11108,7 +11109,7 @@ xl = function(n) { const t = [], { scrollLeft: e, cols: { left: { width: s }, center: { width: i, totalWidth: r } }, scrollTop: o, rowsHeight: a, rowsHeightTotal: l, footerHeight: c, headerHeight: u } = n, { scrollbarSize: h = 12, horzScrollbarPos: f, vertScrollbarPos: d } = this.options; return r > i && t.push( /* @__PURE__ */ g( - po, + go, { type: "horz", scrollPos: e, @@ -11126,7 +11127,7 @@ xl = function(n) { /* @__PURE__ */ g("div", { className: "dtable-scroll-shadow is-right", style: { left: s + i, height: u + a } }) ), l > a && t.push( /* @__PURE__ */ g( - po, + go, { type: "vert", scrollPos: o, @@ -11167,7 +11168,7 @@ Tn = function(n) { i.in !== r.in && s.toggleClass("dtable-hover", i.in), i.row !== r.row && (s.find(".is-hover-row").removeClass("is-hover-row"), i.row && s.find(`.dtable-cell[data-row="${i.row}"]`).addClass("is-hover-row")), i.col !== r.col && (s.find(".is-hover-col").removeClass("is-hover-col"), i.col && s.find(`.dtable-cell[data-col="${i.col}"]`).addClass("is-hover-col")), this._hover = i; }; Un = /* @__PURE__ */ new WeakSet(); -xr = function() { +kr = function() { if (this._options) return !1; const t = { ...yl(), ...this._allPlugins.reduce((e, s) => { @@ -11183,7 +11184,7 @@ xr = function() { return !s || s.call(this, t); }), this._i18nMaps = [this.options.i18n, ...this.plugins.map((e) => e.i18n)].filter(Boolean), !0; }; -kr = /* @__PURE__ */ new WeakSet(); +Tr = /* @__PURE__ */ new WeakSet(); kl = function() { var A, I; const { plugins: n } = this; @@ -11279,7 +11280,7 @@ kl = function() { }; yi = /* @__PURE__ */ new WeakSet(); Tl = function() { - (ft(this, Un, xr).call(this) || !this._layout) && ft(this, kr, kl).call(this); + (ft(this, Un, kr).call(this) || !this._layout) && ft(this, Tr, kl).call(this); const { layout: n } = this; if (!n) return; @@ -11307,8 +11308,8 @@ Tl = function() { scrollable: !0 }), n; }; -Tr.addPlugin = gl; -Tr.removePlugin = ml; +$r.addPlugin = gl; +$r.removePlugin = ml; function $l(n, t, e, s) { if (typeof n == "function" && (n = n(t)), typeof n == "string" && n.length && (n = { url: n }), !n) return e; @@ -11317,7 +11318,7 @@ function $l(n, t, e, s) { l.startsWith("data-") && (a[l] = o[l]); }), /* @__PURE__ */ g("a", { href: V(i, t.row.data), ...s, ...r, ...a, children: e }); } -function $r(n, t, e) { +function Nr(n, t, e) { if (n == null) return; const s = t.row.data; @@ -11334,7 +11335,7 @@ function El(n, t) { function Al(n, t) { const { format: e, digits: s } = t.col.setting; let i = n[0]; - return typeof s == "number" && !Number.isNaN(Number(i)) && (i = Number(i), s >= 0 && (i = i.toFixed(s))), e && (i = $r(e, t, i)), n[0] = i, n; + return typeof s == "number" && !Number.isNaN(Number(i)) && (i = Number(i), s >= 0 && (i = i.toFixed(s))), e && (i = Nr(e, t, i)), n[0] = i, n; } function Ml(n, t) { const { map: e, mapSplitter: s = ",", mapJoiner: i } = t.col.setting; @@ -11360,7 +11361,7 @@ function vi(n, t, e = !1) { const { html: s = e } = t.col.setting; if (s === !1) return n; - const i = n[0], r = s === !0 ? i : $r(s, t, i); + const i = n[0], r = s === !0 ? i : Nr(s, t, i); return n[0] = { html: r }, n; @@ -11571,14 +11572,14 @@ function od(n) { const { checkable: t } = this.options; n === void 0 && (n = !t), t !== n && this.setState({ forceCheckable: n }); } -function _o(n, t, e = !1, s = void 0) { +function yo(n, t, e = !1, s = void 0) { return /* @__PURE__ */ g(fs, { className: "dtable-checkbox", checked: n, disabled: e, label: s }); } -const yo = 'input[type="checkbox"],.dtable-checkbox', ad = { +const vo = 'input[type="checkbox"],.dtable-checkbox', ad = { name: "checkable", defaultOptions: { checkable: "auto", - checkboxRender: _o + checkboxRender: yo }, when: (n) => !!n.checkable, options(n) { @@ -11613,7 +11614,7 @@ const yo = 'input[type="checkbox"],.dtable-checkbox', ad = { checkbox() { const n = this.isAllRowChecked(); return [ - /* @__PURE__ */ g("div", { style: { paddingRight: "calc(3*var(--space))", display: "flex", alignItems: "center" }, onClick: () => this.toggleCheckRows(), children: _o(n, void 0, !1, this.options.checkboxLabel) }) + /* @__PURE__ */ g("div", { style: { paddingRight: "calc(3*var(--space))", display: "flex", alignItems: "center" }, onClick: () => this.toggleCheckRows(), children: yo(n, void 0, !1, this.options.checkboxLabel) }) ]; }, checkedInfo(n, t) { @@ -11665,7 +11666,7 @@ const yo = 'input[type="checkbox"],.dtable-checkbox', ad = { const t = n.target; if (!t) return; - const e = t.closest(yo); + const e = t.closest(vo); e && this.toggleCheckRows(e.checked); }, onCellClick(n, { rowID: t }) { @@ -11674,7 +11675,7 @@ const yo = 'input[type="checkbox"],.dtable-checkbox', ad = { const e = p(n.target); if (!e.length || e.closest("btn,a,button.not-checkable,.form-control,.btn").length) return; - (e.closest(yo).not(".disabled").length || this.options.checkOnClickRow) && this.toggleCheckRows(t); + (e.closest(vo).not(".disabled").length || this.options.checkOnClickRow) && this.toggleCheckRows(t); } }, ld = rt(ad), cd = { name: "store", @@ -12401,7 +12402,7 @@ const Ed = { dirtyType: "layout", state: (s) => ({ pager: { ...s.pager, ...e } }) }); - }), [/* @__PURE__ */ g(yr, { ...n })]) : []; + }), [/* @__PURE__ */ g(vr, { ...n })]) : []; } }, onAddRows(n) { @@ -12427,7 +12428,7 @@ const Ed = { pager: Pd, renderDatetime: Nl, renderDatetimeCell: Il, - renderFormat: $r, + renderFormat: Nr, renderFormatCell: Al, renderHtmlCell: vi, renderLink: $l, @@ -12445,7 +12446,7 @@ class gn extends U { } } gn.NAME = "DTable"; -gn.Component = Tr; +gn.Component = $r; gn.definePlugin = rt; gn.removePlugin = ml; gn.plugins = Id; @@ -12478,12 +12479,12 @@ qn.register(); export { p as $, Ii as Ajax, - Ma as Avatar, + Pa as Avatar, Od as BUILD, Hd as BUILD_MODE, - Pa as BtnGroup, + Ia as BtnGroup, Vc as Bus, - qa as ColorPicker, + lr as ColorPicker, hs as CommonList, vt as Component, U as ComponentFromReact, @@ -12491,17 +12492,17 @@ export { Vi as Custom, L as CustomContent, kh as CustomContentClass, - ka as CustomRender, + Ta as CustomRender, gn as DTable, - cr as DatePicker, - hr as DatetimePicker, + hr as DatePicker, + ur as DatetimePicker, ce as Dropdown, - pr as FileSelector, + gr as FileSelector, Q as HElement, Ch as HElementSignals, ue as HtmlContent, nt as Icon, - gr as ImageSelector, + mr as ImageSelector, Ui as Menu, of as Messager, Wn as Modal, @@ -12509,32 +12510,32 @@ export { qe as ModalTrigger, il as Nav, cl as Pager, - vr as Pick, - wr as Picker, - Ta as Portal, + br as Pick, + Cr as Picker, + $a as Portal, Yi as ProgressCircle, F as ReactComponent, - Cr as SearchBox, + Sr as SearchBox, Ki as SearchMenu, st as Signal, ih as Sticky, Ze as TIME_DAY, qn as Tabs, - lr as TimePicker, + cr as TimePicker, pl as Toolbar, - Sr as Tooltip, + xr as Tooltip, zd as VERSION, rh as addDate, _h as batch, Wi as bindCommands, - Qo as bindHotkeys, + ta as bindHotkeys, jt as bus, p as cash, k as classes, Wd as clearData, - wa as computed, + Ca as computed, _e as convertBytes, - sa as create, + ia as create, q as createDate, Ic as createFormData, $h as createPortal, @@ -12546,21 +12547,21 @@ export { Mn as delay, Wc as disableScroll, Zd as dom, - Wr as downloadFile, + jr as downloadFile, cs as effect, Jc as enterFullscreen, ke as evalValue, - jr as executeCommand, + Br as executeCommand, lh as executeCommands, ns as fetchData, Lt as formatBytes, Tt as formatDate, Jd as formatDateSpan, V as formatString, - Oo as getClassList, + Ho as getClassList, rs as getComponent, Fi as getFullscreenElement, - Xo as getHotkeysMap, + Qo as getHotkeysMap, wh as getReactComponent, oh as getUniqueCode, Ye as getZData, @@ -12568,16 +12569,16 @@ export { Vd as hotkeys, j as i18n, sh as init, - ia as initGlobalComponents, + ra as initGlobalComponents, Us as isDiff, Fd as isFetchSetting, le as isSameDay, - oa as isSameMonth, + aa as isSameMonth, Kd as isSameWeek, Ys as isSameYear, qd as isToday, Yd as isTomorrow, - aa as isValidDate, + la as isValidDate, ot as isValidElement, Gd as isYesterday, Bd as jsRaw, @@ -12587,25 +12588,25 @@ export { ah as parseCommands, jd as parseRawData, Hi as parseSize, - xa as reactComponents, + ka as reactComponents, Xc as registerComponent, Bc as registerGlobalListener, it as registerReactComponent, - Go as removeUndefinedProps, + Yo as removeUndefinedProps, we as render, ei as renderCustomContent, xh as renderCustomResult, Zs as runJS, - Lr as setZData, + zr as setZData, Dc as shareData, ls as signal, ni as store, Ri as storeData, Di as takeData, Gt as toCssSize, - ea as toggleFullscreen, + na as toggleFullscreen, ji as unbindCommands, - ta as unbindHotkeys, + ea as unbindHotkeys, Xd as untracked }; //# sourceMappingURL=zui.esm.js.map diff --git a/dev/zui/zui.esm.js.map b/dev/zui/zui.esm.js.map index ad589c814f..93ef684f3f 100644 --- a/dev/zui/zui.esm.js.map +++ b/dev/zui/zui.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"zui.esm.js","sources":["../../../../lib/core/src/config/index.ts","../../../../node_modules/cash-dom/dist/cash.esm.js","../../../../lib/core/src/cash/cash.ts","../../../../lib/helpers/src/object/deep-get.ts","../../../../lib/helpers/src/format-string.ts","../../../../lib/core/src/i18n/i18n.ts","../../../../lib/core/src/i18n/common.ts","../../../../lib/core/src/ajax/ajax.ts","../../../../lib/core/src/ajax/helper.ts","../../../../lib/core/src/ajax/fetcher.ts","../../../../lib/core/src/helpers/gid.ts","../../../../lib/core/src/helpers/is-diff.ts","../../../../lib/core/src/helpers/computed.ts","../../../../lib/core/src/helpers/classes.ts","../../../../lib/core/src/helpers/data.ts","../../../../lib/core/src/helpers/raw-data.ts","../../../../lib/core/src/helpers/z.ts","../../../../lib/core/src/helpers/attr.ts","../../../../lib/core/src/helpers/event.ts","../../../../lib/core/src/helpers/delay.ts","../../../../lib/core/src/helpers/share-data.ts","../../../../node_modules/preact/dist/preact.module.js","../../../../lib/core/src/helpers/merge-props.ts","../../../../lib/core/src/helpers/scroll.ts","../../../../lib/core/src/helpers/global-event.ts","../../../../lib/core/src/helpers/size.ts","../../../../lib/core/src/helpers/download-file.ts","../../../../lib/core/src/helpers/bus.ts","../../../../node_modules/tinykeys/dist/tinykeys.module.js","../../../../lib/core/src/helpers/hotkeys.ts","../../../../lib/core/src/helpers/fullscreen.ts","../../../../lib/core/src/dom/is-detached.ts","../../../../lib/core/src/component/component.ts","../../../../lib/core/src/component/creator.ts","../../../../lib/core/src/helpers/sticky.ts","../../../../lib/helpers/src/date-helper.ts","../../../../lib/helpers/src/string-code.ts","../../../../lib/core/src/helpers/commands.ts","../../../../lib/core/src/helpers/run-js.ts","../../../../lib/core/src/dom/is-visible.ts","../../../../lib/core/src/dom/scroll-into-view.ts","../../../../lib/core/src/dom/get-lib.ts","../../../../lib/core/src/dom/resize.ts","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../../../node_modules/@preact/signals-core/dist/signals-core.module.js","../../../../node_modules/@preact/signals/dist/signals.module.js","../../../../lib/core/src/react/components/components.ts","../../../../lib/core/src/react/components/h-element.ts","../../../../lib/core/src/react/components/h-element-signals.ts","../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../../lib/core/src/react/components/html-content.tsx","../../../../lib/core/src/react/components/custom-render.tsx","../../../../lib/core/src/react/components/lazy-content.tsx","../../../../lib/core/src/react/components/custom-content.tsx","../../../../lib/core/src/react/components/icon.tsx","../../../../lib/core/src/react/components/portals.ts","../../../../lib/core/src/react/components/share.ts","../../../../lib/core/src/react/component-from-react.ts","../../../../lib/core/src/react/custom.ts","../../../../lib/button/src/component/button.tsx","../../../../lib/button/src/component/share.ts","../../../../lib/common-list/src/component/common-list.tsx","../../../../lib/common-list/src/vanilla/common-list.ts","../../../../lib/common-list/src/component/share.ts","../../../../lib/helpers/src/color-helper.ts","../../../../lib/avatar/src/component/avatar.tsx","../../../../lib/btn-group/src/component/btn-group.tsx","../../../../lib/toolbar/src/component/toolbar.tsx","../../../../lib/checkbox/src/component/checkbox.tsx","../../../../lib/checkbox/src/component/radio.tsx","../../../../lib/checkbox/src/component/switch.tsx","../../../../lib/list/src/component/listitem.tsx","../../../../lib/list/src/component/list.tsx","../../../../lib/store/src/store.ts","../../../../lib/store/src/main.ts","../../../../lib/list/src/component/nested-list.tsx","../../../../lib/menu/src/component/menu.tsx","../../../../lib/search-box/src/components/search-box.tsx","../../../../lib/menu/src/component/search-menu.tsx","../../../../lib/menu/src/vanilla/menu.ts","../../../../lib/menu/src/vanilla/search-menu.ts","../../../../lib/menu/src/component/share.ts","../../../../lib/alert/src/component/alert.tsx","../../../../lib/messager/src/component/messager-item.tsx","../../../../lib/messager/src/vanilla/messager-item.ts","../../../../lib/messager/src/vanilla/messager.ts","../../../../lib/progress/src/components/progress-bar.tsx","../../../../lib/progress/src/components/share.ts","../../../../lib/progress/src/vanilla/index.ts","../../../../lib/progress-circle/src/component/progress-circle.tsx","../../../../lib/progress-circle/src/vanilla/index.ts","../../../../lib/progress-circle/src/component/share.ts","../../../../lib/avatar/src/vanilla/index.ts","../../../../lib/avatar/src/component/share.ts","../../../../lib/btn-group/src/vanilla/index.ts","../../../../lib/btn-group/src/component/share.ts","../../../../lib/pick/src/components/pick-trigger.tsx","../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../../lib/pick/src/components/pick-pop.tsx","../../../../lib/pick/src/components/pick.tsx","../../../../lib/color-picker/src/components/color-picker.tsx","../../../../lib/color-picker/src/vanilla/color-picker.ts","../../../../lib/datetime-picker/src/component/time-picker-menu.tsx","../../../../lib/datetime-picker/src/component/time-picker.tsx","../../../../lib/datetime-picker/src/helpers/date-helper.ts","../../../../lib/datetime-picker/src/i18n/index.ts","../../../../lib/datetime-picker/src/component/mini-calendar.tsx","../../../../lib/datetime-picker/src/component/value-selector.tsx","../../../../lib/datetime-picker/src/component/date-picker-menu.tsx","../../../../lib/datetime-picker/src/component/date-picker.tsx","../../../../lib/datetime-picker/src/component/datetime-picker.tsx","../../../../lib/datetime-picker/src/vanilla/time-picker.ts","../../../../lib/datetime-picker/src/vanilla/date-picker.ts","../../../../lib/datetime-picker/src/vanilla/datetime-picker.ts","../../../../lib/modal/src/vanilla/modal-base.ts","../../../../lib/modal/src/component/modal-dialog.tsx","../../../../lib/modal/src/component/modal-iframe-content.tsx","../../../../lib/modal/src/vanilla/modal.tsx","../../../../lib/modal/src/vanilla/modal-trigger.ts","../../../../lib/file-selector/src/i18n/index.ts","../../../../lib/file-selector/src/components/file-selector.tsx","../../../../lib/file-selector/src/components/image-selector.tsx","../../../../lib/file-selector/src/vanilla/file-selector.ts","../../../../lib/file-selector/src/vanilla/image-selector.ts","../../../../lib/file-selector/src/components/share.ts","../../../../lib/nav/src/component/nav.tsx","../../../../lib/nav/src/vanilla/nav.ts","../../../../lib/nav/src/component/share.ts","../../../../lib/pager/src/helpers/update-pager-info.ts","../../../../lib/pager/src/component/pager-link.tsx","../../../../lib/pager/src/component/pager-info.tsx","../../../../lib/pager/src/component/pager-nav.tsx","../../../../lib/popover/src/component/popover-panel.tsx","../../../../lib/popover/src/vanilla/popover-panel.ts","../../../../lib/popover/src/vanilla/popover.ts","../../../../lib/dropdown/src/vanilla/dropdown.ts","../../../../lib/dropdown/src/component/dropdown-button.tsx","../../../../lib/dropdown/src/component/dropdown-menu.tsx","../../../../lib/pager/src/component/pager-size-menu.tsx","../../../../lib/pager/src/component/pager-goto.tsx","../../../../lib/pager/src/component/pager.tsx","../../../../lib/pager/src/vanilla/index.ts","../../../../lib/pager/src/component/share.ts","../../../../lib/pick/src/vanilla/pick.ts","../../../../lib/picker/src/component/picker-search.tsx","../../../../lib/picker/src/component/picker-multi-select.tsx","../../../../lib/picker/src/component/picker-single-select.tsx","../../../../lib/tree/src/components/tree.tsx","../../../../lib/tree/src/components/search-tree.tsx","../../../../lib/picker/src/component/picker-menu.tsx","../../../../lib/picker/src/component/picker.tsx","../../../../lib/picker/src/vanilla/picker.ts","../../../../lib/picker/src/i18n/index.ts","../../../../lib/picker/src/component/share.ts","../../../../lib/search-box/src/vanilla/search-box.ts","../../../../lib/search-box/src/components/share.ts","../../../../lib/toolbar/src/vanilla/index.ts","../../../../lib/toolbar/src/component/share.ts","../../../../lib/tooltip/src/vanilla/tooltip.ts","../../../../lib/dropdown/src/component/share.ts","../../../../lib/scrollbar/src/component/scrollbar.tsx","../../../../lib/dtable/src/helpers/shared-plugins.ts","../../../../lib/dtable/src/helpers/default-options.ts","../../../../lib/dtable/src/helpers/number.ts","../../../../lib/dtable/src/helpers/layout.ts","../../../../lib/dtable/src/components/cell.tsx","../../../../lib/dtable/src/components/cells.tsx","../../../../lib/dtable/src/components/block.tsx","../../../../lib/dtable/src/components/dtable.tsx","../../../../lib/dtable/src/plugins/rich/index.tsx","../../../../lib/dtable/src/plugins/sort/index.tsx","../../../../lib/dtable/src/plugins/custom/index.tsx","../../../../lib/dtable/src/plugins/checkable/index.tsx","../../../../lib/dtable/src/plugins/store/index.ts","../../../../lib/dtable/src/plugins/nested/index.tsx","../../../../lib/dtable/src/plugins/avatar/index.tsx","../../../../lib/dtable/src/plugins/sort-type/index.tsx","../../../../lib/dtable/src/plugins/group/index.tsx","../../../../lib/dtable/src/plugins/header-group/index.tsx","../../../../lib/dtable/src/plugins/cellspan/index.ts","../../../../lib/dtable/src/plugins/mousemove/index.ts","../../../../lib/dtable/src/plugins/autoscroll/index.ts","../../../../lib/dtable/src/plugins/sortable/index.tsx","../../../../lib/dtable/src/plugins/pager/index.tsx","../../../../lib/dtable/src/vanilla/index.ts","../../../../lib/tabs/src/vanilla/tabs.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\n\ndeclare const __APP_VERSION__: string;\n\ndeclare const __BUILD_TIME__: number;\n\ndeclare const __BUILD_MODE__: string;\n\nexport const VERSION = __APP_VERSION__;\nexport const BUILD = __BUILD_TIME__;\nexport const BUILD_MODE = __BUILD_MODE__;\n","const doc = document;\nconst win = window;\nconst docEle = doc.documentElement;\nconst createElement = doc.createElement.bind(doc);\nconst div = createElement('div');\nconst table = createElement('table');\nconst tbody = createElement('tbody');\nconst tr = createElement('tr');\nconst { isArray, prototype: ArrayPrototype } = Array;\nconst { concat, filter, indexOf, map, push, slice, some, splice } = ArrayPrototype;\nconst idRe = /^#(?:[\\w-]|\\\\.|[^\\x00-\\xa0])*$/;\nconst classRe = /^\\.(?:[\\w-]|\\\\.|[^\\x00-\\xa0])*$/;\nconst htmlRe = /<.+>/;\nconst tagRe = /^\\w+$/;\n// @require ./variables.ts\nfunction find(selector, context) {\n const isFragment = isDocumentFragment(context);\n return !selector || (!isFragment && !isDocument(context) && !isElement(context))\n ? []\n : !isFragment && classRe.test(selector)\n ? context.getElementsByClassName(selector.slice(1).replace(/\\\\/g, ''))\n : !isFragment && tagRe.test(selector)\n ? context.getElementsByTagName(selector)\n : context.querySelectorAll(selector);\n}\n// @require ./find.ts\n// @require ./variables.ts\nclass Cash {\n constructor(selector, context) {\n if (!selector)\n return;\n if (isCash(selector))\n return selector;\n let eles = selector;\n if (isString(selector)) {\n const ctx = context || doc;\n eles = idRe.test(selector) && isDocument(ctx)\n ? ctx.getElementById(selector.slice(1).replace(/\\\\/g, ''))\n : htmlRe.test(selector)\n ? parseHTML(selector)\n : isCash(ctx)\n ? ctx.find(selector)\n : isString(ctx)\n ? cash(ctx).find(selector)\n : find(selector, ctx);\n if (!eles)\n return;\n }\n else if (isFunction(selector)) {\n return this.ready(selector); //FIXME: `fn.ready` is not included in `core`, but it's actually a core functionality\n }\n if (eles.nodeType || eles === win)\n eles = [eles];\n this.length = eles.length;\n for (let i = 0, l = this.length; i < l; i++) {\n this[i] = eles[i];\n }\n }\n init(selector, context) {\n return new Cash(selector, context);\n }\n}\nconst fn = Cash.prototype;\nconst cash = fn.init;\ncash.fn = cash.prototype = fn; // Ensuring that `cash () instanceof cash`\nfn.length = 0;\nfn.splice = splice; // Ensuring a cash collection gets printed as array-like in Chrome's devtools\nif (typeof Symbol === 'function') { // Ensuring a cash collection is iterable\n fn[Symbol['iterator']] = ArrayPrototype[Symbol['iterator']];\n}\nfunction isCash(value) {\n return value instanceof Cash;\n}\nfunction isWindow(value) {\n return !!value && value === value.window;\n}\nfunction isDocument(value) {\n return !!value && value.nodeType === 9;\n}\nfunction isDocumentFragment(value) {\n return !!value && value.nodeType === 11;\n}\nfunction isElement(value) {\n return !!value && value.nodeType === 1;\n}\nfunction isText(value) {\n return !!value && value.nodeType === 3;\n}\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isUndefined(value) {\n return value === undefined;\n}\nfunction isNull(value) {\n return value === null;\n}\nfunction isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n}\nfunction isPlainObject(value) {\n if (typeof value !== 'object' || value === null)\n return false;\n const proto = Object.getPrototypeOf(value);\n return proto === null || proto === Object.prototype;\n}\ncash.isWindow = isWindow;\ncash.isFunction = isFunction;\ncash.isArray = isArray;\ncash.isNumeric = isNumeric;\ncash.isPlainObject = isPlainObject;\nfunction each(arr, callback, _reverse) {\n if (_reverse) {\n let i = arr.length;\n while (i--) {\n if (callback.call(arr[i], i, arr[i]) === false)\n return arr;\n }\n }\n else if (isPlainObject(arr)) {\n const keys = Object.keys(arr);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n if (callback.call(arr[key], key, arr[key]) === false)\n return arr;\n }\n }\n else {\n for (let i = 0, l = arr.length; i < l; i++) {\n if (callback.call(arr[i], i, arr[i]) === false)\n return arr;\n }\n }\n return arr;\n}\ncash.each = each;\nfn.each = function (callback) {\n return each(this, callback);\n};\nfn.empty = function () {\n return this.each((i, ele) => {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild);\n }\n });\n};\nfunction extend(...sources) {\n const deep = isBoolean(sources[0]) ? sources.shift() : false;\n const target = sources.shift();\n const length = sources.length;\n if (!target)\n return {};\n if (!length)\n return extend(deep, cash, target);\n for (let i = 0; i < length; i++) {\n const source = sources[i];\n for (const key in source) {\n if (deep && (isArray(source[key]) || isPlainObject(source[key]))) {\n if (!target[key] || target[key].constructor !== source[key].constructor)\n target[key] = new source[key].constructor();\n extend(deep, target[key], source[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n }\n return target;\n}\ncash.extend = extend;\nfn.extend = function (plugins) {\n return extend(fn, plugins);\n};\n// @require ./type_checking.ts\nconst splitValuesRe = /\\S+/g;\nfunction getSplitValues(str) {\n return isString(str) ? str.match(splitValuesRe) || [] : [];\n}\nfn.toggleClass = function (cls, force) {\n const classes = getSplitValues(cls);\n const isForce = !isUndefined(force);\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n each(classes, (i, c) => {\n if (isForce) {\n force ? ele.classList.add(c) : ele.classList.remove(c);\n }\n else {\n ele.classList.toggle(c);\n }\n });\n });\n};\nfn.addClass = function (cls) {\n return this.toggleClass(cls, true);\n};\nfn.removeAttr = function (attr) {\n const attrs = getSplitValues(attr);\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n each(attrs, (i, a) => {\n ele.removeAttribute(a);\n });\n });\n};\nfunction attr(attr, value) {\n if (!attr)\n return;\n if (isString(attr)) {\n if (arguments.length < 2) {\n if (!this[0] || !isElement(this[0]))\n return;\n const value = this[0].getAttribute(attr);\n return isNull(value) ? undefined : value;\n }\n if (isUndefined(value))\n return this;\n if (isNull(value))\n return this.removeAttr(attr);\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n ele.setAttribute(attr, value);\n });\n }\n for (const key in attr) {\n this.attr(key, attr[key]);\n }\n return this;\n}\nfn.attr = attr;\nfn.removeClass = function (cls) {\n if (arguments.length)\n return this.toggleClass(cls, false);\n return this.attr('class', '');\n};\nfn.hasClass = function (cls) {\n return !!cls && some.call(this, (ele) => isElement(ele) && ele.classList.contains(cls));\n};\nfn.get = function (index) {\n if (isUndefined(index))\n return slice.call(this);\n index = Number(index);\n return this[index < 0 ? index + this.length : index];\n};\nfn.eq = function (index) {\n return cash(this.get(index));\n};\nfn.first = function () {\n return this.eq(0);\n};\nfn.last = function () {\n return this.eq(-1);\n};\nfunction text(text) {\n if (isUndefined(text)) {\n return this.get().map(ele => isElement(ele) || isText(ele) ? ele.textContent : '').join('');\n }\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n ele.textContent = text;\n });\n}\nfn.text = text;\n// @require core/type_checking.ts\n// @require core/variables.ts\nfunction computeStyle(ele, prop, isVariable) {\n if (!isElement(ele))\n return;\n const style = win.getComputedStyle(ele, null);\n return isVariable ? style.getPropertyValue(prop) || undefined : style[prop] || ele.style[prop];\n}\n// @require ./compute_style.ts\nfunction computeStyleInt(ele, prop) {\n return parseInt(computeStyle(ele, prop), 10) || 0;\n}\n// @require css/helpers/compute_style_int.ts\nfunction getExtraSpace(ele, xAxis) {\n return computeStyleInt(ele, `border${xAxis ? 'Left' : 'Top'}Width`) + computeStyleInt(ele, `padding${xAxis ? 'Left' : 'Top'}`) + computeStyleInt(ele, `padding${xAxis ? 'Right' : 'Bottom'}`) + computeStyleInt(ele, `border${xAxis ? 'Right' : 'Bottom'}Width`);\n}\n// @require css/helpers/compute_style.ts\nconst defaultDisplay = {};\nfunction getDefaultDisplay(tagName) {\n if (defaultDisplay[tagName])\n return defaultDisplay[tagName];\n const ele = createElement(tagName);\n doc.body.insertBefore(ele, null);\n const display = computeStyle(ele, 'display');\n doc.body.removeChild(ele);\n return defaultDisplay[tagName] = display !== 'none' ? display : 'block';\n}\n// @require css/helpers/compute_style.ts\nfunction isHidden(ele) {\n return computeStyle(ele, 'display') === 'none';\n}\n// @require ./cash.ts\nfunction matches(ele, selector) {\n const matches = ele && (ele['matches'] || ele['webkitMatchesSelector'] || ele['msMatchesSelector']);\n return !!matches && !!selector && matches.call(ele, selector);\n}\n// @require ./matches.ts\n// @require ./type_checking.ts\nfunction getCompareFunction(comparator) {\n return isString(comparator)\n ? (i, ele) => matches(ele, comparator)\n : isFunction(comparator)\n ? comparator\n : isCash(comparator)\n ? (i, ele) => comparator.is(ele)\n : !comparator\n ? () => false\n : (i, ele) => ele === comparator;\n}\nfn.filter = function (comparator) {\n const compare = getCompareFunction(comparator);\n return cash(filter.call(this, (ele, i) => compare.call(ele, i, ele)));\n};\n// @require collection/filter.ts\nfunction filtered(collection, comparator) {\n return !comparator ? collection : collection.filter(comparator);\n}\nfn.detach = function (comparator) {\n filtered(this, comparator).each((i, ele) => {\n if (ele.parentNode) {\n ele.parentNode.removeChild(ele);\n }\n });\n return this;\n};\nconst fragmentRe = /^\\s*<(\\w+)[^>]*>/;\nconst singleTagRe = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/;\nconst containers = {\n '*': div,\n tr: tbody,\n td: tr,\n th: tr,\n thead: table,\n tbody: table,\n tfoot: table\n};\n//TODO: Create elements inside a document fragment, in order to prevent inline event handlers from firing\n//TODO: Ensure the created elements have the fragment as their parent instead of null, this also ensures we can deal with detatched nodes more reliably\nfunction parseHTML(html) {\n if (!isString(html))\n return [];\n if (singleTagRe.test(html))\n return [createElement(RegExp.$1)];\n const fragment = fragmentRe.test(html) && RegExp.$1;\n const container = containers[fragment] || containers['*'];\n container.innerHTML = html;\n return cash(container.childNodes).detach().get();\n}\ncash.parseHTML = parseHTML;\nfn.has = function (selector) {\n const comparator = isString(selector)\n ? (i, ele) => find(selector, ele).length\n : (i, ele) => ele.contains(selector);\n return this.filter(comparator);\n};\nfn.not = function (comparator) {\n const compare = getCompareFunction(comparator);\n return this.filter((i, ele) => (!isString(comparator) || isElement(ele)) && !compare.call(ele, i, ele));\n};\nfunction pluck(arr, prop, deep, until) {\n const plucked = [];\n const isCallback = isFunction(prop);\n const compare = until && getCompareFunction(until);\n for (let i = 0, l = arr.length; i < l; i++) {\n if (isCallback) {\n const val = prop(arr[i]);\n if (val.length)\n push.apply(plucked, val);\n }\n else {\n let val = arr[i][prop];\n while (val != null) {\n if (until && compare(-1, val))\n break;\n plucked.push(val);\n val = deep ? val[prop] : null;\n }\n }\n }\n return plucked;\n}\n// @require core/pluck.ts\n// @require core/variables.ts\nfunction getValue(ele) {\n if (ele.multiple && ele.options)\n return pluck(filter.call(ele.options, option => option.selected && !option.disabled && !option.parentNode.disabled), 'value');\n return ele.value || '';\n}\nfunction val(value) {\n if (!arguments.length)\n return this[0] && getValue(this[0]);\n return this.each((i, ele) => {\n const isSelect = ele.multiple && ele.options;\n if (isSelect || checkableRe.test(ele.type)) {\n const eleValue = isArray(value) ? map.call(value, String) : (isNull(value) ? [] : [String(value)]);\n if (isSelect) {\n each(ele.options, (i, option) => {\n option.selected = eleValue.indexOf(option.value) >= 0;\n }, true);\n }\n else {\n ele.checked = eleValue.indexOf(ele.value) >= 0;\n }\n }\n else {\n ele.value = isUndefined(value) || isNull(value) ? '' : value;\n }\n });\n}\nfn.val = val;\nfn.is = function (comparator) {\n const compare = getCompareFunction(comparator);\n return some.call(this, (ele, i) => compare.call(ele, i, ele));\n};\ncash.guid = 1;\nfunction unique(arr) {\n return arr.length > 1 ? filter.call(arr, (item, index, self) => indexOf.call(self, item) === index) : arr;\n}\ncash.unique = unique;\nfn.add = function (selector, context) {\n return cash(unique(this.get().concat(cash(selector, context).get())));\n};\nfn.children = function (comparator) {\n return filtered(cash(unique(pluck(this, ele => ele.children))), comparator);\n};\nfn.parent = function (comparator) {\n return filtered(cash(unique(pluck(this, 'parentNode'))), comparator);\n};\nfn.index = function (selector) {\n const child = selector ? cash(selector)[0] : this[0];\n const collection = selector ? this : cash(child).parent().children();\n return indexOf.call(collection, child);\n};\nfn.closest = function (comparator) {\n const filtered = this.filter(comparator);\n if (filtered.length)\n return filtered;\n const $parent = this.parent();\n if (!$parent.length)\n return filtered;\n return $parent.closest(comparator);\n};\nfn.siblings = function (comparator) {\n return filtered(cash(unique(pluck(this, ele => cash(ele).parent().children().not(ele)))), comparator);\n};\nfn.find = function (selector) {\n return cash(unique(pluck(this, ele => find(selector, ele))));\n};\n// @require core/variables.ts\n// @require collection/filter.ts\n// @require traversal/find.ts\nconst HTMLCDATARe = /^\\s*\\s*$/g;\nconst scriptTypeRe = /^$|^module$|\\/(java|ecma)script/i;\nconst scriptAttributes = ['type', 'src', 'nonce', 'noModule'];\nfunction evalScripts(node, doc) {\n const collection = cash(node);\n collection.filter('script').add(collection.find('script')).each((i, ele) => {\n if (scriptTypeRe.test(ele.type) && docEle.contains(ele)) { // The script type is supported // The element is attached to the DOM // Using `documentElement` for broader browser support\n const script = createElement('script');\n script.text = ele.textContent.replace(HTMLCDATARe, '');\n each(scriptAttributes, (i, attr) => {\n if (ele[attr])\n script[attr] = ele[attr];\n });\n doc.head.insertBefore(script, null);\n doc.head.removeChild(script);\n }\n });\n}\n// @require ./eval_scripts.ts\nfunction insertElement(anchor, target, left, inside, evaluate) {\n if (inside) { // prepend/append\n anchor.insertBefore(target, left ? anchor.firstChild : null);\n }\n else { // before/after\n if (anchor.nodeName === 'HTML') {\n anchor.parentNode.replaceChild(target, anchor);\n }\n else {\n anchor.parentNode.insertBefore(target, left ? anchor : anchor.nextSibling);\n }\n }\n if (evaluate) {\n evalScripts(target, anchor.ownerDocument);\n }\n}\n// @require ./insert_element.ts\nfunction insertSelectors(selectors, anchors, inverse, left, inside, reverseLoop1, reverseLoop2, reverseLoop3) {\n each(selectors, (si, selector) => {\n each(cash(selector), (ti, target) => {\n each(cash(anchors), (ai, anchor) => {\n const anchorFinal = inverse ? target : anchor;\n const targetFinal = inverse ? anchor : target;\n const indexFinal = inverse ? ti : ai;\n insertElement(anchorFinal, !indexFinal ? targetFinal : targetFinal.cloneNode(true), left, inside, !indexFinal);\n }, reverseLoop3);\n }, reverseLoop2);\n }, reverseLoop1);\n return anchors;\n}\nfn.after = function () {\n return insertSelectors(arguments, this, false, false, false, true, true);\n};\nfn.append = function () {\n return insertSelectors(arguments, this, false, false, true);\n};\nfunction html(html) {\n if (!arguments.length)\n return this[0] && this[0].innerHTML;\n if (isUndefined(html))\n return this;\n const hasScript = /]/.test(html);\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n if (hasScript) {\n cash(ele).empty().append(html);\n }\n else {\n ele.innerHTML = html;\n }\n });\n}\nfn.html = html;\nfn.appendTo = function (selector) {\n return insertSelectors(arguments, this, true, false, true);\n};\nfn.wrapInner = function (selector) {\n return this.each((i, ele) => {\n const $ele = cash(ele);\n const contents = $ele.contents();\n contents.length ? contents.wrapAll(selector) : $ele.append(selector);\n });\n};\nfn.before = function () {\n return insertSelectors(arguments, this, false, true);\n};\nfn.wrapAll = function (selector) {\n let structure = cash(selector);\n let wrapper = structure[0];\n while (wrapper.children.length)\n wrapper = wrapper.firstElementChild;\n this.first().before(structure);\n return this.appendTo(wrapper);\n};\nfn.wrap = function (selector) {\n return this.each((i, ele) => {\n const wrapper = cash(selector)[0];\n cash(ele).wrapAll(!i ? wrapper : wrapper.cloneNode(true));\n });\n};\nfn.insertAfter = function (selector) {\n return insertSelectors(arguments, this, true, false, false, false, false, true);\n};\nfn.insertBefore = function (selector) {\n return insertSelectors(arguments, this, true, true);\n};\nfn.prepend = function () {\n return insertSelectors(arguments, this, false, true, true, true, true);\n};\nfn.prependTo = function (selector) {\n return insertSelectors(arguments, this, true, true, true, false, false, true);\n};\nfn.contents = function () {\n return cash(unique(pluck(this, ele => ele.tagName === 'IFRAME' ? [ele.contentDocument] : (ele.tagName === 'TEMPLATE' ? ele.content.childNodes : ele.childNodes))));\n};\nfn.next = function (comparator, _all, _until) {\n return filtered(cash(unique(pluck(this, 'nextElementSibling', _all, _until))), comparator);\n};\nfn.nextAll = function (comparator) {\n return this.next(comparator, true);\n};\nfn.nextUntil = function (until, comparator) {\n return this.next(comparator, true, until);\n};\nfn.parents = function (comparator, _until) {\n return filtered(cash(unique(pluck(this, 'parentElement', true, _until))), comparator);\n};\nfn.parentsUntil = function (until, comparator) {\n return this.parents(comparator, until);\n};\nfn.prev = function (comparator, _all, _until) {\n return filtered(cash(unique(pluck(this, 'previousElementSibling', _all, _until))), comparator);\n};\nfn.prevAll = function (comparator) {\n return this.prev(comparator, true);\n};\nfn.prevUntil = function (until, comparator) {\n return this.prev(comparator, true, until);\n};\nfn.map = function (callback) {\n return cash(concat.apply([], map.call(this, (ele, i) => callback.call(ele, i, ele))));\n};\nfn.clone = function () {\n return this.map((i, ele) => ele.cloneNode(true));\n};\nfn.offsetParent = function () {\n return this.map((i, ele) => {\n let offsetParent = ele.offsetParent;\n while (offsetParent && computeStyle(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docEle;\n });\n};\nfn.slice = function (start, end) {\n return cash(slice.call(this, start, end));\n};\n// @require ./cash.ts\nconst dashAlphaRe = /-([a-z])/g;\nfunction camelCase(str) {\n return str.replace(dashAlphaRe, (match, letter) => letter.toUpperCase());\n}\nfn.ready = function (callback) {\n const cb = () => setTimeout(callback, 0, cash);\n if (doc.readyState !== 'loading') {\n cb();\n }\n else {\n doc.addEventListener('DOMContentLoaded', cb);\n }\n return this;\n};\nfn.unwrap = function () {\n this.parent().each((i, ele) => {\n if (ele.tagName === 'BODY')\n return;\n const $ele = cash(ele);\n $ele.replaceWith($ele.children());\n });\n return this;\n};\nfn.offset = function () {\n const ele = this[0];\n if (!ele)\n return;\n const rect = ele.getBoundingClientRect();\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset\n };\n};\nfn.position = function () {\n const ele = this[0];\n if (!ele)\n return;\n const isFixed = (computeStyle(ele, 'position') === 'fixed');\n const offset = isFixed ? ele.getBoundingClientRect() : this.offset();\n if (!isFixed) {\n const doc = ele.ownerDocument;\n let offsetParent = ele.offsetParent || doc.documentElement;\n while ((offsetParent === doc.body || offsetParent === doc.documentElement) && computeStyle(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n if (offsetParent !== ele && isElement(offsetParent)) {\n const parentOffset = cash(offsetParent).offset();\n offset.top -= parentOffset.top + computeStyleInt(offsetParent, 'borderTopWidth');\n offset.left -= parentOffset.left + computeStyleInt(offsetParent, 'borderLeftWidth');\n }\n }\n return {\n top: offset.top - computeStyleInt(ele, 'marginTop'),\n left: offset.left - computeStyleInt(ele, 'marginLeft')\n };\n};\nconst propMap = {\n /* GENERAL */\n class: 'className',\n contenteditable: 'contentEditable',\n /* LABEL */\n for: 'htmlFor',\n /* INPUT */\n readonly: 'readOnly',\n maxlength: 'maxLength',\n tabindex: 'tabIndex',\n /* TABLE */\n colspan: 'colSpan',\n rowspan: 'rowSpan',\n /* IMAGE */\n usemap: 'useMap'\n};\nfn.prop = function (prop, value) {\n if (!prop)\n return;\n if (isString(prop)) {\n prop = propMap[prop] || prop;\n if (arguments.length < 2)\n return this[0] && this[0][prop];\n return this.each((i, ele) => { ele[prop] = value; });\n }\n for (const key in prop) {\n this.prop(key, prop[key]);\n }\n return this;\n};\nfn.removeProp = function (prop) {\n return this.each((i, ele) => { delete ele[propMap[prop] || prop]; });\n};\nconst cssVariableRe = /^--/;\n// @require ./variables.ts\nfunction isCSSVariable(prop) {\n return cssVariableRe.test(prop);\n}\n// @require core/camel_case.ts\n// @require core/cash.ts\n// @require core/each.ts\n// @require core/variables.ts\n// @require ./is_css_variable.ts\nconst prefixedProps = {};\nconst { style } = div;\nconst vendorsPrefixes = ['webkit', 'moz', 'ms'];\nfunction getPrefixedProp(prop, isVariable = isCSSVariable(prop)) {\n if (isVariable)\n return prop;\n if (!prefixedProps[prop]) {\n const propCC = camelCase(prop);\n const propUC = `${propCC[0].toUpperCase()}${propCC.slice(1)}`;\n const props = (`${propCC} ${vendorsPrefixes.join(`${propUC} `)}${propUC}`).split(' ');\n each(props, (i, p) => {\n if (p in style) {\n prefixedProps[prop] = p;\n return false;\n }\n });\n }\n return prefixedProps[prop];\n}\n// @require core/type_checking.ts\n// @require ./is_css_variable.ts\nconst numericProps = {\n animationIterationCount: true,\n columnCount: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n gridArea: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnStart: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowStart: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n widows: true,\n zIndex: true\n};\nfunction getSuffixedValue(prop, value, isVariable = isCSSVariable(prop)) {\n return !isVariable && !numericProps[prop] && isNumeric(value) ? `${value}px` : value;\n}\nfunction css(prop, value) {\n if (isString(prop)) {\n const isVariable = isCSSVariable(prop);\n prop = getPrefixedProp(prop, isVariable);\n if (arguments.length < 2)\n return this[0] && computeStyle(this[0], prop, isVariable);\n if (!prop)\n return this;\n value = getSuffixedValue(prop, value, isVariable);\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n if (isVariable) {\n ele.style.setProperty(prop, value);\n }\n else {\n ele.style[prop] = value;\n }\n });\n }\n for (const key in prop) {\n this.css(key, prop[key]);\n }\n return this;\n}\n;\nfn.css = css;\nfunction attempt(fn, arg) {\n try {\n return fn(arg);\n }\n catch (_a) {\n return arg;\n }\n}\n// @require core/attempt.ts\n// @require core/camel_case.ts\nconst JSONStringRe = /^\\s+|\\s+$/;\nfunction getData(ele, key) {\n const value = ele.dataset[key] || ele.dataset[camelCase(key)];\n if (JSONStringRe.test(value))\n return value;\n return attempt(JSON.parse, value);\n}\n// @require core/attempt.ts\n// @require core/camel_case.ts\nfunction setData(ele, key, value) {\n value = attempt(JSON.stringify, value);\n ele.dataset[camelCase(key)] = value;\n}\nfunction data(name, value) {\n if (!name) {\n if (!this[0])\n return;\n const datas = {};\n for (const key in this[0].dataset) {\n datas[key] = getData(this[0], key);\n }\n return datas;\n }\n if (isString(name)) {\n if (arguments.length < 2)\n return this[0] && getData(this[0], name);\n if (isUndefined(value))\n return this;\n return this.each((i, ele) => { setData(ele, name, value); });\n }\n for (const key in name) {\n this.data(key, name[key]);\n }\n return this;\n}\nfn.data = data;\nfunction getDocumentDimension(doc, dimension) {\n const docEle = doc.documentElement;\n return Math.max(doc.body[`scroll${dimension}`], docEle[`scroll${dimension}`], doc.body[`offset${dimension}`], docEle[`offset${dimension}`], docEle[`client${dimension}`]);\n}\neach([true, false], (i, outer) => {\n each(['Width', 'Height'], (i, prop) => {\n const name = `${outer ? 'outer' : 'inner'}${prop}`;\n fn[name] = function (includeMargins) {\n if (!this[0])\n return;\n if (isWindow(this[0]))\n return outer ? this[0][`inner${prop}`] : this[0].document.documentElement[`client${prop}`];\n if (isDocument(this[0]))\n return getDocumentDimension(this[0], prop);\n return this[0][`${outer ? 'offset' : 'client'}${prop}`] + (includeMargins && outer ? computeStyleInt(this[0], `margin${i ? 'Top' : 'Left'}`) + computeStyleInt(this[0], `margin${i ? 'Bottom' : 'Right'}`) : 0);\n };\n });\n});\neach(['Width', 'Height'], (index, prop) => {\n const propLC = prop.toLowerCase();\n fn[propLC] = function (value) {\n if (!this[0])\n return isUndefined(value) ? undefined : this;\n if (!arguments.length) {\n if (isWindow(this[0]))\n return this[0].document.documentElement[`client${prop}`];\n if (isDocument(this[0]))\n return getDocumentDimension(this[0], prop);\n return this[0].getBoundingClientRect()[propLC] - getExtraSpace(this[0], !index);\n }\n const valueNumber = parseInt(value, 10);\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n const boxSizing = computeStyle(ele, 'boxSizing');\n ele.style[propLC] = getSuffixedValue(propLC, valueNumber + (boxSizing === 'border-box' ? getExtraSpace(ele, !index) : 0));\n });\n };\n});\nconst displayProperty = '___cd';\nfn.toggle = function (force) {\n return this.each((i, ele) => {\n if (!isElement(ele))\n return;\n const hidden = isHidden(ele);\n const show = isUndefined(force) ? hidden : force;\n if (show) {\n ele.style.display = ele[displayProperty] || '';\n if (isHidden(ele)) {\n ele.style.display = getDefaultDisplay(ele.tagName);\n }\n }\n else if (!hidden) {\n ele[displayProperty] = computeStyle(ele, 'display');\n ele.style.display = 'none';\n }\n });\n};\nfn.hide = function () {\n return this.toggle(false);\n};\nfn.show = function () {\n return this.toggle(true);\n};\nconst eventsNamespace = '___ce';\nconst eventsNamespacesSeparator = '.';\nconst eventsFocus = { focus: 'focusin', blur: 'focusout' };\nconst eventsHover = { mouseenter: 'mouseover', mouseleave: 'mouseout' };\nconst eventsMouseRe = /^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;\n// @require ./variables.ts\nfunction getEventNameBubbling(name) {\n return eventsHover[name] || eventsFocus[name] || name;\n}\n// @require ./variables.ts\nfunction parseEventName(eventName) {\n const parts = eventName.split(eventsNamespacesSeparator);\n return [parts[0], parts.slice(1).sort()]; // [name, namespace[]]\n}\nfn.trigger = function (event, data) {\n if (isString(event)) {\n const [nameOriginal, namespaces] = parseEventName(event);\n const name = getEventNameBubbling(nameOriginal);\n if (!name)\n return this;\n const type = eventsMouseRe.test(name) ? 'MouseEvents' : 'HTMLEvents';\n event = doc.createEvent(type);\n event.initEvent(name, true, true);\n event.namespace = namespaces.join(eventsNamespacesSeparator);\n event.___ot = nameOriginal;\n }\n event.___td = data;\n const isEventFocus = (event.___ot in eventsFocus);\n return this.each((i, ele) => {\n if (isEventFocus && isFunction(ele[event.___ot])) {\n ele[`___i${event.type}`] = true; // Ensuring the native event is ignored\n ele[event.___ot]();\n ele[`___i${event.type}`] = false; // Ensuring the custom event is not ignored\n }\n ele.dispatchEvent(event);\n });\n};\n// @require ./variables.ts\nfunction getEventsCache(ele) {\n return ele[eventsNamespace] = (ele[eventsNamespace] || {});\n}\n// @require core/guid.ts\n// @require events/helpers/get_events_cache.ts\nfunction addEvent(ele, name, namespaces, selector, callback) {\n const eventCache = getEventsCache(ele);\n eventCache[name] = (eventCache[name] || []);\n eventCache[name].push([namespaces, selector, callback]);\n ele.addEventListener(name, callback);\n}\nfunction hasNamespaces(ns1, ns2) {\n return !ns2 || !some.call(ns2, (ns) => ns1.indexOf(ns) < 0);\n}\n// @require ./get_events_cache.ts\n// @require ./has_namespaces.ts\n// @require ./parse_event_name.ts\nfunction removeEvent(ele, name, namespaces, selector, callback) {\n const cache = getEventsCache(ele);\n if (!name) {\n for (name in cache) {\n removeEvent(ele, name, namespaces, selector, callback);\n }\n }\n else if (cache[name]) {\n cache[name] = cache[name].filter(([ns, sel, cb]) => {\n if ((callback && cb.guid !== callback.guid) || !hasNamespaces(ns, namespaces) || (selector && selector !== sel))\n return true;\n ele.removeEventListener(name, cb);\n });\n }\n}\nfn.off = function (eventFullName, selector, callback) {\n if (isUndefined(eventFullName)) {\n this.each((i, ele) => {\n if (!isElement(ele) && !isDocument(ele) && !isWindow(ele))\n return;\n removeEvent(ele);\n });\n }\n else if (!isString(eventFullName)) {\n for (const key in eventFullName) {\n this.off(key, eventFullName[key]);\n }\n }\n else {\n if (isFunction(selector)) {\n callback = selector;\n selector = '';\n }\n each(getSplitValues(eventFullName), (i, eventFullName) => {\n const [nameOriginal, namespaces] = parseEventName(eventFullName);\n const name = getEventNameBubbling(nameOriginal);\n this.each((i, ele) => {\n if (!isElement(ele) && !isDocument(ele) && !isWindow(ele))\n return;\n removeEvent(ele, name, namespaces, selector, callback);\n });\n });\n }\n return this;\n};\nfn.remove = function (comparator) {\n filtered(this, comparator).detach().off();\n return this;\n};\nfn.replaceWith = function (selector) {\n return this.before(selector).remove();\n};\nfn.replaceAll = function (selector) {\n cash(selector).replaceWith(this);\n return this;\n};\nfunction on(eventFullName, selector, data, callback, _one) {\n if (!isString(eventFullName)) {\n for (const key in eventFullName) {\n this.on(key, selector, data, eventFullName[key], _one);\n }\n return this;\n }\n if (!isString(selector)) {\n if (isUndefined(selector) || isNull(selector)) {\n selector = '';\n }\n else if (isUndefined(data)) {\n data = selector;\n selector = '';\n }\n else {\n callback = data;\n data = selector;\n selector = '';\n }\n }\n if (!isFunction(callback)) {\n callback = data;\n data = undefined;\n }\n if (!callback)\n return this;\n each(getSplitValues(eventFullName), (i, eventFullName) => {\n const [nameOriginal, namespaces] = parseEventName(eventFullName);\n const name = getEventNameBubbling(nameOriginal);\n const isEventHover = (nameOriginal in eventsHover);\n const isEventFocus = (nameOriginal in eventsFocus);\n if (!name)\n return;\n this.each((i, ele) => {\n if (!isElement(ele) && !isDocument(ele) && !isWindow(ele))\n return;\n const finalCallback = function (event) {\n if (event.target[`___i${event.type}`])\n return event.stopImmediatePropagation(); // Ignoring native event in favor of the upcoming custom one\n if (event.namespace && !hasNamespaces(namespaces, event.namespace.split(eventsNamespacesSeparator)))\n return;\n if (!selector && ((isEventFocus && (event.target !== ele || event.___ot === name)) || (isEventHover && event.relatedTarget && ele.contains(event.relatedTarget))))\n return;\n let thisArg = ele;\n if (selector) {\n let target = event.target;\n while (!matches(target, selector)) {\n if (target === ele)\n return;\n target = target.parentNode;\n if (!target)\n return;\n }\n thisArg = target;\n }\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get() {\n return thisArg;\n }\n });\n Object.defineProperty(event, 'delegateTarget', {\n configurable: true,\n get() {\n return ele;\n }\n });\n Object.defineProperty(event, 'data', {\n configurable: true,\n get() {\n return data;\n }\n });\n const returnValue = callback.call(thisArg, event, event.___td);\n if (_one) {\n removeEvent(ele, name, namespaces, selector, finalCallback);\n }\n if (returnValue === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n finalCallback.guid = callback.guid = (callback.guid || cash.guid++);\n addEvent(ele, name, namespaces, selector, finalCallback);\n });\n });\n return this;\n}\nfn.on = on;\nfunction one(eventFullName, selector, data, callback) {\n return this.on(eventFullName, selector, data, callback, true);\n}\n;\nfn.one = one;\nconst queryEncodeCRLFRe = /\\r?\\n/g;\nfunction queryEncode(prop, value) {\n return `&${encodeURIComponent(prop)}=${encodeURIComponent(value.replace(queryEncodeCRLFRe, '\\r\\n'))}`;\n}\nconst skippableRe = /file|reset|submit|button|image/i;\nconst checkableRe = /radio|checkbox/i;\nfn.serialize = function () {\n let query = '';\n this.each((i, ele) => {\n each(ele.elements || [ele], (i, ele) => {\n if (ele.disabled || !ele.name || ele.tagName === 'FIELDSET' || skippableRe.test(ele.type) || (checkableRe.test(ele.type) && !ele.checked))\n return;\n const value = getValue(ele);\n if (!isUndefined(value)) {\n const values = isArray(value) ? value : [value];\n each(values, (i, value) => {\n query += queryEncode(ele.name, value);\n });\n }\n });\n });\n return query.slice(1);\n};\n// @require core/types.ts\n// @require core/cash.ts\n// @require core/type_checking.ts\n// @require core/variables.ts\n// @require core/each.ts\n// @require core/extend.ts\n// @require core/find.ts\n// @require core/get_compare_function.ts\n// @require core/get_split_values.ts\n// @require core/guid.ts\n// @require core/parse_html.ts\n// @require core/unique.ts\n// @require attributes/add_class.ts\n// @require attributes/attr.ts\n// @require attributes/has_class.ts\n// @require attributes/prop.ts\n// @require attributes/remove_attr.ts\n// @require attributes/remove_class.ts\n// @require attributes/remove_prop.ts\n// @require attributes/toggle_class.ts\n// @require collection/add.ts\n// @require collection/each.ts\n// @require collection/eq.ts\n// @require collection/filter.ts\n// @require collection/first.ts\n// @require collection/get.ts\n// @require collection/index.ts\n// @require collection/last.ts\n// @require collection/map.ts\n// @require collection/slice.ts\n// @require css/css.ts\n// @require data/data.ts\n// @require dimensions/inner_outer.ts\n// @require dimensions/normal.ts\n// @require effects/hide.ts\n// @require effects/show.ts\n// @require effects/toggle.ts\n// @require events/off.ts\n// @require events/on.ts\n// @require events/one.ts\n// @require events/ready.ts\n// @require events/trigger.ts\n// @require forms/serialize.ts\n// @require forms/val.ts\n// @require manipulation/after.ts\n// @require manipulation/append.ts\n// @require manipulation/append_to.ts\n// @require manipulation/before.ts\n// @require manipulation/clone.ts\n// @require manipulation/detach.ts\n// @require manipulation/empty.ts\n// @require manipulation/html.ts\n// @require manipulation/insert_after.ts\n// @require manipulation/insert_before.ts\n// @require manipulation/prepend.ts\n// @require manipulation/prepend_to.ts\n// @require manipulation/remove.ts\n// @require manipulation/replace_all.ts\n// @require manipulation/replace_with.ts\n// @require manipulation/text.ts\n// @require manipulation/unwrap.ts\n// @require manipulation/wrap.ts\n// @require manipulation/wrap_all.ts\n// @require manipulation/wrap_inner.ts\n// @require offset/offset.ts\n// @require offset/offset_parent.ts\n// @require offset/position.ts\n// @require traversal/children.ts\n// @require traversal/closest.ts\n// @require traversal/contents.ts\n// @require traversal/find.ts\n// @require traversal/has.ts\n// @require traversal/is.ts\n// @require traversal/next.ts\n// @require traversal/next_all.ts\n// @require traversal/next_until.ts\n// @require traversal/not.ts\n// @require traversal/parent.ts\n// @require traversal/parents.ts\n// @require traversal/parents_until.ts\n// @require traversal/prev.ts\n// @require traversal/prev_all.ts\n// @require traversal/prev_until.ts\n// @require traversal/siblings.ts\n// @no-require extras/get_script.ts\n// @no-require extras/shorthands.ts\n// @require methods.ts\nexport default cash;\nexport { Cash };\n","import $ from 'cash-dom';\nexport type * from 'cash-dom';\n\ndeclare global {\n interface Window {\n $: typeof $\n }\n}\n\nwindow.$ = $;\n\nexport {$, $ as cash};\n","/**\n * Get all values in path from an object\n * @param object The object to access\n * @param pathName Access path\n * @returns All values in path\n * @example\n * const object = {\n * a: [{b: {c: 1}, d: 2}]\n * };\n *\n * deepGetPath(object, 'a[0].b.c'); // Output [[{b: {c: 1}, d: 2}], {b: {c: 1}, {c: 1}, 1]\n */\nexport function deepGetPath(object: object, pathName: string | string[]): (object | undefined)[] {\n if (object === null || object === undefined) {\n return [object, undefined];\n }\n\n if (typeof pathName === 'string') {\n pathName = pathName.split('.');\n }\n\n const fullPath = pathName.join('.');\n let context = object;\n const way = [context];\n while (typeof context === 'object' && context !== null && pathName.length) {\n let name = pathName.shift()!;\n let subName: string | undefined;\n const bracketIndex = name.indexOf('[');\n if (bracketIndex > 0 && bracketIndex < (name.length - 1) && name.endsWith(']')) {\n subName = name.substring(bracketIndex + 1, name.length - 1);\n name = name.substring(0, bracketIndex);\n }\n\n context = (context as Record)[name];\n way.push(context);\n if (subName !== undefined) {\n if (typeof context === 'object' && context !== null) {\n if (context instanceof Map) {\n context = context.get(subName);\n } else {\n context = (context as Record)[subName];\n }\n way.push(context);\n } else {\n throw new Error(`Cannot access property \"${name}[${subName}]\", the full path is \"${fullPath}\".`);\n }\n }\n }\n\n if (pathName.length) {\n throw new Error(`Cannot access property with rest path \"${pathName.join('.')}\", the full path is \"${fullPath}\".`);\n }\n\n return way;\n}\n\n/**\n * Get object inner value with dot-strings\n * @param object The object to access\n * @param pathName Access path\n * @param defaultValue Default value\n * @returns Final value\n * @example\n * const object = {\n * a: [{b: {c: 1}, d: 2}]\n * };\n *\n * deepGetPath(object, 'a[0].b.c'); // Output 1\n * deepGetPath(object, 'a[0].d'); // Output 2\n * deepGetPath(object, 'a'); // Output [{b: {c: 1}, d: 2}]\n */\nexport function deepGet(object: object, pathName: string | string[], defaultValue?: T): T | undefined {\n try {\n const way = deepGetPath(object, pathName);\n const lastValue = way[way.length - 1] as T | undefined;\n return lastValue === undefined ? defaultValue : lastValue;\n } catch (_) {\n return defaultValue;\n }\n}\n\nexport function deepCall(object: object, pathName: string | string[], args?: unknown[], thisObj?: unknown): unknown {\n const callback = deepGet(object, pathName);\n if (typeof callback === 'function') {\n return callback.apply(thisObj || object, args);\n }\n return callback;\n}\n","\n/**\n * 格式化字符串\n * @param str 要格式化的字符串\n * @param args 格式化参数\n * @returns 格式化后的字符串\n * @example 通过参数序号格式化\n * const hello = formatString('{0} {1}!', 'Hello', 'world');\n * // hello 值为 'Hello world!'\n */\nexport function formatString(str: string, ...args: unknown[]): string;\n\n/**\n * 格式化字符串\n * @param str 要格式化的字符串\n * @param obj 格式化参数\n * @returns 格式化后的字符串\n * @example 通过对象名称格式化\n * const say = formatString('Say {what} to {who}', {what: 'hello', who: 'you'});\n * // say 值为 'Say hello to you'\n */\nexport function formatString(str: string, obj: Record): string;\n\nexport function formatString(str: string, ...args: [Record] | unknown[]): string {\n if (args.length === 0) {\n return str;\n }\n if (args.length === 1 && typeof args[0] === 'object' && args[0]) {\n const obj = args[0];\n Object.keys(obj).forEach(key => {\n const value = (obj as Record)[key] ?? '';\n str = str.replace(new RegExp(`\\\\{${key}\\\\}`, 'g'), `${value}`);\n });\n return str;\n }\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i] ?? '';\n str = str.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), `${arg}`);\n }\n return str;\n}\n\n/**\n * 字节单位表\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nenum BYTE_UNITS {\n B = 1,\n KB = 1024,\n MB = 1024 * 1024,\n GB = 1024 * 1024 * 1024,\n TB = 1024 * 1024 * 1024 * 1024,\n}\n\n/**\n * 格式化字节值为包含单位的字符串\n * @param size 字节大小\n * @param fixed 保留的小数点位数\n * @param unit 单位,如果留空,则自动使用最合适的单位\n * @returns 格式化后的字符串\n */\nexport function formatBytes(size: number, fixed = 2, unit?: keyof typeof BYTE_UNITS) {\n if (Number.isNaN(size)) {\n return '?KB';\n }\n if (!unit) {\n if (size < BYTE_UNITS.KB) {\n unit = 'B';\n } else if (size < BYTE_UNITS.MB) {\n unit = 'KB';\n } else if (size < BYTE_UNITS.GB) {\n unit = 'MB';\n } else if (size < BYTE_UNITS.TB) {\n unit = 'GB';\n } else {\n unit = 'TB';\n }\n }\n\n return (size / BYTE_UNITS[unit]).toFixed(fixed) + unit;\n}\n\n/**\n * 转换带单位的字节字符串为字节数\n * @param str 带单位的字节字符串\n * @returns 字节数\n */\nexport const convertBytes = (str: string) => {\n const pattern = /^[0-9]*(B|KB|MB|GB|TB)$/;\n str = str.toUpperCase();\n const matchRes = str.match(pattern);\n if (!matchRes) {\n return 0;\n }\n const unit = matchRes[1] as keyof typeof BYTE_UNITS;\n str = str.replace(unit, '');\n return Number.parseInt(str, 10) * BYTE_UNITS[unit];\n};\n","import {$} from '../cash';\nimport {deepGet} from '@zui/helpers/src/object/deep-get';\nimport {formatString} from '@zui/helpers/src/format-string';\nimport {I18nLangMap, I18nLangCode, I18nValuesMap} from './types';\n\nlet globalLangCode = (document.documentElement.getAttribute('lang') || 'zh_cn').toLowerCase().replace('-', '_');\n\nlet globalLangMap: I18nLangMap | undefined;\n\nexport function getLangCode() {\n return globalLangCode;\n}\n\nexport function setLangCode(langCode: I18nLangCode) {\n globalLangCode = langCode.toLowerCase().replace('-', '_');\n}\n\nexport function addI18nMap(map: I18nLangMap): void;\nexport function addI18nMap(code: I18nLangCode, values: I18nValuesMap): void;\nexport function addI18nMap(codeOrMap: I18nLangCode | I18nLangMap, values?: I18nValuesMap): void {\n if (!globalLangMap) {\n globalLangMap = {};\n }\n if (typeof codeOrMap === 'string') {\n codeOrMap = {[codeOrMap]: values ?? {}};\n }\n $.extend(true, globalLangMap, codeOrMap);\n}\n\nexport function i18n(maps: I18nLangMap | (I18nLangMap | undefined)[] | undefined, key: string, defaultValue?: T, langCode?: I18nLangCode, globalPrefix?: string): T | undefined;\nexport function i18n(maps: I18nLangMap | (I18nLangMap | undefined)[] | undefined, key: string, args?: string | (string | number)[] | Record, defaultValue?: T, langCode?: I18nLangCode, globalPrefix?: string): T | undefined;\nexport function i18n(maps: I18nLangMap | (I18nLangMap | undefined)[] | undefined, key: string, args?: string | (string | number)[] | Record, defaultValue?: T | I18nLangCode, langCode?: I18nLangCode, globalPrefix?: string): T | undefined {\n if (!Array.isArray(maps)) {\n maps = globalLangMap ? [globalLangMap, maps] : [maps];\n } else if (globalLangMap) {\n maps.unshift(globalLangMap);\n }\n if (typeof args === 'string') {\n globalPrefix = langCode;\n langCode = defaultValue as I18nLangCode;\n defaultValue = args;\n args = undefined;\n }\n const lang = langCode || globalLangCode;\n let value: T | undefined;\n for (const map of maps) {\n if (!map) {\n continue;\n }\n const mapValues = map[lang] || map.default;\n if (!mapValues) {\n continue;\n }\n const mapKey = (globalPrefix && map === globalLangMap) ? `${globalPrefix}.${key}` : key;\n value = deepGet(mapValues, mapKey);\n if (value !== undefined) {\n break;\n }\n }\n if (value === undefined) {\n return defaultValue as T;\n }\n if (args) {\n return formatString(value as string, ...(Array.isArray(args) ? args : [args])) as T;\n }\n return value;\n}\n\nexport function getLang(key: string, args?: string | (string | number)[] | Record, defaultValue?: T, langCode?: I18nLangCode): T | undefined {\n return i18n(undefined, key, args, defaultValue, langCode);\n}\n\ni18n.addLang = addI18nMap;\ni18n.getLang = getLang;\ni18n.getCode = getLangCode;\ni18n.setCode = setLangCode;\ni18n.map = globalLangMap;\n","import {addI18nMap} from './i18n';\n\naddI18nMap({\n 'zh_cn': {\n confirm: '确定',\n save: '保存',\n cancel: '取消',\n delete: '删除',\n reset: '重置',\n add: '添加',\n copy: '复制',\n close: '关闭',\n },\n 'zh_tw': {\n confirm: '確定',\n save: '儲存',\n cancel: '取消',\n delete: '刪除',\n reset: '重置',\n add: '添加',\n Copy: '複製',\n close: '關閉',\n },\n en: {\n confirm: 'Confirm',\n save: 'Save',\n cancel: 'Cancel',\n delete: 'Delete',\n reset: 'Reset',\n add: 'Add',\n copy: 'Copy',\n close: 'Close',\n },\n});\n","import {$} from '@zui/core';\n\nimport type {AjaxBeforeSendCallback, AjaxCallbackMap, AjaxCompleteCallback, AjaxErrorCallback, AjaxFormItemValue, AjaxSetting, AjaxSuccessCallback} from './types';\n\nfunction setHeader(headers: HeadersInit, name: string, value: string) {\n if (headers instanceof Headers) {\n headers.set(name, value);\n } else if (Array.isArray(headers)) {\n headers.push([name, value]);\n } else {\n headers[name] = value;\n }\n}\n\nfunction setFormItem(formData: FormData, name: string, value: AjaxFormItemValue | AjaxFormItemValue[] | Record) {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => setFormItem(formData, name, v));\n } else if (!(value instanceof Blob) && $.isPlainObject(value)) {\n Object.entries(value).forEach(([key, v]) => {\n setFormItem(formData, `${name}[${key}]`, v);\n });\n } else {\n formData.append(name, value instanceof Blob ? value : String(value));\n }\n}\n\nfunction getDataType(contentType: string | undefined | null, accepts: Record | undefined) {\n if (contentType) {\n const map = {\n text: 'text/plain',\n html: 'text/html',\n json: 'application/json',\n ...accepts,\n };\n for (const [key, value] of Object.entries(map)) {\n if (value.split(',').map(x => x.trim()).includes(contentType)) {\n return key;\n }\n }\n }\n\n return 'text';\n}\n\nexport function createFormData(data: string | FormData | URLSearchParams | Record | [name: string, value: AjaxFormItemValue][], existingFormData?: FormData): FormData {\n const formData = existingFormData || new FormData();\n if (data) {\n if (typeof data === 'string') {\n data = new URLSearchParams(data);\n }\n if (data instanceof URLSearchParams) {\n data.forEach((value, name) => {\n setFormItem(formData, name, value);\n });\n } else if (Array.isArray(data)) {\n data.forEach(([name, value]) => {\n setFormItem(formData, name, value);\n });\n } else if (data instanceof FormData) {\n data.forEach((value, name) => {\n setFormItem(formData, name, value);\n });\n } else if ($.isPlainObject(data)) {\n Object.entries(data).forEach(([name, value]) => {\n setFormItem(formData, name, value);\n });\n }\n }\n return formData;\n}\n\nexport class Ajax {\n static globalBeforeSends: AjaxBeforeSendCallback[] = [];\n\n private declare _timeoutID: number;\n\n private _controller: AbortController;\n\n private _callbacks: {[P in keyof AjaxCallbackMap]: AjaxCallbackMap[P][];};\n\n private declare _abortError?: Error;\n\n setting: AjaxSetting;\n\n declare data: T;\n\n declare error: Error;\n\n declare response: Response;\n\n declare url: string;\n\n declare request: RequestInit;\n\n get completed() {\n return this.data !== undefined || this.error !== undefined;\n }\n\n get [Symbol.toStringTag]() {\n return 'Ajax';\n }\n\n constructor(setting: AjaxSetting) {\n this.setting = setting;\n this._controller = new AbortController();\n this._callbacks = {success: [], error: [], complete: []};\n }\n\n on(name: N, callback: AjaxCallbackMap[N]) {\n (this._callbacks[name]).push(callback);\n return this;\n }\n\n success(calback: AjaxSuccessCallback) {\n return this.on('success', calback);\n }\n\n done(calback: AjaxSuccessCallback) {\n return this.success(calback);\n }\n\n fail(calback: AjaxErrorCallback) {\n return this.on('error', calback);\n }\n\n complete(calback: AjaxCompleteCallback) {\n return this.on('complete', calback);\n }\n\n always(calback: AjaxCompleteCallback) {\n return this.complete(calback);\n }\n\n then(resolve: (data: T) => void, reject?: (error: Error) => void) {\n if (this.completed) {\n if (reject && this.error) {\n reject(this.error);\n } else {\n resolve(this.data);\n }\n } else {\n this.success((data) => resolve(data as T));\n if (reject) {\n this.fail(reject);\n }\n }\n return this;\n }\n\n catch(calback: (error: Error) => void) {\n if (this.error) {\n calback(this.error);\n return this;\n }\n return this.on('error', (error) => calback(error));\n }\n\n finally(onFinally: () => void) {\n if (this.completed) {\n onFinally();\n return this;\n }\n return this.complete(() => onFinally());\n }\n\n abort(abortError?: Error) {\n if (this.completed) {\n return false;\n }\n this._abortError = abortError;\n this._controller.abort();\n return true;\n }\n\n getResponseHeader(name: string) {\n return this.response?.headers.get(name);\n }\n\n private _init() {\n if (this.completed) {\n return;\n }\n const {\n url,\n type,\n data,\n processData = true,\n contentType,\n crossDomain,\n accepts,\n dataType,\n timeout,\n dataFilter,\n beforeSend,\n success,\n error,\n complete,\n ...initOptions\n } = this.setting;\n\n if (type) {\n initOptions.method = type;\n }\n let dataSetting = data;\n if (dataSetting) {\n if (processData) {\n dataSetting = createFormData(dataSetting);\n }\n initOptions.body = dataSetting as BodyInit;\n }\n if (crossDomain) {\n initOptions.mode = 'cors';\n }\n const headers = initOptions.headers || {};\n setHeader(headers, 'X-Requested-With', 'XMLHttpRequest');\n if (contentType) {\n setHeader(headers, 'Content-Type', contentType);\n }\n initOptions.headers = headers;\n\n if (initOptions.signal) {\n initOptions.signal.addEventListener('abort', () => {\n this.abort();\n });\n }\n\n const beforeSends = [...(this.constructor as typeof Ajax).globalBeforeSends, beforeSend];\n for (const callback of beforeSends) {\n if (!callback) {\n continue;\n }\n const result = callback.call(this, initOptions);\n if (result === false) {\n return;\n }\n if (result) {\n Object.assign(initOptions, result);\n }\n }\n\n if (success) {\n this.success(success);\n }\n if (error) {\n this.fail(error);\n }\n if (complete) {\n this.complete(complete);\n }\n initOptions.signal = this._controller.signal;\n this.url = url;\n this.request = initOptions;\n }\n\n private _emit(name: N, ...args: Parameters) {\n this._callbacks[name].forEach((callback) => {\n callback.call(this, ...(args as [arg0: Error & Response, statusText: string, arg2: string & Response]));\n });\n }\n\n async send(): Promise<[data?: D | undefined, error?: Error | undefined, response?: Response | undefined]> {\n if (this.completed) {\n return [];\n }\n this._init();\n\n const {timeout, dataType: dataTypeSetting, accepts, dataFilter, throws, jsonParser} = this.setting;\n if (timeout) {\n this._timeoutID = window.setTimeout(() => {\n this.abort(new Error('timeout'));\n }, timeout);\n }\n\n let response: Response | undefined;\n let error: Error | undefined;\n let data: unknown | undefined;\n try {\n response = await fetch(this.url, this.request);\n this.response = response;\n const {statusText} = response;\n if (response.ok) {\n const isAttachment = response.headers.get('Content-Disposition')?.startsWith('attachment');\n const dataType = isAttachment ? 'blob' : (dataTypeSetting || getDataType(response.headers.get('Content-Type'), accepts));\n if (isAttachment || dataType === 'blob' || dataType === 'file') {\n data = await response.blob();\n } else if (dataType === 'json') {\n if (typeof jsonParser === 'function') {\n data = await response.text();\n data = jsonParser(data as string);\n } else {\n data = await response.json();\n }\n } else {\n data = await response.text();\n }\n this.data = data as T;\n const filteredData = dataFilter?.(data, dataType) ?? data;\n this._emit('success', filteredData, statusText, response);\n } else {\n this.data = await response.text() as T;\n throw new Error(statusText);\n }\n } catch (err) {\n if (this.data === undefined && data !== undefined) {\n this.data = data as T;\n }\n error = err as Error;\n let skipTriggerError = false;\n if (error.name === 'AbortError') {\n if (this._abortError) {\n error = this._abortError;\n } else {\n skipTriggerError = true;\n }\n }\n this.error = error;\n if (!skipTriggerError) {\n this._emit('error', error, response?.statusText, error.message);\n }\n }\n\n if (this._timeoutID) {\n clearTimeout(this._timeoutID);\n }\n\n this._emit('complete', response, response?.statusText);\n if (error && throws) {\n throw error;\n }\n return [data as D, error, response];\n }\n}\n","import {$, Cash} from '@zui/core';\nimport {Ajax} from './ajax';\nimport type {AjaxFormData, AjaxSetting, AjaxSuccessCallback} from './types';\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n ajax(urlOrSetting: string | AjaxSetting, setting?: Partial): Ajax;\n\n getJSON(url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, success?: AjaxSuccessCallback): Ajax;\n\n get(url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, successOrDataType?: AjaxSuccessCallback | string, dataType?: string, method?: string): Ajax;\n\n post(url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, successOrDataType?: AjaxSuccessCallback | string, dataType?: string): Ajax;\n }\n\n interface Cash {\n load(this: Cash, url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, success?: AjaxSuccessCallback): Cash;\n }\n}\n\n/* Extend as $.ajax() to create ajax for cash. */\n$.ajax = (urlOrSetting: string | AjaxSetting, setting?: Partial) => {\n setting = setting || {};\n if (typeof urlOrSetting === 'string') {\n setting.url = urlOrSetting;\n } else {\n $.extend(setting, urlOrSetting);\n }\n const ajax = new Ajax(setting as AjaxSetting);\n ajax.send();\n return ajax;\n};\n\n/* Extend as $.getJSON() to create getJSON for cash. */\n$.getJSON = (url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, success?: AjaxSuccessCallback) => {\n if (typeof dataOrSuccess === 'function') {\n success = dataOrSuccess;\n dataOrSuccess = undefined;\n }\n return $.ajax({\n url,\n data: dataOrSuccess,\n success,\n dataType: 'json',\n });\n};\n\n/* Extend as $.get() to create get for cash. */\n$.get = (url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, successOrDataType?: AjaxSuccessCallback | string, dataType?: string, method = 'GET') => {\n let success: AjaxSuccessCallback | undefined;\n let data: AjaxFormData | undefined;\n if (typeof dataOrSuccess === 'function') {\n success = dataOrSuccess;\n data = undefined;\n } else {\n data = dataOrSuccess;\n }\n if (typeof successOrDataType === 'function') {\n success = successOrDataType;\n dataType = undefined;\n } else {\n dataType = successOrDataType;\n }\n return $.ajax({\n method,\n url,\n data,\n success,\n dataType,\n });\n};\n\n/* Extend as $.post() to create post for cash. */\n$.post = (url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, successOrDataType?: AjaxSuccessCallback | string, dataType?: string) => {\n return $.get(url, dataOrSuccess, successOrDataType, dataType, 'POST');\n};\n\n/* Extend as $.load() to create load for cash. */\n$.fn.load = function (this: Cash, url: string, dataOrSuccess?: AjaxFormData | AjaxSuccessCallback, success?: AjaxSuccessCallback): Cash {\n if (typeof dataOrSuccess === 'function') {\n success = dataOrSuccess;\n dataOrSuccess = undefined;\n }\n const [realUrl, selector] = url.split(' ');\n $.get(realUrl, dataOrSuccess, (data, statusText, response) => {\n if (selector) {\n data = $(data as string).find(selector).html();\n }\n $(this).html(data as string).zuiInit();\n success?.call(this, data, statusText, response);\n }, 'html');\n return this;\n};\n","import {formatString} from '@zui/helpers/src/format-string';\nimport {$} from '../cash';\nimport {Ajax} from './ajax';\nimport type {AjaxSetting, FetcherSetting} from './types';\n\nexport async function fetchData(setting: FetcherSetting, args: A = ([] as unknown as A), extraAjaxSetting?: Partial | ((ajaxSetting: AjaxSetting) => Partial), thisObj?: THIS, ajaxGetter?: (ajax: Ajax) => void): Promise {\n const ajaxSetting = {throws: true, dataType: 'json'} as AjaxSetting;\n if (typeof setting === 'string') {\n ajaxSetting.url = setting;\n } else if (typeof setting === 'object') {\n $.extend(ajaxSetting, setting);\n } else if (typeof setting === 'function') {\n const result = setting.call(thisObj as THIS, ...args);\n if (result instanceof Promise) {\n const data = await result;\n return data;\n }\n return result;\n }\n if (extraAjaxSetting) {\n $.extend(ajaxSetting, typeof extraAjaxSetting === 'function' ? extraAjaxSetting(ajaxSetting) : extraAjaxSetting);\n }\n if (ajaxSetting.url) {\n ajaxSetting.url = formatString(ajaxSetting.url, ...args);\n }\n const ajax = new Ajax(ajaxSetting);\n ajaxGetter?.(ajax);\n const [data] = await ajax.send();\n return data as T;\n}\n\nexport function isFetchSetting(setting: FetcherSetting | unknown): setting is FetcherSetting {\n return !!(setting && (typeof setting === 'string' || (typeof setting === 'object' && (setting as AjaxSetting).url) || typeof setting === 'function'));\n}\n\ndeclare module 'cash-dom' {\n interface CashStatic {\n fetch(setting: FetcherSetting, args: A, extraAjaxSetting?: Partial | ((ajaxSetting: AjaxSetting) => Partial), thisObj?: THIS, ajaxGetter?: (ajax: Ajax) => void): Promise;\n }\n}\n\n$.fetch = fetchData;\n","import {$} from '../cash';\n\nexport function nextGid() {\n return $.guid++;\n}\n","export function isDiff(value1: unknown, value2: unknown) {\n if (value1 === value2) {\n return false;\n }\n if (value1 && value2) {\n const typeOfValue1 = typeof value1;\n const typeOfValue2 = typeof value2;\n if (typeOfValue1 !== typeOfValue2) {\n return true;\n }\n if (typeOfValue1 === 'object' && typeOfValue2 === 'object') {\n const isArray1 = Array.isArray(value1);\n const isArray2 = Array.isArray(value2);\n if (isArray1 !== isArray2) {\n return true;\n }\n if (isArray1 && isArray2) {\n if (value1.length !== value2.length) {\n return true;\n }\n for (let i = 0; i < value1.length; i++) {\n if (isDiff(value1[i], value2[i])) {\n return true;\n }\n }\n return false;\n }\n\n const keys1 = Object.keys(value1);\n const keys2 = Object.keys(value2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (isDiff((value1 as Record)[key], (value2 as Record)[key])) {\n return true;\n }\n }\n return false;\n }\n if (typeOfValue1 === 'function' && typeOfValue2 === 'function') {\n return value1.toString() !== value2.toString();\n }\n }\n return value1 !== value2;\n}\n","import {isDiff} from './is-diff';\n\n/**\n * A class representing a computed value that can be cached and recomputed when its dependencies change.\n * @template T The type of the computed value.\n * @template D The type of the dependencies array.\n */\nexport class Computed {\n /**\n * The dependencies of the computed value.\n */\n protected _dependencies: D | (() => D);\n\n /**\n * The function that computes the value.\n */\n protected _compute: () => T;\n\n /**\n * The cached value of the computed value.\n */\n protected _value?: T;\n\n /**\n * The last dependencies array used to compute the value.\n */\n protected _lastDependencies: D | undefined;\n\n /**\n * Creates a new Computed instance.\n * @param compute The function that computes the value.\n * @param dependencies The dependencies of the computed value.\n */\n constructor(compute: () => T, dependencies: D | (() => D)) {\n this._compute = compute;\n this._dependencies = dependencies;\n }\n\n /**\n * Gets the computed value.\n */\n get value(): T {\n return this.compute();\n }\n\n /**\n * Gets the cached value of the computed value.\n */\n get cache(): T {\n return this._lastDependencies ? this._value as T : this.compute();\n }\n\n /**\n * Set the dependencies of the computed value.\n *\n * @param dependencies The dependencies of the computed value.\n * @returns The computed value.\n */\n depends(dependencies: D | (() => D)) {\n this._dependencies = dependencies;\n return this;\n }\n\n /**\n * Forces the computed value to be recomputed.\n * @param dependencies The new dependencies to use for recomputing the value.\n * @returns The recomputed value.\n */\n forceCompute(dependencies?: D | (() => D)) {\n this._lastDependencies = undefined;\n return this.compute(dependencies);\n }\n\n /**\n * Computes the value of the computed value.\n * @param dependencies The dependencies to use for computing the value.\n * @returns The computed value.\n */\n compute(dependencies?: D | (() => D)): T {\n if (dependencies !== undefined) {\n this._dependencies = dependencies;\n }\n\n dependencies = this._dependencies;\n if (typeof dependencies === 'function') {\n dependencies = dependencies();\n }\n\n // Check if dependencies changed.\n const lastDependencies = this._lastDependencies;\n if (!lastDependencies || dependencies.some((dept, index) => {\n if (dept instanceof Computed) {\n return dept.value !== lastDependencies[index];\n }\n return isDiff(dept, lastDependencies[index]);\n })) {\n this._value = this._compute();\n this._lastDependencies = dependencies.map(x => x instanceof Computed ? x.cache : x) as D;\n }\n\n return this._value as T;\n }\n}\n","import {$, Cash} from '../cash';\n\n/**\n * Classname like.\n */\nexport type ClassNameLike = string | null | undefined | boolean | {[key: string]: unknown} | (() => ClassNameLike) | ClassNameLike[];\n\n/**\n * Classname setting.\n */\nexport type ClassNameSetting = [name: string, toggle: boolean];\n\n/**\n * Get class name setting list from arguments.\n *\n * @param args Classname like arguments.\n * @returns Classname setting list.\n */\nexport function getClassList(...args: ClassNameLike[]): ClassNameSetting[] {\n const settings: ClassNameSetting[] = [];\n\n /* Indexes map to keep classname's order. */\n const indexes = new Map();\n\n const setSetting = (name: string | [name: string, toggle?: unknown], toggle?: unknown) => {\n if (Array.isArray(name)) {\n toggle = name[1];\n name = name[0];\n }\n if (!name.length) {\n return;\n }\n const index = indexes.get(name);\n if (typeof index === 'number') {\n settings[index][1] = !!toggle;\n } else {\n indexes.set(name, settings.length);\n settings.push([name, !!toggle]);\n }\n };\n\n args.forEach((arg) => {\n if (typeof arg === 'function') {\n arg = arg();\n }\n\n if (Array.isArray(arg)) {\n getClassList(...arg).forEach(setSetting);\n } else if (arg && typeof arg === 'object') {\n Object.entries(arg).forEach(setSetting);\n } else if (typeof arg === 'string') {\n arg.split(' ').forEach(name => setSetting(name, true));\n }\n });\n\n return settings.sort((a, b) => (indexes.get(a[0]) || 0) - (indexes.get(b[0]) || 0));\n}\n\n/**\n * Get classname string from arguments.\n *\n * @param args Classname like arguments.\n * @returns Classname string.\n */\nexport const classes = (...args: ClassNameLike[]): string => {\n return getClassList(...args).reduce((classList, [name, toggle]) => {\n if (toggle) {\n classList.push(name);\n }\n return classList;\n }, []).join(' ');\n};\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n classes(...args: ClassNameLike[]): string;\n }\n\n interface Cash {\n setClass(merge: ClassNameLike | boolean, ...args: ClassNameLike[]): Cash;\n }\n}\n\n/* Extend as $.classes() */\n$.classes = classes;\n\n/* Extend as $.fn.setClass() */\n$.fn.setClass = function (this: Cash, merge: ClassNameLike | boolean, ...args: ClassNameLike[]): Cash {\n return this.each((_, ele) => {\n const $ele = $(ele);\n if (merge === true) {\n $ele.attr('class', classes($ele.attr('class'), ...args));\n } else {\n $ele.addClass(classes(merge, ...args));\n }\n });\n};\n","import {$, Cash} from '../cash';\n\n/**\n * Cache for data associated with the target object.\n */\nconst cache = new WeakMap>();\n\n/**\n * Store data associated with the target object with key value in the cache.\n *\n * @param target Target object to store data.\n * @param key Key to store.\n * @param value Value to store.\n */\nexport function storeData(target: object, key: string | null, value?: unknown): void;\n\n/**\n * Store data associated with the target object in the cache.\n *\n * @param target Target object to store data.\n * @param data Data to store.\n */\nexport function storeData(target: object, data: Record): void;\n\n/**\n * Store data associated with the target object in the cache.\n *\n * @param target Target object to store data.\n * @param keyOrData Key or data to store.\n * @param value Value to store.\n */\nexport function storeData(target: object, keyOrData: string | Record | null, value?: unknown): void {\n const hasCache = cache.has(target);\n const data = hasCache ? cache.get(target)! : {};\n if (typeof keyOrData === 'string') {\n data[keyOrData] = value;\n } else if (keyOrData === null) {\n Object.keys(data).forEach((key) => {\n delete data[key];\n });\n } else {\n Object.assign(data, keyOrData);\n }\n\n Object.keys(data).forEach((key) => {\n if (data[key] === undefined) {\n delete data[key];\n }\n });\n\n if (Object.keys(data).length) {\n if (!hasCache && target instanceof Element) {\n Object.assign(data, $(target).dataset(), data);\n }\n cache.set(target, data);\n } else {\n cache.delete(target);\n }\n}\n\n/**\n * Take data associated with the target object from the cache.\n *\n * @param target Target object to take data.\n */\nexport function takeData(target: object): Record;\n\n/**\n * Take data associated by key with the target object from the cache.\n *\n * @param target Target object to take data.\n * @param key Key to take.\n */\nexport function takeData(target: object, key: string): unknown;\n\n/**\n * Take data associated by key with the target object from the cache.\n *\n * @param target Target object to take data.\n * @param key Key to take.\n * @param mergeElementData Whether to merge element dataset.\n */\nexport function takeData(target: object, key: string | undefined, mergeElementData: boolean): unknown;\n\n/**\n * Take data associated with the target object from the cache.\n *\n * @param target Target object to take data.\n * @param key Key to take.\n * @param mergeElementData Whether to merge element dataset.\n * @returns Data associated with the target object.\n */\nexport function takeData(target: object, key?: string, mergeElementData?: boolean): unknown {\n let data = cache.get(target) || {};\n if (mergeElementData && target instanceof Element) {\n data = Object.assign({}, $(target).dataset(), data);\n }\n if (key === undefined) {\n return data;\n }\n return data[key];\n}\n\n/**\n * Clear data associated with the target object from the cache.\n */\nexport function clearData(target: object): void {\n cache.delete(target);\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n dataset(): Record | undefined;\n dataset(name: string): unknown | undefined;\n dataset(name: string, value: unknown): Cash;\n dataset(dataset: Record): Cash;\n\n removeData(name?: string): Cash;\n }\n}\n\n/* Backup the origin $.fn.data method. */\n$.fn.dataset = $.fn.data;\n\n/* Extend as $.fn.data() */\n$.fn.data = function (this: Cash, ...args: (string | Record | unknown)[]) {\n const [data, value] = args;\n if (!args.length || (args.length === 1 && typeof data === 'string')) {\n if (!this.length) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return takeData(this[0]!, data as string, true) as any;\n }\n return this.each((_, ele) => {\n return storeData(ele, data as string, value);\n });\n};\n\n/* Extend as $.fn.removeData() */\n$.fn.removeData = function (this: Cash, name: string | null = null) {\n return this.each((_, ele) => {\n return storeData(ele, name);\n });\n};\n","export function evalValue(value: string, ...args: unknown[]): T {\n if (value.includes('RAWJS')) {\n value = value.split('\"RAWJS<').join('').split('>RAWJS\"').join('').split('').join('\"').split('').join('\\n');\n }\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const func = new Function(`return ${value}`);\n return func(...args);\n}\n\nexport function parseRawData(data: string, ...args: unknown[]): T {\n if (data.includes('RAWJS')) {\n return evalValue(data, ...args);\n }\n\n return JSON.parse(data);\n}\n\nexport function jsRaw(data: unknown): string {\n return JSON.stringify(data, (_, value) => {\n if (typeof value === 'function') {\n return `RAWJS<${value.toString().split('\"').join('').split('\\n').join('')}>RAWJS`;\n }\n });\n}\n","import {$, Cash, Selector} from '../cash';\nimport {evalValue} from './raw-data';\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n z(): Record | undefined;\n z(name: string): unknown | undefined;\n z(name: string, value: unknown): Cash;\n z(data: Record): Cash;\n }\n}\n\ntype ZDataGetterOptions = {\n prefix?: string;\n evalValue?: boolean | string[];\n evalArgs?: unknown[];\n json?: boolean;\n getter?: (name: string, value: unknown) => unknown;\n};\n\nexport function getZData(selector: Selector, prefixOrOptions?: ZDataGetterOptions | string): Record | undefined {\n const element = $(selector)[0];\n if (!element) {\n return;\n }\n const {prefix, getter, evalValue: evalValueSetting, json = true, evalArgs = []} = {\n prefix: 'z-',\n ...(typeof prefixOrOptions === 'string' ? {prefix: prefixOrOptions} : prefixOrOptions),\n };\n const evalValueSet = Array.isArray(evalValueSetting) ? new Set(evalValueSetting) : undefined;\n return Array.from(element.attributes).reduce>((data, attribute) => {\n let {name} = attribute;\n const {value} = attribute;\n let finalValue: unknown = value;\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length).replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n if (getter) {\n finalValue = getter(name, value);\n } else {\n try {\n if ((evalValueSetting && (!evalValueSet || evalValueSet.has(name))) || (evalValueSetting === undefined && value.includes('RAWJS'))) {\n finalValue = evalValue(value, ...evalArgs);\n } else if (json) {\n finalValue = JSON.parse(value);\n }\n } catch (error) {\n // Ignore.\n }\n }\n data[name] = finalValue;\n }\n return data;\n }, {});\n}\n\nexport function setZData(selector: Selector, data: Record, prefix = 'z-') {\n const $element = $(selector);\n Object.keys(data).forEach((name) => {\n let value = data[name];\n if (typeof value === 'function') {\n value = `RAWJS<${value}>RAWJS`;\n }\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n name = name.replace(/[A-Z]/g, (g) => `-${g.toLowerCase()}`);\n $element.attr(`${prefix}${name}`, value as string);\n });\n}\n\nfunction z(): Record | undefined;\nfunction z(name: string): unknown | undefined;\nfunction z(name: string, value: unknown): Cash;\nfunction z(data: Record): Cash;\nfunction z(this: Cash, ...args: unknown[]): Record | unknown | Cash | undefined {\n const argsLength = args.length;\n if (!argsLength) {\n return getZData(this);\n }\n if (argsLength === 1) {\n const [nameOrData] = args;\n if (typeof nameOrData === 'string') {\n return getZData(this)?.[nameOrData];\n }\n if ($.isPlainObject(nameOrData)) {\n setZData(this, nameOrData);\n }\n return this;\n }\n setZData(this, {[args[0] as string]: args[1]});\n return this;\n}\n\n/* Extend as $.fn.z() */\n$.fn.z = z;\n","import {$, Cash} from '../cash';\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n _attr(): undefined;\n _attr(attrs: string): string | null;\n _attr(attrs: string, value: string): this;\n _attr(attrs: Record): this;\n\n attr(attrs: string, value: string | null): Cash;\n attr(attrs: Record): Cash;\n }\n}\n\n/* Backup the origin $.fn.attr() method. */\n$.fn._attr = $.fn.attr;\n\n/* Extend the attr method. */\n$.fn.extend({\n attr(this: Cash, ...args: (string | Record | null)[]): Cash | string | null | undefined {\n const [attrs, value] = args;\n if (!args.length || (args.length === 1 && typeof attrs === 'string')) {\n // eslint-disable-next-line prefer-spread\n return this._attr.apply(this, args as [attrs: Record]);\n }\n if (typeof attrs === 'object') {\n if (attrs) {\n Object.keys(attrs).forEach((key) => {\n const val = attrs[key];\n if (val === null) {\n this.removeAttr(key);\n } else {\n this._attr(key, val);\n }\n });\n }\n return this;\n }\n if (value === null) {\n return this.removeAttr(attrs as string);\n }\n return this._attr(attrs as string, value as string);\n },\n});\n","import {$} from '../cash';\n\n/**\n * Cash event.\n */\ntype CashEvent = Exclude[0], string>;\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n Event(event: string, data?: unknown): CashEvent;\n }\n}\n\n/* Extend as $.Event() to create custom event for cash. */\nif (!$.Event) {\n $.Event = (event: string, data?: unknown): CashEvent => {\n const [name, ...namespaces] = event.split('.');\n const eventObject = new Event(name, {\n bubbles: true,\n cancelable: true,\n });\n (eventObject as Event & {namespace: string}).namespace = namespaces.join('.');\n (eventObject as Event & {___ot: string}).___ot = name;\n (eventObject as Event & {___td: unknown}).___td = data;\n return eventObject as unknown as CashEvent;\n };\n}\n","export const delay = (ms: number, setTimerID?: (timerID: number) => void) => new Promise(resolve => {\n const id = window.setTimeout(resolve, ms);\n if (setTimerID) {\n setTimerID(id);\n }\n});\n","import {$} from '../cash';\n\nexport const shareData: Record = {};\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n share: Record;\n }\n}\n\n/** Define $.share helper. */\n$.share = shareData;\n","var n,l,u,t,i,o,r,f,e,c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function b(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));M.__r=0}function P(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,w,_=t&&t.__k||v,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=n,i.__b=n.__b+1,o=null,-1!==(f=i.__i=L(i,u,r,s))&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:(f>r?a--:a++,i.__u|=65536))):i=n.__k[t]=null;if(s)for(t=0;t(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.forEach(function(n){n.__e=!0,S(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),S(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),S(this))},k.prototype.render=b,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},M.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{k as Component,b as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import {ComponentChildren, toChildArray} from 'preact';\nimport {$} from '../cash';\n\nexport function mergeProps = Record>(props: Record, ...args: unknown[]) {\n args.forEach(arg => {\n if (!arg || typeof arg !== 'object') {\n return;\n }\n Object.keys(arg as Partial).forEach(key => {\n let value = (arg as Record)[key];\n const oldValue = props[key];\n if (value === oldValue) {\n return;\n }\n if (oldValue !== undefined) {\n if (key === 'className' || key.endsWith('Class')) {\n value = [oldValue, value];\n } else if (key === 'children') {\n value = [...toChildArray(oldValue), ...toChildArray(value as ComponentChildren)];\n } else if (typeof oldValue == 'object' && (key === 'style' || key.endsWith('Style') || key === 'attrs' || key.endsWith('Attrs') || key === 'props')) {\n value = $.extend(oldValue, value);\n }\n }\n props[key] = value;\n });\n });\n return props;\n}\n\nexport function removeUndefinedProps(props: Record) {\n Object.keys(props).forEach(key => {\n if (props[key] === undefined) {\n delete props[key];\n }\n });\n return props;\n}\n","import {$, Cash, Selector} from '../cash';\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n disableScroll(disable?: boolean): Cash;\n enableScroll(enable?: boolean): Cash;\n }\n}\n\nexport function disableScroll(selector: Selector, disable = true): void {\n const $element = $(selector);\n const element = $element[0] as HTMLElement;\n const dataName = 'zui-disable-scroll';\n if (disable) {\n if ($element.data(dataName)) {\n return;\n }\n if (($element.css('scrollbar-gutter') || '').includes('stable')) {\n $element.data(dataName, {overflow: $element.css('overflow')}).css('overflow', 'hidden');\n return;\n }\n const scrollbarWidth = (element === document.body || $element.is('html')) ? (window.innerWidth - document.body.clientWidth) : (element.offsetWidth - element.clientWidth);\n if (!scrollbarWidth) {\n return;\n }\n const paddingRight = $element.css('paddingRight') || '0';\n $element.data(dataName, {\n paddingRight: paddingRight,\n overflow: $element.css('overflow'),\n }).css({\n paddingRight: `${scrollbarWidth + Number.parseInt(paddingRight, 10)}px`,\n overflow: 'hidden',\n });\n } else {\n const oldStyle = $element.data(dataName);\n if (!oldStyle) {\n return;\n }\n $element.css(oldStyle).removeData(dataName);\n }\n}\n\n/* Extend as $.fn.disableScroll() */\n$.fn.disableScroll = function (this: Cash, disable = true): Cash {\n return this.each((_, ele) => {\n disableScroll(ele, disable);\n });\n};\n\n$.fn.enableScroll = function (this: Cash, enable = true): Cash {\n return this.disableScroll(!enable);\n};\n","import {$, Cash} from '../cash';\nimport {evalValue} from './raw-data';\nimport {deepGet} from '@zui/helpers/src/object/deep-get';\nimport {getZData} from './z';\n\nexport type GlobalEventOptions = {\n on: string;\n selector?: string;\n prevent?: boolean;\n stop?: boolean;\n call?: string | ((...args: unknown[]) => void);\n self?: boolean;\n params?: unknown[] | string;\n once?: boolean;\n if?: string | ((...args: unknown[]) => boolean);\n do?: string | ((...args: unknown[]) => void);\n [option: string]: unknown;\n};\n\nfunction processGlobalEvent($element: Cash, event: Event, options: GlobalEventOptions) {\n if (!(options.on as string || 'click').split(' ').includes(event.type)) {\n return;\n }\n const $target = options.selector ? $(event.target as HTMLElement).closest(options.selector as string) : $element;\n if (!$target.length) {\n return;\n }\n const parseBool = (value: unknown) => {\n return value === '' ? true : value;\n };\n const parseVal = (value: unknown) => {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n // eslint-disable-next-line no-empty\n } catch (_) {}\n }\n return value;\n };\n if (parseBool(options.once)) {\n if (options.onceCalled) {\n return;\n }\n $element.dataset('once-called', true);\n }\n if (parseBool(options.prevent)) {\n event.preventDefault();\n }\n if (parseBool(options.stop)) {\n event.stopPropagation();\n }\n if (parseBool(options.self) && event.currentTarget !== event.target) {\n return;\n }\n\n const runParams: [string, unknown][] = [['$element', $element], ['event', event], ['options', options], ['$target', $target]];\n const runCode = (code: string | ((...args: unknown[]) => boolean)) => {\n if (typeof code === 'function') {\n return code(...runParams);\n }\n return $.runJS(code as string, ...runParams);\n };\n if (options.if !== undefined && !runCode(options.if)) {\n return;\n }\n\n const call = options.call;\n if (call) {\n let callback: unknown;\n if (typeof call === 'string') {\n const isFuncName = /^[$A-Z_][0-9A-Z_$.]*$/i.test(call);\n callback = isFuncName ? deepGet(window, call) : runCode(call);\n } else {\n callback = call;\n }\n if (typeof callback === 'function') {\n const params: unknown[] = [];\n const paramsOption = options.params;\n options.params = params;\n if (typeof paramsOption === 'string' && paramsOption.length) {\n if (paramsOption[0] === '[') {\n params.push(...(parseVal(paramsOption) as unknown[]));\n } else {\n params.push(...paramsOption.split(', ').map(x => {\n x = x.trim();\n if (x === '$element') return $element;\n if (x === 'event') return event;\n if (x === 'options') return options;\n if (x.startsWith('$element.') || x.startsWith('event.') || x.startsWith('options.')) return runCode(x);\n return parseVal(x);\n }));\n }\n } else if (Array.isArray(paramsOption)) {\n params.push(...paramsOption);\n } else {\n params.push(paramsOption);\n }\n callback(...params);\n }\n }\n\n if (options.do) {\n runCode(options.do as string);\n }\n}\n\n/**\n * Handle global event.\n * @param event The event object\n * @example\n * ```html\n * Click or changed\n * console.log('clicked or changed'), if: () => confirm('continue?')}\">Click or changed\n * Click\n * Click or changed\n * console.log('clicked')}\">Click or changed\n *\n * [data-on] is deprecated\n * ```\n */\nfunction handleGlobalEvent(this: Cash, event: Event) {\n const $element = $(this);\n const type = event.type;\n const zuiOn = $element.attr('zui-on');\n if (zuiOn) {\n const [events, code] = zuiOn.split('~').map(x => x.trim());\n if (events && events.split(' ').includes(type)) {\n processGlobalEvent($element, event, $.extend({\n on: events,\n }, code ? (code.startsWith('{') ? evalValue(code) : {do: code}) : getZData($element, {prefix: 'data-', evalValue: ['call', 'if', 'do']})));\n }\n }\n const zuiOnEvent = $element.attr(`zui-on-${type}`);\n if (zuiOnEvent) {\n processGlobalEvent($element, event, $.extend({\n on: type,\n }, zuiOnEvent.startsWith('{') ? evalValue(zuiOnEvent) : {do: zuiOnEvent}));\n }\n\n const dataOn = $element.attr('data-on');\n if (dataOn && dataOn.split(' ').includes(type)) {\n processGlobalEvent($element, event, getZData($element, {prefix: 'data-', evalValue: ['call', 'if', 'do']}) as GlobalEventOptions);\n }\n}\n\nexport function registerGlobalListener(events: string[]) {\n $(document).off('.zui.global').on(events.map(event => `${event}.zui.global`).join(' '), `[zui-on],${events.map(x => `[zui-on-${x}]`)},[data-on]`, handleGlobalEvent);\n}\n\n$(() => {\n registerGlobalListener(['click', 'change', 'inited']);\n});\n","export type SizeSetting = number | `${number}%` | `${number}px` | `${number}/${number}` | (string & {}) | ((...args: A) => SizeSetting);\n\nexport function parseSize(size: SizeSetting, callbackArgs?: A): [value: number, type?: 'px' | '%'] {\n if (typeof size === 'function') {\n return parseSize(size(...(callbackArgs || [])));\n }\n if (typeof size === 'number') {\n return [size];\n }\n let match = size.match(/(\\d+)(%|px)?/);\n if (match) {\n return [parseInt(match[1]), match[2] as 'px' | '%'];\n }\n match = size.match(/(\\d+)\\/(\\d+)/);\n if (match) {\n return [100 * parseInt(match[1]) / parseInt(match[2]), '%'];\n }\n return [NaN];\n}\n\nexport function toCssSize(size: SizeSetting | undefined | null, callbackArgs?: A): string | null {\n if (size === undefined || size === null) {\n return null;\n }\n const [val, unit = 'px'] = parseSize(size, callbackArgs);\n if (Number.isNaN(val)) {\n return typeof size === 'string' ? size : null;\n }\n return `${val}${unit}`;\n}\n","export async function downloadFile(file: Blob | Response | string, fileName?: string): Promise {\n if (file instanceof Blob) {\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(file);\n if (fileName) {\n link.download = decodeURIComponent(fileName);\n }\n link.click();\n link.remove();\n return file;\n }\n if (file instanceof Response) {\n const blob = await file.blob();\n fileName = fileName || file.headers.get('Content-Disposition')?.split(';')[1]?.split('=')[1]?.replace(/\"/g, '');\n return downloadFile(blob, fileName);\n }\n const response = await fetch(file);\n return downloadFile(response);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {$, type Cash, type Selector} from '../cash';\n\ntype EventCallback = {\n (event: any, data?: any): any;\n guid?: number;\n};\n\nexport class Bus {\n protected _$target: Cash;\n\n constructor(target: Selector) {\n this._$target = $(target);\n }\n\n on(events: Record): this;\n on(events: Record, selector: string): this;\n on(events: Record, data: any): this;\n on(events: Record, selector: string | null | undefined, data: any): this;\n on(events: string, callback: EventCallback): this;\n on(events: string, selector: string, callback: EventCallback): this;\n on(events: string, data: any, callback: EventCallback): this;\n on(events: string, selector: string | null | undefined, data: any, callback: EventCallback, _one?: boolean): this;\n on(...args: any[]): this {\n this._$target.on(...(args as Parameters));\n return this;\n }\n\n one(events: Record): this;\n one(events: Record, selector: string): this;\n one(events: Record, data: any): this;\n one(events: Record, selector: string | null | undefined, data: any): this;\n one(events: string, callback: EventCallback): this;\n one(events: string, selector: string, callback: EventCallback): this;\n one(events: string, data: any, callback: EventCallback): this;\n one(events: string, selector: string | null | undefined, data: any, callback: EventCallback): this;\n one(...args: any[]): this {\n this._$target.one(...(args as Parameters));\n return this;\n }\n\n off(): this;\n off(events: string): this;\n off(events: Record): this;\n off(events: string, callback: EventCallback): this;\n off(events: string, selector: string, callback: EventCallback): this;\n off(...args: any[]): this {\n this._$target.off(...(args as Parameters));\n return this;\n }\n\n trigger(event: Event | string, data?: any): this;\n trigger(...args: any[]): this {\n this._$target.trigger(...(args as Parameters));\n return this;\n }\n}\n\nexport const bus = new Bus(document);\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n bus: Bus;\n\n on(events: Record): Bus;\n on(events: Record, selector: string): Bus;\n on(events: Record, data: any): Bus;\n on(events: Record, selector: string | null | undefined, data: any): Bus;\n on(events: string, callback: EventCallback): Bus;\n on(events: string, selector: string, callback: EventCallback): Bus;\n on(events: string, data: any, callback: EventCallback): Bus;\n on(events: string, selector: string | null | undefined, data: any, callback: EventCallback, _one?: boolean): Bus;\n\n one(events: Record): Bus;\n one(events: Record, selector: string): Bus;\n one(events: Record, data: any): Bus;\n one(events: Record, selector: string | null | undefined, data: any): Bus;\n one(events: string, callback: EventCallback): Bus;\n one(events: string, selector: string, callback: EventCallback): Bus;\n one(events: string, data: any, callback: EventCallback): Bus;\n one(events: string, selector: string | null | undefined, data: any, callback: EventCallback): Bus;\n\n off(): Bus;\n off(events: string): Bus;\n off(events: Record): Bus;\n off(events: string, callback: EventCallback): Bus;\n off(events: string, selector: string, callback: EventCallback): Bus;\n\n trigger(event: Event | string, data?: any): Bus;\n }\n}\n\n$.bus = bus;\n$.on = bus.on.bind(bus);\n$.one = bus.one.bind(bus);\n$.off = bus.off.bind(bus);\n$.trigger = bus.trigger.bind(bus);\n","var t=[\"Shift\",\"Meta\",\"Alt\",\"Control\"],e=\"object\"==typeof navigator?navigator.platform:\"\",n=/Mac|iPod|iPhone|iPad/.test(e),r=n?\"Meta\":\"Control\",o=\"Win32\"===e?[\"Control\",\"Alt\"]:n?[\"Alt\"]:[];function i(t,e){return\"function\"==typeof t.getModifierState&&(t.getModifierState(e)||o.includes(e)&&t.getModifierState(\"AltGraph\"))}function a(t){return t.trim().split(\" \").map(function(t){var e=t.split(/\\b\\+/),n=e.pop();return[e=e.map(function(t){return\"$mod\"===t?r:t}),n]})}function u(e,n){var r;void 0===n&&(n={});var o=null!=(r=n.timeout)?r:1e3,u=Object.keys(e).map(function(t){return[a(t),e[t]]}),c=new Map,f=null;return function(e){e instanceof KeyboardEvent&&(u.forEach(function(n){var r=n[0],o=n[1],a=c.get(r)||r;!function(e,n){return!(n[1].toUpperCase()!==e.key.toUpperCase()&&n[1]!==e.code||n[0].find(function(t){return!i(e,t)})||t.find(function(t){return!n[0].includes(t)&&n[1]!==t&&i(e,t)}))}(e,a[0])?i(e,e.key)||c.delete(r):a.length>1?c.set(r,a.slice(1)):(c.delete(r),o(e))}),f&&clearTimeout(f),f=setTimeout(c.clear.bind(c),o))}}function c(t,e,n){var r;void 0===n&&(n={});var o=null!=(r=n.event)?r:\"keydown\",i=u(e,n);return t.addEventListener(o,i),function(){t.removeEventListener(o,i)}}export{u as createKeybindingsHandler,a as parseKeybinding,c as tinykeys};\n//# sourceMappingURL=tinykeys.module.js.map\n","import {tinykeys, createKeybindingsHandler, type KeyBindingMap, type KeyBindingHandlerOptions} from 'tinykeys';\nimport {$, type Selector, Cash} from '../cash';\n\nexport type HotkeysBindingOptions = KeyBindingHandlerOptions & {\n scope?: string;\n event?: 'keydown' | 'keyup' | 'keypress';\n when?: (event: KeyboardEvent) => boolean;\n};\n\nexport type HotkeysBindingMap = KeyBindingMap;\n\nexport type HotkeyBindingCallback = (event: KeyboardEvent) => void;\n\nexport type HotkeySetting = {\n keys: string | string[];\n handler: HotkeyBindingCallback;\n optional?: boolean;\n};\n\nexport type HotkeyName = string;\n\nexport type HotkeysMap = Record;\n\nexport type HotkeysSettings = boolean | Record;\n\nexport function getHotkeysMap(settings: HotkeysSettings, defaultMap: HotkeysMap = {}): HotkeysBindingMap | undefined {\n if (!settings) {\n return;\n }\n\n const map = Object.keys(defaultMap).reduce((currentMap, name) => {\n if (!defaultMap[name].optional) {\n currentMap[name] = {\n ...defaultMap[name],\n };\n }\n return currentMap;\n }, {});\n Object.keys(settings).forEach((name) => {\n const setting = (settings as Record)[name];\n if (!setting) {\n delete map[name];\n } else if (setting === true) {\n if (defaultMap[name]) {\n map[name] = {\n ...defaultMap[name],\n };\n }\n } else {\n map[name] = setting;\n }\n });\n\n return Object.keys(map).reduce((bindingMap, name) => {\n const {keys, handler} = map[name];\n if (typeof keys === 'string') {\n bindingMap[keys] = handler;\n } else {\n keys.forEach((key) => {\n bindingMap[key] = handler;\n });\n }\n return bindingMap;\n }, {});\n}\n\nexport function bindHotkeys(selector: Selector, bindingMap: HotkeysBindingMap, options?: HotkeysBindingOptions) {\n const {timeout, event = 'keydown', scope, when} = options || {};\n const handler = createKeybindingsHandler(bindingMap, {timeout});\n const namespace = `.zui.hotkeys${scope ? `.${scope}` : ''}`;\n const composingDataKey = 'zui-hotkeys-composing';\n return $(selector).on(`${event}${namespace}`, function (e: KeyboardEvent) {\n if (when && when(e) === false) {\n return;\n }\n if ($(e.target as HTMLElement).data(composingDataKey)) {\n return;\n }\n handler(e);\n }).on(`compositionstart${namespace}`, (e: Event) => {\n $(e.target as HTMLElement).data(composingDataKey, true);\n }).on(`compositionend${namespace}`, (e: Event) => {\n $(e.target as HTMLElement).removeData(composingDataKey);\n });\n}\n\nexport function unbindHotkeys(selector: Selector, scope?: string) {\n return $(selector).off(`.zui.hotkeys${scope ? `.${scope}` : ''}`);\n}\n\nexport const hotkeys = tinykeys;\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n hotkeys(bindingMap: HotkeysBindingMap, options?: HotkeysBindingOptions): void;\n\n unbindHotkeys(scope?: string): void;\n }\n\n interface Cash {\n hotkeys(bindingMap: HotkeysBindingMap, options?: HotkeysBindingOptions): Cash;\n\n unbindHotkeys(scope?: string): Cash;\n }\n}\n\n/* Extend $.fn.hotkeys(). */\n$.fn.hotkeys = function (this: Cash, bindingMap: HotkeysBindingMap, options?: HotkeysBindingOptions): Cash {\n return bindHotkeys(this, bindingMap, options);\n};\n\n/* Extend $.fn.unbindHotkeys. */\n$.fn.unbindHotkeys = function (this: Cash, scope?: string): Cash {\n return unbindHotkeys(this, scope);\n};\n\n/* Extend $.hotkeys(). */\n$.hotkeys = function (bindingMap: HotkeysBindingMap, options?: HotkeysBindingOptions): void {\n bindHotkeys(window, bindingMap, options);\n};\n\n/* Extend $.unbindHotkeys. */\n$.unbindHotkeys = function (scope?: string): void {\n unbindHotkeys(window, scope);\n};\n","import {$, Cash, type Selector} from '../cash';\n\nexport type EnterFullscreenOptions = {\n target: Selector;\n onError?: (error: Error) => void;\n onSuccess?: () => void;\n afterEnter?: (event: Event) => void;\n afterExit?: (event: Event) => void;\n};\n\nexport function getFullscreenElement() {\n return document.fullscreenElement || (document as {webkitFullscreenElement?: typeof document.fullscreenElement}).webkitFullscreenElement || (document as {mozFullScreenElement?: typeof document.fullscreenElement}).mozFullScreenElement;\n}\n\nexport async function enterFullscreen(options: Selector | EnterFullscreenOptions) {\n if (typeof options === 'string' || options instanceof Element || options instanceof $) {\n options = {target: options as Selector};\n }\n const {target, onError, onSuccess, afterExit, afterEnter} = options as EnterFullscreenOptions;\n const $target = $(target);\n const element = $target[0] as Element;\n if (!element) {\n return;\n }\n const requestMethod = element.requestFullscreen || (element as {webkitRequestFullscreen?: typeof element.requestFullscreen}).webkitRequestFullscreen || (element as {mozRequestFullScreen?: typeof element.requestFullscreen}).mozRequestFullScreen;\n if (!requestMethod) {\n onError?.call(element, new Error('[ZUI] The browser does not support full screen feature.'));\n return;\n }\n\n try {\n await requestMethod.call(element);\n onSuccess?.call(element);\n $(element).off('.zui.fullscreen');\n if (afterExit) {\n $target.on('exitFullscreen.zui.fullscreen', afterExit);\n }\n if (afterEnter) {\n $target.on('enterFullscreen.zui.fullscreen', afterEnter);\n }\n } catch (error) {\n onError?.call(element, error as Error);\n }\n\n if (!(document as {zuiBindFullscreenChange?: boolean}).zuiBindFullscreenChange) {\n (document as {zuiBindFullscreenChange?: boolean}).zuiBindFullscreenChange = true;\n $(document).on('fullscreenchange.zui webkitfullscreenchange.zui mozfullscreenchange.zui', (event) => {\n const fullscreenElement = getFullscreenElement();\n let triggerElement: Element | Document | null | undefined = fullscreenElement;\n if (fullscreenElement) {\n $(fullscreenElement).addClass('is-in-fullscreen');\n } else {\n triggerElement = $(document).find('.is-in-fullscreen')[0] || document;\n $(triggerElement).removeClass('is-in-fullscreen');\n }\n $('body').toggleClass('has-in-fullscreen', !!fullscreenElement);\n const data = {event, target: triggerElement, fullscreenElement};\n $(triggerElement).trigger(fullscreenElement ? 'enterFullscreen' : 'exitFullscreen', data).trigger('toggleFullscreen', data);\n });\n }\n}\n\nexport async function toggleFullscreen(options?: Selector | EnterFullscreenOptions | false) {\n const fullscreenElement = getFullscreenElement();\n if (options === false) {\n if (!!fullscreenElement === options) {\n return options;\n }\n }\n\n if (fullscreenElement) {\n document.exitFullscreen();\n return false;\n }\n await enterFullscreen(options);\n return true;\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n fullscreen(this: Cash, options?: EnterFullscreenOptions | false): Promise;\n }\n\n interface CashStatic {\n getFullscreenElement: typeof getFullscreenElement;\n toggleFullscreen: typeof toggleFullscreen;\n }\n}\n\n/** Extend the $.fn.fullscreen. */\n$.fn.fullscreen = function (this: Cash, options?: EnterFullscreenOptions | false) {\n return toggleFullscreen({\n target: this,\n ...options,\n });\n};\n\n/** Extend the $.getFullscreenElement. */\n$.getFullscreenElement = getFullscreenElement;\n\n/** Extend the $.toggleFullscreen. */\n$.toggleFullscreen = toggleFullscreen;\n","import {$, Cash} from '../cash';\n\n/**\n * Check whether the element is detached from document.\n * @param element The element to check.\n * @returns Whether the element is detached from document.\n */\nexport function isElementDetached(element?: Node): boolean {\n if (!element || element.parentNode === document) {\n return false;\n }\n if (!element.parentNode) {\n return true;\n }\n return isElementDetached(element.parentNode);\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n isDetached(element: Node): boolean;\n }\n\n interface Cash {\n isDetached(): boolean;\n }\n}\n\n/* Extend $.isDetached. */\n$.isDetached = isElementDetached;\n\n/* Extend as $.fn.isDisabled(). */\n$.fn.isDetached = function (this: Cash) {\n const element = this[0];\n return !element || isElementDetached(element);\n};\n","import {I18nLangMap, i18n} from '../i18n';\nimport {$} from '../cash';\nimport {nextGid} from '../helpers';\nimport {isElementDetached} from '../dom/is-detached';\n\nimport type {Cash, Element, Selector} from '../cash';\nimport type {ComponentEventArgs, ComponentEventName, ComponentOptions, ComponentEvents, ComponentEventsDefnition, ComponentToggleConfig} from './types';\n\n/**\n * The event callback for component.\n */\nexport type ComponentEventCallback> = (event: N extends keyof HTMLElementEventMap ? HTMLElementEventMap[N] : Event, args: [Component, ComponentEventArgs]) => void | false;\n\n/**\n * The component base class.\n */\nexport class Component {\n /**\n * The default options.\n */\n static DEFAULT = {};\n\n /**\n * The component name.\n * It usually equals to the class name.\n * The name must be provided in subclass.\n */\n static NAME: string;\n\n /**\n * Whether the component supports multiple instances.\n */\n static MULTI_INSTANCE = false;\n\n /**\n * The component i18n data.\n * It will be merged with global i18n data.\n */\n static i18n: I18nLangMap | undefined;\n\n /**\n * The component toggle config.\n */\n static toggle: ComponentToggleConfig | undefined;\n\n /**\n * ZUI name\n */\n static get ZUI() {\n return this.NAME.replace(/(^[A-Z]+)/, (match) => match.toLowerCase());\n }\n\n /**\n * Component data key, like \"zui.menu\"\n */\n static get KEY(): `zui.${string}` {\n return `zui.${this.NAME}`;\n }\n\n /**\n * Component namespace, like \".zui.menu\"\n */\n static get NAMESPACE(): `.zui.${string}` {\n return `.zui.${this.ZUI}`;\n }\n\n /**\n * @deprecated Use ATTR_KEY instead.\n */\n static get DATA_KEY(): `data-zui-${string}` {\n return `data-zui-${this.NAME}`;\n }\n\n /**\n * Component attribute key, like \"z-use-menu\"\n */\n static get ATTR_KEY(): `z-use-${string}` {\n return `z-use-${this.NAME}`;\n }\n\n /**\n * The component default selector.\n */\n static get SELECTOR() {\n return `[${this.DATA_KEY}]`;\n }\n\n /**\n * Access to static properties via this.constructor.\n *\n * @see https://github.com/Microsoft/TypeScript/issues/3841#issuecomment-337560146\n */\n declare ['constructor']: typeof Component;\n\n /**\n * Store the component options.\n */\n private _options?: ComponentOptions;\n\n /**\n * Store the component element.\n */\n private _element?: U;\n\n /**\n * The component global ID.\n */\n private _gid: number;\n\n /**\n * The component key.\n */\n protected _key: string | number;\n\n /**\n * The component initialized flag.\n */\n private _inited = false;\n\n /**\n * Auto destroy flag.\n */\n private _autoDestory = 0;\n\n /**\n * The component destroyed flag.\n */\n protected _destroyed = false;\n\n /**\n * The component constructor.\n *\n * @param options The component initial options.\n */\n constructor(selector: Selector, options?: Partial>) {\n const {KEY, DATA_KEY, MULTI_INSTANCE, NAME, ATTR_KEY, ALL, TYPED_ALL} = this.constructor;\n\n if (!NAME) {\n throw new Error('[ZUI] The component must have a \"NAME\" static property.');\n }\n\n const $element = $(selector);\n if ($element.data(KEY) && !MULTI_INSTANCE) {\n throw new Error(`[ZUI] The component \"${NAME}\" has been initialized on element.`);\n }\n\n const element = $element[0] as U;\n const gid = nextGid();\n this._gid = gid;\n this._element = element;\n\n this.resetOptions(options);\n this._key = this.options.key ?? `__${gid}`;\n\n let all = ALL.get(element);\n if (all) {\n all.add(this);\n } else {\n all = new Set([this]);\n ALL.set(element, all);\n }\n\n if (TYPED_ALL.has(NAME)) {\n TYPED_ALL.get(NAME)!.add(this);\n } else {\n TYPED_ALL.set(NAME, new Set([this]));\n }\n\n $element.data(KEY, this).attr(ATTR_KEY, '').attr(DATA_KEY, `${gid}`).attr('z-use', [...new Set([...all].map(x => x.constructor.NAME))].join(','));\n if (MULTI_INSTANCE) {\n const dataName = `${KEY}:ALL`;\n let instanceMap: Map | undefined = $element.data(dataName);\n if (!instanceMap) {\n instanceMap = new Map();\n $element.data(dataName, instanceMap);\n }\n instanceMap.set(this._key, this);\n }\n\n this.init();\n this.options.$onCreate?.call(this);\n requestAnimationFrame(async () => {\n this._inited = true;\n await this.afterInit();\n this.emit('inited', this.options);\n this.options.$onInited?.call(this);\n });\n }\n\n /**\n * Get the component initialized flag.\n */\n get inited() {\n return this._inited;\n }\n\n /**\n * Get the component destroyed flag.\n */\n get destroyed() {\n return this._destroyed;\n }\n\n /**\n * Get the component element.\n */\n get element() {\n return this._element!;\n }\n\n get key() {\n return this._key;\n }\n\n /**\n * Get the component options.\n */\n get options() {\n return this._options!;\n }\n\n /**\n * Get the component global id.\n */\n get gid() {\n return this._gid;\n }\n\n /**\n * Get the component element as a jQuery like object.\n */\n get $element() {\n return $(this.element);\n }\n\n /**\n * Get the component event emitter.\n */\n get $emitter() {\n return this.$element;\n }\n\n /**\n * Get the component i18n data.\n */\n get i18nData(): (I18nLangMap | undefined)[] {\n return [this.options.i18n, this.constructor.i18n];\n }\n\n /**\n * Initialize the component.\n */\n init() {}\n\n /**\n * Do something after the component initialized.\n */\n afterInit(): void | Promise {}\n\n /**\n * Render the component.\n *\n * @param options The component options to override before render.\n */\n render(options?: Partial>, reset?: boolean) {\n this.setOptions(options, reset);\n }\n\n /**\n * Destroy the component.\n */\n destroy() {\n const {KEY, DATA_KEY, ALL, TYPED_ALL, NAME, MULTI_INSTANCE, ATTR_KEY} = this.constructor;\n const {$element, element} = this;\n\n (this.emit as ((event: string, ...args: unknown[]) => void))('destroyed');\n\n this._destroyed = true;\n\n $element\n .off(this.namespace)\n .removeData(KEY)\n .removeAttr(ATTR_KEY)\n .removeAttr(DATA_KEY);\n\n if (MULTI_INSTANCE) {\n const map = this.$element.data(`${KEY}:ALL`) as Map>;\n if (map) {\n map.delete(this._key);\n if (map.size === 0) {\n this.$element.removeData(`${KEY}:ALL`);\n } else {\n const nextInstance = map.values().next().value;\n $element.data(KEY, nextInstance).attr(DATA_KEY, String(nextInstance?.gid));\n }\n }\n }\n\n const map = ALL.get(element);\n if (map) {\n map.delete(this);\n if (map.size === 0) {\n ALL.delete(element);\n }\n }\n\n const typedMap = TYPED_ALL.get(NAME);\n if (typedMap) {\n typedMap.delete(this);\n if (typedMap.size === 0) {\n TYPED_ALL.delete(NAME);\n }\n }\n\n const useAll = ALL.get(element);\n if (!useAll?.size) {\n $element.removeAttr('z-use');\n } else {\n $element.attr('z-use', [...new Set([...useAll].map(x => x.constructor.NAME))].join(','));\n }\n\n this.options.$onDestroy?.call(this);\n }\n\n /**\n * Auto destroy the component when detached.\n */\n autoDestroy(delay = 100) {\n if (this._autoDestory) {\n clearTimeout(this._autoDestory);\n }\n this._autoDestory = window.setTimeout(() => {\n this._autoDestory = 0;\n if (isElementDetached(this.element)) {\n this.destroy();\n }\n }, delay);\n }\n\n /**\n * Set the component options.\n *\n * @param options The component options to set.\n * @returns The component options.\n */\n setOptions(options?: Partial>, reset?: boolean): ComponentOptions {\n if (reset) {\n const finalOptions = {\n ...this.constructor.DEFAULT,\n ...(options?.$optionsFromDataset !== false ? this.$element.dataset() : {}),\n ...options,\n } as ComponentOptions;\n const {$options} = finalOptions;\n if ($options) {\n const extraOptions = typeof $options === 'function' ? $options.call(this, this.element, finalOptions) : $options;\n if (extraOptions) {\n $.extend(finalOptions, extraOptions);\n }\n delete finalOptions.$options;\n }\n this._options = finalOptions;\n } else if (options) {\n $.extend(this._options, options);\n }\n return this._options!;\n }\n\n resetOptions(options?: Partial>) {\n return this.setOptions(options, true);\n }\n\n /**\n * Emit a component event.\n * @param event The event name.\n * @param args The event arguments.\n */\n emit>(event: N, ...args: ComponentEventArgs): Event {\n const eventObject = $.Event(event);\n (eventObject as unknown as {__src?: unknown}).__src = this;\n this.$emitter.trigger(eventObject, [this, ...args]);\n return eventObject as unknown as Event;\n }\n\n /**\n * Listen to a component event.\n *\n * @param event The event name.\n * @param callback The event callback.\n */\n on>(event: N | (string & {}), callback: ComponentEventCallback, options?: {once?: boolean}) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const component = this;\n this.$element[options?.once ? 'one' : 'on'](this._wrapEvent(event), function (this: Component, e: N extends keyof HTMLElementEventMap ? HTMLElementEventMap[N] : Event, info: [Component, ComponentEventArgs]) {\n if (!(e as {__src?: unknown}).__src || (e as {__src?: unknown}).__src === component) {\n callback.call(this, e, info);\n }\n });\n }\n\n /**\n * Listen to a component event.\n *\n * @param event The event name.\n * @param callback The event callback.\n */\n one>(event: N, callback: ComponentEventCallback) {\n this.on(event, callback, {once: true});\n }\n\n /**\n * Stop listening to a component event.\n * @param event The event name.\n * @param callback The event callback.\n */\n off>(event: N | (string & {})) {\n this.$element.off(this._wrapEvent(event));\n }\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param defaultValue The default value if the key is not found.\n */\n i18n(key: string, defaultValue?: string): string;\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param args The i18n arguments.\n * @param defaultValue The default value if the key is not found.\n */\n i18n(key: string, args?: (string | number)[], defaultValue?: string): string;\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param args The i18n arguments.\n * @param defaultValue The default value if the key is not found.\n */\n i18n(key: string, args?: Record, defaultValue?: string): string;\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param args The i18n arguments or the default value.\n * @param defaultValue The default value if the key is not found.\n * @returns The i18n text.\n */\n i18n(key: string, args?: string | (string | number)[] | Record, defaultValue?: string): string {\n const {i18nData} = this;\n return i18n(i18nData, key, args, defaultValue, this.options.lang, this.constructor.NAME)\n ?? i18n(i18nData, key, args, defaultValue, this.options.lang)\n ?? `{i18n:${key}}`;\n }\n\n /**\n * Get event namespace.\n * @returns Event namespace.\n */\n get namespace(): `.zui.${string}` {\n return `${this.constructor.NAMESPACE}.${this._key}`;\n }\n\n /**\n * Wrap event names with component namespace.\n *\n * @param names The event names.\n * @returns The wrapped event names.\n */\n protected _wrapEvent(names: string) {\n return names.split(' ').map(name => name.includes('.') ? name : `${name}${this.namespace}`).join(' ');\n }\n\n static ALL = new Map>();\n\n static TYPED_ALL = new Map>();\n\n /**\n * Get the component instance of the given element.\n *\n * @param this Current component constructor.\n * @param selector The component element selector.\n * @returns The component instance.\n */\n static get>(this: T, selector: Selector, key?: string | number): InstanceType | undefined {\n const $element = $(selector);\n if (this.MULTI_INSTANCE && key !== undefined) {\n const instanceMap = $element.data(`${this.KEY}:ALL`);\n if (instanceMap) {\n return instanceMap.get(key);\n }\n return;\n }\n return $element.data(this.KEY);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static isValid>(this: T, _instance: InstanceType): boolean {\n return true;\n }\n\n /**\n * Ensure the component instance of the given element.\n *\n * @param this Current component constructor.\n * @param selector The component element selector.\n * @param options The component options.\n * @returns The component instance.\n */\n static ensure>(this: T, selector: Selector, options?: Partial>): InstanceType {\n const instance = this.get(selector, options?.key);\n if (instance) {\n if (this.isValid(instance)) {\n if (options) {\n instance.setOptions(options);\n }\n return instance;\n } else {\n instance.destroy();\n }\n }\n return new this(selector, options) as InstanceType;\n }\n\n /**\n * Get all component instances.\n *\n * @param this Current component constructor.\n * @param selector The component element selector.\n * @returns All component instances.\n */\n static getAll>(this: T, selector?: Selector, filter?: (instance: InstanceType) => boolean): InstanceType[] {\n const {SELECTOR, ALL, TYPED_ALL} = this;\n const list: InstanceType[] = [];\n const checkInstance = (instance: Component) => {\n if (instance instanceof this && (!filter || filter(instance as InstanceType) !== false)) {\n list.push(instance as InstanceType);\n }\n };\n if (selector) {\n $(selector)\n .find(SELECTOR)\n .each((_, element) => {\n ALL.get(element)?.forEach(checkInstance);\n });\n } else if (this !== Component) {\n TYPED_ALL.get(this.NAME)?.forEach(checkInstance);\n } else {\n ALL.forEach((components) => {\n components.forEach(checkInstance);\n });\n }\n return list.sort((a, b) => a.gid - b.gid);\n }\n\n /**\n * Query the component instance.\n *\n * @param this Current component constructor.\n * @param selector The component element selector.\n * @returns The component instance.\n */\n static query>(this: T, selector?: Selector, key?: string | number, filter?: (instance: InstanceType) => boolean): InstanceType | undefined {\n if (selector === undefined) {\n return this.getAll(undefined, filter).pop();\n }\n return this.get($(selector).closest(this.SELECTOR), key);\n }\n\n /**\n * Create cash fn.method for current component.\n *\n * @param name The method name.\n */\n static defineFn(name?: string) {\n let fnName = (name || this.ZUI) as keyof Cash;\n if ($.fn[fnName]) {\n fnName = `zui${this.NAME}` as keyof Cash;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const ZUIComponent = this;\n $.fn.extend({\n [fnName](options: Partial> | string, ...args: unknown[]) {\n const initOptions = typeof options === 'object' ? options : undefined;\n const callMethod = typeof options === 'string' ? options : undefined;\n let callResult: unknown;\n this.each((_: number, element: Element) => {\n let instance = ZUIComponent.get(element);\n if (instance) {\n if (initOptions) {\n instance.render(initOptions);\n }\n } else if (callMethod) {\n return;\n } else {\n instance = new ZUIComponent(element, initOptions);\n }\n if (callMethod) {\n let method: ((...args: unknown[]) => void) = (instance as unknown as Record void>)[callMethod];\n let callThis: unknown = instance;\n if (method === undefined) {\n callThis = (instance as unknown as {$: Record void>}).$;\n method = (callThis as Record void>)[callMethod as string];\n }\n if (typeof method === 'function') {\n callResult = method.call(callThis, ...args);\n } else {\n callResult = method;\n }\n }\n });\n return callResult !== undefined ? callResult : this;\n },\n });\n }\n\n static map = new Map();\n\n static toggleMap = new Map();\n\n static register(ComponentClass?: typeof Component, name?: string) {\n ComponentClass = ComponentClass || this;\n name = (name ?? ComponentClass.NAME).toLowerCase();\n this.map.set(name, ComponentClass);\n\n const toggleName = ComponentClass.toggle?.name?.toLowerCase();\n if (toggleName && toggleName !== name) {\n this.toggleMap.set(toggleName, ComponentClass);\n }\n }\n}\n","import {$, Cash, Selector} from '../cash';\nimport {type GetLibOptions} from '../dom';\nimport {evalValue} from '../helpers';\nimport {storeData, takeData} from '../helpers/data';\nimport {getZData} from '../helpers/z';\nimport {Component} from './component';\n\nimport type {ComponentOptions} from './types';\n\nexport type ComponentClass = typeof Component;\n\nexport type ComponentCreateOptions = ComponentOptions & {\n $update?: boolean | 'reset';\n $reset?: boolean;\n};\n\nexport type ZUIInitOptions = {\n update?: boolean | 'reset';\n runJS?: boolean;\n beforeCreate?: BeforeCreateCallback;\n onCreate?: OnCreateCallback;\n};\n\nexport function getComponent(name: string): ComponentClass | undefined {\n return Component.map.get(name.toLowerCase());\n}\n\nexport function create(name: string, element: HTMLElement, options: ComponentCreateOptions = {}) {\n let TheComponentClass = getComponent(name);\n if (!TheComponentClass) {\n TheComponentClass = initGlobalComponents(name);\n }\n if (!TheComponentClass) {\n return null;\n }\n const {$update, ...componentOptions} = options;\n if (!TheComponentClass.MULTI_INSTANCE) {\n const component = TheComponentClass.get(element);\n if (component) {\n if ($update) {\n component.render(componentOptions, $update === 'reset');\n }\n return component;\n }\n }\n return new TheComponentClass(element, componentOptions);\n}\n\nfunction createInAnimationFrame(name: string, element: HTMLElement, options: ComponentCreateOptions = {}) {\n requestAnimationFrame(() => create(name, element, options));\n}\n\nexport function registerComponent(component: ComponentClass, name?: string) {\n Component.register(component, name);\n}\n\nexport function initGlobalComponents(name?: string): ComponentClass | undefined {\n const {zui} = window as unknown as {zui: Record};\n if (!zui) {\n return;\n }\n name = name?.toLowerCase();\n for (const n in zui) {\n const isMatch = n.toLowerCase() === name;\n if (name && !isMatch) {\n continue;\n }\n const TheComponentClass = zui[n];\n if (typeof TheComponentClass !== 'function' || !TheComponentClass.NAME || !TheComponentClass.ZUI) {\n continue;\n }\n if (!Component.map.has(n.toLowerCase())) {\n registerComponent(TheComponentClass);\n }\n if (isMatch) {\n return TheComponentClass;\n }\n }\n}\n\nexport function defineFn(name?: string) {\n if (name) {\n getComponent(name)?.defineFn();\n } else if (!(window as unknown as {_zuiDefined: Record})._zuiDefined) {\n initGlobalComponents();\n Component.map.forEach((TheComponentClass) => {\n TheComponentClass.defineFn();\n });\n Object.assign(window, {_zuiDefined: true});\n }\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n zuiInit(this: Cash, options?: ZUIInitOptions): Cash;\n zui(this: Cash, name?: string, key?: string | number | true): ComponentClass | ComponentClass[] | Record | undefined;\n zuiCall(this: Cash, method: string, args?: unknown[]): Cash;\n }\n}\n\nexport type BeforeCreateCallback = (element: HTMLElement) => boolean | void;\n\nexport type OnCreateCallback = (name: string, options: Record) => false | Record | void;\n\n/**\n * Create zui component instance from elements which match [zui-create], [data-zui], [data-zui] is deprecated, use [zui-create] instead.\n * 为匹配 [zui-create], [data-zui] 的元素创建 zui 组件实例,[data-zui] 被弃用,优先使用 [zui-create]。\n *\n * @param element - The element to create zui components. 要创建 zui 组件的元素。\n * @param options - The options. 选项。\n *\n * @example\n * ```html\n *
    \n * \n * Create multiple components\n *\n *
    Deprecated usage
    \n * ```\n */\nfunction initCreators(element: HTMLElement, options: ZUIInitOptions = {}): void {\n const $element = $(element);\n let createNames = $element.attr('zui-create');\n const {update: $update, onCreate} = options;\n const createInstance = (name: string, createOptions?: Record) => {\n createOptions = {\n $update,\n $optionsFromDataset: false,\n ...createOptions,\n };\n if (onCreate) {\n const newCreateOptions = onCreate(name, createOptions);\n if (newCreateOptions === false) {\n return;\n }\n if (newCreateOptions) {\n createOptions = newCreateOptions;\n }\n }\n const $lib = createOptions.$lib as (GetLibOptions | undefined);\n if ($lib) {\n delete createOptions.$lib;\n $.getLib($lib).then(() => create(name, element, createOptions));\n return;\n }\n createInAnimationFrame(name, element, createOptions);\n };\n if (typeof createNames === 'string') {\n createNames = createNames.trim();\n const names = createNames.length ? createNames.split(',').map((name) => name.trim()) : [];\n const createOptionsMap = getZData(element, {prefix: 'zui-create-', evalValue: true})!;\n const createOptionsNames = Object.keys(createOptionsMap);\n if (!createOptionsNames.length && names.length === 1) {\n createInstance(names[0], $element.dataset());\n } else {\n const initedNames = new Set();\n [...names, ...createOptionsNames].forEach(name => {\n if (initedNames.has(name)) {\n return;\n }\n const createOptions = createOptionsMap[name] as ComponentCreateOptions | undefined;\n createInstance(name, createOptions);\n delete createOptionsMap[name];\n initedNames.add(name);\n });\n }\n } else {\n const initOptions = $element.dataset();\n const name = initOptions?.zui as string;\n if (!name) {\n return;\n }\n console.warn('[ZUI] create component instance with [data-zui] is deprecated, use [zui-create] instead.', {element, options});\n delete initOptions!.zui;\n createInstance(name, initOptions);\n }\n}\n\n/**\n * Bind toggle events.\n */\nfunction bindToggleEvents() {\n $(document).on('click.zui.toggle mouseenter.zui.toggle', '[data-toggle],[zui-toggle]', function (this: HTMLElement, event) {\n const $this = $(this);\n const toggleName = ($this.dataset('toggle') || $this.attr('zui-toggle')) as string;\n if (!toggleName) {\n return;\n }\n const TheComponentClass = Component.toggleMap.get(toggleName) || getComponent(toggleName);\n const toggleConfig = TheComponentClass?.toggle;\n if (!toggleConfig) {\n return;\n }\n\n const {trigger = 'click', skip = '[disabled],.disabled', check} = toggleConfig;\n const eventTriggerType = event.type === 'mouseover' ? 'hover' : 'click';\n if (!trigger.includes(eventTriggerType) || (check && !check.call(TheComponentClass, this, eventTriggerType, event)) || (skip && $this.is(skip))) {\n return;\n }\n\n const {onGet, onCreate, setOptions = true, getOptions, prevent = true, handler, onToggle, convertHref} = toggleConfig;\n let options = $this.dataset() as Record;\n const toggleOptions = $this.attr(`zui-toggle-${toggleName}`);\n if (toggleOptions) {\n options = $.extend(options, evalValue(toggleOptions));\n }\n if (convertHref && $this.is('a')) {\n const href = $this.attr('href');\n if (href) {\n const hrefMap = convertHref === true ? {selector: 'target', url: 'url'} : convertHref;\n if ('#.'.includes(href[0])) {\n if (hrefMap.selector && options[hrefMap.selector] === undefined) {\n options[hrefMap.selector] = href;\n }\n } else if (hrefMap.url && options[hrefMap.url] === undefined) {\n options[hrefMap.url] = href;\n }\n }\n }\n if (getOptions) {\n options = getOptions.call(TheComponentClass, this, options, event);\n }\n\n if (handler) {\n handler.call(TheComponentClass, this, options, eventTriggerType, event);\n if (prevent) {\n event.preventDefault();\n }\n return;\n }\n\n let component = onGet ? onGet.call(TheComponentClass, this) : TheComponentClass.get(this);\n if (!component) {\n const newComponent = onCreate ? onCreate.call(TheComponentClass, this, event, options) : (new TheComponentClass(this, options));\n if (!newComponent) {\n return;\n }\n component = newComponent;\n } else if (setOptions) {\n component.setOptions(options);\n }\n\n if (onToggle) {\n if (onToggle.call(TheComponentClass, component, this, event) === false) {\n return;\n }\n } else {\n const {shown, show, hide, toggle: toggleFunc} = component as unknown as {\n shown?: boolean,\n show?: () => void,\n hide?: () => void,\n toggle?: () => void,\n };\n\n let func: (() => void) | undefined;\n if (toggleFunc) {\n func = toggleFunc;\n } else if (show && hide) {\n if (shown) {\n func = hide;\n } else {\n func = show;\n }\n } else if (show) {\n func = show;\n }\n if (func) {\n func.call(component);\n } else {\n return;\n }\n }\n\n if (prevent) {\n event.preventDefault();\n }\n });\n}\n\nfunction getComponentsOnElement(element: HTMLElement, forEach?: (component: Component, dataKey: string) => void | boolean): Component[] {\n const data = takeData(element) as Record;\n const components: Component[] = [];\n Object.keys(data).forEach((dataKey) => {\n if (!dataKey.startsWith('zui.')) {\n return;\n }\n const component = data[dataKey] as Component;\n if (forEach?.(component, dataKey) === false) {\n return;\n }\n components.push(data[dataKey] as Component);\n });\n return components;\n}\n\nlet checkComponentsTimer = 0;\n\nfunction checkComponents(delay = 100) {\n if (checkComponentsTimer) {\n clearTimeout(checkComponentsTimer);\n }\n if (delay) {\n checkComponentsTimer = window.setTimeout(() => checkComponents(0), delay);\n return;\n }\n checkComponentsTimer = 0;\n Component.ALL.forEach((components) => {\n components.forEach((component) => component.autoDestroy());\n });\n}\n\nfunction autoDestroyComponents() {\n if (!document.body || takeData(document.body, '_autoDestoryMob')) {\n return;\n }\n const mob = new MutationObserver((mutations) => {\n let hasRemovedNodes = false;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length) {\n hasRemovedNodes = true;\n break;\n }\n }\n\n if (hasRemovedNodes) {\n checkComponents();\n }\n });\n mob.observe(document.body, {childList: true, subtree: true});\n storeData(document.body, '_autoDestoryMob', mob);\n}\n\nexport function init(element: Selector, options?: ZUIInitOptions) {\n const $element = $(element);\n $element.find('[zui-create],[data-zui]').each(function () {\n if (options?.beforeCreate?.(this) === false) {\n return;\n }\n initCreators(this, options);\n });\n $element.find('[zui-init]').each(function () {\n if (this.hasAttribute('z-zui-inited')) {\n return;\n }\n this.setAttribute('z-zui-inited', '');\n $.runJS(this.getAttribute('zui-init')!, ['$element', $(this)]);\n });\n $element.find('.hide-before-init').removeClass('invisible hidden opacity-0');\n $element.find('.scroll-into-view').scrollIntoView();\n $element.find('[data-on=\"inited\"],[zui-on-inited]').each((_, ele) => {\n const $ele = $(ele);\n if (!$ele.zui()) {\n $ele.trigger('inited');\n }\n });\n if (options?.runJS) {\n $element.runJS();\n }\n}\n\n/** Define the $.fn.zuiInit method. */\n$.fn.zuiInit = function (this: Cash, options?: ZUIInitOptions) {\n init(this, options);\n return this;\n};\n\n/** Define the $.fn.zui method. */\n$.fn.zui = function (this: Cash, name?: string | true, key?: string | number | true) {\n const element = this[0];\n if (!element) {\n return;\n }\n if (typeof name !== 'string') {\n const result: Record = {};\n let lastComponent: Component | undefined;\n getComponentsOnElement(element, (component, dataKey) => {\n result[dataKey] = component;\n if (!lastComponent || lastComponent.gid < component.gid) {\n lastComponent = result[dataKey];\n }\n });\n return name === true ? result : lastComponent;\n }\n const TheComponentClass = getComponent(name);\n if (!TheComponentClass) {\n return $(element).data(`zui.${name}`);\n }\n if (key === true) {\n return TheComponentClass.getAll(element);\n }\n return TheComponentClass.query(element, key);\n};\n\n$.fn.zuiCall = function (this: Cash, componentMethod: string, args: unknown[] = []) {\n this.each(function () {\n const parts = componentMethod.split('.');\n const name = parts.length > 1 ? parts[0] : undefined;\n const method = parts[parts.length > 1 ? 1 : 0];\n const component = $(this).zui(name) as (Component | undefined);\n const methodFunc = component?.[method as keyof Component];\n if (typeof methodFunc === 'function') {\n (methodFunc as ((...args: unknown[]) => void)).apply(component, args);\n }\n });\n return this;\n};\n\n$(() => {\n // Init zui creators and call [zui-init] code.\n $('body').zuiInit({update: true});\n\n // Bind toggle events.\n bindToggleEvents();\n\n // Auto destroy components when detached.\n autoDestroyComponents();\n});\n","import {Component} from '../component';\n\nexport type StickyOptions = {\n side?: 'top' | 'bottom';\n offset?: number;\n zIndex?: number;\n pinnedClass?: string;\n targets?: string;\n scrollContainer?: string;\n};\n\nexport class Sticky extends Component {\n static NAME = 'Sticky';\n\n protected declare _ob: IntersectionObserver;\n\n protected declare _container: HTMLElement;\n\n protected declare _scrollListener: () => void;\n\n protected declare _raf: number;\n\n init() {\n const {offset = 1, side, zIndex, pinnedClass = 'is-pinned', targets, scrollContainer} = this.options;\n const {$element} = this;\n const $targets = targets ? $element.find(targets) : $element;\n $targets.css({position: 'sticky', zIndex});\n if (side) $targets.css(side, -offset);\n\n if (scrollContainer) {\n const container = $element.closest(scrollContainer)[0] as HTMLElement;\n if (container) {\n const listener = () => {\n if (this._raf) {\n cancelAnimationFrame(this._raf);\n }\n this._raf = requestAnimationFrame(() => {\n this._raf = 0;\n if (container.scrollTop === 0 && (!side || side === 'top')) {\n $targets.toggleClass(pinnedClass, false);\n return;\n }\n const containerRect = container.getBoundingClientRect();\n $targets.each((_, target) => {\n const rect = target.getBoundingClientRect();\n const pinned = rect[side || 'top'] === containerRect[side || 'top'];\n target.classList.toggle(pinnedClass, pinned);\n });\n });\n };\n this._scrollListener = listener;\n container.addEventListener('scroll', listener);\n }\n this._container = container;\n } else {\n this._ob = new IntersectionObserver(\n (entries) => {\n entries.forEach(e => {\n e.target.classList.toggle(pinnedClass, e.intersectionRatio < offset);\n });\n },\n {threshold: [1]},\n );\n\n $targets.each((_, e) => this._ob.observe(e));\n }\n }\n\n destroy() {\n this._ob?.disconnect();\n if (this._container) {\n this._container.removeEventListener('scroll', this._scrollListener);\n if (this._raf) {\n cancelAnimationFrame(this._raf);\n }\n }\n }\n}\n","export type DateLike = Date | number | string;\n\nexport type DurationType = 'day' | 'month' | 'year' | 'week' | 'hour' | 'minute' | 'second';\n\nexport type DateFormatter = (date: Date) => string;\n\n/**\n * 一天的总毫秒数\n */\nexport const TIME_DAY = 24 * 60 * 60 * 1000;\n\n/**\n * 创建一个 Date 对象\n * @param date 用于创建 Date 对象的日期时间表达值,如果留空则创建当前系统时间对象\n * @returns 日期时间对象\n */\nexport const createDate = (date?: DateLike): Date => {\n if (date === undefined) {\n return new Date();\n }\n if (date instanceof Date) {\n return date;\n }\n if (typeof date === 'string') {\n date = date.trim();\n if (/^\\d+$/.test(date)) {\n date = Number.parseInt(date, 10);\n }\n }\n if (typeof date === 'number' && date < 10000000000) {\n date *= 1000;\n }\n date = new Date(date);\n return date;\n};\n\nexport const addDate = (date: DateLike, value: number | string, type: DurationType = 'day'): Date => {\n if (typeof value === 'string') {\n const count = Number.parseInt(value, 10);\n type = value.replace(count.toString(), '') as DurationType;\n value = count;\n }\n date = new Date(createDate(date).getTime());\n if (type === 'month') {\n date.setMonth(date.getMonth() + value);\n } else if (type === 'year') {\n date.setFullYear(date.getFullYear() + value);\n } else if (type === 'week') {\n date.setDate(date.getDate() + value * 7);\n } else if (type === 'hour') {\n date.setHours(date.getHours() + value);\n } else if (type === 'minute') {\n date.setMinutes(date.getMinutes() + value);\n } else if (type === 'second') {\n date.setSeconds(date.getSeconds() + value);\n } else {\n date.setDate(date.getDate() + value);\n }\n return date;\n};\n\n/**\n * 判断两个日期是否是在同一天\n * @param date1 第一个日期时间表达值\n * @param date2 第二个日期时间表达值,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示两个日期是同一天\n */\nexport const isSameDay = (date1: DateLike, date2: DateLike = new Date()): boolean => {\n return createDate(date1).toDateString() === createDate(date2).toDateString();\n};\n\n/**\n * 判断两个日期是否是在同一年\n * @param date1 第一个日期时间表达值\n * @param date2 第二个日期时间表达值,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示两个日期是同一年\n */\nexport const isSameYear = (date1: DateLike, date2: DateLike = new Date()): boolean => createDate(date1).getFullYear() === createDate(date2).getFullYear();\n\n/**\n * 判断两个日期是否是在同一个月\n * @param date1 第一个日期时间表达值\n * @param date2 第二个日期时间表达值,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示两个日期是同一月\n */\nexport const isSameMonth = (date1: DateLike, date2: DateLike = new Date()): boolean => {\n date1 = createDate(date1);\n date2 = createDate(date2);\n return date1.getFullYear() === date2.getFullYear()\n && date1.getMonth() === date2.getMonth();\n};\n\n/**\n * 判断两个日期是否是在同一个周(周一为第一天)\n * @param date1 第一个日期时间表达值\n * @param date2 第二个日期时间表达值,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示两个日期是同一周\n */\nexport const isSameWeek = (date1: DateLike, date2: DateLike = new Date()): boolean => {\n date1 = createDate(date1);\n date2 = createDate(date2);\n const oneDayTime = 1000 * 60 * 60 * 24;\n const weeks1 = Math.floor(date1.getTime() / oneDayTime);\n const weeks2 = Math.floor(date2.getTime() / oneDayTime);\n // 1970-1-1 是周四\n return Math.floor((weeks1 + 4) / 7) === Math.floor((weeks2 + 4) / 7);\n};\n\n/**\n * 判断指定的日期是否是在今天\n * @param date 要判断的日期时间表达值\n * @param now 作为今天判断依据的日期,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示是今天\n */\nexport const isToday = (date: DateLike, now?: DateLike): boolean => isSameDay(createDate(now), date);\n\n/**\n * 判断指定的日期是否是在昨天\n * @param date 要判断的日期时间表达值\n * @param now 作为今天判断依据的日期,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示是昨天\n */\nexport const isYesterday = (date: DateLike, now?: DateLike): boolean => isSameDay(createDate(now).getTime() - TIME_DAY, date);\n\n/**\n * 判断指定的日期是否是在明天\n * @param date 要判断的日期时间表达值\n * @param now 作为今天判断依据的日期,如果留空则使用当前系统时间\n * @returns 如果为 `true` 则表示是明天\n */\nexport const isTomorrow = (date: DateLike, now?: DateLike): boolean => isSameDay(createDate(now).getTime() + TIME_DAY, date);\n\n/**\n * 判断指定的日期是否合法。\n *\n * @param date 要判断的日期时间表达值。\n * @returns 如果为 `true` 则表示是合法的日期时间表达值。\n */\nexport const isValidDate = (date: DateLike): boolean => date !== undefined && date !== null && !isNaN(createDate(date).getTime());\n\n/**\n * 格式化日期时间值为字符串,所有可用的格式化参数有:\n * - yyyy,例如:'2018',表示四位数字表示的年份\n * - yy,例如:'18',表示两位数字表示的年份\n * - MM,例如:'07',表示两位数字表示的月份,不足两位在起始用 0 填充\n * - M,例如:'10',表示一位或两位数字表示的月份\n * - dd,例如:'05',表示两位数字表示的日期,不足两位在起始用 0 填充\n * - d,例如:'5',表示一位或两位数字表示的日期\n * - hh,例如:'08',表示两位数字表示的小时,不足两位在起始用 0 填充\n * - h,例如:'8',表示一位或两位数字表示的小时\n * - mm,例如:'03',表示两位数字表示的分钟,不足两位在起始用 0 填充\n * - m,例如:'3',表示一位或两位数字表示的分钟\n * - ss,例如:'05',表示两位数字表示的秒数,不足两位在起始用 0 填充\n * - s,例如:'5',表示一位或两位数字表示的秒数\n * - S,例如:'236',表示毫秒数\n * - SSS,例如:'036',表示毫秒数,不足3位在起始用 0 填充\n * @summary 格式化日期时间值为字符串\n * @param date 要格式化的日期时间表达值\n * @param format 格式化字符串\n * @returns 日期时间格式化文本\n */\nexport const formatDate = (date: DateLike, format: string | DateFormatter = 'yyyy-MM-dd hh:mm', invalidDateValue = ''): string => {\n date = createDate(date);\n if (!isValidDate(date)) {\n return invalidDateValue;\n }\n\n if (typeof format === 'function') {\n return format(date);\n }\n\n const dateInfo = {\n 'M+': date.getMonth() + 1,\n 'd+': date.getDate(),\n 'h+': date.getHours(),\n 'H+': date.getHours() % 12,\n 'm+': date.getMinutes(),\n 's+': date.getSeconds(),\n 'S+': date.getMilliseconds(),\n };\n if (/(y+)/i.test(format)) {\n if (format.includes('[yyyy-]')) {\n format = format.replace('[yyyy-]', isSameYear(date) ? '' : 'yyyy-');\n }\n format = format.replace(RegExp.$1, (`${date.getFullYear()}`).substring(4 - RegExp.$1.length));\n }\n Object.keys(dateInfo).forEach((k) => {\n if (new RegExp(`(${k})`).test(format as string)) {\n const str = `${dateInfo[k as keyof typeof dateInfo]}`;\n format = (format as string).replace(RegExp.$1, RegExp.$1.length === 1 ? str : (`00${str}`).substring(str.length));\n }\n });\n return format;\n};\n\n/**\n * 格式化日期时间范围\n * @param date1 起始时间\n * @param date2 结束时间\n * @param format 格式化参数\n * @returns 时间范围描述文本\n */\nexport const formatDateSpan = (date1: DateLike, date2: DateLike, format?: {full?: string; month?: string; day?: string; str?: string;}): string => {\n const finalFormat = {\n full: 'yyyy-M-d', month: 'M-d', day: 'd', str: '{0} ~ {1}', ...format,\n };\n\n const date1Str = formatDate(date1, isSameYear(date1) ? finalFormat.month : finalFormat.full);\n if (isSameDay(date1, date2)) {\n return date1Str;\n }\n const date2Str = formatDate(date2, isSameYear(date1, date2) ? (isSameMonth(date1, date2) ? finalFormat.day : finalFormat.month) : finalFormat.full);\n return finalFormat.str.replace('{0}', date1Str).replace('{1}', date2Str);\n};\n","export function getUniqueCode(str: string): number {\n let code = 0;\n if (typeof str !== 'string') str = String(str);\n if (str && str.length) {\n for (let i = 0; i < str.length; ++i) {\n code += (i + 1) * str.charCodeAt(i);\n }\n }\n return code;\n}\n","import {deepCall} from '@zui/helpers';\nimport {$, Cash, type Selector} from '../cash';\nimport {nextGid} from './gid';\n\nexport interface CommandContext {\n name: string,\n options?: Record,\n event?: Event,\n scope?: string,\n prevResult?: unknown,\n element?: HTMLElement,\n abort?: () => void,\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type CommandCallback = (context: CommandContext, params: any[]) => any;\n\nexport type CommandEventCallback = (event: Event, data: [context: CommandContext, params: unknown[]]) => void;\n\nexport type CommandsBindOptions = {\n scope?: string,\n events?: string,\n onCommand?: CommandCallback,\n commands?: Record,\n scoped?: boolean,\n};\n\nexport type CommandsBindInfo = CommandsBindOptions & {\n element: HTMLElement,\n gid: number,\n};\n\nexport interface CommandExecutionOptions {\n execute: (context: CommandContext, params: unknown[]) => unknown;\n event: Event;\n scope?: string;\n options?: Record;\n signal?: AbortSignal;\n}\n\nexport interface CommandExecuteInfo {\n name: string;\n scope: string;\n options: Record;\n params: unknown[];\n}\n\nexport interface CommandsExecuteInfo {\n async?: boolean;\n commands: CommandExecuteInfo[];\n}\n\nexport type CommandLike = string | CommandExecuteInfo | undefined;\n\nexport type CommandsLike = string | CommandsExecuteInfo | (string | CommandExecuteInfo)[];\n\nexport function parseCommand(commandLike: CommandLike): CommandExecuteInfo | undefined {\n if (!commandLike) {\n return;\n }\n if (typeof commandLike === 'object') {\n return commandLike;\n }\n commandLike = commandLike.replace(/^#/, '');\n if (!commandLike.length) {\n return;\n }\n if (!commandLike.startsWith('/')) {\n commandLike = `/${commandLike}`;\n }\n const url = new URL(window.location.origin + commandLike);\n const [, name = '', ...params] = url.pathname.split('/');\n let finalName = name.trim();\n if (!finalName.length) {\n return;\n }\n let scope = '';\n if (finalName.includes('~')) {\n [finalName, scope] = finalName.split('~');\n }\n return {\n name: finalName,\n scope,\n options: Object.fromEntries([...url.searchParams.entries()].map(([key, value]) => {\n try {\n if (value.includes('%')) {\n value = decodeURIComponent(value);\n }\n value = JSON.parse(value);\n // eslint-disable-next-line no-empty\n } catch (_) {}\n return [key, value];\n })),\n params: params.map((param) => {\n if (param === 'undefined') return undefined;\n if (param === 'null') return null;\n try {\n if (param.includes('%')) {\n param = decodeURIComponent(param);\n }\n return JSON.parse(param);\n } catch (_) {\n return param;\n }\n }),\n };\n}\n\nexport function parseCommands(commandsLike: CommandsLike): CommandsExecuteInfo {\n if (Array.isArray(commandsLike)) {\n return {commands: commandsLike.map(parseCommand).filter(Boolean) as CommandExecuteInfo[]};\n }\n if (typeof commandsLike === 'object') {\n return commandsLike;\n }\n commandsLike = commandsLike.replace(/^#!?/, '');\n const async = commandsLike.includes('>');\n const commands = commandsLike.split(async ? '>' : '|').map(parseCommand);\n return {\n async,\n commands: commands.filter(Boolean) as CommandExecuteInfo[],\n };\n}\n\n/**\n * 执行单个命令。\n * Execute single command.\n *\n * @param command 命令。 Command.\n * @param options 选项。 Options.\n * @returns 命令执行结果。 Command execution result.\n */\nexport function executeCommand(command: CommandLike, options: CommandExecutionOptions, prevResult?: unknown): unknown {\n if (typeof command === 'string') {\n command = parseCommand(command);\n }\n if (!command) {\n return;\n }\n const {execute, event, scope} = options;\n if (scope && command.scope && command.scope !== scope) {\n return;\n }\n return execute({\n name: command.name,\n options: {\n ...options.options,\n ...command.options,\n },\n event,\n scope: command.scope,\n prevResult,\n }, command.params);\n}\n\n/**\n * 执行命令行。\n * Execute command line.\n *\n * @param commands 命令行。 Command line.\n * @param context 上下文信息。 Context information.\n * @returns 命令执行结果。 Command execution result.\n */\nexport async function executeCommands(commands: CommandsLike, options: CommandExecutionOptions): Promise {\n const {async, commands: commandList} = parseCommands(commands);\n if (!commandList.length) {\n return [];\n }\n const {signal} = options;\n if (async) {\n const results = [];\n let result;\n for (const command of commandList) {\n if (!signal?.aborted) {\n break;\n }\n result = await executeCommand(command, options, result);\n if (signal?.aborted) {\n result = undefined;\n }\n results.push(result);\n }\n return results;\n }\n const results = await Promise.all(commandList.map(command => {\n if (signal?.aborted) {\n return;\n }\n return executeCommand(command, options);\n }));\n return results;\n}\n\nconst COMMAND_DATA_NAME = 'zui.commands';\nconst COMMANDS_ATTR = 'z-commands';\nconst COMMAND_PROXY_ATTR = 'zui-commands-proxy';\nconst COMMAND_ATTR = 'zui-command';\n\nexport function bindCommands(element?: Selector, options?: CommandsBindOptions | CommandCallback | string): void {\n if (typeof options === 'string') {\n options = {scope: options};\n } else if (typeof options === 'function') {\n options = {onCommand: options};\n }\n const {scope = '', events = 'click'} = options ?? {};\n const $element = $(element);\n const zCommands = ($element.attr(COMMANDS_ATTR) || '').split(',');\n if (scope && !zCommands.includes(scope)) {\n zCommands.push(scope);\n }\n $element.attr(COMMANDS_ATTR, zCommands.join(',')).data(COMMAND_DATA_NAME, {\n [scope]: {\n ...options,\n scope,\n events,\n gid: nextGid(),\n },\n ...$element.data(COMMAND_DATA_NAME),\n });\n}\n\nexport function unbindCommands(element: Selector, scopes: string | true = true): void {\n const $element = $(element);\n if (scopes === true) {\n $element.removeAttr(COMMANDS_ATTR);\n $element.removeData(COMMAND_DATA_NAME);\n } else if (scopes.length) {\n const boundCommands = $element.data(COMMAND_DATA_NAME) || {};\n scopes.split(',').forEach(scope => {\n delete boundCommands[scope];\n });\n const boundScopes = Object.keys(boundCommands);\n if (boundScopes.length) {\n $element.attr(COMMANDS_ATTR, boundScopes.join(',')).data(COMMAND_DATA_NAME, bindCommands);\n } else {\n unbindCommands($element, true);\n }\n }\n}\n\nfunction getCommandBindInfo($target: Cash, scope?: string): CommandsBindInfo | undefined {\n let $element = $target.closest(`[${COMMANDS_ATTR}]`);\n if (!$element.length) {\n const $proxy = $target.closest(`[${COMMAND_PROXY_ATTR}]`);\n if ($proxy.length) {\n $element = $($proxy.data('zui.commandProxy') || $proxy.attr('COMMAND_PROXY_ATTR')).closest(`[${COMMANDS_ATTR}]`);\n }\n }\n if (!$element.length) {\n return;\n }\n const commandsData = $element.data(COMMAND_DATA_NAME) || {};\n const boundCommands = Object.values(commandsData).sort((a, b) => (b.gid - a.gid));\n let commandInfo: CommandsBindInfo | undefined;\n if (scope?.length) {\n commandInfo = boundCommands.find(x => x.scope === scope);\n if (!commandInfo) {\n commandInfo = boundCommands.find(x => !x.scope?.length && !x.scoped);\n }\n return commandInfo;\n } else {\n commandInfo = boundCommands.find(x => !x.scope?.length && !x.scoped);\n if (!commandInfo) {\n commandInfo = boundCommands.find(x => !x.scoped);\n }\n }\n if (commandInfo) {\n commandInfo.element = $element[0] as HTMLElement;\n } else {\n commandInfo = getCommandBindInfo($target.parent(), scope);\n }\n return commandInfo;\n}\n\nfunction handleGlobalCommand(event: Event & {commandHandled?: boolean}) {\n if (!event.currentTarget) {\n return;\n }\n const $target = $(event.currentTarget as HTMLElement);\n if ($target.closest('.disabled,[disabled]').length) {\n return;\n }\n const commandLine = $target.attr(COMMAND_ATTR) || ($target.is('a[href^=\"#!\"]') ? $target.attr('href') : '');\n if (!commandLine) {\n return;\n }\n const abortController = new AbortController();\n const abort = () => abortController.abort();\n executeCommands(commandLine, {\n signal: abortController.signal,\n execute: (context, params) => {\n const {scope, name} = context;\n const finalContext = {\n ...context,\n abort,\n };\n let result;\n const bindInfo = getCommandBindInfo($target, scope);\n if (bindInfo) {\n finalContext.element = bindInfo.element;\n const onCommand = (bindInfo.commands ? (bindInfo.commands[`${scope}~${name}`] || bindInfo.commands[name]) : null) || bindInfo.onCommand;\n if (onCommand) {\n result = onCommand(finalContext, params);\n if (event.commandHandled) {\n return result;\n }\n }\n }\n\n const eventData = [finalContext, params];\n $target.trigger('command', eventData).trigger(`command:${scope ? `${name}.${scope}` : name}`, eventData);\n if (scope) {\n $target.trigger(`command:.${scope}`, eventData);\n }\n\n if (event.commandHandled) {\n return result;\n }\n\n if (scope === 'event') {\n if (name === 'stop') {\n event.stopPropagation();\n } else if (name === 'prevent') {\n event.preventDefault();\n } else {\n deepCall(event, name, params);\n }\n return;\n }\n if (scope === 'window') {\n return deepCall(window, name, params);\n }\n if (scope === 'zui') {\n return deepCall((window as unknown as {zui: object}).zui, name, params);\n }\n if (scope === 'target') {\n return deepCall($target[0] as HTMLElement, name, params);\n }\n if (scope === '$target') {\n return deepCall($target, name, params);\n }\n if (scope === '$') {\n return deepCall($, name, params);\n }\n\n return result;\n },\n event,\n });\n}\n\ndeclare module 'cash-dom' {\n interface Cash {\n command(this: Cash, scopedName: string, callback: CommandEventCallback): Cash;\n offCommand(this: Cash, scopedName: string, callback?: CommandEventCallback): Cash;\n\n commands(this: Cash, options?: CommandsBindOptions | CommandCallback | string): Cash;\n unbindCommands(this: Cash, scope?: string): Cash;\n }\n}\n\n$.fn.command = function (this: Cash, scopedName: string, callback: CommandEventCallback): Cash {\n return this.on(`command:${scopedName}`, callback);\n};\n\n$.fn.offCommand = function (this: Cash, scopedName: string, callback?: CommandEventCallback): Cash {\n return this.off(`command:${scopedName}`, callback as CommandEventCallback);\n};\n\n$.fn.commands = function (this: Cash, options?: CommandsBindOptions | CommandCallback | string): Cash {\n this.each((_, element) => bindCommands(element, options));\n return this;\n};\n\n$.fn.unbindCommands = function (this: Cash, scope?: string): Cash {\n this.each((_, element) => unbindCommands(element, scope));\n return this;\n};\n\n$(() => {\n $(document).on('click.zui.command', `[${COMMAND_ATTR}],a[href^=\"#!\"]`, handleGlobalCommand);\n});\n","import {$, Cash} from '../cash';\nimport {nextGid} from '.';\n\nimport type {Selector} from '../cash';\n\n/**\n * Run javascript in an element.\n *\n * @param selector Element selector to run.\n * @param jsCode If not set, run all scripts in the element.\n */\nexport function runJS(selector: Selector, jsCode?: string | null, removeAfterRun = false) {\n const $element = $(selector);\n if (jsCode !== undefined) {\n if (typeof jsCode === 'string' && jsCode.length) {\n const id = `zui-runjs-${nextGid()}`;\n $element.append(``);\n if (removeAfterRun) {\n $element.find(`#${id}`).remove();\n }\n }\n return;\n }\n if ($element.is('script')) {\n const code = $element[0]?.textContent;\n if (code) {\n runJS($element.parent(), code);\n }\n return;\n }\n $element.find('script').each((_, script) => {\n runJS($element, (script as HTMLScriptElement).textContent);\n script.remove();\n });\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n runJS(jsCode?: string): this;\n }\n\n interface CashStatic {\n runJS(jsCode: string, ...args: [name: string, value: unknown][]): T;\n }\n}\n\n/* Extend as $.runJS() */\n$.runJS = (jsCode: string, ...args: [name: string, value: unknown][]): T => {\n jsCode = jsCode.trim();\n if (!jsCode.startsWith('return ') && !jsCode.endsWith(';')) {\n jsCode = `return ${jsCode}`;\n }\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const func = new Function(...args.map(([name]) => name), jsCode);\n return func(...args.map(([, value]) => value));\n};\n\n/* Extend as $.fn.runJS() */\n$.fn.runJS = function (this: Cash, jsCode?: string) {\n return this.each((_, ele) => {\n runJS(ele, jsCode);\n });\n};\n","import {$, Cash, Selector, Comparator} from '../cash';\n\n/**\n * Options for {@link isVisible}.\n */\ntype ISVisibleOptions = {\n /** Whether to check if the element is fully visible. */\n fullyCheck?: boolean;\n viewport?: {left: number, top: number, width: number, height: number} | DOMRectReadOnly;\n container?: Comparator;\n checkZeroSize?: boolean;\n};\n\n/**\n * Check an element whethear is visible in the current viewport.\n *\n * @param selector Element selector to check.\n * @param options Options.\n * @returns True if the element is visible.\n * @see https://stackoverflow.com/a/26039199\n */\nexport function isVisible(selector: Selector, options: ISVisibleOptions = {}): boolean {\n const element = $(selector)[0];\n if (!element) {\n return false;\n }\n\n let {viewport} = options;\n const {left, top, width, height} = element.getBoundingClientRect();\n if (options.checkZeroSize && !(width * height)) {\n return false;\n }\n if (!viewport) {\n if (options.container) {\n viewport = $(element).closest(options.container)[0]!.getBoundingClientRect();\n } else {\n const {innerHeight, innerWidth} = window;\n const {clientHeight, clientWidth} = document.documentElement;\n viewport = {left: 0, top: 0, width: innerWidth || clientWidth, height: innerHeight || clientHeight};\n }\n }\n const {left: viewportLeft, top: viewportTop, width: viewportWidth, height: viewportHeight} = viewport;\n if (options.fullyCheck) {\n return (\n (left >= viewportLeft)\n && (top >= viewportTop)\n && ((left + width) <= (viewportWidth + viewportLeft))\n && ((top + height) <= (viewportHeight + viewportTop))\n );\n }\n // http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap\n const horInView = (left <= (viewportLeft + viewportWidth)) && ((left + width) >= viewportLeft);\n const vertInView = (top <= (viewportTop + viewportHeight)) && ((top + height) >= viewportTop);\n\n return vertInView && horInView;\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n isVisible(options?: ISVisibleOptions): boolean;\n }\n}\n\n/* Extend as $.fn.isVisible() */\n$.fn.isVisible = function (this: Cash, options?: ISVisibleOptions) {\n return isVisible(this, options);\n};\n","import {$, Cash, Selector, Comparator} from '../cash';\nimport {isVisible} from './is-visible';\n\n/**\n * Options for {@link scrollIntoView}.\n */\ntype CashScrollIntoViewOptions = ScrollIntoViewOptions & {\n ifNeeded?: boolean;\n container?: Comparator;\n};\n\nfunction hasScrollbar(element: HTMLElement, direction: 'vert' | 'horz' | 'both' = 'both') {\n if (direction === 'vert' || direction === 'both') {\n if (element.clientHeight < element.scrollHeight) {\n return true;\n }\n }\n\n if (direction === 'horz' || direction === 'both') {\n if (element.clientWidth < element.scrollWidth) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Scroll into view.\n *\n * @param selector Element selector to scroll into view.\n * @param options Options.\n * @returns True if the element is visible.\n * @see https://stackoverflow.com/a/26039199\n */\nexport function scrollIntoView(selector: Selector, options?: CashScrollIntoViewOptions): Cash {\n const $element = $(selector);\n const {ifNeeded = true, container, ...other} = options || {};\n $element.each((_, ele) => {\n if (container) {\n const $container = $(ele).closest(container);\n if (!$container.length || !hasScrollbar($container[0] as HTMLElement)) {\n return;\n }\n }\n if (ifNeeded) {\n if ((ele as unknown as {scrollIntoViewIfNeeded?: (options: ScrollIntoViewOptions) => void}).scrollIntoViewIfNeeded) {\n return (ele as unknown as {scrollIntoViewIfNeeded: (options: ScrollIntoViewOptions) => void}).scrollIntoViewIfNeeded(other);\n }\n if (isVisible(ele, {viewport: ele.getBoundingClientRect()})) {\n return;\n }\n }\n ele.scrollIntoView(other);\n });\n return $element;\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n scrollIntoView(options?: CashScrollIntoViewOptions): this;\n }\n}\n\n/* Extend as $.fn.scrollIntoView() */\n$.fn.scrollIntoView = function (this: Cash, options?: CashScrollIntoViewOptions) {\n return this.each((_, ele) => {\n scrollIntoView(ele, options);\n });\n};\n","import {$} from '../cash';\n\nexport type GetLibCallback = () => void;\n\nexport interface LoadJSOptions {\n src: string;\n id?: string;\n async?: boolean;\n defer?: boolean;\n noModule?: boolean;\n type?: string;\n integrity?: string;\n}\n\nexport interface LoadJSModuleOptions extends LoadJSOptions {\n type: 'module',\n imports?: string | Record;\n srcList?: {src: string, imports?: string | Record}[];\n globalVar?: boolean | string;\n resolve?: (result: T) => void;\n}\n\nexport interface LoadCSSOptions {\n src: string;\n id?: string;\n type?: 'css';\n}\n\nexport type GetLibOptions = {\n src: string | (string | LoadJSOptions | LoadCSSOptions)[];\n id?: string;\n async?: boolean;\n defer?: boolean;\n noModule?: boolean;\n type?: string;\n integrity?: string;\n name?: string;\n root?: string;\n css?: string;\n check?: string | boolean | (() => boolean | Promise);\n success?: GetLibCallback;\n};\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface CashStatic {\n libRoot?: string;\n\n libMap?: Record;\n\n setLibRoot(root: string): void;\n\n registerLib(name: string, options: GetLibOptions): void;\n\n getLib(options: GetLibOptions): Promise;\n getLib(src: string | string[]): Promise;\n getLib(src: string | string[], options: Omit): Promise;\n getLib(src: string | string[], callback: GetLibCallback): Promise;\n getLib(src: string | string[], options: GetLibCallback, callback?: GetLibCallback): Promise;\n getLib(optionsOrSrc: string | string[] | GetLibOptions, optionsOrCallback?: Omit | GetLibCallback, callback?: GetLibCallback): Promise;\n\n /**\n * @deprecated Use $.getLib instead.\n */\n getScript(optionsOrSrc: string | (GetLibOptions & {src: string}), optionsOrCallback?: Omit | GetLibCallback, callback?: GetLibCallback): Promise;\n }\n}\n\n/** Define the $.libRoot property. */\n$.setLibRoot = function (root: string): void {\n $.libRoot = root;\n};\n\n/** Define the $.libMap property. */\n$.registerLib = function (name: string, options: GetLibOptions): void {\n if (!$.libMap) {\n $.libMap = {};\n }\n if (!options.name && options.id) {\n options.id = `zui-lib-${name}`;\n }\n $.libMap[name] = options;\n};\n\n/**\n * Load a CSS file by append a link tag to the head.\n */\nexport function loadCSS(options: string | LoadCSSOptions): Promise {\n return new Promise((resolve, reject) => {\n if (typeof options === 'string') {\n options = {src: options};\n }\n const {src, id} = options;\n const $oldLinks = $(id ? `#${id}` : `link[href=\"${src}\"]`);\n if ($oldLinks.length) {\n resolve();\n return;\n }\n const link = document.createElement('link');\n link.onload = () => {\n resolve();\n };\n link.onerror = () => {\n reject(new Error(`[ZUI] Failed to load CSS from: ${src}`));\n };\n link.rel = 'stylesheet';\n link.href = src;\n if (id) {\n link.id = id;\n }\n $('head').append(link);\n });\n}\n\nexport function loadJS(options: string | LoadJSOptions): Promise {\n return new Promise((resolve, reject) => {\n if (typeof options === 'string') {\n options = {src: options};\n }\n const {src, id} = options;\n const $oldScripts = $(id ? `#${id}` : `script[src=\"${src}\"]`);\n if ($oldScripts.length) {\n if ($oldScripts.dataset('loaded')) {\n resolve();\n } else {\n const callbacks = $oldScripts.data('loadCalls') || [];\n callbacks.push(resolve);\n $oldScripts.data('loadCalls', callbacks);\n }\n return;\n }\n const {async = true, defer = false, noModule = false, type, integrity} = options;\n const script = document.createElement('script');\n script.async = async;\n script.defer = defer;\n script.noModule = noModule;\n if (type) {\n script.type = type;\n }\n if (integrity) {\n script.integrity = integrity;\n }\n\n script.onload = () => {\n resolve();\n const callbacks: GetLibCallback[] = $(script).dataset('loaded', true).data('loadCalls') || [];\n callbacks.forEach(x => x());\n $(script).removeData('loadCalls');\n };\n script.onerror = () => {\n reject(new Error(`[ZUI] Failed to load JS from: ${src}`));\n };\n $('head').append(script);\n script.src = src;\n });\n}\n\nexport function loadModule(options: string | LoadJSModuleOptions): Promise {\n return new Promise((resolve) => {\n if (typeof options === 'string') {\n options = {type: 'module', src: options};\n }\n const {src, imports, srcList = [], id} = options;\n if (src) {\n srcList.unshift({src, imports});\n }\n\n const srcListID = srcList.map(x => x.src).join(',');\n const $oldScripts = $(id ? `#${id}` : `script[data-src-list=\"${srcListID}\"]`);\n if ($oldScripts.length) {\n const moduleResult = $oldScripts.data('module');\n if (moduleResult) {\n resolve(moduleResult);\n } else {\n const callbacks = $oldScripts.data('resolves') || [];\n callbacks.push(resolve);\n $oldScripts.data('resolves', callbacks);\n }\n return;\n }\n const {async = true, defer = false, integrity, globalVar, resolve: resolveCallback} = options;\n const script = document.createElement('script');\n const resolveID = `zui-module-resolve-${$.guid++}`;\n const $script = $(script);\n Object.assign(window, {[resolveID]: (result: T) => {\n const scriptResolves: ((result: T) => void)[] = $script.data('module', result).data('resolves') || [];\n scriptResolves.forEach(x => x(result));\n $script.removeData('resolves');\n resolveCallback?.(result);\n resolve(result);\n delete (window as unknown as Record)[resolveID];\n }});\n script.async = async;\n script.defer = defer;\n script.type = 'module';\n $script.attr('data-src-list', srcListID).attr('data-resolve-id', resolveID);\n const importNames: string[] = [];\n script.text = [\n ...srcList.map(({src: importSrc, imports: importMap}) => {\n if (imports) {\n if (typeof importMap === 'string') {\n importNames.push(importMap);\n return `import * as ${importMap} from '${importSrc}';`;\n }\n if (importMap) {\n importNames.push(...Object.values(importMap));\n return `import {${Object.entries(importMap).map(([key, value]) => `${key} as ${value}`).join(',')}} from '${importSrc}';`;\n }\n }\n return `import '${importSrc}';`;\n }),\n `const zuiImportResult = {${importNames.map(x => `${x}: ${x},`)}};`,\n globalVar ? `Object.assign(window, ${globalVar === true ? 'zuiImportResult' : `{${globalVar}: zuiImportResult}`});` : '',\n `if(window['${resolveID}']) window['${resolveID}'](zuiImportResult);`,\n ].join('\\n');\n if (integrity) {\n script.integrity = integrity;\n }\n $('head').append(script);\n });\n}\n\n/** Define the $.getLib method. */\n$.getLib = async function (optionsOrSrc: string | string[] | GetLibOptions, optionsOrCallback?: Omit | GetLibCallback, callback?: GetLibCallback): Promise {\n if (typeof optionsOrSrc === 'string') {\n optionsOrSrc = ($.libMap?.[optionsOrSrc] || {src: optionsOrSrc}) as GetLibOptions;\n }\n let options: GetLibOptions = Array.isArray(optionsOrSrc) ? {src: optionsOrSrc} : $.extend({}, optionsOrSrc);\n if (typeof optionsOrCallback === 'function') {\n options.success = optionsOrCallback;\n } else if (optionsOrCallback) {\n $.extend(options, optionsOrCallback);\n }\n if (callback) {\n options.success = callback;\n }\n\n let {src: srcList} = options;\n const {name, success} = options;\n const lib = ($.libMap && name) ? $.libMap[name] : null;\n if (lib) {\n options = $.extend({}, lib, options);\n srcList = lib.src || options.src;\n }\n if (typeof srcList === 'string') {\n srcList = [srcList];\n }\n if (!srcList || !srcList.length) {\n throw new Error('[ZUI] No src provided for $.getLib.');\n }\n\n let {check = true} = options;\n if (check === true && name) {\n check = name;\n }\n const libVarName = typeof check === 'string' ? check : name;\n let moduleResult: T | undefined;\n const getLibVar = (): T | undefined => {\n return libVarName ? ((window as unknown as Record)[libVarName] as T || moduleResult) : undefined;\n };\n if (typeof check === 'string') {\n check = () => !!getLibVar();\n }\n const onSuccess = () => {\n success?.();\n return getLibVar();\n };\n if (typeof check === 'function') {\n const checkResult = await check();\n if (checkResult) {\n return onSuccess();\n }\n }\n\n const {root = $.libRoot} = options;\n for (let srcOptions of srcList) {\n if (typeof srcOptions === 'string') {\n srcOptions = {src: srcOptions};\n }\n let {src} = srcOptions;\n if (root && !/https?:\\/\\//.test(src)) {\n src = `${root}${(root.endsWith('/') || src.startsWith('/')) ? '' : '/'}${src}`;\n }\n const loadOptions = {\n ...options,\n ...srcOptions,\n src,\n };\n if (srcOptions.type === 'css' || (!srcOptions.type && src.endsWith('.css'))) {\n await loadCSS(loadOptions as LoadCSSOptions);\n continue;\n }\n if (loadOptions.type === 'module') {\n moduleResult = await loadModule(loadOptions as LoadJSModuleOptions);\n continue;\n }\n await loadJS(loadOptions as LoadJSOptions);\n }\n return onSuccess();\n};\n\n/** Define the $.getScript method. */\n$.getScript = $.getLib;\n","import {$, Cash, Selector} from '../cash';\n\n/**\n * Listen element resize with ResizeObserver.\n *\n * @param selector Element selector to check.\n * @returns True if the element is disabled.\n */\nexport function listenResize(selector: Selector, callback: ResizeObserverCallback): ResizeObserver {\n const $elements = $(selector);\n const observer = new ResizeObserver(callback);\n\n $elements.each((_, ele) => {\n observer.observe(ele);\n });\n\n return observer;\n}\n\n/* Declare types. */\ndeclare module 'cash-dom' {\n interface Cash {\n resize(callback: ResizeObserverCallback): ResizeObserver;\n }\n}\n\n/* Extend as $.fn.resize() */\n$.fn.resize = function (this: Cash, callback: ResizeObserverCallback) {\n return listenResize(this, callback);\n};\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function d(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function h(n){return o=1,p(D,n)}function p(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=d(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function _(n,u){var i=d(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function T(n,r){var u=d(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,p as useReducer,A as useRef,h as useState};\n//# sourceMappingURL=hooks.module.js.map\n","var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;while(void 0!==h){var r=h;h=void 0;f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}f=0;s--;if(t)throw i}else s--}function r(i){if(s>0)return i();s++;try{return i()}finally{t()}}var o=void 0;function n(i){var t=o;o=void 0;try{return i()}finally{o=t}}var h=void 0,s=0,f=0,v=0;function e(i){if(void 0!==o){var t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}}function u(i){this.v=i;this.i=0;this.n=void 0;this.t=void 0}u.prototype.brand=i;u.prototype.h=function(){return!0};u.prototype.S=function(i){if(this.t!==i&&void 0===i.e){i.x=this.t;if(void 0!==this.t)this.t.e=i;this.t=i}};u.prototype.U=function(i){if(void 0!==this.t){var t=i.e,r=i.x;if(void 0!==t){t.x=r;i.e=void 0}if(void 0!==r){r.e=t;i.x=void 0}if(i===this.t)this.t=r}};u.prototype.subscribe=function(i){var t=this;return E(function(){var r=t.value,n=o;o=void 0;try{i(r)}finally{o=n}})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+\"\"};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var i=o;o=void 0;try{return this.value}finally{o=i}};Object.defineProperty(u.prototype,\"value\",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(f>100)throw new Error(\"Cycle detected\");this.v=i;this.i++;v++;s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{t()}}}});function d(i){return new u(i)}function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function y(i){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4}(y.prototype=new u).h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=o;try{a(this);o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(y.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i){return new y(i)}function _(i){var r=i.u;i.u=void 0;if(\"function\"==typeof r){s++;var n=o;o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;g(i);throw t}finally{o=n;t()}}}function g(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;_(i)}function p(i){if(o!==this)throw new Error(\"Out-of-order effect\");l(this);o=i;this.f&=-2;if(8&this.f)g(this);t()}function b(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}b.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.u=t}finally{i()}};b.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;_(this);a(this);s++;var i=o;o=this;return p.bind(this,i)};b.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};b.prototype.d=function(){this.f|=8;if(!(1&this.f))g(this)};function E(i){var t=new b(i);try{t.c()}catch(i){t.d();throw i}return t.d.bind(t)}export{u as Signal,r as batch,w as computed,E as effect,d as signal,n as untracked};//# sourceMappingURL=signals-core.module.js.map\n","import{Component as n,options as r,isValidElement as i}from\"preact\";import{useMemo as t,useRef as f,useEffect as o}from\"preact/hooks\";import{Signal as e,computed as u,signal as a,effect as c}from\"@preact/signals-core\";export{Signal,batch,computed,effect,signal,untracked}from\"@preact/signals-core\";var v,s;function l(n,i){r[n]=i.bind(null,r[n]||function(){})}function d(n){if(s)s();s=n&&n.S()}function p(n){var r=this,f=n.data,o=useSignal(f);o.value=f;var e=t(function(){var n=r.__v;while(n=n.__)if(n.__c){n.__c.__$f|=4;break}r.__$u.c=function(){var n;if(!i(e.peek())&&3===(null==(n=r.base)?void 0:n.nodeType))r.base.data=e.peek();else{r.__$f|=1;r.setState({})}};return u(function(){var n=o.value.value;return 0===n?0:!0===n?\"\":n||\"\"})},[]);return e.value}p.displayName=\"_st\";Object.defineProperties(e.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:p},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});l(\"__b\",function(n,r){if(\"string\"==typeof r.type){var i,t=r.props;for(var f in t)if(\"children\"!==f){var o=t[f];if(o instanceof e){if(!i)r.__np=i={};i[f]=o;t[f]=o.peek()}}}n(r)});l(\"__r\",function(n,r){d();var i,t=r.__c;if(t){t.__$f&=-2;if(void 0===(i=t.__$u))t.__$u=i=function(n){var r;c(function(){r=this});r.c=function(){t.__$f|=1;t.setState({})};return r}()}v=t;d(i);n(r)});l(\"__e\",function(n,r,i,t){d();v=void 0;n(r,i,t)});l(\"diffed\",function(n,r){d();v=void 0;var i;if(\"string\"==typeof r.type&&(i=r.__e)){var t=r.__np,f=r.props;if(t){var o=i.U;if(o)for(var e in o){var u=o[e];if(void 0!==u&&!(e in t)){u.d();o[e]=void 0}}else i.U=o={};for(var a in t){var c=o[a],s=t[a];if(void 0===c){c=_(i,a,s,f);o[a]=c}else c.o(s,f)}}}n(r)});function _(n,r,i,t){var f=r in n&&void 0===n.ownerSVGElement,o=a(i);return{o:function(n,r){o.value=n;t=r},d:c(function(){var i=o.value.value;if(t[r]!==i){t[r]=i;if(f)n[r]=i;else if(i)n.setAttribute(r,i);else n.removeAttribute(r)}})}}l(\"unmount\",function(n,r){if(\"string\"==typeof r.type){var i=r.__e;if(i){var t=i.U;if(t){i.U=void 0;for(var f in t){var o=t[f];if(o)o.d()}}}}else{var e=r.__c;if(e){var u=e.__$u;if(u){e.__$u=void 0;u.d()}}}n(r)});l(\"__h\",function(n,r,i,t){if(t<3||9===t)r.__$f|=2;n(r,i,t)});n.prototype.shouldComponentUpdate=function(n,r){var i=this.__$u;if(!(i&&void 0!==i.s||4&this.__$f))return!0;if(3&this.__$f)return!0;for(var t in r)return!0;for(var f in n)if(\"__source\"!==f&&n[f]!==this.props[f])return!0;for(var o in this.props)if(!(o in n))return!0;return!1};function useSignal(n){return t(function(){return a(n)},[])}function useComputed(n){var r=f(n);r.current=n;v.__$f|=4;return t(function(){return u(function(){return r.current()})},[])}function useSignalEffect(n){var r=f(n);r.current=n;o(function(){return c(function(){return r.current()})},[])}export{useComputed,useSignal,useSignalEffect};//# sourceMappingURL=signals.module.js.map\n","import type {ComponentType} from 'preact';\n\nexport const reactComponents: Record = {};\n\nexport function registerReactComponent

    (name: string, component?: ComponentType

    ): void;\n\nexport function registerReactComponent(componentMap: Record): void;\n\nexport function registerReactComponent(nameOrMap: string | Record, component?: ComponentType): void {\n if (typeof nameOrMap === 'object') {\n Object.keys(nameOrMap).forEach(name => {\n registerReactComponent(name, nameOrMap[name] as ComponentType);\n });\n } else if (component) {\n reactComponents[nameOrMap.toLowerCase()] = component;\n }\n}\n\nexport function getReactComponent

    (name: string): ComponentType

    | undefined {\n return reactComponents[name.toLowerCase()] as (ComponentType

    | undefined);\n}\n","import {h, Component} from 'preact';\nimport {deepCall} from '@zui/helpers';\nimport {nextGid} from '../../helpers/gid';\nimport {classes} from '../../helpers/classes';\nimport {getReactComponent} from './components';\nimport {i18n} from '../../i18n';\nimport {bindCommands, unbindCommands, type CommandContext} from '../../helpers';\n\nimport type {JSX, ComponentType, RenderableProps, ComponentChildren} from 'preact';\nimport type {ClassNameLike} from '../../helpers/classes';\nimport type {HElementProps} from '../types';\nimport type {I18nLangMap} from '../../i18n';\n\n/**\n * The base HTML element.\n */\nexport class HElement

    extends Component {\n static HElement = true;\n\n static customProps: string[] = [];\n\n /**\n * The component name.\n * It usually equals to the class name.\n * The name must be provided in subclass.\n */\n static NAME: string;\n\n /**\n * The component i18n data.\n * It will be merged with global i18n data.\n */\n static i18n: I18nLangMap | undefined;\n\n /**\n * Access to static properties via this.constructor.\n *\n * @see https://github.com/Microsoft/TypeScript/issues/3841#issuecomment-337560146\n */\n declare ['constructor']: typeof HElement;\n\n protected _gid = nextGid();\n\n constructor(props: P) {\n super(props);\n\n this.state = this.getDefaultState(props);\n }\n\n get gid() {\n return this._gid;\n }\n\n get element() {\n return document.querySelector(`[z-gid-${this._gid}]`);\n }\n\n /**\n * Get the component i18n data.\n */\n get i18nData(): (I18nLangMap | undefined)[] {\n return [this.props.i18n, this.constructor.i18n];\n }\n\n /**\n * Get the command scope.\n */\n get commandScope() {\n return this.constructor.NAME;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getDefaultState(_props?: RenderableProps

    ): S {\n return {} as S;\n }\n\n resetState(props?: RenderableProps

    , init?: boolean) {\n const defaultState = this.getDefaultState(props);\n if (init) {\n this.state = defaultState;\n } else {\n this.changeState(defaultState);\n }\n }\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param defaultValue The default value if the key is not found.\n */\n i18n(key: string, defaultValue?: string): string;\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param args The i18n arguments.\n * @param defaultValue The default value if the key is not found.\n */\n i18n(key: string, args?: (string | number)[], defaultValue?: string): string;\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param args The i18n arguments.\n * @param defaultValue The default value if the key is not found.\n */\n i18n(key: string, args?: Record, defaultValue?: string): string;\n\n /**\n * Get the i18n text.\n *\n * @param key The i18n key.\n * @param args The i18n arguments or the default value.\n * @param defaultValue The default value if the key is not found.\n * @returns The i18n text.\n */\n i18n(key: string, args?: string | (string | number)[] | Record, defaultValue?: string): string {\n const {i18nData} = this;\n return i18n(i18nData, key, args, defaultValue, this.props.lang, this.constructor.NAME)\n ?? i18n(i18nData, key, args, defaultValue, this.props.lang)\n ?? `{i18n:${key}}`;\n }\n\n changeState(state: Partial | ((prevState: Readonly) => Partial), callback?: () => void): Promise {\n return new Promise(resolve => {\n this.setState(state, () => {\n callback?.();\n resolve(this.state);\n });\n });\n }\n\n executeCommand(context: CommandContext | string, params: unknown[] = []) {\n const {onCommand, commands} = this.props;\n let result;\n if (typeof context === 'string') {\n context = {name: context};\n }\n const {scope, name} = context;\n const onCommandFromProps = commands ? (commands[`${scope}~${name}`] || commands[name]) : null;\n if (onCommandFromProps) {\n return onCommandFromProps.call(this, context, params);\n }\n if (!context.scope || context.scope === this.commandScope) {\n result = deepCall(this, context.name, params);\n }\n if (onCommand) {\n result = onCommand.call(this, context, params);\n }\n return result;\n }\n\n protected _getClassName(props: RenderableProps

    ): ClassNameLike {\n return props.className;\n }\n\n protected _getProps(props: RenderableProps

    ): Record {\n const {className, attrs, props: componentProps, data, forwardRef, children, component, style, class: classNameAlt, commands, onCommand, ...others} = props;\n const customProps = new Set((this.constructor as typeof HElement).customProps);\n const strDangerouslySetInnerHTML = 'dangerouslySetInnerHTML';\n const other = Object.keys(others).reduce>((map, key) => {\n if (!customProps.has(key) && (key === strDangerouslySetInnerHTML || /^(on[A-Z]|data-|zui-|z-)[a-zA-Z-]+/.test(key))) {\n const val = others[key as keyof typeof others];\n map[key] = (key !== strDangerouslySetInnerHTML && val && typeof val === 'object') ? JSON.stringify(val) : val;\n }\n return map;\n }, {});\n return {ref: forwardRef, className: classes(this._getClassName(props), classNameAlt) || undefined, style, [`z-gid-${this._gid}`]: '', ...other, ...attrs, ...componentProps};\n }\n\n protected _getComponent(props: RenderableProps

    ): ComponentType | keyof JSX.IntrinsicElements {\n const {component = 'div'} = props;\n return (typeof component === 'string' ? getReactComponent(component as string) : component) || component;\n }\n\n protected _getChildren(props: RenderableProps

    ): ComponentChildren {\n return props.children;\n }\n\n protected _beforeRender(props: RenderableProps

    ): RenderableProps

    | undefined | void {\n return props;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _onRender(component: ComponentType | keyof JSX.IntrinsicElements, componentProps: Record, children: ComponentChildren, _props: RenderableProps

    ): [component: ComponentType | keyof JSX.IntrinsicElements, componentProps: Record, children: ComponentChildren] | void {\n return [component, componentProps, children];\n }\n\n componentDidMount(): void {\n const {commands, onCommand} = this.props;\n if (commands || onCommand) {\n bindCommands(this.element, {\n commands,\n scope: this.commandScope,\n onCommand: this.executeCommand.bind(this),\n });\n }\n }\n\n componentWillUnmount(): void {\n const {commands, onCommand} = this.props;\n if (commands || onCommand) {\n unbindCommands(this.element, this.commandScope);\n }\n }\n\n render(props: RenderableProps

    ) {\n props = this._beforeRender(props) || props;\n let component = this._getComponent(props);\n let children = this._getChildren(props);\n let componentProps = this._getProps(props);\n const renderResult = this._onRender(component, componentProps, children, props);\n if (renderResult) {\n [component, componentProps, children] = renderResult;\n }\n return h(component as ComponentType, componentProps, children);\n }\n}\n","import type {RenderableProps} from 'preact';\nimport {HElement} from './h-element';\nimport {type Signal, signal, batch} from '../signals';\nimport type {HElementProps} from '../types';\n\nexport class HElementSignals

    }> extends HElement {\n static HElementSignals = true;\n\n declare signals: SIGNALS;\n\n constructor(props: P) {\n super(props);\n\n this.signals = {} as SIGNALS;\n const {state} = this;\n this.changeState(state);\n this.state = {} as S;\n }\n\n changeState(state: Partial | ((prevState: Readonly) => Partial), callback?: () => void): Promise {\n return new Promise(resolve => {\n batch(() => {\n if (typeof state === 'function') {\n state = state(this.state);\n }\n for (const key in state) {\n const sg = this.signals[key as unknown as keyof SIGNALS] as Signal;\n if (sg) {\n sg.value = state[key as keyof S];\n } else {\n this.signals[key as unknown as keyof SIGNALS] = signal(state[key as keyof S]) as SIGNALS[keyof SIGNALS];\n }\n }\n resolve(this.state);\n callback?.();\n });\n });\n }\n\n resetState(props?: RenderableProps

    ) {\n this.changeState(this.getDefaultState(props));\n }\n}\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n

    Hello world

    \n * Hello world\" />\n *\n * // Render and execute script\n * alert('Hello world')\" executeScript />\n */\nexport class HtmlContent extends Component {\n protected _ref = createRef();\n\n protected _runJS() {\n if (!this.props.executeScript) {\n return;\n }\n $(this._ref.current).runJS().zuiInit();\n }\n\n componentDidMount(): void {\n this._runJS();\n }\n\n componentDidUpdate(previousProps: Readonly): void {\n if (this.props.html !== previousProps.html) {\n this._runJS();\n }\n }\n\n render(props: HtmlContentProps) {\n const {executeScript, html, ...others} = props;\n return ;\n }\n}\n","import {h as _h, isValidElement, ComponentChildren, JSX, Attributes} from 'preact';\nimport {classes, ClassNameLike} from '../../helpers';\n\n/**\n * @deprecated Use `CustomContent` instead.\n */\nexport type CustomRenderResultItem = Partial<{\n html: string;\n __html: string;\n style: JSX.CSSProperties;\n className: ClassNameLike;\n children: ComponentChildren;\n attrs: JSX.HTMLAttributes;\n [prop: string]: unknown;\n}>;\n\n/**\n * @deprecated Use `CustomContent` instead.\n */\nexport type CustomRenderResultGenerator = unknown[], THIS = unknown> = (this: THIS, result: ComponentChildren[], ...args: T) => (ComponentChildren | CustomRenderResultItem)[] | undefined | void;\n\n/**\n * @deprecated Use `CustomContent` instead.\n */\nexport type CustomRenderResult = unknown[], THIS = unknown> = CustomRenderResultGenerator | CustomRenderResultItem | ComponentChildren;\n\n/**\n * @deprecated Use `CustomContent` instead.\n */\nexport type CustomRenderResultList = unknown[], THIS = unknown> = CustomRenderResult[];\n\n/**\n * @deprecated Use `CustomContent` instead.\n */\nexport type CustomRenderProps = unknown[], THIS = unknown> = {\n tag?: string;\n className?: ClassNameLike;\n style?: JSX.CSSProperties;\n renders: CustomRenderResultList;\n generateArgs?: T;\n generators?: Record>;\n generatorThis?: THIS;\n onGenerate?: (this: THIS, generator: CustomRenderResultGenerator, result: ComponentChildren[], ...args: T) => (ComponentChildren | CustomRenderResultItem)[];\n onRenderItem?: (item: CustomRenderResultItem) => ComponentChildren;\n children?: ComponentChildren;\n};\n\n/**\n * @deprecated Use `renderCustomContent` instead.\n */\nexport function renderCustomResult(props: CustomRenderProps): [JSX.HTMLAttributes, ComponentChildren[]] {\n const {\n tag,\n className,\n style,\n renders,\n generateArgs = [],\n generatorThis,\n generators,\n onGenerate,\n onRenderItem,\n ...others\n } = props;\n const classList: ClassNameLike = [className];\n const rootStyle: JSX.CSSProperties = {...style};\n const result: ComponentChildren[] = [];\n const rawHtml: string[] = [];\n renders.forEach(render => {\n const items: (CustomRenderResultItem | ComponentChildren)[] = [];\n if (typeof render === 'string' && generators && generators[render]) {\n render = generators[render];\n }\n if (typeof render === 'function') {\n if (onGenerate) {\n items.push(...onGenerate.call(generatorThis, render as CustomRenderResultGenerator, result, ...generateArgs));\n } else {\n const renderResult = (render as CustomRenderResultGenerator).call(generatorThis, result, ...generateArgs);\n if (renderResult) {\n if (Array.isArray(renderResult)) {\n items.push(...renderResult);\n } else {\n items.push(renderResult);\n }\n }\n }\n } else {\n items.push(render);\n }\n items.forEach(item => {\n if (item === undefined || item === null) {\n return;\n }\n if (typeof item === 'object' && !isValidElement(item) && ('html' in item || '__html' in item || 'className' in item || 'style' in item || 'attrs' in item || 'children' in item)) {\n if (item.html) {\n result.push(\n
    )}>
    ,\n );\n } else if (item.__html) {\n rawHtml.push(item.__html);\n } else {\n if (item.style) {\n Object.assign(rootStyle, item.style);\n }\n if (item.className) {\n classList.push(item.className);\n }\n if (item.children) {\n result.push(item.children);\n }\n if (item.attrs) {\n Object.assign(others, item.attrs);\n }\n }\n } else {\n result.push(item);\n }\n });\n });\n\n if (rawHtml.length) {\n Object.assign(others, {dangerouslySetInnerHTML: {__html: rawHtml}});\n }\n\n return [{\n className: classes(classList),\n style: rootStyle,\n ...others,\n }, result];\n}\n\n/**\n * @deprecated Use `CustomContent` instead.\n */\nexport function CustomRender({\n tag = 'div',\n ...props\n}: CustomRenderProps) {\n const [attrs, children] = renderCustomResult(props);\n return _h(tag, attrs as Attributes, ...children);\n}\n","import {Component, createRef} from 'preact';\nimport type {LazyContentProps, CustomContentType} from '../types';\nimport {$} from '../../cash';\nimport {fetchData, FetcherSetting, type Ajax} from '../../ajax';\nimport {HtmlContent} from './html-content';\nimport {CustomContent} from './custom-content';\nimport {classes} from '../../helpers';\n\nexport type LazyContentState = {\n loading?: boolean;\n error?: Error;\n content?: CustomContentType;\n};\n\nexport class LazyContent extends Component {\n static defaultProps: Partial = {\n type: 'html',\n loadingIndicator: true,\n loadingClass: 'loading',\n clearBeforeLoad: true,\n };\n\n state: LazyContentState = {};\n\n protected _ref = createRef();\n\n protected _ajax?: Ajax;\n\n async load(newFetcher?: FetcherSetting) {\n const {props} = this;\n const {fetcher, type, fetcherArgs, fetcherThis = this, clearBeforeLoad} = props;\n this.setState({loading: true, error: undefined, ...(clearBeforeLoad ? {content: undefined} : {})});\n try {\n const content = await fetchData(newFetcher || fetcher, fetcherArgs, {throws: true, dataType: type === 'custom' ? 'json' : 'text'}, fetcherThis, (ajax) => {\n this._ajax = ajax;\n });\n this.setState({content: content as CustomContentType, loading: false});\n } catch (error) {\n this.setState({error: error as Error, loading: false});\n }\n this._ajax = undefined;\n }\n\n componentDidMount(): void {\n this.load();\n $(this._ref.current).on('loadContent.zui', (event: Event, fetcher?: FetcherSetting) => {\n event.stopPropagation();\n this.load(fetcher);\n });\n }\n\n componentDidUpdate(previousProps: Readonly): void {\n if (this.props.fetcher !== previousProps.fetcher || this.props.fetcherArgs !== previousProps.fetcherArgs || this.props.fetcherThis !== previousProps.fetcherThis) {\n this.load();\n }\n }\n\n componentWillUnmount(): void {\n this._ajax?.abort();\n $(this._ref.current).off('.zui');\n }\n\n protected _renderContent(_props: LazyContentProps, others: Partial) {\n const {loading, error, content = ''} = this.state;\n const {loadingContent, errorText, type, clearBeforeLoad, ...otherProps} = others;\n if (loading && clearBeforeLoad) {\n return loadingContent;\n }\n if (error) {\n return errorText ?? error.message;\n }\n if (type === 'html') {\n return ;\n }\n if (type === 'text') {\n return content;\n }\n return ;\n }\n\n render(props: LazyContentProps) {\n const {loading} = this.state;\n const {id, loadingClass, loadingIndicator, className, style, attrs, loadingText, ...others} = props;\n return (\n
    \n {this._renderContent(props, others)}\n
    \n );\n }\n}\n","import {Component, isValidElement} from 'preact';\nimport {HtmlContent} from './html-content';\nimport {HElement} from './h-element';\nimport {LazyContent} from './lazy-content';\nimport {mergeProps} from '../../helpers';\n\nimport type {ComponentChildren, VNode} from 'preact';\nimport type {HtmlContentProps, HElementProps, CustomContentType, CustomContentGenerator, CustomContentProps, LazyContentProps} from '../types';\n\n/**\n * Render custom content.\n *\n * @param content The content to render.\n * @param generatorThis The `this` value to use when calling the generator.\n * @param generatorArgs The arguments to pass to the generator.\n * @returns The rendered content.\n */\nexport function renderCustomContent(props: CustomContentProps): ComponentChildren {\n const {content: contentSetting, generatorArgs, generatorThis, ...others} = props;\n let content = contentSetting;\n if (typeof content === 'function') {\n content = (content as CustomContentGenerator).call(generatorThis, ...(generatorArgs || []));\n }\n if (Array.isArray(content)) {\n return content.map((x) => renderCustomContent({...others, content: x, generatorThis, generatorArgs}));\n }\n if ((typeof content === 'string' || typeof content === 'number')) {\n if (Object.keys(others).length) {\n return
    {content}
    ;\n }\n return content;\n }\n if (content && typeof content === 'object' && (typeof (content as HtmlContentProps).html === 'string' || (content as HtmlContentProps).component || (content as LazyContentProps).fetcher)) {\n if ((content as LazyContentProps).fetcher) {\n return ;\n }\n if ((content as HtmlContentProps).html) {\n return ;\n }\n const {children, ...contentOthers} = content as HElementProps;\n if (children) {\n content = mergeProps({children: ((Array.isArray(children) ? children : [children]) as CustomContentType[]).map((x) => renderCustomContent({...others, content: x, generatorThis, generatorArgs}))}, contentOthers);\n }\n return ;\n }\n if (isValidElement(content)) {\n return content;\n }\n if (content) {\n console.groupCollapsed('[ZUI] CustomContent format error');\n console.trace('content:', content);\n console.log('props:', props);\n console.groupEnd();\n }\n return null;\n}\n\n/**\n * Component for rendering custom content.\n *\n * @param props Custom content props.\n * @returns Custom content.\n */\nexport function CustomContent(props: CustomContentProps): VNode | null {\n const result = renderCustomContent(props);\n if (result === undefined || result === null || typeof result === 'boolean') {\n return null;\n }\n if (isValidElement(result)) {\n return result;\n }\n return <>{result};\n}\n\nexport class CustomContentClass extends Component {\n render(props: CustomContentProps): VNode | null {\n return CustomContent(props);\n }\n}\n","import {isValidElement} from 'preact';\nimport {classes} from '../../helpers/classes';\n\nimport type {ClassNameLike} from '../../helpers/classes';\nimport type {IconProps} from '../types';\n\nconst createIconClass = (icon: string) => icon.startsWith('icon-') ? icon : `icon-${icon}`;\n\n/**\n * Component for rendering icons.\n *\n * @param props Icon properties.\n * @returns Icon element.\n */\nexport function Icon(props: IconProps) {\n const {icon, className, ...others} = props;\n if (!icon) {\n return null;\n }\n if (isValidElement(icon)) {\n return icon;\n }\n const classList: ClassNameLike[] = ['icon', className as string];\n if (typeof icon === 'string') {\n classList.push(createIconClass(icon));\n } else if (typeof icon === 'object') {\n const {className: iconClass, icon: finalIcon, ...iconOthers} = icon;\n classList.push(iconClass as string, finalIcon ? createIconClass(finalIcon as string) : '');\n Object.assign(others, iconOthers);\n }\n return ;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {createElement, render} from 'preact';\n\nimport type {VNode, RenderableProps, ContainerNode} from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(this: any, props: RenderableProps<{context: any}>) {\n this.getChildContext = () => props.context;\n return props.children;\n}\n\n/**\n * Portal component\n * @this {import('preact').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nexport function Portal(this: any, props: any) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n const container = props._container;\n\n that.componentWillUnmount = function () {\n render(null, that._temp);\n that._temp = null;\n that._container = null;\n };\n\n // When we change container we should clear our old container and\n // indicate a new mount.\n if (that._container && that._container !== container) {\n that.componentWillUnmount();\n }\n\n // When props.vnode is undefined/false/null we are dealing with some kind of\n // conditional vnode. This should not trigger a render.\n if (props._vnode) {\n if (!that._temp) {\n that._container = container;\n\n // Create a fake DOM parent node that manages a subset of `container`'s children:\n that._temp = {\n nodeType: 1,\n parentNode: container,\n childNodes: [],\n appendChild(child: VNode) {\n this.childNodes.push(child);\n that._container.appendChild(child);\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(child: VNode, _before: VNode) {\n this.childNodes.push(child);\n that._container.appendChild(child);\n },\n removeChild(child: VNode) {\n this.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n that._container.removeChild(child);\n },\n };\n }\n\n // Render our wrapping element into temp.\n render(\n createElement(ContextProvider as any, {context: that.context}, props._vnode),\n that._temp,\n );\n } else if (that._temp) {\n // When we come from a conditional render, on a mounted\n // portal we should clear the DOM.\n that.componentWillUnmount();\n }\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n *\n * @param {import('preact').VNode} vnode The vnode to render\n * @param {import('preact').PreactElement} container The DOM node to continue rendering in to.\n * @see https://github.com/developit/preact-portal/blob/master/src/preact-portal.js\n */\nexport function createPortal(vnode: VNode, container: ContainerNode): VNode {\n const el = createElement(Portal as any, {_vnode: vnode, _container: container}) as any;\n el.containerInfo = container;\n return el;\n}\n","import {HElement} from './h-element';\nimport {HtmlContent} from './html-content';\nimport {CustomContent} from './custom-content';\nimport {LazyContent} from './lazy-content';\nimport {Icon} from './icon';\nimport {Portal} from './portals';\nimport {registerReactComponent} from './components';\n\nregisterReactComponent({\n HElement,\n element: HElement,\n HtmlContent,\n html: HtmlContent,\n CustomContent,\n LazyContent,\n custom: CustomContent,\n lazy: LazyContent,\n Icon,\n Portal,\n});\n","import {createRef, render, h} from 'preact';\nimport {Component as ComponentBase} from '../component';\nimport {mergeProps} from '../helpers';\n\nimport type {Component as ComponentReact, ComponentClass} from 'preact';\nimport {type I18nLangMap} from '../i18n';\nimport type {ComponentEventsDefnition} from '../component';\n\nexport class ComponentFromReact = ComponentReact, E extends ComponentEventsDefnition = {}, U extends HTMLElement = HTMLElement> extends ComponentBase {\n /**\n * The React component class.\n */\n static Component: unknown;\n\n /**\n * Whether replace the element.\n */\n static replace: boolean | keyof HTMLElementTagNameMap | (string & {}) = false;\n\n /**\n * Access to static properties via this.constructor.\n *\n * @see https://github.com/Microsoft/TypeScript/issues/3841#issuecomment-337560146\n */\n declare ['constructor']: typeof ComponentFromReact;\n\n /**\n * The React ref for component instance.\n */\n protected _ref = createRef();\n\n /**\n * The React component instance.\n */\n get $(): C | null {\n return this._ref.current;\n }\n\n /**\n * The i18n data.\n */\n get i18nData() {\n const {i18n, i18nData} = this.constructor.Component as {i18n?: I18nLangMap, i18nData?: (I18nLangMap | undefined)[]};\n if (i18nData) {\n return [...i18nData, this.constructor.i18n];\n }\n return [i18n, ...super.i18nData];\n }\n\n /**\n * Render after component init.\n */\n afterInit() {\n this.render();\n }\n\n /**\n * Destroy component.\n */\n destroy() {\n this.$?.componentWillUnmount?.();\n if (this.element) {\n this.element.innerHTML = '';\n }\n super.destroy();\n }\n\n /**\n * Render component.\n *\n * @param options new options.\n */\n render(options?: Partial, reset?: boolean) {\n const {element, $: instance} = this;\n const {Component, replace} = this.constructor;\n const {$replace = replace, $optionsFromDataset, ...userOptions} = this.setOptions(options, reset);\n const props = {\n ref: this._ref,\n ...userOptions,\n };\n if (reset) {\n (instance as {resetState?: (props?: Record, init?: boolean) => void})?.resetState?.(userOptions);\n }\n\n if ($replace && (Component as {HElement?: boolean}).HElement && (element.tagName.toLowerCase() === $replace || $replace === true)) {\n const attrs = Array.from(element.attributes).reduce>((data, attribute) => {\n const {name, value} = attribute;\n data[name === 'class' ? 'className' : name] = value;\n return data;\n }, {});\n render(\n h(Component as ComponentClass, mergeProps({component: element.tagName.toLowerCase(), attrs}, props)),\n element.parentElement!,\n element,\n );\n } else {\n render(\n h(Component as ComponentClass, props),\n element,\n );\n }\n }\n\n static renderHTML(options: Record): string {\n const tmpNode = document.createElement('div');\n render(h(this.Component as ComponentClass, options), tmpNode);\n return tmpNode.innerHTML;\n }\n}\n","import {ComponentFromReact} from './component-from-react';\nimport {CustomContentClass} from './components';\nimport {CustomContentProps} from './types';\n\nexport class Custom extends ComponentFromReact {\n static NAME = 'Custom';\n\n static Component = CustomContentClass;\n}\n\nCustom.register();\n","import {HElement, Icon, classes} from '@zui/core';\n\nimport type {ClassNameLike} from '@zui/core';\nimport type {ButtonProps} from '../types/button-props';\nimport type {RenderableProps} from 'preact';\n\nexport class Button

    extends HElement

    {\n protected declare _isEmptyText?: boolean;\n\n protected declare _onlyCaret?: boolean;\n\n protected _beforeRender(props: RenderableProps

    ) {\n const {text, loading, loadingText, caret, icon, trailingIcon, children} = props;\n this._isEmptyText = text === undefined || text === null || (typeof text === 'string' && !text.length) || loading && !loadingText;\n this._onlyCaret = caret && this._isEmptyText && !icon && !trailingIcon && !children && !loading;\n }\n\n protected _getChildren(props: RenderableProps

    ) {\n const {loading, loadingIcon, loadingText, icon, iconClass, text, textClass, children, trailingIcon, trailingIconClass, caret} = props;\n return [\n loading ? : ,\n this._isEmptyText ? null : {loading ? loadingText : text},\n loading ? null : children,\n loading ? null : ,\n loading ? null : caret ? : null,\n ];\n }\n\n protected _getClassName(props: RenderableProps

    ) {\n const {type, className, disabled, loading, active, children, square, size, rounded} = props;\n return ['btn', type, className, {\n 'btn-caret': this._onlyCaret,\n disabled: disabled || loading,\n active,\n loading,\n square: square === undefined ? (!this._onlyCaret && !children && this._isEmptyText) : square,\n }, size ? `size-${size}` : '', typeof rounded === 'string' ? `rounded-${rounded}` : {rounded}];\n }\n\n protected _getComponent(props: RenderableProps

    ) {\n return props.component || (props.url ? 'a' : 'button');\n }\n\n protected _getProps(props: RenderableProps

    ) {\n const component = this._getComponent(props);\n const {url, target, disabled, btnType = 'button', hint, command} = props;\n const asLink = component === 'a';\n const componentProps: Record = {\n ...super._getProps(props),\n type: asLink ? undefined : 'button',\n disabled: (!asLink && disabled) ? '' : undefined,\n title: hint,\n };\n if (btnType) {\n if (['button', 'reset', 'submit'].includes(btnType)) {\n if (component === 'button') {\n componentProps.type = btnType;\n }\n } else {\n componentProps.className = classes([componentProps.className as ClassNameLike, btnType]);\n }\n }\n if (!disabled) {\n if (url !== undefined) {\n componentProps[asLink ? 'href' : 'data-url'] = url;\n }\n if (target !== undefined) {\n componentProps[asLink ? 'target' : 'data-target'] = target;\n }\n if (command) {\n componentProps['zui-command'] = command;\n }\n }\n return componentProps;\n }\n}\n","import {registerReactComponent} from '@zui/core';\nimport * as components from './index';\n\nregisterReactComponent(components);\n","import {CustomContent, HElement, mergeProps} from '@zui/core';\n\nimport type {ComponentChild, ComponentChildren, ComponentType, JSX, RenderableProps} from 'preact';\nimport type {ClassNameLike} from '../../../core/src/helpers';\nimport type {CommonListProps, Item, ItemKey, ItemType} from '../types';\n\n/**\n * Generic list component.\n */\nexport class CommonList

    extends HElement {\n /**\n * Root element default name, used for class name.\n */\n static NAME = '';\n\n /**\n * Item default name, used for class name.\n */\n static ITEM_NAME = 'item';\n\n /**\n * Root element default tag name, used for DOM rendering.\n */\n static TAG = 'ul';\n\n /**\n * Item components, used for rendering for different item types.\n */\n static ItemComponents: Partial | ((this: CommonList, item: Item, props: CommonListProps) => Partial)]>> = {\n default: HElement,\n divider: [HElement, {className: 'divider'}],\n space: [HElement, (item) => {\n const {space, flex, style} = item as {space: JSX.CSSProperties['width'], flex: JSX.CSSProperties['flex'], style: JSX.CSSProperties};\n return {\n style: {width: space, height: space, flex, ...style},\n };\n }],\n };\n\n /**\n * Item default common props, used for rendering for all item types.\n */\n static defaultItemProps: Partial = {\n component: 'li',\n };\n\n /**\n * Item default props, used for rendering for different item types.\n */\n static defaultItemPropsMap: Partial>> = {};\n\n /**\n * Item default type, used for rendering for item without type.\n */\n static defaultItemType = 'item';\n\n static defaultProps: Partial = {\n itemKey: 'id',\n };\n\n /**\n * Access to static properties via this.constructor.\n *\n * @see https://github.com/Microsoft/TypeScript/issues/3841#issuecomment-337560146\n */\n declare ['constructor']: typeof CommonList;\n\n /**\n * Store the raw items.\n */\n protected declare _items: Item[];\n\n /**\n * Store the rendered items.\n */\n protected declare _renderedItems: Item[];\n\n constructor(props: P) {\n super(props);\n this._handleClick = this._handleClick.bind(this);\n }\n\n /**\n * Get the root element name, used for class name.\n */\n get name() {\n return this.props.name || this.constructor.NAME;\n }\n\n /**\n * Get the item element name, used for class name.\n */\n get itemName() {\n return this.props.itemName || this.constructor.ITEM_NAME;\n }\n\n getItems() {\n return this._items;\n }\n\n getRenderedItem(key: ItemKey) {\n return this._renderedItems.find((item) => item.key === key);\n }\n\n getItem(key: ItemKey): Item | undefined {\n return this._items[this.getItemIndex(key)];\n }\n\n getItemIndex(key: ItemKey) {\n return this._renderedItems.findIndex((item) => item.key === key);\n }\n\n getItemByIndex(index: number) {\n return this._items[index];\n }\n\n /**\n * Get the item key by index.\n *\n * @param index The rendered item index.\n * @returns The item key, if the item is not rendered, return undefined.\n */\n getKey(index: number): ItemKey | undefined {\n return this._renderedItems?.[index]?.key;\n }\n\n protected _getItemFromEvent(event: MouseEvent, target?: HTMLElement): {\n index: number;\n item: Item;\n renderedItem: Item;\n element: HTMLElement;\n event: MouseEvent;\n key: ItemKey;\n relativeTarget?: unknown;\n } | undefined {\n const element = (target || event.target as HTMLElement).closest('[z-item]') as HTMLElement;\n if (!element || !element.parentElement?.hasAttribute(`z-gid-${this._gid}`)) {\n return;\n }\n const index = +element.getAttribute('z-item')!;\n const item = this._items[index];\n if (!item) {\n return;\n }\n const key = this.getKey(index);\n if (key === undefined) {\n return;\n }\n const renderedItem = this._renderedItems[index];\n return {index, item, element, event, key, renderedItem, relativeTarget: this.props.relativeTarget};\n }\n\n protected _handleClick(event: MouseEvent) {\n const info = this._getItemFromEvent(event);\n if (!info) {\n return;\n }\n this.props.onClickItem?.call(this, info);\n info.item.onClick?.call(this, event, info);\n return info;\n }\n\n /**\n * Render the item content.\n *\n * @param props Current list properties.\n * @param item The item to render.\n * @param index The item index.\n * @returns The item rendered content.\n */\n protected _renderItem(props: RenderableProps

    , item: Item, index: number): ComponentChildren {\n const {beforeRenderItem} = props;\n if (beforeRenderItem) {\n const result = beforeRenderItem.call(this, item, index);\n if (result !== undefined) {\n item = result;\n }\n }\n\n const {type} = item;\n let {itemRender} = props;\n if (itemRender && typeof itemRender === 'object') {\n itemRender = itemRender[type!];\n }\n if (itemRender) {\n const customResult = itemRender.call(this, item, index);\n if (customResult !== undefined) {\n return ;\n }\n }\n\n const {ItemComponents} = this.constructor;\n let ItemComponent = ItemComponents[type!];\n if (!ItemComponent && item.component) {\n return ;\n }\n ItemComponent = ItemComponent || ItemComponents.default || HElement;\n if (Array.isArray(ItemComponent)) {\n let defaultItemProps = ItemComponent[1];\n if (typeof defaultItemProps === 'function') {\n defaultItemProps = defaultItemProps.call(this as CommonList, item, props);\n }\n item = mergeProps({}, defaultItemProps, item);\n ItemComponent = ItemComponent[0];\n }\n return ;\n }\n\n /**\n * Get the rendered item final properties.\n *\n * @param props Current list properties.\n * @param item The item to render.\n * @param index The item index.\n * @returns The item to rendered, if return false, the item will not be rendered.\n */\n protected _getItem(props: RenderableProps

    , item: Item, index: number): Item | false {\n if (!item) {\n return false;\n }\n const {itemProps, itemPropsMap = {}, getItem, itemKey} = props;\n const {type = this.constructor.defaultItemType} = item;\n const {name, itemName} = this;\n const {defaultItemProps = {}, defaultItemPropsMap = {}} = this.constructor;\n\n item = mergeProps(\n {type},\n defaultItemProps,\n defaultItemPropsMap[type],\n itemProps,\n itemPropsMap[type],\n {className: [name ? `${name}-${type}` : '', itemName]},\n item,\n {\n _item: item,\n _index: index,\n key: String((itemKey ? item[itemKey] : item.key) ?? (item.key ?? index)),\n onClick: undefined,\n },\n );\n\n if (getItem) {\n const result = getItem.call(this, item, index);\n if (result !== undefined) {\n return result;\n }\n }\n return item;\n }\n\n protected _getProps(props: RenderableProps

    ): Record {\n const finalProps = super._getProps(props);\n return {onClick: this._handleClick, ...finalProps};\n }\n\n /**\n * Get the list root element classname list.\n *\n * @param props Current list properties.\n * @returns The list root element classname list.\n */\n protected _getClassName(props: RenderableProps

    ): ClassNameLike {\n return [this.name, props.className];\n }\n\n /**\n * Get final rendered item list.\n *\n * @param props Current list properties.\n * @returns Item list.\n */\n protected _getItems(props: RenderableProps

    ): Item[] {\n let {items = []} = props;\n if (typeof items === 'function') {\n items = items.call(this);\n } else if (!Array.isArray(items)) {\n items = [];\n }\n const {getItems} = props;\n if (getItems) {\n const result = getItems.call(this, items as Item[]);\n if (result !== undefined) {\n return result;\n }\n }\n return items as Item[];\n }\n\n /**\n * Render items.\n *\n * @param props props Current list properties.\n * @param items Render items.\n * @returns React render children.\n */\n protected _renderItems(props: RenderableProps

    , items: Item[]): ComponentChild[] {\n this._renderedItems = items.map((item, index) => {\n const finalItem = this._getItem(props, item, index);\n return finalItem ? finalItem : undefined;\n }) as Item[];\n return this._renderedItems.reduce((children, item, index) => {\n if (item) {\n children.push(this._renderItem(props, item, index));\n }\n return children;\n }, []);\n }\n\n /**\n * Get root element rendered children.\n *\n * @param props Current list properties.\n * @returns React render children.\n */\n protected _getChildren(props: RenderableProps

    ): ComponentChildren {\n const items = this._getItems(props);\n this._items = items;\n const children = this._renderItems(props, items);\n if (props.children) {\n children.push(props.children);\n }\n return children;\n }\n\n /**\n * Get root element rendered component type.\n *\n * @param props Current list properties.\n * @returns React component type.\n */\n protected _getComponent(props: RenderableProps

    ): ComponentType | keyof JSX.IntrinsicElements {\n return props.component || (this.constructor.TAG as keyof JSX.IntrinsicElements);\n }\n}\n","import {ComponentFromReact} from '@zui/core';\nimport {CommonList as CommonListReact} from '../component';\n\nimport type {CommonListProps} from '../types';\n\nexport class CommonList extends ComponentFromReact {\n static NAME = 'CommonList';\n\n static Component = CommonListReact;\n\n static replace = CommonListReact.TAG;\n}\n\nCommonList.register();\n","import {registerReactComponent} from '@zui/core';\nimport * as components from './index';\n\nregisterReactComponent(components);\n","export type RGBColor = [r: number, g: number, b: number];\n\nexport function hex2Rgb(hex: string): RGBColor {\n if (hex.indexOf('#') === 0) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6) {\n throw new Error(`Invalid HEX color \"${hex}\".`);\n }\n return [\n parseInt(hex.slice(0, 2), 16), // r\n parseInt(hex.slice(2, 4), 16), // g\n parseInt(hex.slice(4, 6), 16), // b\n ];\n}\n\nexport function isLightColor(color: string | RGBColor): boolean {\n const [r, g, b] = typeof color === 'string' ? hex2Rgb(color) : color;\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186;\n}\n\nexport function contrastColor(color: string | RGBColor, options?: {dark: string, light: string}) {\n return isLightColor(color) ? (options?.dark ?? '#333333') : (options?.light ?? '#ffffff');\n}\n\nfunction clamp(value: number, max = 255): number {\n return Math.min(Math.max(value, 0), max);\n}\n\nexport function hslToRgb(h: number, s: number, l: number): RGBColor {\n h = (h % 360) / 360;\n s = clamp(s);\n l = clamp(l);\n\n const m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n const m1 = l * 2 - m2;\n\n const hue = (value: number): number => {\n value = value < 0 ? value + 1 : (value > 1 ? value - 1 : value);\n if (value * 6 < 1) {\n return m1 + (m2 - m1) * value * 6;\n } else if (value * 2 < 1) {\n return m2;\n } else if (value * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - value) * 6;\n } else {\n return m1;\n }\n };\n\n return [\n hue(h + 1 / 3) * 255,\n hue(h) * 255,\n hue(h - 1 / 3) * 255,\n ];\n}\n","import {Component, ComponentChildren, JSX} from 'preact';\nimport {classes, Icon} from '@zui/core';\nimport {contrastColor, hslToRgb} from '@zui/helpers/src/color-helper';\nimport {getUniqueCode} from '@zui/helpers/src/string-code';\nimport {AvatarOptions} from '../types/';\n\nfunction getAvatarText(text: string, maxTextLength: number) {\n if (/^[\\u4e00-\\u9fa5\\s]+$/.test(text)) {\n return text.length <= maxTextLength ? text : text.substring(text.length - maxTextLength);\n }\n if (/^[A-Za-z\\d\\s]+$/.test(text)) {\n return text[0].toUpperCase();\n }\n return text.length <= maxTextLength ? text : text.substring(0, maxTextLength);\n}\n\nexport class Avatar extends Component {\n render() {\n const {\n className,\n style,\n size = '',\n circle,\n rounded,\n background,\n foreColor,\n icon,\n text,\n code,\n maxTextLength = 2,\n src,\n hueDistance = 43,\n saturation = 0.4,\n lightness = 0.6,\n children,\n ...others\n } = this.props;\n\n const finalClass = ['avatar', className];\n const finalStyle = {...style, background, color: foreColor};\n\n let actualSize = 32;\n if (size) {\n if (typeof size === 'number') {\n finalStyle.width = `${size}px`;\n finalStyle.height = `${size}px`;\n finalStyle.fontSize = `${Math.max(12, Math.round(size / 2))}px`;\n actualSize = size;\n } else {\n finalClass.push(`size-${size}`);\n actualSize = ({xs: 20, sm: 24, lg: 48, xl: 80})[size];\n }\n }\n if (circle) {\n finalClass.push('circle');\n } else if (rounded) {\n if (typeof rounded === 'number') {\n finalStyle.borderRadius = `${rounded}px`;\n } else {\n finalClass.push(`rounded-${rounded}`);\n }\n }\n\n let content: ComponentChildren | undefined;\n if (src) {\n finalClass.push('has-img');\n content = {text};\n } else if (icon) {\n finalClass.push('has-icon');\n content = ;\n } else if (text?.length) {\n const displayText = getAvatarText(text, maxTextLength);\n const displayTextLength = displayText.length;\n finalClass.push('has-text', `has-text-${displayTextLength}`);\n\n if (background === undefined) {\n const avatarCode = code ?? text;\n const hue = (typeof avatarCode === 'number' ? avatarCode : getUniqueCode(avatarCode)) * hueDistance % 360;\n finalStyle.background = `hsl(${hue},${saturation * 100}%,${lightness * 100}%)`;\n if (!foreColor) {\n const rgb = hslToRgb(hue, saturation, lightness);\n finalStyle.color = contrastColor(rgb);\n }\n } else if (!foreColor && background) {\n finalStyle.color = contrastColor(background);\n }\n let textStyle: JSX.CSSProperties | undefined;\n if (actualSize && actualSize < (16 * displayTextLength)) {\n textStyle = {transform: `scale(${actualSize / (16 * displayTextLength)})`, whiteSpace: 'nowrap'};\n }\n\n content =

    {displayText}
    ;\n }\n\n return (\n \n {content}\n {children}\n
    \n );\n }\n}\n","import {$, mergeProps, removeUndefinedProps} from '@zui/core';\nimport {Button} from '@zui/button/src/component';\nimport {CommonList} from '@zui/common-list/src/component';\n\nimport type {RenderableProps} from 'preact';\nimport type {ButtonProps} from '@zui/button';\nimport type {Item} from '@zui/common-list';\nimport type {BtnGroupOptions} from '../types';\n\nexport class BtnGroup extends CommonList {\n static NAME = 'btn-group';\n\n /**\n * Root element default tag name, used for DOM rendering.\n */\n static TAG = 'nav';\n\n static ItemComponents = {\n ...CommonList.ItemComponents,\n default: Button,\n };\n\n /**\n * Item default common props, used for rendering for all item types.\n */\n static defaultItemProps: Partial = {\n component: undefined,\n };\n\n protected _shareBtnProps?: Partial;\n\n protected _isBtnType({type}: Item): boolean {\n return type === 'item' || type === 'dropdown';\n }\n\n protected _getItem(props: RenderableProps, item: Item, index: number): false | Item {\n if (!item) {\n return false;\n }\n if (!item.type) {\n item = $.extend({type: (item.dropdown || item.items) ? 'dropdown' : 'item'}, item);\n }\n let itemProps = super._getItem(props, item, index);\n if (!itemProps) {\n return itemProps;\n }\n if (this._isBtnType(itemProps)) {\n itemProps = mergeProps({}, this._shareBtnProps, itemProps);\n }\n return itemProps;\n }\n\n protected _beforeRender(props: RenderableProps): void | RenderableProps | undefined {\n const {btnProps, btnType, size} = props;\n\n this._shareBtnProps = mergeProps({}, btnProps, removeUndefinedProps({btnType, size}));\n }\n}\n","import {classes, $, mergeProps} from '@zui/core';\nimport {BtnGroup} from '@zui/btn-group/src/component/btn-group';\n\nimport type {Item} from '@zui/common-list';\nimport type {ToolbarOptions, ToolbarSetting} from '../types';\nimport type {ClassNameLike} from '@zui/core/src/helpers';\nimport type {Attributes, RenderableProps} from 'preact';\n\nexport class Toolbar extends BtnGroup {\n static NAME = 'toolbar';\n\n static defaultProps: Partial = {\n btnProps: {\n btnType: 'ghost',\n },\n };\n\n static ItemComponents = {\n ...BtnGroup.ItemComponents,\n btnGroup: BtnGroup,\n 'btn-group': BtnGroup,\n };\n\n protected _getProps(props: RenderableProps): Record {\n const {gap} = props;\n const propsMap = super._getProps(props);\n if (gap) {\n if (typeof gap === 'number') {\n propsMap.className = classes(propsMap.className as ClassNameLike, `gap-${gap}`);\n } else {\n propsMap.style = $.extend(propsMap.style || {}, {gap: gap});\n }\n }\n return propsMap;\n }\n\n protected _getItem(props: RenderableProps, item: Item, index: number): false | Item {\n const itemProps = super._getItem(props, item, index);\n if (!itemProps) {\n return itemProps;\n }\n const {type} = itemProps;\n const isBtnGroup = type === 'btn-group' || type === 'btnGroup';\n if (isBtnGroup) {\n itemProps.btnProps = mergeProps({}, this._shareBtnProps, itemProps.btnProps);\n }\n if ((isBtnGroup || type === 'dropdown') && !itemProps.relativeTarget) {\n itemProps.relativeTarget = props.relativeTarget;\n }\n return itemProps;\n }\n\n static render(this: unknown, setting: ToolbarSetting | undefined, args: T, defaultProps?: Partial & Attributes, thisObject?: unknown) {\n let toolbarOptions = typeof setting === 'function' ? setting.call(thisObject ?? this, ...args) : setting;\n if (!toolbarOptions) {\n return;\n }\n if (Array.isArray(toolbarOptions)) {\n toolbarOptions = {\n items: toolbarOptions,\n };\n }\n if (defaultProps) {\n toolbarOptions = mergeProps(defaultProps as Record, toolbarOptions);\n }\n return ;\n }\n}\n","import {CustomContent, HElement} from '@zui/core';\n\nimport type {ClassNameLike} from '@zui/core';\nimport type {ComponentChildren, RenderableProps} from 'preact';\nimport type {CheckboxProps, CheckboxState} from '../types';\n\nexport class Checkbox

    extends HElement {\n protected _controlled: boolean;\n\n constructor(props: P) {\n super(props);\n this.state = {\n checked: props.checked ?? props.defaultChecked ?? false,\n };\n this._controlled = props.checked !== undefined;\n }\n\n get checked() {\n return this._controlled ? this.props.checked : this.state.checked;\n }\n\n protected _getClassName(props: RenderableProps

    ): ClassNameLike {\n const {disabled, type = 'checkbox'} = props;\n const {checked} = this;\n return [props.className, type === 'switch' ? type : `${type}-primary`, {\n disabled,\n checked: checked === true,\n indeterminate: checked === 'indeterminate',\n }];\n }\n\n protected _handleChange = (event: Event) => {\n const {onChange} = this.props;\n const checked = (event.target as HTMLInputElement).indeterminate ? 'indeterminate' : (event.target as HTMLInputElement).checked;\n if (onChange) {\n onChange.call(this, event, checked);\n }\n if (!this._controlled) {\n this.setState({checked});\n }\n };\n\n protected _getChildren(props: RenderableProps

    ): ComponentChildren {\n const {name, type, value, id, label} = props;\n const {checked} = this;\n return [\n name ? (\n \n ) : null,\n (),\n ];\n }\n}\n","import {RadioProps} from '../types';\nimport {Checkbox} from './checkbox';\n\nexport class Radio

    extends Checkbox

    {\n static defaultProps: Partial = {\n type: 'radio',\n };\n}\n","import {SwitchProps} from '../types';\nimport {Checkbox} from './checkbox';\n\nexport class Switch

    extends Checkbox

    {\n static defaultProps: Partial = {\n type: 'switch',\n };\n}\n","import {toChildArray} from 'preact';\nimport {CustomContent, HElement, Icon, classes, mergeProps} from '@zui/core';\nimport {Avatar} from '@zui/avatar/src/component';\nimport {Toolbar} from '@zui/toolbar/src/component';\nimport {Checkbox} from '@zui/checkbox/src/component';\n\nimport type {ComponentChild, ComponentChildren, ComponentType, JSX, RenderableProps} from 'preact';\nimport type {ListitemProps} from '../types';\n\nexport class Listitem

    extends HElement {\n protected _renderLeading(props: RenderableProps

    ): ComponentChild[] {\n const {\n icon,\n iconClass,\n avatar,\n toggleIcon,\n leading,\n leadingClass,\n checked,\n checkbox,\n multiline,\n } = props;\n const contents: ComponentChild[] = [];\n if (toggleIcon) {\n contents.push();\n }\n if (checked !== undefined) {\n contents.push();\n }\n if (icon) {\n contents.push();\n }\n if (avatar) {\n const avatarProps = typeof avatar === 'function' ? avatar.call(this, props) : avatar;\n if (avatarProps) {\n avatarProps.className = classes('item-avatar', avatarProps.className);\n contents.push();\n }\n }\n const customLeading = leading ? : null;\n if (customLeading) {\n contents.push(customLeading);\n }\n if (multiline) {\n return contents.length ? [\n

    {contents}
    ,\n ] : [];\n }\n return contents;\n }\n\n protected _renderContent(props: RenderableProps

    , linkRendered?: boolean): ComponentChild[] {\n const {\n textClass,\n titleClass,\n titleAttrs,\n subtitle,\n subtitleClass,\n url,\n target,\n content,\n contentClass,\n contentAttrs,\n } = props;\n const titleAsLink = url && !linkRendered;\n const TitleComponent = titleAsLink ? 'a' : 'div';\n let {title, text} = props;\n if (title === undefined) {\n title = text;\n text = null;\n }\n return [\n

    \n {title ? : null}\n {subtitle ?
    : null}\n {text ?
    {text}
    : null}\n {content ? : null}\n
    ,\n ];\n }\n\n protected _renderTrailing(props: RenderableProps

    ): ComponentChild[] {\n const {\n multiline,\n trailing,\n trailingClass,\n trailingIcon,\n trailingIconClass,\n actions,\n } = props;\n const contents: ComponentChild[] = [];\n if (trailingIcon) {\n contents.push();\n }\n if (actions) {\n contents.push(Toolbar.render(actions, [props], {key: 'actions', className: 'item-actions', relativeTarget: props, size: 'sm'}, this));\n }\n const customTrailing = trailing ? : null;\n if (customTrailing) {\n contents.push(customTrailing);\n }\n if (multiline) {\n return contents.length ? [\n

    {contents}{customTrailing}
    ,\n ] : [];\n }\n return contents;\n }\n\n protected _render(props: RenderableProps

    , extraAttrs?: Record): ComponentChild {\n const {\n innerComponent,\n innerClass,\n innerAttrs,\n url,\n actions,\n target,\n active,\n disabled,\n divider,\n checked,\n multiline,\n title,\n subtitle,\n hint,\n selected,\n command,\n } = props;\n const ComponentName = innerComponent || ((url && !actions) ? 'a' : 'div');\n const asLink = ComponentName === 'a';\n const attrs = mergeProps({\n key: 'item',\n title: hint,\n className: classes('listitem', innerClass, {\n active,\n disabled,\n 'has-divider': divider,\n selected,\n checked,\n multiline: multiline ?? !!(title && subtitle),\n state: asLink && !disabled,\n }),\n }, command ? {'zui-command': command} : null, asLink ? {href: url || 'javascript:;', target} : null, extraAttrs, innerAttrs);\n return (\n \n {this._renderLeading(props)}\n {this._renderContent(props, asLink)}\n {this._renderTrailing(props)}\n \n );\n }\n\n protected _onRender(component: ComponentType | keyof JSX.IntrinsicElements, componentProps: Record, children: ComponentChildren, _props: RenderableProps

    ): void | [component: ComponentType | keyof JSX.IntrinsicElements, componentProps: Record, children: ComponentChildren] {\n const innerAttrs = Object.keys(componentProps).reduce>((attrs, key) => {\n if (key.startsWith('data-')) {\n attrs[key] = componentProps[key];\n delete componentProps[key];\n }\n return attrs;\n }, {});\n return [component, componentProps, [this._render(_props, innerAttrs), ...toChildArray(children)]];\n }\n}\n","import {$, Computed, HElement, classes, fetchData, mergeProps, removeUndefinedProps} from '@zui/core';\nimport {CommonList} from '@zui/common-list/src/component';\nimport {Listitem} from './listitem';\n\nimport type {ComponentChild, ComponentChildren, RenderableProps} from 'preact';\nimport type {ClassNameLike, CustomContentType} from '@zui/core';\nimport type {Item, ItemKey} from '@zui/common-list';\nimport type {CheckedType} from '@zui/checkbox';\nimport type {ListProps, ListState, ListItemsSetting, ListItemsFetcher} from '../types';\n\nexport class List

    extends CommonList {\n static ItemComponents: typeof CommonList.ItemComponents = {\n ...CommonList.ItemComponents,\n default: HElement,\n item: Listitem,\n heading: Listitem,\n };\n\n static NAME = 'list';\n\n protected _loadedSetting?: ListItemsSetting;\n\n protected declare _hasIcons: boolean;\n\n protected declare _hasCheckbox: boolean;\n\n protected _activeSet = new Computed>(() => {\n const map = new Set();\n const {active} = this.props;\n if (Array.isArray(active)) {\n active.forEach(x => map.add(x));\n } else if (typeof active === 'string') {\n map.add(active);\n } else if (active) {\n Object.keys(active).forEach(x => active[x] && map.add(x));\n }\n const {activeMap} = this.state;\n Object.keys(activeMap).forEach(x => activeMap[x] ? map.add(x) : map.delete(x));\n return map;\n }, () => [this.state.activeMap, this.props.active]);\n\n constructor(props: P) {\n super(props);\n this.state = {\n checked: {},\n activeMap: {},\n } as S;\n }\n\n get namespace() {\n return `.zui.${this.constructor.NAME}.list_${this.gid}`;\n }\n\n get isLazyItems() {\n const {items} = this.props;\n return items && !Array.isArray(items);\n }\n\n componentDidMount() {\n this._afterRender(true);\n this.tryLoad();\n\n if (this.props.activeOnHover && !this.props.multipleActive) {\n $(this.element).on(`mouseenter${this.namespace}`, '[z-item]', (event) => {\n const info = this._getItemFromEvent(event);\n if (info && info.renderedItem.type === 'item' && !info.renderedItem.disabled && !this.isActive(info.key)) {\n this.toggleActive(info.key, true);\n }\n });\n }\n }\n\n componentDidUpdate(): void {\n this._afterRender(false);\n this.tryLoad();\n }\n\n componentWillUnmount(): void {\n $(this.element).off(this.namespace);\n this.props.beforeDestroy?.call(this);\n }\n\n setItems(items?: Item[], error?: Error) {\n const {onLoadFail} = this.props;\n return this.changeState({\n loading: false,\n items: items || [],\n loadFailed: error ? (typeof onLoadFail === 'function' ? (onLoadFail as (error: Error) => CustomContentType | undefined).call(this, error as Error) : onLoadFail) || String(error) : undefined,\n } as S);\n }\n\n load(): void {\n const {items, onLoad} = this.props;\n this._loadedSetting = items;\n this.setState({loading: true, items: []}, async () => {\n try {\n const newItems = await fetchData(items as ListItemsFetcher, [this], {throws: true});\n this.setItems(onLoad?.call(this, newItems) || newItems);\n } catch (error) {\n this.setItems(undefined, error as Error);\n }\n });\n }\n\n tryLoad() {\n const {loading} = this.state;\n const {items} = this.props;\n if (loading || !items || Array.isArray(items) || items === this._loadedSetting) {\n return false;\n }\n this.load();\n return true;\n }\n\n isChecked(key: ItemKey, index?: number, defaultChecked: CheckedType = false): CheckedType {\n const item = (typeof index === 'number' ? this._items[index] : this.getItem(key)) || {};\n return this.state.checked[key] ?? item.checked ?? defaultChecked;\n }\n\n isAllChecked(): boolean {\n return this._renderedItems.every(({key}, index) => this.isChecked(key!, index) === true);\n }\n\n toggleAllChecked(checked?: boolean) {\n if (checked === undefined) {\n checked = !this.isAllChecked();\n }\n return this.toggleChecked(this._renderedItems.map(x => x.key!), checked);\n }\n\n async toggleChecked(keyOrChange: ItemKey | ItemKey[] | Record, checked?: boolean) {\n let change: Record;\n if (Array.isArray(keyOrChange)) {\n if (!keyOrChange.length) {\n return;\n }\n if (checked === undefined) {\n checked = !this.isChecked(keyOrChange[0]);\n }\n change = keyOrChange.reduce>((map, key) => {\n map[key] = checked!;\n return map;\n }, {});\n } else if (typeof keyOrChange === 'object') {\n change = keyOrChange;\n } else {\n const isChecked = this.isChecked(keyOrChange);\n if (checked === undefined) {\n checked = !isChecked;\n }\n change = {[keyOrChange]: checked!};\n }\n if (!Object.keys(change).length) {\n return;\n }\n\n await this.changeState(prevState => ({\n checked: {\n ...prevState.checked,\n ...change,\n },\n } as Partial), () => {\n const checkState = this.state.checked;\n this.props.onCheck?.call(this, change, Object.keys(checkState).filter(x => checkState[x] === true));\n });\n }\n\n getChecks() {\n return this._renderedItems.reduce((checks, {key}, index) => {\n if (key !== undefined && this.isChecked(key, index) === true) {\n checks.push(key);\n }\n return checks;\n }, []);\n }\n\n isActive(key: string | Item) {\n if (typeof key === 'object') {\n key = key.key!;\n }\n return this._activeSet.cache.has(key);\n }\n\n getActiveKeys() {\n return [...this._activeSet.value];\n }\n\n getActiveKey() {\n return this.getActiveKeys()[0];\n }\n\n async toggleActive(keys: string | string[], active?: boolean) {\n if (typeof keys === 'string') {\n keys = [keys];\n }\n if (!keys.length) {\n return;\n }\n active = active ?? !this.isActive(keys[0]);\n await this.changeState(prevState => {\n const activeMap = this.props.multipleActive ? (keys as string[]).reduce>((map, key) => {\n map[key] = active!;\n return map;\n }, {...prevState.activeMap}) : {[keys[0]]: active!};\n return {activeMap} as Partial;\n }, () => {\n this.props.onActive?.call(this, keys as string[], active!);\n });\n }\n\n getNextItem(key: string | undefined, condition?: (item: Item, index: number) => boolean, step = 1, items: Item[] | undefined = undefined): Item | undefined {\n items = items || this._renderedItems;\n const count = items.length;\n if (key === undefined) {\n return items[step ? 0 : count - 1];\n }\n let index = items.findIndex(x => x.key === key);\n if (index < 0 || count < 2) {\n return items[step ? 0 : count - 1];\n }\n let checkCount = 0;\n condition = condition || ((x) => x.type === 'item' && !x.disabled);\n while (checkCount < count) {\n index = (index + step + count) % count;\n const nextItem = items[index];\n if (nextItem && !nextItem.disabled && !nextItem.hidden && condition.call(this, nextItem, index)) {\n return nextItem;\n }\n checkCount++;\n }\n }\n\n getPrevItem(key: string | undefined, condition?: (item: Item, index: number) => boolean): Item | undefined {\n return this.getNextItem(key, condition, -1);\n }\n\n activeNext(condition?: (item: Item, index: number) => boolean, step = 1) {\n const nextItem = this.getNextItem(this.getActiveKey(), condition, step);\n if (nextItem) {\n this.toggleActive(nextItem.key!);\n }\n }\n\n activePrev(condition?: (item: Item, index: number) => boolean) {\n this.activeNext(condition, -1);\n }\n\n protected _afterRender(firstRender: boolean) {\n this.props.afterRender?.call(this, firstRender);\n }\n\n protected _beforeRender(props: RenderableProps

    ): void | RenderableProps

    | undefined {\n return this.props.beforeRender?.call(this, props);\n }\n\n protected _getItems(props: RenderableProps

    ): Item[] {\n const {items} = props;\n const {items: stateItems} = this.state;\n return stateItems || (Array.isArray(items) ? items : []);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _getRenderedItem(props: RenderableProps

    , renderedItem: Item, index: number): Item {\n const {divider, multiline} = props;\n renderedItem = mergeProps({}, removeUndefinedProps({\n divider,\n multiline,\n }), renderedItem);\n\n const {itemName, name} = this;\n renderedItem.innerClass = [itemName ? `${itemName}-inner${name ? ` ${name}-${renderedItem.type}-inner` : ''}` : '', renderedItem.innerClass];\n\n if (renderedItem.type === 'item') {\n const {checkbox} = props;\n if (renderedItem.checkbox === false) {\n renderedItem.checked = undefined;\n } else if (checkbox || renderedItem.checkbox) {\n renderedItem.checked = this.isChecked(renderedItem.key!, index, renderedItem.checked as CheckedType);\n if (typeof checkbox === 'object' && renderedItem.checkbox !== false) {\n renderedItem.checkbox = renderedItem.checkbox ? $.extend({}, checkbox, renderedItem.checkbox) : checkbox;\n }\n if (props.selectOnChecked && renderedItem.checked === true) {\n renderedItem.selected = true;\n }\n }\n if (renderedItem.active === undefined && this.isActive(renderedItem)) {\n renderedItem.active = true;\n }\n }\n\n if (renderedItem.icon) {\n this._hasIcons = true;\n }\n if (renderedItem.checked !== undefined) {\n this._hasCheckbox = true;\n }\n\n return renderedItem;\n }\n\n protected _getItem(props: RenderableProps

    , item: Item, index: number): Item | false {\n const renderedItem = super._getItem(props, item, index);\n if (!renderedItem) {\n return renderedItem;\n }\n return this._getRenderedItem(props, renderedItem, index);\n }\n\n protected _renderItem(props: RenderableProps

    , item: Item, index: number): ComponentChildren {\n if (item.type === 'item' && this._hasIcons && item.icon === undefined) {\n item.icon = 'EMPTY';\n }\n return super._renderItem(props, item, index);\n }\n\n protected _handleClick(event: MouseEvent) {\n const info = super._handleClick(event);\n let {checkOnClick} = this.props;\n if (checkOnClick === 'any') {\n checkOnClick = '.item-checkbox,.item-content,.item-icon';\n } else if (checkOnClick === true) {\n checkOnClick = '.item-checkbox';\n }\n if (!checkOnClick || !info || !info.renderedItem) {\n return info;\n }\n const renderedItem = info.renderedItem;\n const itemCheckbox = renderedItem.checkbox;\n const hasCheckbox = itemCheckbox !== false && (this.props.checkbox || itemCheckbox || renderedItem.checked !== undefined);\n if (hasCheckbox && !renderedItem.disabled && info && (event.target as HTMLElement).closest(checkOnClick)) {\n this.toggleChecked(info.key);\n event.stopPropagation();\n return;\n }\n return info;\n }\n\n protected _getClassName(props: RenderableProps

    ): ClassNameLike {\n const {loading, loadFailed} = this.state;\n return [super._getClassName(props), loading ? 'loading' : (loadFailed ? 'is-load-failed' : ''), props.hoverItemActions ? 'with-hover-actions' : ''];\n }\n\n protected _getProps(props: RenderableProps

    ): Record {\n const {className, ...others} = super._getProps(props);\n return {\n ...others,\n className: classes(className as ClassNameLike, this._hasIcons ? 'has-icons' : '', this._hasCheckbox ? 'has-checkbox' : ''),\n };\n }\n\n protected _getChildren(props: RenderableProps

    ): ComponentChildren {\n this._hasIcons = false;\n this._hasCheckbox = false;\n this._activeSet.compute();\n const children = super._getChildren(props) as ComponentChild[];\n const {loadFailed} = this.state;\n if (loadFailed) {\n children.push(loadFailed);\n }\n return children;\n }\n}\n","/** Store type. */\nexport type StoreType = 'local' | 'session';\n\nconst STR_PREFIX = '```ZUI_STR\\n';\n\n/**\n * Store for using localStorage and sessionStorage.\n */\nexport class Store {\n protected _type: StoreType;\n\n protected _name: string;\n\n protected _id: string;\n\n protected _storage: Storage;\n\n protected _altStorage?: Store;\n\n /**\n * Create new store instance.\n * @param id Store profile ID.\n * @param type Store type.\n */\n constructor(id: string = '', type: StoreType = 'local') {\n this._type = type;\n this._id = id;\n this._name = `ZUI_STORE:${this._id}`;\n this._storage = type === 'local' ? localStorage : sessionStorage;\n }\n\n /**\n * Get store type.\n */\n get type(): StoreType {\n return this._type;\n }\n\n /**\n * Get session type store instance.\n */\n get session(): Store {\n if (this.type === 'session') {\n return this;\n }\n if (!this._altStorage) {\n this._altStorage = new Store(this._id, 'session');\n }\n return this._altStorage;\n }\n\n protected _getKey(key: string): string {\n return `${this._name}:${key}`;\n }\n\n /**\n * Switch store profile.\n *\n * @param id Store profile ID.\n */\n switch(id: string) {\n this._id = id;\n this._name = `ZUI_STORE:${this._id}`;\n }\n\n /**\n * Get value from store.\n *\n * @param key Key to get\n * @returns Value of key or undefined if key is not found\n */\n get(key: string): T | undefined;\n\n /**\n * Get value from store, if key is not found, return defaultValue.\n *\n * @param key Key to get.\n * @param defaultValue Default value to return if key is not found.\n */\n get(key: string, defaultValue: T): T;\n\n /**\n * Get value from store.\n *\n * @param key Key to get.\n * @param defaultValue Default value to return if key is not found.\n * @returns Value of key or defaultValue if key is not found.\n */\n get(key: string, defaultValue?: T): T | undefined {\n const value = this._storage.getItem(this._getKey(key));\n if (typeof value === 'string') {\n if (value.startsWith(STR_PREFIX)) {\n return value.substring(STR_PREFIX.length) as T;\n }\n try {\n return JSON.parse(value);\n // eslint-disable-next-line no-empty\n } catch (_error) {}\n }\n return (value as T) ?? defaultValue;\n }\n\n /**\n * Set key-value pair in store.\n *\n * @param key Key to set.\n * @param value Value to set.\n */\n set(key: string, value: unknown): void {\n if (value === undefined || value === null) {\n return this.remove(key);\n }\n this._storage.setItem(this._getKey(key), typeof value === 'string' ? `${STR_PREFIX}${value}` : JSON.stringify(value));\n }\n\n /**\n * Remove key-value pair from store.\n *\n * @param key Key to remove.\n */\n remove(key: string): void {\n this._storage.removeItem(this._getKey(key));\n }\n\n /**\n * Iterate all key-value pairs in store.\n *\n * @param callback Callback function to call for each key-value pair in the store.\n */\n each(callback: (name: string, value: unknown) => void): void {\n for (let i = 0; i < this._storage.length; i++) {\n const key = this._storage.key(i);\n if (key?.startsWith(this._name)) {\n const value = this._storage.getItem(key);\n if (typeof value === 'string') {\n callback(key.substring(this._name.length + 1), JSON.parse(value));\n }\n }\n }\n }\n\n /**\n * Get all key values in store.\n *\n * @returns All key-value pairs in the store.\n */\n getAll(): Record {\n const result: Record = {};\n this.each((key, value) => {\n result[key] = value;\n });\n return result;\n }\n}\n","import {Store, StoreType} from './store';\n\nexport type {Store} from './store';\n\nexport const store = new Store('DEFAULT');\n\nfunction createStore(name?: string, type: StoreType = 'local') {\n return new Store(name, type);\n}\n\nObject.assign(store, {create: createStore});\n","import {Icon, classes, mergeProps, $, isValidElement} from '@zui/core';\nimport {store} from '@zui/store';\nimport {List} from './list';\nimport '@zui/css-icons/src/icons/caret.css';\n\nimport type {ComponentChild, ComponentChildren, RenderableProps} from 'preact';\nimport type {ClassNameLike} from '@zui/core';\nimport type {Item, ItemKey} from '@zui/common-list';\nimport type {CheckedType} from '@zui/checkbox';\nimport type {ListItemsSetting, NestedItem, NestedListProps, NestedListState} from '../types';\n\nexport type MouseEventInfo = {\n index: number;\n item: NestedItem;\n renderedItem: NestedItem;\n element: HTMLElement;\n target: HTMLElement;\n event: MouseEvent;\n key: ItemKey;\n parentKey?: ItemKey;\n hover?: boolean;\n keyPath: string;\n};\n\nexport type ItemInfo = {\n key: string;\n level: number;\n keyPath: string;\n parentKey?: string;\n parent?: ItemInfo;\n children: ItemInfo[];\n data: Item;\n};\n\nfunction forEachChild(item: ItemInfo, callback: (child: ItemInfo) => void) {\n const {children} = item;\n if (!children.length) {\n return;\n }\n children.forEach(child => {\n callback(child);\n forEachChild(child, callback);\n });\n}\n\nfunction forEachParent(item: ItemInfo, callback: (parent: ItemInfo) => void) {\n let parent = item.parent;\n while (parent) {\n callback(parent);\n parent = parent.parent;\n }\n}\n\nfunction parentKeys(keyPath: string) {\n return keyPath.split(':').reduce((keys, item, index) => {\n keys.push(index ? keys[index - 1] + ':' + item : item);\n return keys;\n }, []);\n}\n\n\nfunction reduceNestedItems(items: Item[], itemKey: string | undefined, reducer: (previousValue: T, info: ItemInfo) => T, initialValue: T, level = 0, parent?: ItemInfo): T {\n return items.reduce((currentValue, item, index) => {\n if (!item) {\n return currentValue;\n }\n const key = String((itemKey ? item[itemKey] : item.key) ?? (item.key ?? index));\n const keyPath = parent ? `${parent.keyPath}:${key}` : key;\n const itemInfo = {\n key,\n level,\n keyPath,\n parentKey: parent?.keyPath,\n parent: parent,\n data: item,\n children: [],\n };\n if (parent) {\n parent.children.push(itemInfo);\n }\n currentValue = reducer(currentValue, itemInfo);\n if (Array.isArray(item.items)) {\n return reduceNestedItems(item.items as Item[], itemKey, reducer, currentValue, level + 1, itemInfo);\n }\n return currentValue;\n }, initialValue);\n}\n\nexport class NestedList

    extends List {\n static defaultProps: Partial = {\n ...List.defaultProps,\n defaultNestedShow: false,\n level: 0,\n indent: 20,\n } as Partial;\n\n static inheritNestedProps = ['component', 'name', 'itemName', 'itemKey', 'indent', 'hover', 'divider', 'multiline', 'toggleIcons', 'nestedToggle', 'accordion', 'itemRender', 'itemProps', 'onToggle', 'checkbox', 'getItem', 'getItems', 'checkOnClick', 'selectOnChecked', 'checkedState', 'onClickItem', 'activeOnHover', 'multipleActive', 'onActive', 'hoverItemActions'];\n\n protected declare _hasNestedItems: boolean;\n\n protected declare _storeID: string;\n\n protected declare _renderedItemMap: Map;\n\n protected declare _itemMap?: Map;\n\n protected declare _itemMapCache: Map;\n\n protected declare _needInitChecks?: boolean;\n\n constructor(props: P) {\n super(props);\n const {defaultNestedShow, preserve, nestedShow} = props;\n $.extend(\n this.state,\n typeof defaultNestedShow === 'boolean' ? {defaultShow: defaultNestedShow, nestedShow: {}} : {nestedShow: defaultNestedShow || {}},\n nestedShow !== undefined ? {nestedShow} : null,\n );\n if (preserve && nestedShow === undefined) {\n this._storeID = `${this.constructor.NAME}:${preserve}:state`;\n const storeState = store.get(this._storeID) as NestedListState;\n if (storeState) {\n (this.state as NestedListState).nestedShow = storeState.nestedShow;\n }\n }\n\n if (!props.level) {\n const nestedState = this.state.nestedShow;\n if (nestedState) {\n Object.keys(nestedState).forEach(key => {\n if (!nestedState[key]) {\n return;\n }\n parentKeys(key).forEach(parentKey => {\n nestedState[parentKey] = true;\n });\n });\n }\n this._needInitChecks = true;\n }\n\n this._renderedItemMap = new Map();\n this._handleClick = this._handleClick.bind(this);\n this._beforeRenderNestedItem = this._beforeRenderNestedItem.bind(this);\n this._handleNestedToggle = this._handleNestedToggle.bind(this);\n this._handleNestedCheck = this._handleNestedCheck.bind(this);\n this._preserveState = this._preserveState.bind(this);\n }\n\n get isRoot() {\n return !this.props.level;\n }\n\n get nestedShow() {\n return this.props.nestedShow ?? this.state.nestedShow ?? false;\n }\n\n async setItems(items?: Item[] | undefined, error?: Error | undefined) {\n if (this.isRoot) {\n this._needInitChecks = true;\n }\n const state = await super.setItems(items, error);\n if (items && this.props.parent?.checked === true) {\n this.toggleChecked(this._renderedItems.map(x => x.key!), true);\n } else if (items?.some((x) => x.checked)) {\n this._needInitChecks = true;\n this.forceUpdate();\n }\n return state;\n }\n\n getItemMap(useCache?: boolean) {\n if (useCache && (this._itemMap || this._itemMapCache)) {\n return this._itemMap || this._itemMapCache;\n }\n if (!this._itemMap) {\n let needCheckRenderItems = false;\n const map: Map = reduceNestedItems(this._items, this.props.itemKey, (currentMap, info) => {\n currentMap.set(info.keyPath, info);\n if (info.data.items && !Array.isArray(info.data.items)) {\n needCheckRenderItems = true;\n }\n return currentMap;\n }, new Map());\n if (needCheckRenderItems) {\n this._renderedItemMap.forEach((item, keyPath) => {\n if (map.has(keyPath)) {\n return;\n }\n map.set(keyPath, {\n key: item.key,\n level: item._level,\n keyPath,\n parentKey: `${keyPath.split(':').slice(0, -1).join(':')}`,\n children: [],\n data: item,\n } as ItemInfo);\n });\n map.forEach((info) => {\n const {parentKey} = info;\n if (!parentKey) {\n return;\n }\n const parent = map.get(parentKey);\n if (parent) {\n parent.children.push(info);\n info.parent = parent;\n }\n });\n this._itemMapCache = map;\n return map;\n }\n this._itemMap = map;\n }\n return this._itemMap;\n }\n\n getRenderedItem(keyPath: string): Item | undefined {\n return this._renderedItemMap.get(keyPath);\n }\n\n getItem(keyPath: string) {\n const itemMap = this._itemMap || this._itemMapCache;\n if (itemMap) {\n return itemMap.get(keyPath)?.data;\n }\n const renderedItem = this.getRenderedItem(keyPath);\n return renderedItem ? (renderedItem._item as Item) : super.getItem(keyPath);\n }\n\n isExpanded(keyPath: string) {\n const {nestedShow} = this;\n if (typeof nestedShow === 'boolean') {\n return nestedShow;\n }\n return !!(nestedShow[keyPath] ?? this.state.defaultShow);\n }\n\n async toggle(keyPath: string, toggle?: boolean, reset?: boolean) {\n const isExpanded = this.isExpanded(keyPath);\n if (!reset && toggle === isExpanded) {\n return;\n }\n if (toggle === undefined) {\n toggle = !isExpanded;\n }\n const {nestedShow, onToggle, accordion} = this.props;\n if (onToggle && onToggle.call(this, keyPath, toggle, reset) === false) {\n return;\n }\n if (nestedShow !== undefined) {\n return;\n }\n await this.changeState(prevState => {\n let newNestedShow: Record = {\n ...(reset ? {} : prevState.nestedShow),\n [keyPath]: toggle!,\n };\n if (toggle && accordion) {\n let parentKey = `${keyPath.split(':').slice(0, -1).join(':')}`;\n if (parentKey.length) {\n parentKey += ':';\n }\n Object.keys(newNestedShow).forEach(key => {\n if (key !== keyPath && key.startsWith(parentKey)) {\n newNestedShow[key] = false;\n }\n });\n }\n newNestedShow = toggle ? parentKeys(keyPath).reduce>((map, key) => {\n map[key] = toggle!;\n return map;\n }, newNestedShow) : newNestedShow;\n return {\n nestedShow: newNestedShow,\n } as Partial;\n }, this._preserveState);\n }\n\n toggleAll(show: boolean) {\n if (this.props.nestedShow !== undefined) {\n return;\n }\n return this.setState({nestedShow: {}, defaultShow: show}, this._preserveState);\n }\n\n getChecks() {\n return Array.from(this.getItemMap(true).values()).reduce((checks, {keyPath, data}) => {\n const checkState = this.state.checked[keyPath];\n if ((checkState === true || (data.checked && checkState !== false)) === true) {\n checks.push(keyPath);\n }\n return checks;\n }, []);\n }\n\n isChecked(key: ItemKey, index?: number, defaultChecked: CheckedType = false): CheckedType {\n const item = (typeof index === 'number' ? this._items[index] : this.getItem(key)) || {};\n if (this.isRoot) {\n return this.state.checked[key] ?? (item.checked as CheckedType) ?? defaultChecked;\n }\n return this.props.checkedState![`${this.props.parentKey}:${key}`] ?? (item.checked as CheckedType) ?? defaultChecked;\n }\n\n async toggleChecked(keyOrChange: ItemKey | ItemKey[] | Record, checked?: CheckedType) {\n let change: Record;\n if (Array.isArray(keyOrChange)) {\n if (!keyOrChange.length) {\n return;\n }\n if (checked === undefined) {\n checked = !this.isChecked(keyOrChange[0]);\n }\n change = keyOrChange.reduce>((map, key) => {\n map[key] = checked!;\n return map;\n }, {});\n } else if (typeof keyOrChange === 'object') {\n change = keyOrChange;\n } else {\n if (checked === undefined) {\n checked = !this.isChecked(keyOrChange);\n }\n change = {[keyOrChange]: checked!};\n }\n if (!Object.keys(change).length) {\n return;\n }\n if (this.isRoot) {\n await this.changeState(({checked: prevChecked, nestedShow: preNestedShow}) => {\n const isChecked = (item: ItemInfo) => {\n return change[item.keyPath] ?? prevChecked[item.keyPath] ?? item.data.checked ?? false;\n };\n const map = this.getItemMap();\n const nestedShow: Record = {};\n const {expandChildrenOnCheck} = this.props;\n Object.keys(change).forEach(key => {\n checked = change[key];\n const item = map.get(key);\n if (!item) {\n return;\n }\n forEachChild(item, child => {\n if (isChecked(child) !== checked) {\n change[child.keyPath] = checked!;\n }\n });\n forEachParent(item, parent => {\n const {children} = parent;\n const checkedCount = children.reduce((count, child) => {\n if (isChecked(child)) {\n count++;\n }\n return count;\n }, 0);\n\n change[parent.keyPath] = checkedCount === children.length ? true : (checkedCount ? 'indeterminate' : false);\n });\n if (expandChildrenOnCheck && checked && item.data.items) {\n nestedShow[key] = true;\n }\n });\n return {\n checked: {\n ...prevChecked,\n ...change,\n },\n nestedShow: {\n ...preNestedShow,\n ...nestedShow,\n },\n } as Partial;\n }, () => {\n const checkState = this.state.checked;\n this.props.onCheck?.call(this, change, Object.keys(checkState).filter(x => checkState[x] === true));\n });\n return;\n }\n\n const {parentKey, onCheck} = this.props;\n const nestedChange = Object.keys(change).reduce>((map, key) => {\n map[`${parentKey !== undefined ? `${parentKey}:` : ''}${key}`] = change[key];\n return map;\n }, {});\n onCheck!.call(this, nestedChange, []);\n }\n\n getKeyPath(key: string) {\n if (this.isRoot) {\n return key;\n }\n const parentKey = this.props.parentKey!;\n if (!key.startsWith(parentKey + ':')) {\n return `${parentKey}:${key}`;\n }\n return key;\n }\n\n isActive(keyPath: string | Item) {\n if (typeof keyPath === 'object') {\n const keyOrKeyPath = (keyPath._keyPath ?? keyPath.key) as (string | undefined);\n if (keyOrKeyPath === undefined) {\n return false;\n }\n keyPath = keyOrKeyPath;\n }\n return this._activeSet.cache.has(this.getKeyPath(keyPath));\n }\n\n async toggleActive(keys: string | string[], active?: boolean) {\n if (typeof keys === 'string') {\n keys = [keys];\n }\n keys = keys.map(key => this.getKeyPath(key));\n if (this.isRoot) {\n await super.toggleActive(keys, active);\n if (this.props.toggleOnActive) {\n (keys as string[]).forEach(key => {\n if (this.isActive(key) && !this.isExpanded(key)) {\n this.toggle(key, true);\n }\n });\n }\n return;\n }\n\n this.props.onActive!.call(this, keys, active ?? !this.isActive(keys[0]));\n }\n\n activeNext(condition?: (item: Item, index: number) => boolean, step = 1) {\n const nextItem = this.getNextItem(this.getActiveKey(), condition, step);\n if (nextItem) {\n this.toggleActive(nextItem._keyPath as string);\n }\n }\n\n getNextItem(key: string | undefined, condition?: (item: Item, index: number) => boolean, step = 1, items: Item[] | undefined = undefined): Item | undefined {\n items = items || reduceNestedItems(this._items, this.props.itemKey, (list, info) => {\n if (info.data.disabled) {\n return list;\n }\n list.push({\n _keyPath: info.keyPath,\n type: 'item',\n ...info.data,\n ...this._renderedItemMap.get(info.keyPath),\n key: info.keyPath,\n });\n return list;\n }, []);\n return super.getNextItem(key, condition, step, items);\n }\n\n protected _afterRender(firstRender: boolean): void {\n super._afterRender(firstRender);\n if (this._needInitChecks) {\n const initChecks: Record = {};\n const itemMap = this.getItemMap();\n itemMap.forEach(item => {\n if (item.data.checked !== undefined) {\n initChecks[item.keyPath] = item.data.checked as CheckedType;\n }\n });\n this.toggleChecked(initChecks);\n this._needInitChecks = false;\n }\n }\n\n protected _preserveState() {\n if (this._storeID) {\n store.set(this._storeID, {nestedShow: this.state.nestedShow});\n }\n }\n\n protected _getClassName(props: RenderableProps

    ): ClassNameLike {\n return [super._getClassName(props), 'is-nested', props.level ? 'is-nested-sub' : 'is-nested-root'];\n }\n\n protected _getNestedProps(props: RenderableProps

    , items: ListItemsSetting, item: NestedItem, expanded: boolean): NestedListProps {\n const {\n parentKey,\n level = 0,\n } = props;\n const {isRoot} = this;\n return mergeProps(((this.constructor as typeof NestedList).inheritNestedProps.reduce>((propMap, key) => {\n propMap[key] = props[key as keyof P];\n return propMap;\n }, {})), {\n key: item.key,\n level: level + 1,\n className: `is-nested-${expanded ? 'expanded' : 'collapsed'}`,\n items,\n parent: item,\n parentKey: parentKey ? `${parentKey}:${item.key}` : item.key,\n nestedShow: this.nestedShow,\n defaultNestedShow: this.state.defaultShow,\n checkedState: props.checkedState || this.state.checked,\n onCheck: isRoot ? this._handleNestedCheck : props.onCheck,\n onToggle: isRoot ? this._handleNestedToggle : props.onToggle,\n beforeRenderItem: isRoot ? this._beforeRenderNestedItem : props.beforeRenderItem,\n active: isRoot ? this.getActiveKeys() : props.active,\n onActive: isRoot ? this.toggleActive.bind(this) : props.onActive,\n }, item.listProps);\n }\n\n protected _renderNestedList(props: RenderableProps

    , items: ListItemsSetting, item: NestedItem, expanded: boolean): ComponentChildren {\n if (!expanded && !props.renderCollapsedList) {\n return;\n }\n const nestedListProps = this._getNestedProps(props, items, item, expanded);\n const NestedListComponent = this.constructor as typeof NestedList;\n return ;\n }\n\n protected _renderNestedToggle(props: RenderableProps

    , isExpanded: boolean | undefined): ComponentChild {\n let toggleIcon: ComponentChild;\n let toggleClass = '';\n const {toggleIcons = {}} = props;\n if (typeof isExpanded === 'boolean') {\n toggleIcon = isExpanded ? (toggleIcons.expanded || ) : (toggleIcons.collapsed || );\n toggleClass = `state is-${isExpanded ? 'expanded' : 'collapsed'}`;\n if (!isValidElement(toggleIcon)) {\n toggleIcon = ;\n }\n } else {\n toggleIcon = ;\n toggleClass = 'is-empty';\n }\n return {toggleIcon};\n }\n\n protected _getItems(props: RenderableProps

    ): Item[] {\n const items = super._getItems(props);\n if (this.isRoot && items !== this._items) {\n this._itemMap = undefined;\n }\n return items;\n }\n\n protected _getItem(props: RenderableProps

    , item: NestedItem, index: number): NestedItem | false {\n const nestedItem = super._getItem(props, item, index) ?? item;\n if (!nestedItem) {\n return nestedItem;\n }\n const {parentKey} = props;\n const key = nestedItem.key!;\n const keyPath = `${parentKey !== undefined ? `${parentKey}:` : ''}${key}`;\n if (nestedItem.items) {\n const expanded = nestedItem.expanded ?? this.isExpanded(keyPath);\n mergeProps(nestedItem, {\n expanded: expanded,\n className: ['is-nested', `is-nested-${expanded ? 'show' : 'hide'}`],\n });\n this._hasNestedItems = true;\n }\n return mergeProps(nestedItem, {\n _level: props.level,\n _keyPath: keyPath,\n parentKey,\n });\n }\n\n protected _beforeRenderNestedItem(item: NestedItem, index: number): NestedItem | false {\n const {beforeRenderItem} = this.props;\n if (beforeRenderItem) {\n const result = beforeRenderItem.call(this, item, index);\n if (result !== undefined) {\n item = result;\n }\n }\n this._renderedItemMap.set(item._keyPath as string, item);\n return item;\n }\n\n protected _renderItem(props: RenderableProps

    , renderedItem: NestedItem, index: number): ComponentChildren {\n if ((this._hasNestedItems || !this.isRoot) && renderedItem.type === 'item' && renderedItem.toggleIcon === undefined) {\n renderedItem.toggleIcon = this._renderNestedToggle(props, renderedItem.expanded as boolean | undefined);\n }\n const nestedListContent = renderedItem.items ? this._renderNestedList(props, renderedItem.items, renderedItem, renderedItem.expanded as boolean) : null;\n renderedItem = mergeProps(renderedItem, {\n 'z-parent': renderedItem.parentKey,\n 'z-key-path': renderedItem._keyPath,\n }, nestedListContent ? {children: nestedListContent} : null);\n this._renderedItemMap.set(renderedItem._keyPath as string, renderedItem);\n return super._renderItem(props, renderedItem, index);\n }\n\n protected _getItemFromEvent(event: MouseEvent, target?: HTMLElement): MouseEventInfo | undefined {\n target = target || event.target as HTMLElement;\n let info = super._getItemFromEvent(event, target) as MouseEventInfo;\n if (!info) {\n const listEle = target.closest('[z-list]') as HTMLElement;\n if (listEle) {\n const listKey = listEle.getAttribute('z-list')!;\n const item = this.getItem(listKey);\n const renderedItem = this.getRenderedItem(listKey);\n if (!item || !renderedItem) {\n return;\n }\n info = {\n target,\n index: renderedItem._index as number,\n item,\n element: listEle,\n event,\n key: listKey,\n keyPath: listKey,\n renderedItem,\n };\n }\n return;\n }\n if (event.type === 'mouseenter' || event.type === 'mouseleave' || event.type === 'mouseover') {\n info.hover = event.type !== 'mouseleave';\n }\n const {parentKey} = this.props;\n return {...info, parentKey, keyPath: `${parentKey !== undefined ? `${parentKey}:` : ''}${info.key}`, target};\n }\n\n protected _handleNestedToggle(key: ItemKey, toggle: boolean, reset?: boolean) {\n this.toggle(key, toggle, reset);\n }\n\n protected _handleClick(event: MouseEvent) {\n const info = super._handleClick(event);\n if (info) {\n const {renderedItem: item, keyPath, target} = info as MouseEventInfo;\n const {nestedToggle} = this.props;\n if (!item.items || event.defaultPrevented || target.closest('.not-nested-toggle') || (nestedToggle && !item.disabled && !target.closest(nestedToggle)) || (!nestedToggle && !item.disabled && target.closest('a,.btn,.item-checkbox,.open-url,input,select,textarea') && !target.closest('.nested-toggle-icon,.item-icon'))) {\n return info;\n }\n this.toggle(keyPath);\n event.preventDefault();\n }\n return info;\n }\n\n protected _handleNestedCheck(change: Record) {\n this.toggleChecked(change);\n }\n\n protected _getProps(props: RenderableProps

    ): Record {\n const {level = 0, indent = 20, parentKey} = props;\n const finalProps = mergeProps(super._getProps(props), {\n 'z-level': level,\n 'z-list': parentKey,\n style: {'--list-nested-indent': `${level * indent}px`, '--list-indent': `${indent}px`},\n className: this._hasNestedItems ? 'has-nested-items' : 'no-nested-items',\n });\n finalProps.className = classes(finalProps.className as ClassNameLike);\n return finalProps;\n }\n\n protected _beforeRender(props: RenderableProps

    ): void | RenderableProps

    | undefined {\n this._renderedItemMap.clear();\n this._hasIcons = false;\n this._hasNestedItems = false;\n return super._beforeRender(props);\n }\n}\n","import {CustomContent, classes, mergeProps} from '@zui/core';\nimport {NestedList, Listitem} from '@zui/list/src/component';\n\nimport type {Attributes, ComponentChildren, RenderableProps} from 'preact';\nimport type {ClassNameLike} from '@zui/core';\nimport type {NestedListState} from '@zui/list';\nimport type {MenuOptions, MenuSetting} from '../types';\n\nexport class Menu extends NestedList {\n static NAME = 'menu';\n\n static TAG = 'menu';\n\n static inheritNestedProps = [...NestedList.inheritNestedProps, 'compact'];\n\n static ItemComponents: typeof NestedList.ItemComponents = {\n ...NestedList.ItemComponents,\n item: [Listitem, {innerComponent: 'a'}],\n };\n\n static defaultProps: Partial = {\n ...NestedList.defaultProps,\n scrollbarHover: true,\n };\n\n protected declare _hoverInfo?: {timer: number, keyPath?: string | null, shown?: boolean};\n\n constructor(props: T) {\n super(props);\n this._handleHover = this._handleHover.bind(this);\n }\n\n get isHoverTrigger() {\n return this.props.nestedTrigger === 'hover';\n }\n\n protected _getClassName(props: RenderableProps): ClassNameLike {\n return [super._getClassName(props), this._hasNestedItems ? 'menu-nested' : '', props.className, props.wrap ? {'scrollbar-thin': props.scrollbarThin, 'scrollbar-hover': props.scrollbarHover} : {popup: props.popup, compact: props.compact}];\n }\n\n protected _getWrapClass(props: RenderableProps): ClassNameLike {\n return ['menu-wrapper', props.wrapClass, {popup: props.popup, compact: props.compact}];\n }\n\n protected _getWrapperProps(props: RenderableProps): Record {\n const {wrapAttrs, height, maxHeight, parentKey} = props;\n const wrapProps = mergeProps(\n {'z-list-wrapper': parentKey},\n wrapAttrs,\n (height || maxHeight) ? {style: {height, maxHeight}} : null,\n this.isRoot && this.isHoverTrigger ? {\n onMouseEnter: this._handleHover,\n onMouseLeave: this._handleHover,\n onMouseOver: this._handleHover,\n } : null,\n );\n wrapProps.className = classes(this._getWrapClass(props), wrapProps.className as ClassNameLike);\n return wrapProps;\n }\n\n protected _renderWrapperHeader(props: RenderableProps): ComponentChildren {\n return ;\n }\n\n protected _renderWrapperFooter(props: RenderableProps): ComponentChildren {\n return ;\n }\n\n protected _handleHover(event: MouseEvent) {\n const target = event.target;\n if (!(target instanceof HTMLElement) || !this.isHoverTrigger) {\n return;\n }\n\n let keyPath: string | null | undefined;\n if (event.type !== 'mouseleave') {\n const itemEle = target.closest('[z-item]');\n if (itemEle) {\n keyPath = itemEle.getAttribute('z-key-path') as string;\n if (!itemEle.classList.contains('is-nested')) {\n keyPath = itemEle.getAttribute('z-parent') as string;\n }\n } else {\n const listEle = target.closest('[z-list-wrapper]');\n keyPath = listEle?.getAttribute('z-list-wrapper');\n }\n }\n\n const lastInfo = this._hoverInfo;\n const lastKeyPath = lastInfo?.keyPath;\n if (lastKeyPath === keyPath) {\n return;\n }\n if (lastInfo?.timer) {\n clearTimeout(lastInfo.timer);\n }\n const hasKey = typeof keyPath === 'string';\n const lastHasKey = typeof lastKeyPath === 'string';\n const delay = hasKey ? ((lastHasKey && lastInfo?.shown) ? 50 : 200) : (lastInfo?.shown ? 100 : 200);\n this._hoverInfo = {\n keyPath,\n timer: window.setTimeout(() => {\n if (hasKey) {\n this.toggle(keyPath!, true, true);\n this._hoverInfo!.shown = true;\n } else {\n this.toggleAll(false);\n this._hoverInfo = undefined;\n }\n }, delay),\n };\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n const timer = this._hoverInfo?.timer;\n if (timer) {\n clearTimeout(timer);\n }\n }\n\n render(props: RenderableProps) {\n const menuView = super.render(props);\n if (props.wrap) {\n return (\n

    \n {this._renderWrapperHeader(props)}\n {menuView}\n {this._renderWrapperFooter(props)}\n \n );\n }\n return menuView;\n }\n\n static render(this: unknown, setting: MenuSetting | undefined, args: T, defaultProps?: Partial & Attributes, thisObject?: unknown) {\n let menuOptions = typeof setting === 'function' ? setting.call(thisObject ?? this, ...args) : setting;\n if (!menuOptions) {\n return;\n }\n if (Array.isArray(menuOptions)) {\n menuOptions = {\n items: menuOptions,\n };\n }\n if (defaultProps) {\n menuOptions = mergeProps(defaultProps as Record, menuOptions);\n }\n return ;\n }\n}\n","import {Component, createRef} from 'preact';\nimport {$, classes, getHotkeysMap, Icon, nextGid} from '@zui/core';\nimport '../style';\n\nimport type {ComponentChildren, RenderableProps} from 'preact';\nimport type {SearchBoxOptions, SearchBoxState} from '../types';\n\nexport class SearchBox extends Component {\n static defaultProps: Partial = {\n clearIcon: true,\n searchIcon: true,\n delay: 500,\n hotkeys: true,\n };\n\n protected _gid: string;\n\n protected _input = createRef();\n\n protected _timer = 0;\n\n protected _hotkeysScope?: string;\n\n constructor(props: SearchBoxOptions) {\n super(props);\n this.state = {focus: false, value: props.defaultValue || ''};\n this._gid = props.id || `search-box-${nextGid()}`;\n }\n\n componentDidMount(): void {\n const {hotkeys} = this.props;\n if (hotkeys) {\n const hotkeysMap = getHotkeysMap(hotkeys, {\n clear: {\n keys: 'Escape',\n handler: (event) => {\n this.clear(event);\n },\n },\n enter: {\n keys: 'Enter',\n handler: (event) => {\n this.props.onEnter?.(this.state.value, event);\n },\n },\n });\n if (hotkeysMap) {\n this._hotkeysScope = `SearchBox_${this._gid}`;\n $(this.input).hotkeys(hotkeysMap, {\n scope: this._hotkeysScope,\n event: 'keydown',\n });\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this._hotkeysScope) {\n $(this.input).unbindHotkeys(this._hotkeysScope);\n }\n }\n\n get id() {\n return this._gid;\n }\n\n get input() {\n return this._input.current;\n }\n\n focus() {\n this.input?.focus();\n }\n\n blur() {\n this.input?.blur();\n }\n\n clear(event?: Event) {\n const oldValue = this.state.value;\n this.setState({value: ''}, () => {\n const {onChange, onClear} = this.props;\n onClear?.(event);\n this.focus();\n if (oldValue.trim() !== '') {\n onChange?.('', event);\n }\n });\n }\n\n _handleClearBtnClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.clear(event);\n };\n\n _handleChange = (event: Event) => {\n const oldValue = this.state.value;\n const value = (event.target as HTMLInputElement).value;\n const {onChange, delay} = this.props;\n this.setState({value}, () => {\n if (!onChange || oldValue === value) {\n return;\n }\n if (delay) {\n this._clearTimer();\n this._timer = window.setTimeout(() => {\n onChange(value, event);\n this._timer = 0;\n }, delay);\n } else {\n onChange(value, event);\n }\n });\n };\n\n _handleFocus = (event: FocusEvent) => {\n const focus = event.type === 'focus';\n this.setState({focus}, () => {\n const callback = focus ? this.props.onFocus : this.props.onBlur;\n callback?.(event);\n });\n };\n\n _clearTimer() {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n this._timer = 0;\n }\n\n render(props: RenderableProps, state: Readonly) {\n const {style, className, rootClass, rootStyle, readonly, disabled, circle, placeholder, mergeIcon, searchIcon, clearIcon, value: controlledValue, compact, prefixClass, suffixClass} = props;\n const {focus, value} = state;\n const {id} = this;\n const finalValue = controlledValue ?? value;\n const empty = typeof finalValue !== 'string' || !finalValue.trim().length;\n let prefixView: ComponentChildren;\n let suffixView: ComponentChildren;\n let searchIconView: ComponentChildren;\n if (searchIcon) {\n searchIconView = searchIcon === true ? : ;\n }\n if (!mergeIcon && searchIcon) {\n prefixView = ;\n }\n if (clearIcon && !empty) {\n suffixView = (\n \n {clearIcon === true ? : }\n \n );\n } else if (mergeIcon && searchIcon) {\n suffixView = searchIconView;\n }\n if (suffixView) {\n suffixView = (\n \n );\n }\n\n return (\n
    \n {prefixView}\n \n {suffixView}\n
    \n );\n }\n}\n","import {$, classes, mergeProps} from '@zui/core';\nimport {formatString} from '@zui/helpers';\nimport {SearchBox} from '@zui/search-box/src/components';\nimport {Menu} from './menu';\n\nimport {type ComponentChild, type ComponentChildren, type RenderableProps} from 'preact';\nimport type {ClassNameLike} from '@zui/core';\nimport type {Item, ItemKey} from '@zui/common-list';\nimport type {ListItemsSetting, NestedItem, NestedListItem, NestedListProps} from '@zui/list';\nimport type {SearchBoxOptions} from '@zui/search-box';\nimport type {SearchMenuOptions, SearchMenuState} from '../types';\n\nexport class SearchMenu extends Menu {\n static inheritNestedProps = [...Menu.inheritNestedProps, 'isItemMatch', 'search', 'underlineKeys', 'nestedSearch'];\n\n static defaultProps: Partial = {\n ...Menu.defaultProps,\n defaultNestedShow: true,\n wrap: true,\n nestedSearch: true,\n underlineKeys: true,\n };\n\n protected declare _searchKeys: string[];\n\n protected declare _matchedParents: Set;\n\n protected declare _showCount: number;\n\n constructor(props: T) {\n super(props);\n (this.state as SearchMenuState).search = props.search ?? props.defaultSearch;\n this._searchKeys = (this.constructor as typeof SearchMenu).getSearchKeys(this.state.search);\n this._isNestedItemMatch = this._isNestedItemMatch.bind(this);\n }\n\n componentWillUpdate(nextProps: Readonly): void {\n if (this.isRoot) {\n if (nextProps.search !== undefined && nextProps.search !== this.props.search) {\n this._searchKeys = (this.constructor as typeof SearchMenu).getSearchKeys(nextProps.search);\n }\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this._updateMatchedParents();\n }\n\n componentDidUpdate(): void {\n super.componentDidUpdate();\n this._updateMatchedParents();\n }\n\n isExpanded(keyPath: string): boolean {\n if (this.props.expandOnSearch && this._searchKeys.length) {\n return true;\n }\n return super.isExpanded(keyPath);\n }\n\n protected _updateMatchedParents(): void {\n if (!this.isRoot) {\n return;\n }\n const $element = $(this.element);\n const $matchedChildren = $element.find('.item.is-nested.is-not-match').filter((_, element) => this._matchedParents.has(element.getAttribute('z-key-path') || '')).addClass('has-match-child');\n $element.parent().toggleClass('no-match-child', !!this._searchKeys?.length && !$matchedChildren.length && !$element.children('.item').not('.is-not-match').length);\n }\n\n protected _handleSearchChange = (search: string) => {\n const searchKeys = (this.constructor as typeof SearchMenu).getSearchKeys(search);\n this._searchKeys = searchKeys;\n this.setState({search: searchKeys.join(' ')});\n };\n\n protected _isItemMatch(props: RenderableProps, item: NestedItem, index: number, parentKey: ItemKey | undefined) {\n const {isItemMatch, nestedSearch} = props;\n const isMatch = isItemMatch ? isItemMatch.call(this, item, this._searchKeys, index, parentKey) : (this.constructor as typeof SearchMenu).isItemMatch(item, this._searchKeys, props.searchProps);\n if ((nestedSearch && this.isRoot) && isMatch && parentKey !== undefined) {\n let key = '';\n String(parentKey).split(':').forEach(x => {\n key += `${key.length ? ':' : ''}${x}`;\n this._matchedParents.add(key);\n });\n }\n return isMatch;\n }\n\n protected _isNestedItemMatch(item: NestedItem, _searchKeys: string[], index: number, parentKey: ItemKey | undefined): boolean {\n return this._isItemMatch(this.props, item, index, parentKey);\n }\n\n protected _getNestedProps(props: RenderableProps, items: ListItemsSetting, item: NestedItem, expanded: boolean): NestedListProps {\n const nestedProps = super._getNestedProps(props, items, item, expanded) as SearchMenuOptions;\n if (this.isRoot && props.nestedSearch) {\n nestedProps.isItemMatch = this._isNestedItemMatch;\n nestedProps.search = this._searchKeys.join(' ');\n } else if (!props.nestedSearch) {\n mergeProps(nestedProps as Record, {search: undefined, defaultSearch: undefined}, item.listProps);\n }\n return nestedProps;\n }\n\n protected _getItem(props: RenderableProps, item: NestedItem, index: number): NestedItem | false {\n const finalItem = super._getItem(props, item, index);\n if (!finalItem) {\n return finalItem;\n }\n if (this.isRoot && this.props.limit && this._showCount >= this.props.limit) {\n return false;\n }\n finalItem.hidden = !this._isItemMatch(props, item, index, props.parentKey);\n if (!finalItem.hidden) {\n this._showCount++;\n }\n return finalItem;\n }\n\n protected _renderItem(props: RenderableProps, item: Item, index: number): ComponentChildren {\n item.className = [item.className, item.hidden ? 'is-not-match' : ''];\n if (props.underlineKeys && this._searchKeys.length) {\n ['text', 'title', 'subtitle', 'content'].forEach(key => {\n if (typeof item[key] === 'string') {\n item[key] = (this.constructor as typeof SearchMenu).underlineKeys(this._searchKeys, [item[key] as string]);\n }\n });\n }\n return super._renderItem(props, item, index);\n }\n\n protected _getWrapClass(props: RenderableProps): ClassNameLike {\n const isSearchMode = this.isRoot && this._searchKeys.length;\n return classes(super._getWrapClass(props), 'search-menu', props.searchBox ? `search-menu-on-${props.searchPlacement || 'top'}` : '', isSearchMode ? 'is-search-mode' : '', isSearchMode && props.expandOnSearch ? 'no-toggle-on-search' : '');\n }\n\n protected _getSearchBoxProps(props: RenderableProps): SearchBoxOptions {\n const {searchBox} = props;\n const searchOptions: SearchBoxOptions = {\n compact: true,\n className: 'not-nested-toggle',\n onChange: this._handleSearchChange,\n };\n if (typeof searchBox === 'object') {\n mergeProps(searchOptions, searchBox);\n }\n if (props.search !== undefined) {\n searchOptions.value = this._searchKeys.join(' ');\n searchOptions.disabled = true;\n }\n return searchOptions;\n }\n\n protected _renderSearchBox(props: RenderableProps): ComponentChildren {\n const searchBoxOptions = this._getSearchBoxProps(props);\n return ;\n }\n\n protected _renderWrapperHeader(props: RenderableProps): ComponentChildren {\n const hasHeader = props.header;\n const {noMatchHint, searchBox, searchPlacement, nestedSearch, headerClass} = props;\n const hasTopSearchBox = (!nestedSearch || this.isRoot) && searchBox && searchPlacement !== 'bottom';\n if (!hasHeader && !hasTopSearchBox && !noMatchHint) {\n return null;\n }\n return [\n noMatchHint ?
    {noMatchHint}
    : null,\n (hasHeader || hasTopSearchBox) ? (
    \n {hasHeader ? super._renderWrapperHeader(props) : null}\n {hasTopSearchBox ? this._renderSearchBox(props) : null}\n
    ) : null,\n ];\n }\n\n protected _renderWrapperFooter(props: RenderableProps): ComponentChildren {\n const hasFooter = props.footer;\n const {searchBox, searchPlacement, nestedSearch, footerClass, exceedLimitHint, limit} = props;\n const hasBottomSearchBox = (!nestedSearch || this.isRoot) && searchBox && searchPlacement === 'bottom';\n const hasExceedLimitHint = exceedLimitHint && limit && this._items.length > limit;\n if (!hasFooter && !hasBottomSearchBox && !hasExceedLimitHint) {\n return null;\n }\n return (\n
    \n {hasExceedLimitHint ?
    {formatString(exceedLimitHint, this._items.length - limit)}
    : null}\n {hasFooter ? super._renderWrapperFooter(props) : null}\n {hasBottomSearchBox ? this._renderSearchBox(props) : null}\n
    \n );\n }\n\n protected _beforeRender(props: RenderableProps): void | RenderableProps | undefined {\n if (this.isRoot) {\n this._matchedParents = new Set();\n this._showCount = 0;\n }\n return super._beforeRender(props);\n }\n\n /**\n * Check whether item is matched.\n *\n * @param item Item to match.\n * @param searchKeys Search keys.\n * @returns Whether item is matched.\n */\n static isItemMatch(item: Item, searchKeys: string[], searchProps: (string | ((item: Item) => string | undefined))[] = ['keys', 'text', 'title', 'subtitle']) {\n if (!searchKeys.length) {\n return true;\n }\n return searchKeys.every(searchKey => searchProps.some(propSetting => {\n const propValue = typeof propSetting === 'function' ? propSetting(item) : item[propSetting];\n return typeof propValue === 'string' && propValue.length && propValue.toLowerCase().includes(searchKey);\n }));\n }\n\n /**\n * Convert search string to search keys.\n *\n * @param search Search string.\n * @returns Search keys array.\n */\n static getSearchKeys(search: string = ''): string[] {\n return $.unique((search).toLowerCase().split(' ').filter(x => x.length)) as string[];\n }\n\n static underlineKeys(searchKeys: string[], text: string[], className = 'is-match-keys'): ComponentChild[] {\n return searchKeys.reduce((result, key) => {\n return [...result].reduce((list, span) => {\n if (typeof span !== 'string') {\n list.push(span);\n return list;\n }\n const parts = span.toLowerCase().split(key);\n if (parts.length === 1) {\n list.push(span);\n return list;\n }\n let start = 0;\n parts.forEach((part, index) => {\n if (index) {\n list.push({span.substring(start, start + key.length)});\n start += key.length;\n }\n list.push(span.substring(start, start + part.length));\n start += part.length;\n });\n return list;\n }, []);\n }, text);\n }\n}\n","import {ComponentFromReact} from '@zui/core';\nimport {Menu as MenuReact} from '../component';\n\nimport type {MenuOptions} from '../types';\n\nexport class Menu extends ComponentFromReact> {\n static NAME = 'Menu';\n\n static Component = MenuReact;\n\n static replace = MenuReact.TAG;\n}\n","import {ComponentFromReact} from '@zui/core';\nimport {SearchMenu as MenuReact} from '../component';\n\nimport type {SearchMenuOptions} from '../types';\n\nexport class SearchMenu extends ComponentFromReact {\n static NAME = 'SearchMenu';\n\n static Component = MenuReact;\n\n static replace = MenuReact.TAG;\n}\n","import {registerReactComponent} from '@zui/core';\nimport * as components from './index';\n\nregisterReactComponent(components);\n","import {isValidElement, ComponentChildren} from 'preact';\nimport {classes, CustomContent, Icon} from '@zui/core';\nimport {Button} from '@zui/button/src/component/button';\nimport type {ButtonProps} from '@zui/button';\nimport '@zui/css-icons/src/icons/close.css';\nimport {AlertOptions} from '../types';\nimport {Toolbar} from '@zui/toolbar/src/component';\n\nexport function Alert({\n className,\n style,\n actions,\n heading,\n content,\n contentClass,\n children,\n close,\n onClose,\n icon,\n iconClass,\n ...others\n}: AlertOptions) {\n let closeButton: ComponentChildren;\n if (close === true) {\n closeButton = ;\n } else if (isValidElement(close)) {\n closeButton = close;\n } else if (typeof close === 'object') {\n closeButton =