@king-one/antdv 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/cdn/index.cdn.js +16 -0
- package/cdn/index.cdn.js.map +1 -0
- package/cdn/index.cdn.mjs +16 -0
- package/cdn/index.cdn.mjs.map +1 -0
- package/cdn/index.css +1 -0
- package/es/components/base/style/index.d.ts +1 -0
- package/es/components/base/style/index.mjs +2 -0
- package/es/components/base/style/index.mjs.map +1 -0
- package/es/components/form/component/form.d.ts +10 -0
- package/es/components/form/component/form.mjs +11 -0
- package/es/components/form/component/form.mjs.map +1 -0
- package/es/components/form/component/form.vue.d.ts +16 -0
- package/es/components/form/component/form.vue.mjs +6 -0
- package/es/components/form/component/form.vue.mjs.map +1 -0
- package/es/components/form/component/form.vue2.mjs +26 -0
- package/es/components/form/component/form.vue2.mjs.map +1 -0
- package/es/components/form/index.d.ts +17 -0
- package/es/components/form/index.mjs +9 -0
- package/es/components/form/index.mjs.map +1 -0
- package/es/components/form-item/component/form-item.vue.d.ts +11 -0
- package/es/components/form-item/component/form-item.vue.mjs +6 -0
- package/es/components/form-item/component/form-item.vue.mjs.map +1 -0
- package/es/components/form-item/component/form-item.vue2.mjs +113 -0
- package/es/components/form-item/component/form-item.vue2.mjs.map +1 -0
- package/es/components/form-item/index.d.ts +0 -0
- package/es/components/form-item/index.mjs +2 -0
- package/es/components/form-item/index.mjs.map +1 -0
- package/es/components/index.d.ts +2 -0
- package/es/components/index.mjs +5 -0
- package/es/components/index.mjs.map +1 -0
- package/es/components/scroll-bar/index.d.ts +26 -0
- package/es/components/scroll-bar/index.mjs +9 -0
- package/es/components/scroll-bar/index.mjs.map +1 -0
- package/es/components/scroll-bar/src/scroll-bar.d.ts +24 -0
- package/es/components/scroll-bar/src/scroll-bar.mjs +248 -0
- package/es/components/scroll-bar/src/scroll-bar.mjs.map +1 -0
- package/es/components/scroll-bar/src/types.d.ts +6 -0
- package/es/components/scroll-bar/src/types.mjs +8 -0
- package/es/components/scroll-bar/src/types.mjs.map +1 -0
- package/es/components/scroll-bar/style/index.d.ts +2 -0
- package/es/components/scroll-bar/style/index.mjs +3 -0
- package/es/components/scroll-bar/style/index.mjs.map +1 -0
- package/es/components/utils/install.d.ts +7 -0
- package/es/components/utils/install.mjs +19 -0
- package/es/components/utils/install.mjs.map +1 -0
- package/es/components/virtual-list/index.d.ts +276 -0
- package/es/components/virtual-list/index.mjs +9 -0
- package/es/components/virtual-list/index.mjs.map +1 -0
- package/es/components/virtual-list/src/types.d.ts +28 -0
- package/es/components/virtual-list/src/types.mjs +29 -0
- package/es/components/virtual-list/src/types.mjs.map +1 -0
- package/es/components/virtual-list/src/virtual-list.vue.d.ts +275 -0
- package/es/components/virtual-list/src/virtual-list.vue.mjs +6 -0
- package/es/components/virtual-list/src/virtual-list.vue.mjs.map +1 -0
- package/es/components/virtual-list/src/virtual-list.vue2.mjs +79 -0
- package/es/components/virtual-list/src/virtual-list.vue2.mjs.map +1 -0
- package/es/hooks/use-namespace/index.d.ts +23 -0
- package/es/hooks/use-namespace/index.mjs +78 -0
- package/es/hooks/use-namespace/index.mjs.map +1 -0
- package/es/index.d.ts +3 -0
- package/es/index.mjs +11 -0
- package/es/index.mjs.map +1 -0
- package/es/installer.d.ts +6 -0
- package/es/installer.mjs +14 -0
- package/es/installer.mjs.map +1 -0
- package/lib/components/base/style/index.d.ts +1 -0
- package/lib/components/base/style/index.js +5 -0
- package/lib/components/base/style/index.js.map +1 -0
- package/lib/components/form/component/form.d.ts +10 -0
- package/lib/components/form/component/form.js +13 -0
- package/lib/components/form/component/form.js.map +1 -0
- package/lib/components/form/component/form.vue.d.ts +16 -0
- package/lib/components/form/component/form.vue.js +10 -0
- package/lib/components/form/component/form.vue.js.map +1 -0
- package/lib/components/form/component/form.vue2.js +30 -0
- package/lib/components/form/component/form.vue2.js.map +1 -0
- package/lib/components/form/index.d.ts +17 -0
- package/lib/components/form/index.js +15 -0
- package/lib/components/form/index.js.map +1 -0
- package/lib/components/form-item/component/form-item.vue.d.ts +11 -0
- package/lib/components/form-item/component/form-item.vue.js +10 -0
- package/lib/components/form-item/component/form-item.vue.js.map +1 -0
- package/lib/components/form-item/component/form-item.vue2.js +117 -0
- package/lib/components/form-item/component/form-item.vue2.js.map +1 -0
- package/lib/components/form-item/index.d.ts +0 -0
- package/lib/components/form-item/index.js +3 -0
- package/lib/components/form-item/index.js.map +1 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +14 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/scroll-bar/index.d.ts +26 -0
- package/lib/components/scroll-bar/index.js +15 -0
- package/lib/components/scroll-bar/index.js.map +1 -0
- package/lib/components/scroll-bar/src/scroll-bar.d.ts +24 -0
- package/lib/components/scroll-bar/src/scroll-bar.js +252 -0
- package/lib/components/scroll-bar/src/scroll-bar.js.map +1 -0
- package/lib/components/scroll-bar/src/types.d.ts +6 -0
- package/lib/components/scroll-bar/src/types.js +10 -0
- package/lib/components/scroll-bar/src/types.js.map +1 -0
- package/lib/components/scroll-bar/style/index.d.ts +2 -0
- package/lib/components/scroll-bar/style/index.js +6 -0
- package/lib/components/scroll-bar/style/index.js.map +1 -0
- package/lib/components/utils/install.d.ts +7 -0
- package/lib/components/utils/install.js +22 -0
- package/lib/components/utils/install.js.map +1 -0
- package/lib/components/virtual-list/index.d.ts +276 -0
- package/lib/components/virtual-list/index.js +15 -0
- package/lib/components/virtual-list/index.js.map +1 -0
- package/lib/components/virtual-list/src/types.d.ts +28 -0
- package/lib/components/virtual-list/src/types.js +31 -0
- package/lib/components/virtual-list/src/types.js.map +1 -0
- package/lib/components/virtual-list/src/virtual-list.vue.d.ts +275 -0
- package/lib/components/virtual-list/src/virtual-list.vue.js +10 -0
- package/lib/components/virtual-list/src/virtual-list.vue.js.map +1 -0
- package/lib/components/virtual-list/src/virtual-list.vue2.js +83 -0
- package/lib/components/virtual-list/src/virtual-list.vue2.js.map +1 -0
- package/lib/hooks/use-namespace/index.d.ts +23 -0
- package/lib/hooks/use-namespace/index.js +83 -0
- package/lib/hooks/use-namespace/index.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -0
- package/lib/installer.d.ts +6 -0
- package/lib/installer.js +19 -0
- package/lib/installer.js.map +1 -0
- package/package.json +29 -0
- package/theme-chalk/base.css +1 -0
- package/theme-chalk/buttons.css +1 -0
- package/theme-chalk/index.css +1 -0
- package/theme-chalk/reset.css +0 -0
- package/theme-chalk/scroll-bar.css +1 -0
- package/theme-chalk/var.css +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cdn.js","sources":["../../../packages/antdv/components/utils/install.ts","../../../packages/antdv/components/form/component/form.ts","../../../packages/antdv/components/form/index.ts","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/animation/next-frame-once.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/animation/next-frame.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/dom/get-scroll-parent.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/dom/unwrap-element.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/dom/happens-in.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/dom/get-precise-event-target.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/css/responsive.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/css/index.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/color/colors.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/color/convert.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/color/index.js","../../../node_modules/.pnpm/seemly@0.3.9/node_modules/seemly/es/misc/index.js","../../../node_modules/.pnpm/evtd@0.2.4/node_modules/evtd/es/utils.js","../../../node_modules/.pnpm/evtd@0.2.4/node_modules/evtd/es/traps.js","../../../node_modules/.pnpm/evtd@0.2.4/node_modules/evtd/es/delegate.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/shared/v-node.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/binder/src/utils.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/binder/src/Binder.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/binder/src/Target.js","../../../node_modules/.pnpm/vdirs@0.1.8_vue@3.4.38/node_modules/vdirs/es/mousemoveoutside.js","../../../node_modules/.pnpm/vdirs@0.1.8_vue@3.4.38/node_modules/vdirs/es/clickoutside.js","../../../node_modules/.pnpm/vdirs@0.1.8_vue@3.4.38/node_modules/vdirs/es/utils.js","../../../node_modules/.pnpm/vdirs@0.1.8_vue@3.4.38/node_modules/vdirs/es/zindexable/z-index-manager.js","../../../node_modules/.pnpm/vdirs@0.1.8_vue@3.4.38/node_modules/vdirs/es/zindexable/index.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-false-until-truthy.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-memo.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/utils.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/on-fonts-ready.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-click-position.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-clicked.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-os-theme.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-merged-state.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/life-cycle/use-is-mounted.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-compitable.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-is-ios.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-breakpoints.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-breakpoint.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-keyboard.js","../../../node_modules/.pnpm/vooks@0.2.12_vue@3.4.38/node_modules/vooks/es/use-is-safari.js","../../../node_modules/.pnpm/@css-render+vue3-ssr@0.15.14_vue@3.4.38/node_modules/@css-render/vue3-ssr/esm/index.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/shared/warn.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/parse.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/utils.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/render.js","../../../node_modules/.pnpm/@emotion+hash@0.8.0/node_modules/@emotion/hash/dist/hash.esm.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/mount.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/c.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/CssRender.js","../../../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/exists.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/shared/cssr.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/shared/finweck-tree.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/shared/resolve-to.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/lazy-teleport/src/index.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/binder/src/get-placement-style.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/binder/src/Follower.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/resize-observer/src/delegate.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/resize-observer/src/VResizeObserver.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/virtual-list/src/config.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/virtual-list/src/context.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/virtual-list/src/xScroll.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/virtual-list/src/VirtualListRow.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/virtual-list/src/VirtualList.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/x-scroll/src/index.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/overflow/src/index.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/focus-trap/src/utils.js","../../../node_modules/.pnpm/vueuc@0.4.64_vue@3.4.38/node_modules/vueuc/es/focus-trap/src/index.js","../../../packages/antdv/hooks/use-namespace/index.ts","../../../packages/antdv/components/scroll-bar/src/types.ts","../../../packages/antdv/components/scroll-bar/src/scroll-bar.tsx","../../../packages/antdv/components/scroll-bar/index.ts","../../../packages/antdv/components/virtual-list/src/types.ts","../../../packages/antdv/components/virtual-list/src/virtual-list.vue","../../../packages/antdv/components/virtual-list/index.ts","../../../packages/antdv/installer.ts"],"sourcesContent":["/*\n * @Description:\n * @Version: 2.0\n * @Autor: caohao\n * @Date: 2024-09-17 00:15:40\n * @LastEditors: caohao\n * @LastEditTime: 2024-09-17 00:15:43\n */\nimport type { App, Directive, Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n\nconst defaultNamePrefix: string = 'K'\nexport function withInstall<T>(main: T) {\n (main as SFCWithInstall<T>).install = (app): void => {\n const comp: Record<string, any> = main as Record<string, any>\n app.component(defaultNamePrefix + comp.name, comp)\n }\n return main as SFCWithInstall<T>\n}\n\n// 注册指令\nexport function withInstallDirectives<T extends Directive>(main: T, name: string) {\n return {\n install: (app: App): void => {\n app.directive(name, main)\n },\n directive: main\n }\n}\n","/*\n * @Description:\n * @Version: 2.0\n * @Autor: caohao\n * @Date: 2024-09-16 17:25:58\n * @LastEditors: caohao\n * @LastEditTime: 2024-09-16 22:46:07\n */\nimport type {\n RuleItem\n} from 'async-validator'\nimport type { PropType } from 'vue'\n\nexport const formType = {\n model: {\n type: Object\n },\n rules: {\n type: Object as PropType<Record<string, RuleItem[]>>\n }\n} as const\n","import { withInstall } from '../utils/install'\nimport form from './component/form.vue'\n\nexport * from './component/form'\nexport const KForm = withInstall(form) // 增加类型\nexport default KForm\n","let onceCbs = [];\nconst paramsMap = new WeakMap();\nfunction flushOnceCallbacks() {\n onceCbs.forEach((cb) => cb(...paramsMap.get(cb)));\n onceCbs = [];\n}\nfunction beforeNextFrameOnce(cb, ...params) {\n paramsMap.set(cb, params);\n if (onceCbs.includes(cb))\n return;\n onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks);\n}\nexport { beforeNextFrameOnce };\n","let cbs = [];\nlet params = [];\nfunction flushCallbacks() {\n cbs.forEach((cb, i) => cb(...params[i]));\n cbs = [];\n params = [];\n}\nfunction beforeNextFrame(cb, ...args) {\n cbs.push(cb) === 1 && requestAnimationFrame(flushCallbacks);\n params.push(args);\n}\nexport { beforeNextFrame };\n","function getParentNode(node) {\n // document type\n if (node.nodeType === 9) {\n return null;\n }\n return node.parentNode;\n}\nexport function getScrollParent(node) {\n if (node === null)\n return null;\n const parentNode = getParentNode(node);\n if (parentNode === null) {\n return null;\n }\n // Document\n if (parentNode.nodeType === 9) {\n return document.documentElement;\n }\n // Element\n if (parentNode.nodeType === 1) {\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(parentNode);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return parentNode;\n }\n }\n return getScrollParent(parentNode);\n}\n","function unwrapElement(target) {\n if (typeof target === 'string')\n return document.querySelector(target);\n if (typeof target === 'function')\n return target();\n return target;\n}\nexport { unwrapElement };\n","export function happensIn(e, dataSetPropName) {\n let { target } = e;\n while (target) {\n if (target.dataset) {\n if (target.dataset[dataSetPropName] !== undefined)\n return true;\n }\n target = target.parentElement;\n }\n return false;\n}\n","export function getPreciseEventTarget(event) {\n return event.composedPath()[0] || null;\n}\n","export function parseResponsiveProp(reponsiveProp) {\n if (typeof reponsiveProp === \"number\") {\n return {\n '': reponsiveProp.toString()\n };\n }\n const params = {};\n reponsiveProp.split(/ +/).forEach((pairLiteral) => {\n if (pairLiteral === '')\n return;\n const [prefix, value] = pairLiteral.split(':');\n if (value === undefined) {\n params[''] = prefix;\n }\n else {\n params[prefix] = value;\n }\n });\n return params;\n}\nfunction parseResponsivePropValue(reponsiveProp, activeKeyOrSize) {\n var _a;\n if (reponsiveProp === undefined || reponsiveProp === null)\n return undefined;\n const classObj = parseResponsiveProp(reponsiveProp);\n if (activeKeyOrSize === undefined)\n return classObj[''];\n if (typeof activeKeyOrSize === 'string') {\n return (_a = classObj[activeKeyOrSize]) !== null && _a !== void 0 ? _a : classObj[''];\n }\n else if (Array.isArray(activeKeyOrSize)) {\n for (let i = activeKeyOrSize.length - 1; i >= 0; --i) {\n const key = activeKeyOrSize[i];\n if (key in classObj)\n return classObj[key];\n }\n return classObj[''];\n }\n else {\n // Here we suppose all the keys are number formatted\n let activeValue = undefined;\n let activeKey = -1;\n Object.keys(classObj).forEach((key) => {\n const keyAsNum = Number(key);\n if (!Number.isNaN(keyAsNum) &&\n activeKeyOrSize >= keyAsNum &&\n keyAsNum >= activeKey) {\n activeKey = keyAsNum;\n activeValue = classObj[key];\n }\n });\n return activeValue;\n }\n}\nexport { parseResponsivePropValue };\n","export function depx(value) {\n if (typeof value === 'string') {\n if (value.endsWith('px')) {\n return Number(value.slice(0, value.length - 2));\n }\n return Number(value);\n }\n return value;\n}\nfunction pxfy(value) {\n if (value === undefined || value === null)\n return undefined;\n if (typeof value === 'number')\n return `${value}px`;\n if (value.endsWith('px'))\n return value;\n return `${value}px`;\n}\nexport { pxfy };\nfunction getMargin(value, position) {\n const parts = value.trim().split(/\\s+/g);\n const margin = {\n top: parts[0]\n };\n switch (parts.length) {\n case 1:\n margin.right = parts[0];\n margin.bottom = parts[0];\n margin.left = parts[0];\n break;\n case 2:\n margin.right = parts[1];\n margin.left = parts[1];\n margin.bottom = parts[0];\n break;\n case 3:\n margin.right = parts[1];\n margin.bottom = parts[2];\n margin.left = parts[1];\n break;\n case 4:\n margin.right = parts[1];\n margin.bottom = parts[2];\n margin.left = parts[3];\n break;\n default:\n throw new Error('[seemly/getMargin]:' + value + ' is not a valid value.');\n }\n if (position === undefined)\n return margin;\n return margin[position];\n}\nfunction getGap(value, orient) {\n const [rowGap, colGap] = value.split(' ');\n if (!orient)\n return {\n row: rowGap,\n col: colGap || rowGap\n };\n return orient === 'row' ? rowGap : colGap;\n}\nexport { getMargin, getMargin as getPadding, getGap };\nexport { parseResponsiveProp, parseResponsivePropValue } from './responsive';\n","export default {\n black: '#000',\n silver: '#C0C0C0',\n gray: '#808080',\n white: '#FFF',\n maroon: '#800000',\n red: '#F00',\n purple: '#800080',\n fuchsia: '#F0F',\n green: '#008000',\n lime: '#0F0',\n olive: '#808000',\n yellow: '#FF0',\n navy: '#000080',\n blue: '#00F',\n teal: '#008080',\n aqua: '#0FF',\n transparent: '#0000'\n};\n","// All the algorithms credit to https://stackoverflow.com/questions/36721830/convert-hsl-to-rgb-and-hex/54014428#54014428\n// original author: Kamil Kiełczewski\n/**\n * @param h 360\n * @param s 100\n * @param l 100\n * @returns [h, s, v] 360, 100, 100\n */\nexport function hsl2hsv(h, s, l) {\n s /= 100;\n l /= 100;\n const v = s * Math.min(l, 1 - l) + l;\n return [h, v ? (2 - (2 * l) / v) * 100 : 0, v * 100];\n}\n/**\n * @param h 360\n * @param s 100\n * @param v 100\n * @returns [h, s, l] 360, 100, 100\n */\nexport function hsv2hsl(h, s, v) {\n s /= 100;\n v /= 100;\n const l = v - (v * s) / 2;\n const m = Math.min(l, 1 - l);\n return [h, m ? ((v - l) / m) * 100 : 0, l * 100];\n}\n/**\n * @param h 360\n * @param s 100\n * @param v 100\n * @returns [r, g, b] 255, 255, 255\n */\nexport function hsv2rgb(h, s, v) {\n s /= 100;\n v /= 100;\n let f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5) * 255, f(3) * 255, f(1) * 255];\n}\n/**\n * @param r 255\n * @param g 255\n * @param b 255\n * @returns [360, 100, 100]\n */\nexport function rgb2hsv(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n let v = Math.max(r, g, b), c = v - Math.min(r, g, b);\n let h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c);\n return [60 * (h < 0 ? h + 6 : h), v && (c / v) * 100, v * 100];\n}\n/**\n * @param r 255\n * @param g 255\n * @param b 255\n * @returns [360, 100, 100]\n */\nexport function rgb2hsl(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n let v = Math.max(r, g, b), c = v - Math.min(r, g, b), f = 1 - Math.abs(v + v - c - 1);\n let h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c);\n return [60 * (h < 0 ? h + 6 : h), f ? (c / f) * 100 : 0, (v + v - c) * 50];\n}\n/**\n * @param h 360\n * @param s 100\n * @param l 100\n * @returns [255, 255, 255]\n */\nexport function hsl2rgb(h, s, l) {\n s /= 100;\n l /= 100;\n let a = s * Math.min(l, 1 - l);\n let f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0) * 255, f(8) * 255, f(4) * 255];\n}\n","import colors from './colors';\nconst prefix = '^\\\\s*';\nconst suffix = '\\\\s*$';\nconst percent = '\\\\s*((\\\\.\\\\d+)|(\\\\d+(\\\\.\\\\d*)?))%\\\\s*'; // 4 offset\nconst float = '\\\\s*((\\\\.\\\\d+)|(\\\\d+(\\\\.\\\\d*)?))\\\\s*'; // 4 offset\nconst hex = '([0-9A-Fa-f])';\nconst dhex = '([0-9A-Fa-f]{2})';\nconst hslRegex = new RegExp(`${prefix}hsl\\\\s*\\\\(${float},${percent},${percent}\\\\)${suffix}`);\nconst hsvRegex = new RegExp(`${prefix}hsv\\\\s*\\\\(${float},${percent},${percent}\\\\)${suffix}`);\nconst hslaRegex = new RegExp(`${prefix}hsla\\\\s*\\\\(${float},${percent},${percent},${float}\\\\)${suffix}`);\nconst hsvaRegex = new RegExp(`${prefix}hsva\\\\s*\\\\(${float},${percent},${percent},${float}\\\\)${suffix}`);\nconst rgbRegex = new RegExp(`${prefix}rgb\\\\s*\\\\(${float},${float},${float}\\\\)${suffix}`);\nconst rgbaRegex = new RegExp(`${prefix}rgba\\\\s*\\\\(${float},${float},${float},${float}\\\\)${suffix}`);\nconst sHexRegex = new RegExp(`${prefix}#${hex}${hex}${hex}${suffix}`);\nconst hexRegex = new RegExp(`${prefix}#${dhex}${dhex}${dhex}${suffix}`);\nconst sHexaRegex = new RegExp(`${prefix}#${hex}${hex}${hex}${hex}${suffix}`);\nconst hexaRegex = new RegExp(`${prefix}#${dhex}${dhex}${dhex}${dhex}${suffix}`);\nfunction parseHex(value) {\n return parseInt(value, 16);\n}\n/**\n * Convert color string to hsla array\n * @param color format like hsl(180, 100%, 100%), hsla(180, 100%, 100%, 1)\n * @returns\n */\nexport function hsla(color) {\n try {\n let i;\n if ((i = hslaRegex.exec(color))) {\n return [\n roundDeg(i[1]),\n roundPercent(i[5]),\n roundPercent(i[9]),\n roundAlpha(i[13])\n ];\n }\n else if ((i = hslRegex.exec(color))) {\n return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), 1];\n }\n throw new Error(`[seemly/hsla]: Invalid color value ${color}.`);\n }\n catch (e) {\n throw e;\n }\n}\n/**\n * Convert color string to hsva array\n * @param color format like hsv(180, 100%, 100%), hsva(180, 100%, 100%, 1)\n * @returns\n */\nexport function hsva(color) {\n try {\n let i;\n if ((i = hsvaRegex.exec(color))) {\n return [\n roundDeg(i[1]),\n roundPercent(i[5]),\n roundPercent(i[9]),\n roundAlpha(i[13])\n ];\n }\n else if ((i = hsvRegex.exec(color))) {\n return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), 1];\n }\n throw new Error(`[seemly/hsva]: Invalid color value ${color}.`);\n }\n catch (e) {\n throw e;\n }\n}\n/**\n * Convert color string to rgba array.\n * @param color format like #000[0], #000000[00], rgb(0, 0, 0), rgba(0, 0, 0, 0) and basic color keywords https://www.w3.org/TR/css-color-3/#html4 and transparent\n * @returns\n */\nexport function rgba(color) {\n try {\n let i;\n if ((i = hexRegex.exec(color))) {\n return [parseHex(i[1]), parseHex(i[2]), parseHex(i[3]), 1];\n }\n else if ((i = rgbRegex.exec(color))) {\n return [roundChannel(i[1]), roundChannel(i[5]), roundChannel(i[9]), 1];\n }\n else if ((i = rgbaRegex.exec(color))) {\n return [\n roundChannel(i[1]),\n roundChannel(i[5]),\n roundChannel(i[9]),\n roundAlpha(i[13])\n ];\n }\n else if ((i = sHexRegex.exec(color))) {\n return [\n parseHex(i[1] + i[1]),\n parseHex(i[2] + i[2]),\n parseHex(i[3] + i[3]),\n 1\n ];\n }\n else if ((i = hexaRegex.exec(color))) {\n return [\n parseHex(i[1]),\n parseHex(i[2]),\n parseHex(i[3]),\n roundAlpha(parseHex(i[4]) / 255)\n ];\n }\n else if ((i = sHexaRegex.exec(color))) {\n return [\n parseHex(i[1] + i[1]),\n parseHex(i[2] + i[2]),\n parseHex(i[3] + i[3]),\n roundAlpha(parseHex(i[4] + i[4]) / 255)\n ];\n }\n else if (color in colors) {\n return rgba(colors[color]);\n }\n throw new Error(`[seemly/rgba]: Invalid color value ${color}.`);\n }\n catch (e) {\n throw e;\n }\n}\nfunction normalizeAlpha(alphaValue) {\n return alphaValue > 1 ? 1 : alphaValue < 0 ? 0 : alphaValue;\n}\nfunction stringifyRgb(r, g, b) {\n return `rgb(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)})`;\n}\nfunction stringifyRgba(r, g, b, a) {\n return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, ${normalizeAlpha(a)})`;\n}\nfunction compositeChannel(v1, a1, v2, a2, a) {\n return roundChannel((v1 * a1 * (1 - a2) + v2 * a2) / a);\n}\nexport function composite(background, overlay) {\n if (!Array.isArray(background))\n background = rgba(background);\n if (!Array.isArray(overlay))\n overlay = rgba(overlay);\n const a1 = background[3];\n const a2 = overlay[3];\n const alpha = roundAlpha(a1 + a2 - a1 * a2);\n return stringifyRgba(compositeChannel(background[0], a1, overlay[0], a2, alpha), compositeChannel(background[1], a1, overlay[1], a2, alpha), compositeChannel(background[2], a1, overlay[2], a2, alpha), alpha);\n}\nexport function changeColor(base, options) {\n const [r, g, b, a = 1] = Array.isArray(base) ? base : rgba(base);\n if (options.alpha) {\n return stringifyRgba(r, g, b, options.alpha);\n }\n return stringifyRgba(r, g, b, a);\n}\nexport function scaleColor(base, options) {\n const [r, g, b, a = 1] = Array.isArray(base) ? base : rgba(base);\n const { lightness = 1, alpha = 1 } = options;\n return toRgbaString([r * lightness, g * lightness, b * lightness, a * alpha]);\n}\nexport function getAlpha(base) {\n var _a;\n const alpha = (_a = (Array.isArray(base) ? base : rgba(base))[3]) !== null && _a !== void 0 ? _a : 1;\n return alpha;\n}\nexport function getAlphaString(base) {\n return `${getAlpha(base)}`;\n}\nexport function roundAlpha(value) {\n const v = Math.round(Number(value) * 100) / 100;\n if (v > 1)\n return 1;\n if (v < 0)\n return 0;\n return v;\n}\nexport function roundDeg(value) {\n const v = Math.round(Number(value));\n if (v >= 360)\n return 0;\n if (v < 0)\n return 0;\n return v;\n}\nexport function roundChannel(value) {\n const v = Math.round(Number(value));\n if (v > 255)\n return 255;\n if (v < 0)\n return 0;\n return v;\n}\nexport function roundPercent(value) {\n const v = Math.round(Number(value));\n if (v > 100)\n return 100;\n if (v < 0)\n return 0;\n return v;\n}\nexport function toRgbString(base) {\n const [r, g, b] = Array.isArray(base) ? base : rgba(base);\n return stringifyRgb(r, g, b);\n}\nexport function toRgbaString(base) {\n const [r, g, b] = base;\n if (3 in base) {\n return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, ${roundAlpha(base[3])})`;\n }\n return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, 1)`;\n}\nexport function toHsvString(base) {\n return `hsv(${roundDeg(base[0])}, ${roundPercent(base[1])}%, ${roundPercent(base[2])}%)`;\n}\nexport function toHsvaString(base) {\n const [h, s, v] = base;\n if (3 in base) {\n return `hsva(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(v)}%, ${roundAlpha(base[3])})`;\n }\n return `hsva(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(v)}%, 1)`;\n}\nexport function toHslString(base) {\n return `hsl(${roundDeg(base[0])}, ${roundPercent(base[1])}%, ${roundPercent(base[2])}%)`;\n}\nexport function toHslaString(base) {\n const [h, s, l] = base;\n if (3 in base) {\n return `hsla(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(l)}%, ${roundAlpha(base[3])})`;\n }\n return `hsla(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(l)}%, 1)`;\n}\n/**\n *\n * @param base [255, 255, 255, 255], [255, 255, 255], any hex string\n * @returns\n */\nexport function toHexaString(base) {\n if (typeof base === 'string') {\n let i;\n if (i = hexRegex.exec(base)) {\n return `${i[0]}FF`;\n }\n else if (i = hexaRegex.exec(base)) {\n return i[0];\n }\n else if (i = sHexRegex.exec(base)) {\n return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}FF`;\n }\n else if (i = sHexaRegex.exec(base)) {\n return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}${i[4]}${i[4]}`;\n }\n throw new Error(`[seemly/toHexString]: Invalid hex value ${base}.`);\n }\n const hex = `#${base\n .slice(0, 3)\n .map((unit) => roundChannel(unit).toString(16).toUpperCase().padStart(2, '0'))\n .join('')}`;\n const a = base.length === 3\n ? 'FF'\n : roundChannel(base[3] * 255)\n .toString(16)\n .padStart(2, '0')\n .toUpperCase();\n return hex + a;\n}\n/**\n *\n * @param base [255, 255, 255, 255], [255, 255, 255], any hex string\n * @returns\n */\nexport function toHexString(base) {\n if (typeof base === 'string') {\n let i;\n if (i = hexRegex.exec(base)) {\n return i[0];\n }\n else if (i = hexaRegex.exec(base)) {\n return i[0].slice(0, 7);\n }\n else if (i = (sHexRegex.exec(base) || sHexaRegex.exec(base))) {\n return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}`;\n }\n throw new Error(`[seemly/toHexString]: Invalid hex value ${base}.`);\n }\n return `#${base\n .slice(0, 3)\n .map((unit) => roundChannel(unit).toString(16).toUpperCase().padStart(2, '0'))\n .join('')}`;\n}\nexport { hsl2hsv, hsv2hsl, hsv2rgb, rgb2hsv, rgb2hsl, hsl2rgb } from './convert';\n","export function createId(length = 8) {\n return Math.random()\n .toString(16)\n .slice(2, 2 + length);\n}\nexport function repeat(count, v) {\n const ret = [];\n for (let i = 0; i < count; ++i) {\n ret.push(v);\n }\n return ret;\n}\nfunction indexMap(count, createValue) {\n const ret = [];\n if (!createValue) {\n for (let i = 0; i < count; ++i) {\n ret.push(i);\n }\n return ret;\n }\n for (let i = 0; i < count; ++i) {\n ret.push(createValue(i));\n }\n return ret;\n}\nexport { indexMap };\nexport async function sleep(ms) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n","export function getEventTarget(e) {\n const path = e.composedPath();\n return path[0];\n}\n","import { on, off } from './delegate';\nimport { getEventTarget } from './utils';\nconst traps = {\n mousemoveoutside: new WeakMap(),\n clickoutside: new WeakMap()\n};\nfunction createTrapHandler(name, el, originalHandler) {\n if (name === 'mousemoveoutside') {\n const moveHandler = (e) => {\n if (el.contains(getEventTarget(e)))\n return;\n originalHandler(e);\n };\n return {\n mousemove: moveHandler,\n touchstart: moveHandler\n };\n }\n else if (name === 'clickoutside') {\n let mouseDownOutside = false;\n const downHandler = (e) => {\n mouseDownOutside = !el.contains(getEventTarget(e));\n };\n const upHanlder = (e) => {\n if (!mouseDownOutside)\n return;\n if (el.contains(getEventTarget(e)))\n return;\n originalHandler(e);\n };\n return {\n mousedown: downHandler,\n mouseup: upHanlder,\n touchstart: downHandler,\n touchend: upHanlder\n };\n }\n console.error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `[evtd/create-trap-handler]: name \\`${name}\\` is invalid. This could be a bug of evtd.`);\n return {};\n}\nfunction ensureTrapHandlers(name, el, handler) {\n const handlers = traps[name];\n let elHandlers = handlers.get(el);\n if (elHandlers === undefined) {\n handlers.set(el, (elHandlers = new WeakMap()));\n }\n let trapHandler = elHandlers.get(handler);\n if (trapHandler === undefined) {\n elHandlers.set(handler, (trapHandler = createTrapHandler(name, el, handler)));\n }\n return trapHandler;\n}\nfunction trapOn(name, el, handler, options) {\n if (name === 'mousemoveoutside' || name === 'clickoutside') {\n const trapHandlers = ensureTrapHandlers(name, el, handler);\n Object.keys(trapHandlers).forEach((key) => {\n on(key, document, trapHandlers[key], options);\n });\n return true;\n }\n return false;\n}\nfunction trapOff(name, el, handler, options) {\n if (name === 'mousemoveoutside' || name === 'clickoutside') {\n const trapHandlers = ensureTrapHandlers(name, el, handler);\n Object.keys(trapHandlers).forEach((key) => {\n off(key, document, trapHandlers[key], options);\n });\n return true;\n }\n return false;\n}\nexport { trapOff, trapOn };\n","import { trapOn, trapOff } from './traps';\nimport { getEventTarget } from './utils';\n// currently `once` and `passive` is not supported\nfunction createDelegate() {\n if (typeof window === 'undefined') {\n return {\n on: () => { },\n off: () => { }\n };\n }\n const propagationStopped = new WeakMap();\n const immediatePropagationStopped = new WeakMap();\n function trackPropagation() {\n propagationStopped.set(this, true);\n }\n function trackImmediate() {\n propagationStopped.set(this, true);\n immediatePropagationStopped.set(this, true);\n }\n function spy(event, propName, fn) {\n const source = event[propName];\n event[propName] = function () {\n fn.apply(event, arguments);\n return source.apply(event, arguments);\n };\n return event;\n }\n function unspy(event, propName) {\n event[propName] = Event.prototype[propName];\n }\n const currentTargets = new WeakMap();\n const currentTargetDescriptor = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget');\n function getCurrentTarget() {\n var _a;\n return (_a = currentTargets.get(this)) !== null && _a !== void 0 ? _a : null;\n }\n function defineCurrentTarget(event, getter) {\n if (currentTargetDescriptor === undefined)\n return;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n enumerable: true,\n get: getter !== null && getter !== void 0 ? getter : currentTargetDescriptor.get\n });\n }\n const phaseToTypeToElToHandlers = {\n bubble: {},\n capture: {}\n };\n const typeToWindowEventHandlers = {};\n function createUnifiedHandler() {\n const delegeteHandler = function (e) {\n const { type, eventPhase, bubbles } = e;\n const target = getEventTarget(e);\n if (eventPhase === 2)\n return;\n const phase = eventPhase === 1 ? 'capture' : 'bubble';\n let cursor = target;\n const path = [];\n // collecting bubble path\n while (true) {\n if (cursor === null)\n cursor = window;\n path.push(cursor);\n if (cursor === window) {\n break;\n }\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n cursor = (cursor.parentNode || null);\n }\n const captureElToHandlers = phaseToTypeToElToHandlers.capture[type];\n const bubbleElToHandlers = phaseToTypeToElToHandlers.bubble[type];\n spy(e, 'stopPropagation', trackPropagation);\n spy(e, 'stopImmediatePropagation', trackImmediate);\n defineCurrentTarget(e, getCurrentTarget);\n if (phase === 'capture') {\n if (captureElToHandlers === undefined)\n return;\n // capture\n for (let i = path.length - 1; i >= 0; --i) {\n if (propagationStopped.has(e))\n break;\n const target = path[i];\n const handlers = captureElToHandlers.get(target);\n if (handlers !== undefined) {\n currentTargets.set(e, target);\n for (const handler of handlers) {\n if (immediatePropagationStopped.has(e))\n break;\n handler(e);\n }\n }\n if (i === 0 && !bubbles && bubbleElToHandlers !== undefined) {\n const bubbleHandlers = bubbleElToHandlers.get(target);\n if (bubbleHandlers !== undefined) {\n for (const handler of bubbleHandlers) {\n if (immediatePropagationStopped.has(e))\n break;\n handler(e);\n }\n }\n }\n }\n }\n else if (phase === 'bubble') {\n if (bubbleElToHandlers === undefined)\n return;\n // bubble\n for (let i = 0; i < path.length; ++i) {\n if (propagationStopped.has(e))\n break;\n const target = path[i];\n const handlers = bubbleElToHandlers.get(target);\n if (handlers !== undefined) {\n currentTargets.set(e, target);\n for (const handler of handlers) {\n if (immediatePropagationStopped.has(e))\n break;\n handler(e);\n }\n }\n }\n }\n unspy(e, 'stopPropagation');\n unspy(e, 'stopImmediatePropagation');\n defineCurrentTarget(e);\n };\n delegeteHandler.displayName = 'evtdUnifiedHandler';\n return delegeteHandler;\n }\n function createUnifiedWindowEventHandler() {\n const delegateHandler = function (e) {\n const { type, eventPhase } = e;\n if (eventPhase !== 2)\n return;\n const handlers = typeToWindowEventHandlers[type];\n if (handlers === undefined)\n return;\n handlers.forEach((handler) => handler(e));\n };\n delegateHandler.displayName = 'evtdUnifiedWindowEventHandler';\n return delegateHandler;\n }\n const unifiedHandler = createUnifiedHandler();\n const unfiendWindowEventHandler = createUnifiedWindowEventHandler();\n function ensureElToHandlers(phase, type) {\n const phaseHandlers = phaseToTypeToElToHandlers[phase];\n if (phaseHandlers[type] === undefined) {\n phaseHandlers[type] = new Map();\n window.addEventListener(type, unifiedHandler, phase === 'capture');\n }\n return phaseHandlers[type];\n }\n function ensureWindowEventHandlers(type) {\n const windowEventHandlers = typeToWindowEventHandlers[type];\n if (windowEventHandlers === undefined) {\n typeToWindowEventHandlers[type] = new Set();\n window.addEventListener(type, unfiendWindowEventHandler);\n }\n return typeToWindowEventHandlers[type];\n }\n function ensureHandlers(elToHandlers, el) {\n let elHandlers = elToHandlers.get(el);\n if (elHandlers === undefined) {\n elToHandlers.set(el, (elHandlers = new Set()));\n }\n return elHandlers;\n }\n function handlerExist(el, phase, type, handler) {\n const elToHandlers = phaseToTypeToElToHandlers[phase][type];\n // phase ${type} event has handlers\n if (elToHandlers !== undefined) {\n const handlers = elToHandlers.get(el);\n // phase using el with ${type} event has handlers\n if (handlers !== undefined) {\n if (handlers.has(handler))\n return true;\n }\n }\n return false;\n }\n function windowEventHandlerExist(type, handler) {\n const handlers = typeToWindowEventHandlers[type];\n if (handlers !== undefined) {\n if (handlers.has(handler)) {\n return true;\n }\n }\n return false;\n }\n function on(type, el, handler, options) {\n let mergedHandler;\n if (typeof options === 'object' && options.once === true) {\n mergedHandler = (e) => {\n off(type, el, mergedHandler, options);\n handler(e);\n };\n }\n else {\n mergedHandler = handler;\n }\n const trapped = trapOn(type, el, mergedHandler, options);\n if (trapped)\n return;\n const phase = options === true ||\n (typeof options === 'object' && options.capture === true)\n ? 'capture'\n : 'bubble';\n const elToHandlers = ensureElToHandlers(phase, type);\n const handlers = ensureHandlers(elToHandlers, el);\n if (!handlers.has(mergedHandler))\n handlers.add(mergedHandler);\n if (el === window) {\n const windowEventHandlers = ensureWindowEventHandlers(type);\n if (!windowEventHandlers.has(mergedHandler)) {\n windowEventHandlers.add(mergedHandler);\n }\n }\n }\n function off(type, el, handler, options) {\n const trapped = trapOff(type, el, handler, options);\n if (trapped)\n return;\n const capture = options === true ||\n (typeof options === 'object' && options.capture === true);\n const phase = capture ? 'capture' : 'bubble';\n const elToHandlers = ensureElToHandlers(phase, type);\n const handlers = ensureHandlers(elToHandlers, el);\n if (el === window) {\n const mirrorPhase = capture ? 'bubble' : 'capture';\n if (!handlerExist(el, mirrorPhase, type, handler) &&\n windowEventHandlerExist(type, handler)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const windowEventHandlers = typeToWindowEventHandlers[type];\n windowEventHandlers.delete(handler);\n if (windowEventHandlers.size === 0) {\n window.removeEventListener(type, unfiendWindowEventHandler);\n typeToWindowEventHandlers[type] = undefined;\n }\n }\n }\n if (handlers.has(handler))\n handlers.delete(handler);\n if (handlers.size === 0) {\n elToHandlers.delete(el);\n }\n if (elToHandlers.size === 0) {\n window.removeEventListener(type, unifiedHandler, phase === 'capture');\n phaseToTypeToElToHandlers[phase][type] = undefined;\n }\n }\n return {\n on: on,\n off: off\n };\n}\nconst { on, off } = createDelegate();\nexport { on, off };\n","import { Fragment, createTextVNode, Comment } from 'vue';\nexport function getSlot(scope, slots, slotName = 'default') {\n const slot = slots[slotName];\n if (slot === undefined) {\n throw new Error(`[vueuc/${scope}]: slot[${slotName}] is empty.`);\n }\n return slot();\n}\n// o(n) flatten\nexport function flatten(vNodes, filterCommentNode = true, result = []) {\n vNodes.forEach((vNode) => {\n if (vNode === null)\n return;\n if (typeof vNode !== 'object') {\n if (typeof vNode === 'string' || typeof vNode === 'number') {\n result.push(createTextVNode(String(vNode)));\n }\n return;\n }\n if (Array.isArray(vNode)) {\n flatten(vNode, filterCommentNode, result);\n return;\n }\n if (vNode.type === Fragment) {\n if (vNode.children === null)\n return;\n if (Array.isArray(vNode.children)) {\n flatten(vNode.children, filterCommentNode, result);\n }\n // rawSlot\n }\n else if (vNode.type !== Comment) {\n result.push(vNode);\n }\n });\n return result;\n}\nexport function getFirstVNode(scope, slots, slotName = 'default') {\n const slot = slots[slotName];\n if (slot === undefined) {\n throw new Error(`[vueuc/${scope}]: slot[${slotName}] is empty.`);\n }\n const content = flatten(slot());\n // vue will normalize the slot, so slot must be an array\n if (content.length === 1) {\n return content[0];\n }\n else {\n throw new Error(`[vueuc/${scope}]: slot[${slotName}] should have exactly one child.`);\n }\n}\n","let viewMeasurer = null;\nexport function ensureViewBoundingRect() {\n if (viewMeasurer === null) {\n viewMeasurer = document.getElementById('v-binder-view-measurer');\n if (viewMeasurer === null) {\n viewMeasurer = document.createElement('div');\n viewMeasurer.id = 'v-binder-view-measurer';\n const { style } = viewMeasurer;\n style.position = 'fixed';\n style.left = '0';\n style.right = '0';\n style.top = '0';\n style.bottom = '0';\n style.pointerEvents = 'none';\n style.visibility = 'hidden';\n document.body.appendChild(viewMeasurer);\n }\n }\n return viewMeasurer.getBoundingClientRect();\n}\nexport function getPointRect(x, y) {\n const viewRect = ensureViewBoundingRect();\n return {\n top: y,\n left: x,\n height: 0,\n width: 0,\n right: viewRect.width - x,\n bottom: viewRect.height - y\n };\n}\nexport function getRect(el) {\n const elRect = el.getBoundingClientRect();\n const viewRect = ensureViewBoundingRect();\n return {\n left: elRect.left - viewRect.left,\n top: elRect.top - viewRect.top,\n bottom: viewRect.height + viewRect.top - elRect.bottom,\n right: viewRect.width + viewRect.left - elRect.right,\n width: elRect.width,\n height: elRect.height\n };\n}\nexport function getParentNode(node) {\n // document type\n if (node.nodeType === 9) {\n return null;\n }\n return node.parentNode;\n}\nexport function getScrollParent(node) {\n if (node === null)\n return null;\n const parentNode = getParentNode(node);\n if (parentNode === null) {\n return null;\n }\n // Document\n if (parentNode.nodeType === 9) {\n return document;\n }\n // Element\n if (parentNode.nodeType === 1) {\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(parentNode);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return parentNode;\n }\n }\n return getScrollParent(parentNode);\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { defineComponent, provide, ref, inject, getCurrentInstance, onBeforeUnmount } from 'vue';\nimport { beforeNextFrameOnce } from 'seemly';\nimport { on, off } from 'evtd';\nimport { getSlot } from '../../shared/v-node';\nimport { getScrollParent } from './utils';\nconst Binder = defineComponent({\n name: 'Binder',\n props: {\n syncTargetWithParent: Boolean,\n syncTarget: {\n type: Boolean,\n default: true\n }\n },\n setup(props) {\n var _a;\n provide('VBinder', (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy);\n const VBinder = inject('VBinder', null);\n const targetRef = ref(null);\n /**\n * If there's no nested vbinder, we can simply set the target ref.\n *\n * However, when it comes to:\n * <VBinder> <- syncTarget = false\n *\n * Should hold target DOM ref, but can't get it directly from\n * its VTarget. So if there are nested VBinder, we should:\n * 1. Stop setting target DOM from level-1 VTarget\n * 2. Set target DOM from level-2 VTarget\n * For (1), we need `syncTarget` to `false`\n * For (2), we need to set `syncTargetWithParent` to `true` on\n * level-2 VBinder\n * <VTarget>\n * <VBinder> <- syncTargetWithParent = true\n * <VTarget>target</VTarget>\n * </VBinder>\n * <VFollower>\n * content1\n * </VFollower>\n * </VTarget>\n * <VFollower>\n * content2\n * </VFollower>\n * </VBinder>\n */\n const setTargetRef = (el) => {\n targetRef.value = el;\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (VBinder && props.syncTargetWithParent) {\n VBinder.setTargetRef(el);\n }\n };\n // scroll related\n let scrollableNodes = [];\n const ensureScrollListener = () => {\n let cursor = targetRef.value;\n while (true) {\n cursor = getScrollParent(cursor);\n if (cursor === null)\n break;\n scrollableNodes.push(cursor);\n }\n for (const el of scrollableNodes) {\n on('scroll', el, onScroll, true);\n }\n };\n const removeScrollListeners = () => {\n for (const el of scrollableNodes) {\n off('scroll', el, onScroll, true);\n }\n scrollableNodes = [];\n };\n const followerScrollListeners = new Set();\n const addScrollListener = (listener) => {\n if (followerScrollListeners.size === 0) {\n ensureScrollListener();\n }\n if (!followerScrollListeners.has(listener)) {\n followerScrollListeners.add(listener);\n }\n };\n const removeScrollListener = (listener) => {\n if (followerScrollListeners.has(listener)) {\n followerScrollListeners.delete(listener);\n }\n if (followerScrollListeners.size === 0) {\n removeScrollListeners();\n }\n };\n const onScroll = () => {\n beforeNextFrameOnce(onScrollRaf);\n };\n const onScrollRaf = () => {\n followerScrollListeners.forEach((listener) => listener());\n };\n // resize related\n const followerResizeListeners = new Set();\n const addResizeListener = (listener) => {\n if (followerResizeListeners.size === 0) {\n on('resize', window, onResize);\n }\n if (!followerResizeListeners.has(listener)) {\n followerResizeListeners.add(listener);\n }\n };\n const removeResizeListener = (listener) => {\n if (followerResizeListeners.has(listener)) {\n followerResizeListeners.delete(listener);\n }\n if (followerResizeListeners.size === 0) {\n off('resize', window, onResize);\n }\n };\n const onResize = () => {\n followerResizeListeners.forEach((listener) => listener());\n };\n onBeforeUnmount(() => {\n off('resize', window, onResize);\n removeScrollListeners();\n });\n return {\n targetRef,\n setTargetRef,\n addScrollListener,\n removeScrollListener,\n addResizeListener,\n removeResizeListener\n };\n },\n render() {\n return getSlot('binder', this.$slots);\n }\n});\nexport default Binder;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { defineComponent, inject, withDirectives } from 'vue';\nimport { getFirstVNode } from '../../shared/v-node';\nexport default defineComponent({\n name: 'Target',\n setup() {\n const { setTargetRef, syncTarget } = inject('VBinder');\n const setTargetDirective = {\n mounted: setTargetRef,\n updated: setTargetRef\n };\n return {\n syncTarget,\n setTargetDirective\n };\n },\n render() {\n const { syncTarget, setTargetDirective } = this;\n /**\n * If you are using VBinder as a child of VBinder, the children wouldn't be\n * a valid DOM or component that can be attached to by directive.\n * So we won't sync target on those kind of situation and control the\n * target sync logic manually.\n */\n if (syncTarget) {\n return withDirectives(getFirstVNode('follower', this.$slots), [\n [setTargetDirective]\n ]);\n }\n return getFirstVNode('follower', this.$slots);\n }\n});\n","import { on, off } from 'evtd';\nconst ctxKey = '@@mmoContext';\nconst mousemoveoutside = {\n mounted(el, { value }) {\n el[ctxKey] = {\n handler: undefined\n };\n if (typeof value === 'function') {\n el[ctxKey].handler = value;\n on('mousemoveoutside', el, value);\n }\n },\n updated(el, { value }) {\n const ctx = el[ctxKey];\n if (typeof value === 'function') {\n if (ctx.handler) {\n if (ctx.handler !== value) {\n off('mousemoveoutside', el, ctx.handler);\n ctx.handler = value;\n on('mousemoveoutside', el, value);\n }\n }\n else {\n el[ctxKey].handler = value;\n on('mousemoveoutside', el, value);\n }\n }\n else {\n if (ctx.handler) {\n off('mousemoveoutside', el, ctx.handler);\n ctx.handler = undefined;\n }\n }\n },\n unmounted(el) {\n const { handler } = el[ctxKey];\n if (handler) {\n off('mousemoveoutside', el, handler);\n }\n el[ctxKey].handler = undefined;\n }\n};\nexport default mousemoveoutside;\n","import { on, off } from 'evtd';\nconst ctxKey = '@@coContext';\nconst clickoutside = {\n mounted(el, { value, modifiers }) {\n el[ctxKey] = {\n handler: undefined\n };\n if (typeof value === 'function') {\n el[ctxKey].handler = value;\n on('clickoutside', el, value, {\n capture: modifiers.capture\n });\n }\n },\n updated(el, { value, modifiers }) {\n const ctx = el[ctxKey];\n if (typeof value === 'function') {\n if (ctx.handler) {\n if (ctx.handler !== value) {\n off('clickoutside', el, ctx.handler, {\n capture: modifiers.capture\n });\n ctx.handler = value;\n on('clickoutside', el, value, {\n capture: modifiers.capture\n });\n }\n }\n else {\n el[ctxKey].handler = value;\n on('clickoutside', el, value, {\n capture: modifiers.capture\n });\n }\n }\n else {\n if (ctx.handler) {\n off('clickoutside', el, ctx.handler, {\n capture: modifiers.capture\n });\n ctx.handler = undefined;\n }\n }\n },\n unmounted(el, { modifiers }) {\n const { handler } = el[ctxKey];\n if (handler) {\n off('clickoutside', el, handler, {\n capture: modifiers.capture\n });\n }\n el[ctxKey].handler = undefined;\n }\n};\nexport default clickoutside;\n","const warnedMessages = new Set();\nexport function warnOnce(location, message) {\n const mergedMessage = `[vdirs/${location}]: ${message}`;\n if (warnedMessages.has(mergedMessage))\n return;\n warnedMessages.add(mergedMessage);\n}\nexport function warn(location, message) {\n console.error(`[vdirs/${location}]: ${message}`);\n}\n","import { warn } from '../utils';\nclass ZIndexManager {\n constructor() {\n this.elementZIndex = new Map();\n this.nextZIndex = 2000;\n }\n get elementCount() {\n return this.elementZIndex.size;\n }\n ensureZIndex(el, zIndex) {\n const { elementZIndex } = this;\n if (zIndex !== undefined) {\n el.style.zIndex = `${zIndex}`;\n elementZIndex.delete(el);\n return;\n }\n const { nextZIndex } = this;\n if (elementZIndex.has(el)) {\n const currentZIndex = elementZIndex.get(el);\n if (currentZIndex + 1 === this.nextZIndex)\n return;\n }\n el.style.zIndex = `${nextZIndex}`;\n elementZIndex.set(el, nextZIndex);\n this.nextZIndex = nextZIndex + 1;\n this.squashState();\n }\n unregister(el, zIndex) {\n const { elementZIndex } = this;\n if (elementZIndex.has(el)) {\n elementZIndex.delete(el);\n }\n else if (zIndex === undefined) {\n warn('z-index-manager/unregister-element', 'Element not found when unregistering.');\n }\n this.squashState();\n }\n squashState() {\n const { elementCount } = this;\n if (!elementCount) {\n this.nextZIndex = 2000;\n }\n if (this.nextZIndex - elementCount > 2500)\n this.rearrange();\n }\n rearrange() {\n const elementZIndexPair = Array.from(this.elementZIndex.entries());\n elementZIndexPair.sort((pair1, pair2) => {\n return pair1[1] - pair2[1];\n });\n this.nextZIndex = 2000;\n elementZIndexPair.forEach((pair) => {\n const el = pair[0];\n const zIndex = this.nextZIndex++;\n if (`${zIndex}` !== el.style.zIndex)\n el.style.zIndex = `${zIndex}`;\n });\n }\n}\nexport default new ZIndexManager();\n","import zIndexManager from './z-index-manager';\nconst ctx = '@@ziContext';\n// We don't expect manually bound zindex should be changed\nconst zindexable = {\n mounted(el, bindings) {\n const { value = {} } = bindings;\n const { zIndex, enabled } = value;\n el[ctx] = {\n enabled: !!enabled,\n initialized: false\n };\n if (enabled) {\n zIndexManager.ensureZIndex(el, zIndex);\n el[ctx].initialized = true;\n }\n },\n updated(el, bindings) {\n const { value = {} } = bindings;\n const { zIndex, enabled } = value;\n const cachedEnabled = el[ctx].enabled;\n if (enabled && !cachedEnabled) {\n zIndexManager.ensureZIndex(el, zIndex);\n el[ctx].initialized = true;\n }\n el[ctx].enabled = !!enabled;\n },\n unmounted(el, bindings) {\n if (!el[ctx].initialized)\n return;\n const { value = {} } = bindings;\n const { zIndex } = value;\n zIndexManager.unregister(el, zIndex);\n }\n};\nexport default zindexable;\n","import { ref, readonly, watch } from 'vue';\nexport default function useFalseUntilTruthy(originalRef) {\n const currentRef = ref(!!originalRef.value);\n if (currentRef.value)\n return readonly(currentRef);\n const stop = watch(originalRef, (value) => {\n if (value) {\n currentRef.value = true;\n stop();\n }\n });\n return readonly(currentRef);\n}\n","import { computed, ref, watch } from 'vue';\nfunction useMemo(getterOrOptions) {\n const computedValueRef = computed(getterOrOptions);\n // Maybe it's not possible to lazy evaluate the value, since we can't make\n // render phase capture the deps behind useMemo\n const valueRef = ref(computedValueRef.value);\n watch(computedValueRef, (value) => {\n valueRef.value = value;\n });\n if (typeof getterOrOptions === 'function') {\n return valueRef;\n }\n else {\n return {\n __v_isRef: true,\n get value() {\n return valueRef.value;\n },\n set value(v) {\n getterOrOptions.set(v);\n }\n };\n }\n}\nexport default useMemo;\n","import { getCurrentInstance } from 'vue';\nexport function hasInstance() {\n return getCurrentInstance() !== null;\n}\nexport const isBrowser = typeof window !== 'undefined';\n","import { onMounted, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nlet fontsReady;\nlet isFontReady;\nconst init = () => {\n var _a, _b;\n fontsReady = isBrowser ? (_b = (_a = document) === null || _a === void 0 ? void 0 : _a.fonts) === null || _b === void 0 ? void 0 : _b.ready : undefined;\n isFontReady = false;\n /* istanbul ignore if */\n if (fontsReady !== undefined) {\n void fontsReady.then(() => {\n isFontReady = true;\n });\n }\n else {\n isFontReady = true;\n }\n};\ninit();\n// For testing\nexport { init };\n/**\n * Call callback on fontsReady is resolved. If fontsReady is already resolved,\n * callback won't be called.\n */\nexport default function onFontsReady(cb) {\n /* istanbul ignore next */\n if (isFontReady)\n return;\n let deactivated = false;\n onMounted(() => {\n /* istanbul ignore next */\n if (!isFontReady) {\n fontsReady === null || fontsReady === void 0 ? void 0 : fontsReady.then(() => {\n if (deactivated)\n return;\n cb();\n });\n }\n });\n onBeforeUnmount(() => {\n deactivated = true;\n });\n}\n","import { ref, readonly, onBeforeMount, onBeforeUnmount } from 'vue';\nimport { on, off } from 'evtd';\nimport { hasInstance, isBrowser } from './utils';\nconst mousePositionRef = ref(null);\nfunction clickHandler(e) {\n if (e.clientX > 0 || e.clientY > 0) {\n mousePositionRef.value = {\n x: e.clientX,\n y: e.clientY\n };\n }\n else {\n // x = 0 & y = 0\n const { target } = e;\n if (target instanceof Element) {\n const { left, top, width, height } = target.getBoundingClientRect();\n if (left > 0 || top > 0) {\n // impossible to be triggered by real click\n mousePositionRef.value = {\n x: left + width / 2,\n y: top + height / 2\n };\n }\n else {\n mousePositionRef.value = { x: 0, y: 0 };\n }\n }\n else {\n mousePositionRef.value = null;\n }\n }\n}\nlet usedCount = 0;\nlet managable = true;\nexport default function useClickPosition() {\n if (!isBrowser)\n return readonly(ref(null));\n if (usedCount === 0)\n on('click', document, clickHandler, true);\n const setup = () => {\n usedCount += 1;\n };\n if (managable && (managable = hasInstance())) {\n onBeforeMount(setup);\n onBeforeUnmount(() => {\n usedCount -= 1;\n if (usedCount === 0)\n off('click', document, clickHandler, true);\n });\n }\n else {\n setup();\n }\n return readonly(mousePositionRef);\n}\n","import { onBeforeMount, onBeforeUnmount, ref, readonly } from 'vue';\nimport { on, off } from 'evtd';\nimport { hasInstance, isBrowser } from './utils';\nconst clickedTimeRef = ref(undefined);\nlet usedCount = 0;\nfunction handleClick() {\n clickedTimeRef.value = Date.now();\n}\nlet managable = true;\nexport default function useClicked(timeout) {\n if (!isBrowser)\n return readonly(ref(false));\n const clickedRef = ref(false);\n let timerId = null;\n function clearTimer() {\n if (timerId !== null)\n window.clearTimeout(timerId);\n }\n function clickedHandler() {\n clearTimer();\n clickedRef.value = true;\n timerId = window.setTimeout(() => {\n clickedRef.value = false;\n }, timeout);\n }\n if (usedCount === 0) {\n on('click', window, handleClick, true);\n }\n const setup = () => {\n usedCount += 1;\n on('click', window, clickedHandler, true);\n };\n if (managable && (managable = hasInstance())) {\n onBeforeMount(setup);\n onBeforeUnmount(() => {\n usedCount -= 1;\n if (usedCount === 0) {\n off('click', window, handleClick, true);\n }\n off('click', window, clickedHandler, true);\n clearTimer();\n });\n }\n else {\n setup();\n }\n return readonly(clickedRef);\n}\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { ref, readonly, onBeforeMount, onBeforeUnmount } from 'vue';\nimport { hasInstance } from './utils';\nlet usedCount = 0;\n// Mql means media query list\nconst supportMatchMedia = typeof window !== 'undefined' && window.matchMedia !== undefined;\nconst osTheme = ref(null);\nlet darkMql;\nlet lightMql;\nfunction handleDarkMqlChange(e) {\n if (e.matches) {\n osTheme.value = 'dark';\n }\n}\nfunction handleLightMqlChange(e) {\n if (e.matches) {\n osTheme.value = 'light';\n }\n}\nfunction init() {\n darkMql = window.matchMedia('(prefers-color-scheme: dark)');\n lightMql = window.matchMedia('(prefers-color-scheme: light)');\n if (darkMql.matches) {\n osTheme.value = 'dark';\n }\n else if (lightMql.matches) {\n osTheme.value = 'light';\n }\n else {\n osTheme.value = null;\n }\n if (darkMql.addEventListener) {\n darkMql.addEventListener('change', handleDarkMqlChange);\n lightMql.addEventListener('change', handleLightMqlChange);\n }\n else if (darkMql.addListener) {\n darkMql.addListener(handleDarkMqlChange);\n lightMql.addListener(handleLightMqlChange);\n }\n}\nfunction clean() {\n if ('removeEventListener' in darkMql) {\n darkMql.removeEventListener('change', handleDarkMqlChange);\n lightMql.removeEventListener('change', handleLightMqlChange);\n }\n else if ('removeListener' in darkMql) {\n darkMql.removeListener(handleDarkMqlChange);\n lightMql.removeListener(handleLightMqlChange);\n }\n darkMql = undefined;\n lightMql = undefined;\n}\nlet managable = true;\nexport default function useOsTheme() {\n /* istanbul ignore next */\n if (process.env.NODE_ENV !== 'test' && !supportMatchMedia) {\n return readonly(osTheme);\n }\n if (process.env.NODE_ENV === 'test' && window.matchMedia === undefined) {\n return readonly(osTheme);\n }\n if (usedCount === 0)\n init();\n if (managable && (managable = hasInstance())) {\n onBeforeMount(() => {\n usedCount += 1;\n });\n onBeforeUnmount(() => {\n usedCount -= 1;\n if (usedCount === 0)\n clean();\n });\n }\n return readonly(osTheme);\n}\n","import { watch, computed } from 'vue';\nexport default function useMergedState(controlledStateRef, uncontrolledStateRef) {\n watch(controlledStateRef, value => {\n if (value !== undefined) {\n uncontrolledStateRef.value = value;\n }\n });\n return computed(() => {\n if (controlledStateRef.value === undefined) {\n return uncontrolledStateRef.value;\n }\n return controlledStateRef.value;\n });\n}\n","import { ref, onMounted, readonly } from 'vue';\nexport default function isMounted() {\n const isMounted = ref(false);\n onMounted(() => { isMounted.value = true; });\n return readonly(isMounted);\n}\n","import { computed } from 'vue';\nexport default function useCompitable(reactive, keys) {\n // @ts-expect-error\n return computed(() => {\n for (const key of keys) {\n if (reactive[key] !== undefined)\n return reactive[key];\n }\n return reactive[keys[keys.length - 1]];\n });\n}\n","export const isIos = (typeof window === 'undefined'\n ? false\n : /iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n !window.MSStream;\nexport default function useIsIos() {\n return isIos;\n}\n","/* eslint-disable @typescript-eslint/consistent-type-assertions */\nimport { ref, computed, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nexport const defaultBreakpointOptions = {\n // mobile\n // 0 ~ 640 doesn't mean it should display well in all the range,\n // but means you should treat it like a mobile phone.)\n xs: 0,\n s: 640,\n m: 1024,\n l: 1280,\n xl: 1536,\n '2xl': 1920 // normal desktop display\n};\nfunction createMediaQuery(screenWidth) {\n return `(min-width: ${screenWidth}px)`;\n}\nconst mqlMap = {};\nfunction useBreakpoints(screens = defaultBreakpointOptions) {\n if (!isBrowser)\n return computed(() => []);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (typeof window.matchMedia !== 'function')\n return computed(() => []);\n const breakpointStatusRef = ref({});\n const breakpoints = Object.keys(screens);\n const updateBreakpoints = (e, breakpointName) => {\n if (e.matches)\n breakpointStatusRef.value[breakpointName] = true;\n else\n breakpointStatusRef.value[breakpointName] = false;\n };\n breakpoints.forEach((key) => {\n const breakpointValue = screens[key];\n let mql;\n let cbs;\n if (mqlMap[breakpointValue] === undefined) {\n mql = window.matchMedia(createMediaQuery(breakpointValue));\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (mql.addEventListener) {\n mql.addEventListener('change', (e) => {\n cbs.forEach((cb) => {\n cb(e, key);\n });\n });\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n }\n else if (mql.addListener) {\n mql.addListener((e) => {\n cbs.forEach((cb) => {\n cb(e, key);\n });\n });\n }\n cbs = new Set();\n mqlMap[breakpointValue] = {\n mql,\n cbs\n };\n }\n else {\n mql = mqlMap[breakpointValue].mql;\n cbs = mqlMap[breakpointValue].cbs;\n }\n cbs.add(updateBreakpoints);\n if (mql.matches) {\n cbs.forEach((cb) => {\n cb(mql, key);\n });\n }\n });\n onBeforeUnmount(() => {\n breakpoints.forEach((breakpoint) => {\n const { cbs } = mqlMap[screens[breakpoint]];\n if (cbs.has(updateBreakpoints)) {\n cbs.delete(updateBreakpoints);\n }\n });\n });\n return computed(() => {\n const { value } = breakpointStatusRef;\n return breakpoints.filter((key) => value[key]);\n });\n}\nexport default useBreakpoints;\n","import { computed } from 'vue';\nimport useBreakpoints from './use-breakpoints';\nimport { isBrowser } from './utils';\nfunction useBreakpoint(screens) {\n if (!isBrowser)\n return computed(() => undefined);\n // pass ts check\n const breakpointsRef = screens !== undefined ? useBreakpoints(screens) : useBreakpoints();\n return computed(() => {\n const { value } = breakpointsRef;\n if (value.length === 0)\n return undefined;\n return value[value.length - 1];\n });\n}\nexport default useBreakpoint;\n","import { onBeforeMount, onBeforeUnmount, reactive, readonly, watch } from 'vue';\nimport { on, off } from 'evtd';\nimport { hasInstance } from './utils';\nexport default function useKeyboard(options = {}, enabledRef) {\n const state = reactive({\n ctrl: false,\n command: false,\n win: false,\n shift: false,\n tab: false\n });\n const { keydown, keyup } = options;\n const keydownHandler = (e) => {\n switch (e.key) {\n case 'Control':\n state.ctrl = true;\n break;\n case 'Meta':\n state.command = true;\n state.win = true;\n break;\n case 'Shift':\n state.shift = true;\n break;\n case 'Tab':\n state.tab = true;\n break;\n }\n if (keydown !== undefined) {\n Object.keys(keydown).forEach(key => {\n if (key !== e.key)\n return;\n const handler = keydown[key];\n if (typeof handler === 'function') {\n handler(e);\n }\n else {\n const { stop = false, prevent = false } = handler;\n if (stop)\n e.stopPropagation();\n if (prevent)\n e.preventDefault();\n handler.handler(e);\n }\n });\n }\n };\n const keyupHandler = (e) => {\n switch (e.key) {\n case 'Control':\n state.ctrl = false;\n break;\n case 'Meta':\n state.command = false;\n state.win = false;\n break;\n case 'Shift':\n state.shift = false;\n break;\n case 'Tab':\n state.tab = false;\n break;\n }\n if (keyup !== undefined) {\n Object.keys(keyup).forEach(key => {\n if (key !== e.key)\n return;\n const handler = keyup[key];\n if (typeof handler === 'function') {\n handler(e);\n }\n else {\n const { stop = false, prevent = false } = handler;\n if (stop)\n e.stopPropagation();\n if (prevent)\n e.preventDefault();\n handler.handler(e);\n }\n });\n }\n };\n const setup = () => {\n if (enabledRef === undefined || enabledRef.value) {\n on('keydown', document, keydownHandler);\n on('keyup', document, keyupHandler);\n }\n if (enabledRef !== undefined) {\n watch(enabledRef, value => {\n if (value) {\n on('keydown', document, keydownHandler);\n on('keyup', document, keyupHandler);\n }\n else {\n off('keydown', document, keydownHandler);\n off('keyup', document, keyupHandler);\n }\n });\n }\n };\n if (hasInstance()) {\n onBeforeMount(setup);\n onBeforeUnmount(() => {\n if (enabledRef === undefined || enabledRef.value) {\n off('keydown', document, keydownHandler);\n off('keyup', document, keyupHandler);\n }\n });\n }\n else {\n setup();\n }\n return readonly(state);\n}\n","import { isIos } from './use-is-ios';\nconst isSafari = typeof window === 'undefined'\n ? false\n : isIos || window.safari !== undefined;\nexport default function useIsSafari() {\n return isSafari;\n}\n","import { inject } from 'vue';\nconst ssrContextKey = '@css-render/vue3-ssr';\nfunction createStyleString(id, style) {\n return `<style cssr-id=\"${id}\">\\n${style}\\n</style>`;\n}\nfunction ssrAdapter(id, style, ssrContext) {\n const { styles, ids } = ssrContext;\n // we need to impl other options to make it behaves the same as the client side\n if (ids.has(id))\n return;\n if (styles !== null) {\n ids.add(id);\n styles.push(createStyleString(id, style));\n }\n}\nconst isBrowser = typeof document !== 'undefined';\nexport function useSsrAdapter() {\n if (isBrowser)\n return undefined;\n const context = inject(ssrContextKey, null);\n if (context === null)\n return undefined;\n return {\n adapter: (id, style) => ssrAdapter(id, style, context),\n context\n };\n}\nexport function setup(app) {\n const styles = [];\n const ssrContext = {\n styles,\n ids: new Set()\n };\n app.provide(ssrContextKey, ssrContext);\n return {\n collect() {\n const res = styles.join('\\n');\n styles.length = 0;\n return res;\n }\n };\n}\n","export function warn(location, message) {\n console.error(`[vueuc/${location}]: ${message}`);\n}\n","function ampCount(selector) {\n let cnt = 0;\n for (let i = 0; i < selector.length; ++i) {\n if (selector[i] === '&')\n ++cnt;\n }\n return cnt;\n}\n/**\n * Don't just use ',' to separate css selector. For example:\n * x:(a, b) {} will be split into 'x:(a' and 'b)', which is not expected.\n * Make sure comma doesn't exist inside parentheses.\n */\nconst separatorRegex = /\\s*,(?![^(]*\\))\\s*/g;\nconst extraSpaceRegex = /\\s+/g;\n/**\n * selector must includes '&'\n * selector is trimmed\n * every part of amp is trimmed\n */\nfunction resolveSelectorWithAmp(amp, selector) {\n const nextAmp = [];\n selector.split(separatorRegex).forEach(partialSelector => {\n let round = ampCount(partialSelector);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (!round) {\n amp.forEach(partialAmp => {\n nextAmp.push(\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n (partialAmp && partialAmp + ' ') + partialSelector);\n });\n return;\n }\n else if (round === 1) {\n amp.forEach(partialAmp => {\n nextAmp.push(partialSelector.replace('&', partialAmp));\n });\n return;\n }\n let partialNextAmp = [\n partialSelector\n ];\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n while (round--) {\n const nextPartialNextAmp = [];\n partialNextAmp.forEach(selectorItr => {\n amp.forEach(partialAmp => {\n nextPartialNextAmp.push(selectorItr.replace('&', partialAmp));\n });\n });\n partialNextAmp = nextPartialNextAmp;\n }\n partialNextAmp.forEach(part => nextAmp.push(part));\n });\n return nextAmp;\n}\n/**\n * selector mustn't includes '&'\n * selector is trimmed\n */\nfunction resolveSelector(amp, selector) {\n const nextAmp = [];\n selector.split(separatorRegex).forEach(partialSelector => {\n amp.forEach(partialAmp => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n nextAmp.push(((partialAmp && partialAmp + ' ') + partialSelector));\n });\n });\n return nextAmp;\n}\nexport function parseSelectorPath(selectorPaths) {\n let amp = [''];\n selectorPaths.forEach(selector => {\n // eslint-disable-next-line\n selector = selector && selector.trim();\n if (\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n !selector) {\n /**\n * if it's a empty selector, do nothing\n */\n return;\n }\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (selector.includes('&')) {\n amp = resolveSelectorWithAmp(amp, selector);\n }\n else {\n amp = resolveSelector(amp, selector);\n }\n });\n return amp.join(', ').replace(extraSpaceRegex, ' ');\n}\n","export function removeElement(el) {\n /* istanbul ignore if */\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (!el)\n return;\n const parentElement = el.parentElement;\n /* istanbul ignore else */\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (parentElement)\n parentElement.removeChild(el);\n}\nexport function queryElement(id, parent) {\n return (parent !== null && parent !== void 0 ? parent : document.head).querySelector(`style[cssr-id=\"${id}\"]`);\n}\nexport function createElement(id) {\n const el = document.createElement('style');\n el.setAttribute('cssr-id', id);\n return el;\n}\nexport function isMediaOrSupports(selector) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (!selector)\n return false;\n return /^\\s*@(s|m)/.test(selector);\n}\n","import { parseSelectorPath } from './parse';\nimport { isMediaOrSupports } from './utils';\nconst kebabRegex = /[A-Z]/g;\nfunction kebabCase(pattern) {\n return pattern.replace(kebabRegex, match => '-' + match.toLowerCase());\n}\n/** TODO: refine it to solve nested object */\nfunction unwrapProperty(prop, indent = ' ') {\n if (typeof prop === 'object' && prop !== null) {\n return (' {\\n' +\n Object.entries(prop).map(v => {\n return indent + ` ${kebabCase(v[0])}: ${v[1]};`;\n }).join('\\n') +\n '\\n' + indent + '}');\n }\n return `: ${prop};`;\n}\n/** unwrap properties */\nfunction unwrapProperties(props, instance, params) {\n if (typeof props === 'function') {\n return props({\n context: instance.context,\n props: params\n });\n }\n return props;\n}\nfunction createStyle(selector, props, instance, params) {\n if (!props)\n return '';\n // eslint-disable-next-line\n const unwrappedProps = unwrapProperties(props, instance, params);\n if (!unwrappedProps)\n return '';\n if (typeof unwrappedProps === 'string') {\n return `${selector} {\\n${unwrappedProps}\\n}`;\n }\n const propertyNames = Object.keys(unwrappedProps);\n if (propertyNames.length === 0) {\n if (instance.config.keepEmptyBlock)\n return selector + ' {\\n}';\n return '';\n }\n const statements = selector\n ? [\n selector + ' {'\n ]\n : [];\n propertyNames.forEach(propertyName => {\n const property = unwrappedProps[propertyName];\n if (propertyName === 'raw') {\n statements.push('\\n' + property + '\\n');\n return;\n }\n propertyName = kebabCase(propertyName);\n if (property !== null && property !== undefined) {\n statements.push(` ${propertyName}${unwrapProperty(property)}`);\n }\n });\n if (selector) {\n statements.push('}');\n }\n return statements.join('\\n');\n}\nfunction loopCNodeListWithCallback(children, options, callback) {\n /* istanbul ignore if */\n if (!children)\n return;\n children.forEach(child => {\n if (Array.isArray(child)) {\n loopCNodeListWithCallback(child, options, callback);\n }\n else if (typeof child === 'function') {\n const grandChildren = child(options);\n if (Array.isArray(grandChildren)) {\n loopCNodeListWithCallback(grandChildren, options, callback);\n }\n else if (grandChildren) {\n callback(grandChildren);\n }\n }\n else if (child) {\n callback(child);\n }\n });\n}\nfunction traverseCNode(node, selectorPaths, styles, instance, params) {\n const $ = node.$;\n let blockSelector = '';\n if (!$ || typeof $ === 'string') {\n if (isMediaOrSupports($)) {\n blockSelector = $;\n }\n else {\n // as a string selector\n selectorPaths.push($);\n }\n }\n else if (typeof $ === 'function') {\n const selector = $({\n context: instance.context,\n props: params\n });\n if (isMediaOrSupports(selector)) {\n blockSelector = selector;\n }\n else {\n // as a lazy selector\n selectorPaths.push(selector);\n }\n }\n else { // as a option selector\n if ($.before)\n $.before(instance.context);\n if (!$.$ || typeof $.$ === 'string') {\n if (isMediaOrSupports($.$)) {\n blockSelector = $.$;\n }\n else {\n // as a string selector\n selectorPaths.push($.$);\n }\n }\n else /* istanbul ignore else */ if ($.$) {\n const selector = $.$({\n context: instance.context,\n props: params\n });\n if (isMediaOrSupports(selector)) {\n blockSelector = selector;\n }\n else {\n // as a lazy selector\n selectorPaths.push(selector);\n }\n }\n }\n const selector = parseSelectorPath(selectorPaths);\n const style = createStyle(selector, node.props, instance, params);\n if (blockSelector) {\n styles.push(`${blockSelector} {`);\n }\n else if (style.length) {\n styles.push(style);\n }\n if (node.children) {\n loopCNodeListWithCallback(node.children, {\n context: instance.context,\n props: params\n }, childNode => {\n if (typeof childNode === 'string') {\n const style = createStyle(selector, { raw: childNode }, instance, params);\n styles.push(style);\n }\n else {\n traverseCNode(childNode, selectorPaths, styles, instance, params);\n }\n });\n }\n selectorPaths.pop();\n if (blockSelector) {\n styles.push('}');\n }\n if ($ && $.after)\n $.after(instance.context);\n}\nexport function render(node, instance, props) {\n const styles = [];\n traverseCNode(node, [], styles, instance, props);\n return styles.join('\\n\\n');\n}\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport hash from './hash';\nimport { createElement, queryElement, removeElement } from './utils';\nif (typeof window !== 'undefined') {\n window.__cssrContext = {};\n}\nexport function unmount(instance, node, id, parent) {\n const { els } = node;\n // If id is undefined, unmount all styles\n if (id === undefined) {\n els.forEach(removeElement);\n node.els = [];\n }\n else {\n const target = queryElement(id, parent);\n // eslint-disable-next-line\n if (target && els.includes(target)) {\n removeElement(target);\n node.els = els.filter((el) => el !== target);\n }\n }\n}\nfunction addElementToList(els, target) {\n els.push(target);\n}\nfunction mount(instance, node, id, props, head, force, anchorMetaName, parent, ssrAdapter\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n) {\n let style;\n if (id === undefined) {\n style = node.render(props);\n id = hash(style);\n }\n if (ssrAdapter) {\n ssrAdapter.adapter(id, style !== null && style !== void 0 ? style : node.render(props));\n return;\n }\n if (parent === undefined) {\n parent = document.head;\n }\n const queriedTarget = queryElement(id, parent);\n if (queriedTarget !== null && !force) {\n return queriedTarget;\n }\n const target = queriedTarget !== null && queriedTarget !== void 0 ? queriedTarget : createElement(id);\n if (style === undefined)\n style = node.render(props);\n target.textContent = style;\n if (queriedTarget !== null)\n return queriedTarget;\n if (anchorMetaName) {\n const anchorMetaEl = parent.querySelector(`meta[name=\"${anchorMetaName}\"]`);\n if (anchorMetaEl) {\n parent.insertBefore(target, anchorMetaEl);\n addElementToList(node.els, target);\n return target;\n }\n }\n if (head) {\n parent.insertBefore(target, parent.querySelector('style, link'));\n }\n else {\n parent.appendChild(target);\n }\n addElementToList(node.els, target);\n return target;\n}\nexport { mount };\n","import { render } from './render';\nimport { mount, unmount } from './mount';\nfunction wrappedRender(props) {\n return render(this, this.instance, props);\n}\n// do not guard node calling, it should throw an error.\nfunction wrappedMount(options = {}\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n) {\n const { id, ssr, props, head = false, force = false, anchorMetaName, parent } = options;\n const targetElement = mount(this.instance, this, id, props, head, force, anchorMetaName, parent, ssr);\n return targetElement;\n}\nfunction wrappedUnmount(options = {}) {\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const { id, parent } = options;\n unmount(this.instance, this, id, parent);\n}\nconst createCNode = function (instance, $, props, children) {\n return {\n instance,\n $,\n props,\n children,\n els: [],\n render: wrappedRender,\n mount: wrappedMount,\n unmount: wrappedUnmount\n };\n};\nexport const c = function (instance, $, props, children) {\n if (Array.isArray($)) {\n return createCNode(instance, { $: null }, null, $);\n }\n else if (Array.isArray(props)) {\n return createCNode(instance, $, null, props);\n }\n else if (Array.isArray(children)) {\n return createCNode(instance, $, props, children);\n }\n else {\n return createCNode(instance, $, props, null);\n }\n};\n","import { c } from './c';\nimport { queryElement } from './utils';\nexport function CssRender(config = {}) {\n const cssr = {\n c: ((...args) => c(cssr, ...args)),\n use: (plugin, ...args) => plugin.install(cssr, ...args),\n find: queryElement,\n context: {},\n config\n };\n return cssr;\n}\n","import { queryElement } from './utils';\nexport function exists(id, ssr) {\n if (id === undefined)\n return false;\n if (ssr) {\n const { context: { ids } } = ssr;\n return ids.has(id);\n }\n return queryElement(id) !== null;\n}\n","import { CssRender } from 'css-render';\nconst { c } = CssRender();\nexport { c };\nexport const cssrAnchorMetaName = 'vueuc-style';\n","function lowBit(n) {\n return n & -n;\n}\nexport class FinweckTree {\n /**\n * @param l length of the array\n * @param min min value of the array\n */\n constructor(l, min) {\n this.l = l;\n this.min = min;\n const ft = new Array(l + 1);\n for (let i = 0; i < l + 1; ++i) {\n ft[i] = 0;\n }\n this.ft = ft;\n }\n /**\n * Add arr[i] by n, start from 0\n * @param i the index of the element to be added\n * @param n the value to be added\n */\n add(i, n) {\n if (n === 0)\n return;\n const { l, ft } = this;\n i += 1;\n while (i <= l) {\n ft[i] += n;\n i += lowBit(i);\n }\n }\n /**\n * Get the value of index i\n * @param i index\n * @returns value of the index\n */\n get(i) {\n return this.sum(i + 1) - this.sum(i);\n }\n /**\n * Get the sum of first i elements\n * @param i count of head elements to be added\n * @returns the sum of first i elements\n */\n sum(i) {\n if (i === undefined)\n i = this.l;\n if (i <= 0)\n return 0;\n const { ft, min, l } = this;\n if (i > l)\n throw new Error('[FinweckTree.sum]: `i` is larger than length.');\n let ret = i * min;\n while (i > 0) {\n ret += ft[i];\n i -= lowBit(i);\n }\n return ret;\n }\n /**\n * Get the largest count of head elements whose sum are <= threshold\n * @param threshold\n * @returns the largest count of head elements whose sum are <= threshold\n */\n getBound(threshold) {\n let l = 0;\n let r = this.l;\n while (r > l) {\n const m = Math.floor((l + r) / 2);\n const sumM = this.sum(m);\n if (sumM > threshold) {\n r = m;\n continue;\n }\n else if (sumM < threshold) {\n if (l === m) {\n if (this.sum(l + 1) <= threshold)\n return l + 1;\n return m;\n }\n l = m;\n }\n else {\n return m;\n }\n }\n return l;\n }\n}\n","export function resolveTo(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n return selector();\n}\n","import { Teleport, h, toRef, computed, defineComponent } from 'vue';\nimport { useFalseUntilTruthy } from 'vooks';\nimport { getSlot } from '../../shared/v-node';\nexport default defineComponent({\n name: 'LazyTeleport',\n props: {\n to: {\n type: [String, Object],\n default: undefined\n },\n disabled: Boolean,\n show: {\n type: Boolean,\n required: true\n }\n },\n setup(props) {\n return {\n showTeleport: useFalseUntilTruthy(toRef(props, 'show')),\n mergedTo: computed(() => {\n const { to } = props;\n return to !== null && to !== void 0 ? to : 'body';\n })\n };\n },\n render() {\n return this.showTeleport\n ? this.disabled\n ? getSlot('lazy-teleport', this.$slots)\n : h(Teleport, {\n disabled: this.disabled,\n to: this.mergedTo\n }, getSlot('lazy-teleport', this.$slots))\n : null;\n }\n});\n","const oppositionPositions = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nconst oppositeAligns = {\n start: 'end',\n center: 'center',\n end: 'start'\n};\nconst propToCompare = {\n top: 'height',\n bottom: 'height',\n left: 'width',\n right: 'width'\n};\nconst transformOrigins = {\n 'bottom-start': 'top left',\n bottom: 'top center',\n 'bottom-end': 'top right',\n 'top-start': 'bottom left',\n top: 'bottom center',\n 'top-end': 'bottom right',\n 'right-start': 'top left',\n right: 'center left',\n 'right-end': 'bottom left',\n 'left-start': 'top right',\n left: 'center right',\n 'left-end': 'bottom right'\n};\nconst overlapTransformOrigin = {\n 'bottom-start': 'bottom left',\n bottom: 'bottom center',\n 'bottom-end': 'bottom right',\n 'top-start': 'top left',\n top: 'top center',\n 'top-end': 'top right',\n 'right-start': 'top right',\n right: 'center right',\n 'right-end': 'bottom right',\n 'left-start': 'top left',\n left: 'center left',\n 'left-end': 'bottom left'\n};\nconst oppositeAlignCssPositionProps = {\n 'bottom-start': 'right',\n 'bottom-end': 'left',\n 'top-start': 'right',\n 'top-end': 'left',\n 'right-start': 'bottom',\n 'right-end': 'top',\n 'left-start': 'bottom',\n 'left-end': 'top'\n};\nconst keepOffsetDirection = {\n top: true,\n bottom: false,\n left: true,\n right: false // left--\n};\nconst cssPositionToOppositeAlign = {\n top: 'end',\n bottom: 'start',\n left: 'end',\n right: 'start'\n};\nexport function getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, shift, flip, overlap) {\n if (!flip || overlap) {\n return { placement: placement, top: 0, left: 0 };\n }\n const [position, align] = placement.split('-');\n let properAlign = align !== null && align !== void 0 ? align : 'center';\n let properOffset = {\n top: 0,\n left: 0\n };\n const deriveOffset = (oppositeAlignCssSizeProp, alignCssPositionProp, offsetVertically) => {\n let left = 0;\n let top = 0;\n const diff = followerRect[oppositeAlignCssSizeProp] -\n targetRect[alignCssPositionProp] -\n targetRect[oppositeAlignCssSizeProp];\n if (diff > 0 && shift) {\n if (offsetVertically) {\n // screen border\n // |-----------------------------------------|\n // | | f | |\n // | | o | |\n // | | l | |\n // | | l |---- |\n // | | o |tar | |\n // | | w |get | |\n // | | e | | |\n // | | r |---- |\n // | ---- |\n // |-----------------------------------------|\n top = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n }\n else {\n // screen border\n // |----------------------------------------|\n // | |\n // | ---------- |\n // | | target | |\n // | ----------------------------------\n // | | follower |\n // | ----------------------------------\n // | |\n // |----------------------------------------|\n left = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n }\n }\n return {\n left,\n top\n };\n };\n const offsetVertically = position === 'left' || position === 'right';\n // choose proper placement for non-center align\n if (properAlign !== 'center') {\n const oppositeAlignCssPositionProp = oppositeAlignCssPositionProps[placement];\n const currentAlignCssPositionProp = oppositionPositions[oppositeAlignCssPositionProp];\n const oppositeAlignCssSizeProp = propToCompare[oppositeAlignCssPositionProp];\n // if follower rect is larger than target rect in align direction\n // ----------[ target ]---------|\n // ----------[ follower ]\n if (followerRect[oppositeAlignCssSizeProp] >\n targetRect[oppositeAlignCssSizeProp]) {\n if (\n // current space is not enough\n // ----------[ target ]---------|\n // -------[ follower ]\n targetRect[oppositeAlignCssPositionProp] +\n targetRect[oppositeAlignCssSizeProp] <\n followerRect[oppositeAlignCssSizeProp]) {\n const followerOverTargetSize = (followerRect[oppositeAlignCssSizeProp] -\n targetRect[oppositeAlignCssSizeProp]) /\n 2;\n if (targetRect[oppositeAlignCssPositionProp] < followerOverTargetSize ||\n targetRect[currentAlignCssPositionProp] < followerOverTargetSize) {\n // opposite align has larger space\n // -------[ target ]-----------|\n // -------[ follower ]-|\n if (targetRect[oppositeAlignCssPositionProp] <\n targetRect[currentAlignCssPositionProp]) {\n properAlign = oppositeAligns[align];\n properOffset = deriveOffset(oppositeAlignCssSizeProp, currentAlignCssPositionProp, offsetVertically);\n }\n else {\n // ----------------[ target ]----|\n // --------[ follower ]----|\n properOffset = deriveOffset(oppositeAlignCssSizeProp, oppositeAlignCssPositionProp, offsetVertically);\n }\n }\n else {\n // 'center' align is better\n // ------------[ target ]--------|\n // -------[ follower ]--|\n properAlign = 'center';\n }\n }\n }\n else if (followerRect[oppositeAlignCssSizeProp] <\n targetRect[oppositeAlignCssSizeProp]) {\n // TODO: maybe center is better\n if (targetRect[currentAlignCssPositionProp] < 0 &&\n // opposite align has larger space\n // ------------[ target ]\n // ----------------[follower]\n targetRect[oppositeAlignCssPositionProp] >\n targetRect[currentAlignCssPositionProp]) {\n properAlign = oppositeAligns[align];\n }\n }\n }\n else {\n const possibleAlternativeAlignCssPositionProp1 = position === 'bottom' || position === 'top' ? 'left' : 'top';\n const possibleAlternativeAlignCssPositionProp2 = oppositionPositions[possibleAlternativeAlignCssPositionProp1];\n const alternativeAlignCssSizeProp = propToCompare[possibleAlternativeAlignCssPositionProp1];\n const followerOverTargetSize = (followerRect[alternativeAlignCssSizeProp] -\n targetRect[alternativeAlignCssSizeProp]) /\n 2;\n if (\n // center is not enough\n // ----------- [ target ]--|\n // -------[ follower ]\n targetRect[possibleAlternativeAlignCssPositionProp1] <\n followerOverTargetSize ||\n targetRect[possibleAlternativeAlignCssPositionProp2] <\n followerOverTargetSize) {\n // alternative 2 position's space is larger\n if (targetRect[possibleAlternativeAlignCssPositionProp1] >\n targetRect[possibleAlternativeAlignCssPositionProp2]) {\n properAlign =\n cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp1];\n properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp1, offsetVertically);\n }\n else {\n // alternative 1 position's space is larger\n properAlign =\n cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp2];\n properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp2, offsetVertically);\n }\n }\n }\n let properPosition = position;\n if (\n // space is not enough\n targetRect[position] < followerRect[propToCompare[position]] &&\n // opposite position's space is larger\n targetRect[position] < targetRect[oppositionPositions[position]]) {\n properPosition = oppositionPositions[position];\n }\n return {\n placement: properAlign !== 'center'\n ? `${properPosition}-${properAlign}`\n : properPosition,\n left: properOffset.left,\n top: properOffset.top\n };\n}\nexport function getProperTransformOrigin(placement, overlap) {\n if (overlap)\n return overlapTransformOrigin[placement];\n return transformOrigins[placement];\n}\n// ------------\n// | offset |\n// | |\n// | [target] |\n// | |\n// ------------\n// TODO: refactor it to remove dup logic\nexport function getOffset(placement, offsetRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap) {\n if (overlap) {\n switch (placement) {\n case 'bottom-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-100%)'\n };\n case 'bottom-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'top-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: ''\n };\n case 'top-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%)'\n };\n case 'right-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%)'\n };\n case 'right-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'left-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: ''\n };\n case 'left-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-100%)'\n };\n case 'top':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n transform: 'translateX(-50%)'\n };\n case 'right':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-50%)'\n };\n case 'left':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-50%)'\n };\n case 'bottom':\n default:\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n transform: 'translateX(-50%) translateY(-100%)'\n };\n }\n }\n switch (placement) {\n case 'bottom-start':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: ''\n };\n case 'bottom-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%)'\n };\n case 'top-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%)'\n };\n case 'top-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'right-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: ''\n };\n case 'right-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%)'\n };\n case 'left-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%)'\n };\n case 'left-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'top':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width / 2 +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%) translateX(-50%)'\n };\n case 'right':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height / 2 +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-50%)'\n };\n case 'left':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height / 2 +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-50%) translateX(-100%)'\n };\n case 'bottom':\n default:\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width / 2 +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-50%)'\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, defineComponent, inject, nextTick, watch, toRef, ref, onMounted, onBeforeUnmount, withDirectives } from 'vue';\nimport { zindexable } from 'vdirs';\nimport { useMemo, useIsMounted, onFontsReady } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nimport LazyTeleport from '../../lazy-teleport/src/index';\nimport { getPlacementAndOffsetOfFollower, getProperTransformOrigin, getOffset } from './get-placement-style';\nimport { getPointRect, getRect } from './utils';\nconst style = c([\n c('.v-binder-follower-container', {\n position: 'absolute',\n left: '0',\n right: '0',\n top: '0',\n height: '0',\n pointerEvents: 'none',\n zIndex: 'auto'\n }),\n c('.v-binder-follower-content', {\n position: 'absolute',\n zIndex: 'auto'\n }, [\n c('> *', {\n pointerEvents: 'all'\n })\n ])\n]);\nexport default defineComponent({\n name: 'Follower',\n inheritAttrs: false,\n props: {\n show: Boolean,\n enabled: {\n type: Boolean,\n default: undefined\n },\n placement: {\n type: String,\n default: 'bottom'\n },\n syncTrigger: {\n type: Array,\n default: ['resize', 'scroll']\n },\n to: [String, Object],\n flip: {\n type: Boolean,\n default: true\n },\n internalShift: Boolean,\n x: Number,\n y: Number,\n width: String,\n minWidth: String,\n containerClass: String,\n teleportDisabled: Boolean,\n zindexable: {\n type: Boolean,\n default: true\n },\n zIndex: Number,\n overlap: Boolean\n },\n setup(props) {\n const VBinder = inject('VBinder');\n const mergedEnabledRef = useMemo(() => {\n return props.enabled !== undefined ? props.enabled : props.show;\n });\n const followerRef = ref(null);\n const offsetContainerRef = ref(null);\n const ensureListeners = () => {\n const { syncTrigger } = props;\n if (syncTrigger.includes('scroll')) {\n VBinder.addScrollListener(syncPosition);\n }\n if (syncTrigger.includes('resize')) {\n VBinder.addResizeListener(syncPosition);\n }\n };\n const removeListeners = () => {\n VBinder.removeScrollListener(syncPosition);\n VBinder.removeResizeListener(syncPosition);\n };\n onMounted(() => {\n if (mergedEnabledRef.value) {\n syncPosition();\n ensureListeners();\n }\n });\n const ssrAdapter = useSsrAdapter();\n style.mount({\n id: 'vueuc/binder',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onBeforeUnmount(() => {\n removeListeners();\n });\n onFontsReady(() => {\n if (mergedEnabledRef.value) {\n syncPosition();\n }\n });\n const syncPosition = () => {\n if (!mergedEnabledRef.value) {\n return;\n }\n const follower = followerRef.value;\n // sometimes watched props change before its dom is ready\n // for example: show=false, x=undefined, y=undefined\n // show=true, x=0, y=0\n // will cause error\n // I may optimize the watch start point later\n if (follower === null)\n return;\n const target = VBinder.targetRef;\n const { x, y, overlap } = props;\n const targetRect = x !== undefined && y !== undefined\n ? getPointRect(x, y)\n : getRect(target);\n follower.style.setProperty('--v-target-width', `${Math.round(targetRect.width)}px`);\n follower.style.setProperty('--v-target-height', `${Math.round(targetRect.height)}px`);\n const { width, minWidth, placement, internalShift, flip } = props;\n follower.setAttribute('v-placement', placement);\n if (overlap) {\n follower.setAttribute('v-overlap', '');\n }\n else {\n follower.removeAttribute('v-overlap');\n }\n const { style } = follower;\n if (width === 'target') {\n style.width = `${targetRect.width}px`;\n }\n else if (width !== undefined) {\n style.width = width;\n }\n else {\n style.width = '';\n }\n if (minWidth === 'target') {\n style.minWidth = `${targetRect.width}px`;\n }\n else if (minWidth !== undefined) {\n style.minWidth = minWidth;\n }\n else {\n style.minWidth = '';\n }\n const followerRect = getRect(follower);\n const offsetContainerRect = getRect(offsetContainerRef.value);\n const { left: offsetLeftToStandardPlacement, top: offsetTopToStandardPlacement, placement: properPlacement } = getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, internalShift, flip, overlap);\n const properTransformOrigin = getProperTransformOrigin(properPlacement, overlap);\n const { left, top, transform } = getOffset(properPlacement, offsetContainerRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap);\n // we assume that the content size doesn't change after flip,\n // nor we need to make sync logic more complex\n follower.setAttribute('v-placement', properPlacement);\n follower.style.setProperty('--v-offset-left', `${Math.round(offsetLeftToStandardPlacement)}px`);\n follower.style.setProperty('--v-offset-top', `${Math.round(offsetTopToStandardPlacement)}px`);\n follower.style.transform = `translateX(${left}) translateY(${top}) ${transform}`;\n follower.style.setProperty('--v-transform-origin', properTransformOrigin);\n follower.style.transformOrigin = properTransformOrigin;\n };\n watch(mergedEnabledRef, (value) => {\n if (value) {\n ensureListeners();\n syncOnNextTick();\n }\n else {\n removeListeners();\n }\n });\n const syncOnNextTick = () => {\n nextTick()\n .then(syncPosition)\n .catch((e) => console.error(e));\n };\n [\n 'placement',\n 'x',\n 'y',\n 'internalShift',\n 'flip',\n 'width',\n 'overlap',\n 'minWidth'\n ].forEach((prop) => {\n watch(toRef(props, prop), syncPosition);\n });\n ['teleportDisabled'].forEach((prop) => {\n watch(toRef(props, prop), syncOnNextTick);\n });\n watch(toRef(props, 'syncTrigger'), (value) => {\n if (!value.includes('resize')) {\n VBinder.removeResizeListener(syncPosition);\n }\n else {\n VBinder.addResizeListener(syncPosition);\n }\n if (!value.includes('scroll')) {\n VBinder.removeScrollListener(syncPosition);\n }\n else {\n VBinder.addScrollListener(syncPosition);\n }\n });\n const isMountedRef = useIsMounted();\n const mergedToRef = useMemo(() => {\n const { to } = props;\n if (to !== undefined)\n return to;\n if (isMountedRef.value) {\n // TODO: find proper container\n return undefined;\n }\n return undefined;\n });\n return {\n VBinder,\n mergedEnabled: mergedEnabledRef,\n offsetContainerRef,\n followerRef,\n mergedTo: mergedToRef,\n syncPosition\n };\n },\n render() {\n return h(LazyTeleport, {\n show: this.show,\n to: this.mergedTo,\n disabled: this.teleportDisabled\n }, {\n default: () => {\n var _a, _b;\n const vNode = h('div', {\n class: ['v-binder-follower-container', this.containerClass],\n ref: 'offsetContainerRef'\n }, [\n h('div', {\n class: 'v-binder-follower-content',\n ref: 'followerRef'\n }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a))\n ]);\n if (this.zindexable) {\n return withDirectives(vNode, [\n [\n zindexable,\n {\n enabled: this.mergedEnabled,\n zIndex: this.zIndex\n }\n ]\n ]);\n }\n return vNode;\n }\n });\n }\n});\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import { ResizeObserver as PolyfillResizeObserver } from '@juggle/resize-observer';\nclass ResizeObserverDelegate {\n constructor() {\n this.handleResize = this.handleResize.bind(this);\n this.observer = new ((typeof window !== 'undefined' &&\n window.ResizeObserver) ||\n PolyfillResizeObserver)(this.handleResize);\n this.elHandlersMap = new Map();\n }\n handleResize(entries) {\n for (const entry of entries) {\n const handler = this.elHandlersMap.get(entry.target);\n if (handler !== undefined) {\n handler(entry);\n }\n }\n }\n registerHandler(el, handler) {\n this.elHandlersMap.set(el, handler);\n this.observer.observe(el);\n }\n unregisterHandler(el) {\n if (!this.elHandlersMap.has(el)) {\n return;\n }\n this.elHandlersMap.delete(el);\n this.observer.unobserve(el);\n }\n}\nexport default new ResizeObserverDelegate();\n","import { defineComponent, renderSlot, getCurrentInstance, onMounted, onBeforeUnmount } from 'vue';\nimport delegate from './delegate';\nimport { warn } from '../../shared';\nexport default defineComponent({\n name: 'ResizeObserver',\n props: {\n onResize: Function\n },\n setup(props) {\n let registered = false;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const proxy = getCurrentInstance().proxy;\n function handleResize(entry) {\n const { onResize } = props;\n if (onResize !== undefined)\n onResize(entry);\n }\n onMounted(() => {\n const el = proxy.$el;\n if (el === undefined) {\n warn('resize-observer', '$el does not exist.');\n return;\n }\n if (el.nextElementSibling !== el.nextSibling) {\n if (el.nodeType === 3 && el.nodeValue !== '') {\n warn('resize-observer', '$el can not be observed (it may be a text node).');\n return;\n }\n }\n if (el.nextElementSibling !== null) {\n delegate.registerHandler(el.nextElementSibling, handleResize);\n registered = true;\n }\n });\n onBeforeUnmount(() => {\n if (registered) {\n delegate.unregisterHandler(proxy.$el.nextElementSibling);\n }\n });\n },\n render() {\n return renderSlot(this.$slots, 'default');\n }\n});\n","let maybeTouch;\nexport function ensureMaybeTouch() {\n if (typeof document === 'undefined')\n return false;\n if (maybeTouch === undefined) {\n if ('matchMedia' in window) {\n maybeTouch = window.matchMedia('(pointer:coarse)').matches;\n }\n else {\n maybeTouch = false;\n }\n }\n return maybeTouch;\n}\nlet wheelScale;\nexport function ensureWheelScale() {\n if (typeof document === 'undefined')\n return 1;\n if (wheelScale === undefined) {\n wheelScale = 'chrome' in window ? window.devicePixelRatio : 1;\n }\n return wheelScale;\n}\n","export const xScrollInjextionKey = 'VVirtualListXScroll';\n","import { computed, provide, ref } from 'vue';\nimport { useMemo } from 'vooks';\nimport { FinweckTree } from '../../shared';\nimport { xScrollInjextionKey } from './context';\nexport function setupXScroll({ columnsRef, renderColRef, renderItemWithColsRef }) {\n const listWidthRef = ref(0);\n const scrollLeftRef = ref(0);\n const xFinweckTreeRef = computed(() => {\n const columns = columnsRef.value;\n if (columns.length === 0) {\n return null;\n }\n const ft = new FinweckTree(columns.length, 0);\n columns.forEach((column, index) => {\n ft.add(index, column.width);\n });\n return ft;\n });\n const startIndexRef = useMemo(() => {\n const xFinweckTree = xFinweckTreeRef.value;\n if (xFinweckTree !== null) {\n return Math.max(xFinweckTree.getBound(scrollLeftRef.value) - 1, 0);\n }\n else {\n return 0;\n }\n });\n const getLeft = (index) => {\n const xFinweckTree = xFinweckTreeRef.value;\n if (xFinweckTree !== null) {\n return xFinweckTree.sum(index);\n }\n else {\n return 0;\n }\n };\n const endIndexRef = useMemo(() => {\n const xFinweckTree = xFinweckTreeRef.value;\n if (xFinweckTree !== null) {\n return Math.min(xFinweckTree.getBound(scrollLeftRef.value + listWidthRef.value) + 1, columnsRef.value.length - 1);\n }\n else {\n return 0;\n }\n });\n provide(xScrollInjextionKey, {\n startIndexRef,\n endIndexRef,\n columnsRef,\n renderColRef,\n renderItemWithColsRef,\n getLeft\n });\n return {\n listWidthRef,\n scrollLeftRef\n };\n}\n","import { defineComponent, inject } from 'vue';\nimport { xScrollInjextionKey } from './context';\nexport const VirtualListRow = defineComponent({\n name: 'VirtualListRow',\n props: {\n index: { type: Number, required: true },\n item: {\n type: Object,\n required: true\n }\n },\n setup() {\n const { startIndexRef, endIndexRef, columnsRef, getLeft, renderColRef, renderItemWithColsRef } = \n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n inject(xScrollInjextionKey);\n return {\n startIndex: startIndexRef,\n endIndex: endIndexRef,\n columns: columnsRef,\n renderCol: renderColRef,\n renderItemWithCols: renderItemWithColsRef,\n getLeft\n };\n },\n render() {\n const { startIndex, endIndex, columns, renderCol, renderItemWithCols, getLeft, item } = this;\n if (renderItemWithCols != null) {\n return renderItemWithCols({\n itemIndex: this.index,\n startColIndex: startIndex,\n endColIndex: endIndex,\n allColumns: columns,\n item,\n getLeft\n });\n }\n if (renderCol != null) {\n const items = [];\n for (let i = startIndex; i <= endIndex; ++i) {\n const column = columns[i];\n items.push(renderCol({ column, left: getLeft(i), item }));\n }\n return items;\n }\n return null;\n }\n});\n","/* eslint-disable no-void */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { mergeProps, computed, defineComponent, ref, onMounted, h, onActivated, onDeactivated, toRef } from 'vue';\nimport { beforeNextFrameOnce, depx, pxfy } from 'seemly';\nimport { useMemo } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport VResizeObserver from '../../resize-observer/src/VResizeObserver';\nimport { c, cssrAnchorMetaName, FinweckTree } from '../../shared';\nimport { ensureMaybeTouch, ensureWheelScale } from './config';\nimport { setupXScroll } from './xScroll';\nimport { VirtualListRow } from './VirtualListRow';\nconst styles = c('.v-vl', {\n maxHeight: 'inherit',\n height: '100%',\n overflow: 'auto',\n minWidth: '1px' // a zero width container won't be scrollable\n}, [\n c('&:not(.v-vl--show-scrollbar)', {\n scrollbarWidth: 'none'\n }, [\n c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', {\n width: 0,\n height: 0,\n display: 'none'\n })\n ])\n]);\nexport default defineComponent({\n name: 'VirtualList',\n inheritAttrs: false,\n props: {\n showScrollbar: {\n type: Boolean,\n default: true\n },\n columns: {\n type: Array,\n default: () => []\n },\n renderCol: Function,\n renderItemWithCols: Function,\n items: {\n type: Array,\n default: () => []\n },\n // it is suppose to be the min height\n itemSize: {\n type: Number,\n required: true\n },\n itemResizable: Boolean,\n itemsStyle: [String, Object],\n visibleItemsTag: {\n type: [String, Object],\n default: 'div'\n },\n visibleItemsProps: Object,\n ignoreItemResize: Boolean,\n onScroll: Function,\n onWheel: Function,\n onResize: Function,\n defaultScrollKey: [Number, String],\n defaultScrollIndex: Number,\n keyField: {\n type: String,\n default: 'key'\n },\n // Whether it is a good API?\n // ResizeObserver + footer & header is not enough.\n // Too complex for simple case\n paddingTop: {\n type: [Number, String],\n default: 0\n },\n paddingBottom: {\n type: [Number, String],\n default: 0\n }\n },\n setup(props) {\n const ssrAdapter = useSsrAdapter();\n styles.mount({\n id: 'vueuc/virtual-list',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onMounted(() => {\n const { defaultScrollIndex, defaultScrollKey } = props;\n if (defaultScrollIndex !== undefined && defaultScrollIndex !== null) {\n scrollTo({ index: defaultScrollIndex });\n }\n else if (defaultScrollKey !== undefined && defaultScrollKey !== null) {\n scrollTo({ key: defaultScrollKey });\n }\n });\n let isDeactivated = false;\n let activateStateInitialized = false;\n onActivated(() => {\n isDeactivated = false;\n if (!activateStateInitialized) {\n activateStateInitialized = true;\n return;\n }\n // remount\n scrollTo({ top: scrollTopRef.value, left: scrollLeftRef.value });\n });\n onDeactivated(() => {\n isDeactivated = true;\n if (!activateStateInitialized) {\n activateStateInitialized = true;\n }\n });\n const totalWidthRef = useMemo(() => {\n if (props.renderCol == null && props.renderItemWithCols == null) {\n return undefined;\n }\n if (props.columns.length === 0)\n return undefined;\n let width = 0;\n props.columns.forEach((column) => {\n width += column.width;\n });\n return width;\n });\n const keyIndexMapRef = computed(() => {\n const map = new Map();\n const { keyField } = props;\n props.items.forEach((item, index) => {\n map.set(item[keyField], index);\n });\n return map;\n });\n const { scrollLeftRef, listWidthRef } = setupXScroll({\n columnsRef: toRef(props, 'columns'),\n renderColRef: toRef(props, 'renderCol'),\n renderItemWithColsRef: toRef(props, 'renderItemWithCols')\n });\n const listElRef = ref(null);\n const listHeightRef = ref(undefined);\n const keyToHeightOffset = new Map();\n const finweckTreeRef = computed(() => {\n const { items, itemSize, keyField } = props;\n const ft = new FinweckTree(items.length, itemSize);\n items.forEach((item, index) => {\n const key = item[keyField];\n const heightOffset = keyToHeightOffset.get(key);\n if (heightOffset !== undefined) {\n ft.add(index, heightOffset);\n }\n });\n return ft;\n });\n const finweckTreeUpdateTrigger = ref(0);\n const scrollTopRef = ref(0);\n const startIndexRef = useMemo(() => {\n return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0);\n });\n const viewportItemsRef = computed(() => {\n const { value: listHeight } = listHeightRef;\n if (listHeight === undefined)\n return [];\n const { items, itemSize } = props;\n const startIndex = startIndexRef.value;\n const endIndex = Math.min(startIndex + Math.ceil(listHeight / itemSize + 1), items.length - 1);\n const viewportItems = [];\n for (let i = startIndex; i <= endIndex; ++i) {\n viewportItems.push(items[i]);\n }\n return viewportItems;\n });\n const scrollTo = (options, y) => {\n if (typeof options === 'number') {\n scrollToPosition(options, y, 'auto');\n return;\n }\n const { left, top, index, key, position, behavior, debounce = true } = options;\n if (left !== undefined || top !== undefined) {\n scrollToPosition(left, top, behavior);\n }\n else if (index !== undefined) {\n scrollToIndex(index, behavior, debounce);\n }\n else if (key !== undefined) {\n const toIndex = keyIndexMapRef.value.get(key);\n if (toIndex !== undefined)\n scrollToIndex(toIndex, behavior, debounce);\n }\n else if (position === 'bottom') {\n scrollToPosition(0, Number.MAX_SAFE_INTEGER, behavior);\n }\n else if (position === 'top') {\n scrollToPosition(0, 0, behavior);\n }\n };\n let anchorIndex;\n let anchorTimerId = null;\n function scrollToIndex(index, behavior, debounce) {\n const { value: ft } = finweckTreeRef;\n const targetTop = ft.sum(index) + depx(props.paddingTop);\n if (!debounce) {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop,\n behavior\n });\n }\n else {\n anchorIndex = index;\n if (anchorTimerId !== null) {\n window.clearTimeout(anchorTimerId);\n }\n anchorTimerId = window.setTimeout(() => {\n anchorIndex = undefined;\n anchorTimerId = null;\n }, 16); // use 0 ms may be ealier than resize callback...\n const { scrollTop, offsetHeight } = listElRef.value;\n if (targetTop > scrollTop) {\n const itemSize = ft.get(index);\n if (targetTop + itemSize <= scrollTop + offsetHeight) {\n // do nothing\n }\n else {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop + itemSize - offsetHeight,\n behavior\n });\n }\n }\n else {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop,\n behavior\n });\n }\n }\n }\n function scrollToPosition(left, top, behavior) {\n listElRef.value.scrollTo({\n left,\n top,\n behavior\n });\n }\n function handleItemResize(key, entry) {\n var _a, _b, _c;\n if (isDeactivated)\n return;\n if (props.ignoreItemResize)\n return;\n if (isHideByVShow(entry.target))\n return;\n const { value: ft } = finweckTreeRef;\n const index = keyIndexMapRef.value.get(key);\n const previousHeight = ft.get(index);\n const height = (_c = (_b = (_a = entry.borderBoxSize) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.blockSize) !== null && _c !== void 0 ? _c : entry.contentRect.height;\n if (height === previousHeight)\n return;\n // height offset based on itemSize\n // used when rebuild the finweck tree\n const offset = height - props.itemSize;\n if (offset === 0) {\n keyToHeightOffset.delete(key);\n }\n else {\n keyToHeightOffset.set(key, height - props.itemSize);\n }\n // delta height based on finweck tree data\n const delta = height - previousHeight;\n if (delta === 0)\n return;\n ft.add(index, delta);\n const listEl = listElRef.value;\n if (listEl != null) {\n if (anchorIndex === undefined) {\n const previousHeightSum = ft.sum(index);\n if (listEl.scrollTop > previousHeightSum) {\n listEl.scrollBy(0, delta);\n }\n }\n else {\n if (index < anchorIndex) {\n listEl.scrollBy(0, delta);\n }\n else if (index === anchorIndex) {\n const previousHeightSum = ft.sum(index);\n if (height + previousHeightSum >\n // Note, listEl shouldn't have border, nor offsetHeight won't be\n // correct\n listEl.scrollTop + listEl.offsetHeight) {\n listEl.scrollBy(0, delta);\n }\n }\n }\n syncViewport();\n }\n finweckTreeUpdateTrigger.value++;\n }\n const mayUseWheel = !ensureMaybeTouch();\n let wheelCatched = false;\n function handleListScroll(e) {\n var _a;\n (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e);\n if (!mayUseWheel || !wheelCatched) {\n syncViewport();\n }\n }\n function handleListWheel(e) {\n var _a;\n (_a = props.onWheel) === null || _a === void 0 ? void 0 : _a.call(props, e);\n if (mayUseWheel) {\n const listEl = listElRef.value;\n if (listEl != null) {\n if (e.deltaX === 0) {\n if (listEl.scrollTop === 0 && e.deltaY <= 0) {\n return;\n }\n if (listEl.scrollTop + listEl.offsetHeight >= listEl.scrollHeight &&\n e.deltaY >= 0) {\n return;\n }\n }\n e.preventDefault();\n listEl.scrollTop += e.deltaY / ensureWheelScale();\n listEl.scrollLeft += e.deltaX / ensureWheelScale();\n syncViewport();\n wheelCatched = true;\n beforeNextFrameOnce(() => {\n wheelCatched = false;\n });\n }\n }\n }\n function handleListResize(entry) {\n if (isDeactivated)\n return;\n // List is HTMLElement\n if (isHideByVShow(entry.target))\n return;\n // If height is same, return\n if (props.renderCol == null && props.renderItemWithCols == null) {\n if (entry.contentRect.height === listHeightRef.value)\n return;\n }\n else {\n if (entry.contentRect.height === listHeightRef.value &&\n entry.contentRect.width === listWidthRef.value) {\n return;\n }\n }\n listHeightRef.value = entry.contentRect.height;\n listWidthRef.value = entry.contentRect.width;\n const { onResize } = props;\n if (onResize !== undefined)\n onResize(entry);\n }\n function syncViewport() {\n const { value: listEl } = listElRef;\n // sometime ref el can be null\n // https://github.com/TuSimple/naive-ui/issues/811\n if (listEl == null)\n return;\n scrollTopRef.value = listEl.scrollTop;\n scrollLeftRef.value = listEl.scrollLeft;\n }\n function isHideByVShow(el) {\n let cursor = el;\n while (cursor !== null) {\n if (cursor.style.display === 'none')\n return true;\n cursor = cursor.parentElement;\n }\n return false;\n }\n return {\n listHeight: listHeightRef,\n listStyle: {\n overflow: 'auto'\n },\n keyToIndex: keyIndexMapRef,\n itemsStyle: computed(() => {\n const { itemResizable } = props;\n const height = pxfy(finweckTreeRef.value.sum());\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n finweckTreeUpdateTrigger.value;\n return [\n props.itemsStyle,\n {\n boxSizing: 'content-box',\n width: pxfy(totalWidthRef.value),\n height: itemResizable ? '' : height,\n minHeight: itemResizable ? height : '',\n paddingTop: pxfy(props.paddingTop),\n paddingBottom: pxfy(props.paddingBottom)\n }\n ];\n }),\n visibleItemsStyle: computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n finweckTreeUpdateTrigger.value;\n return {\n transform: `translateY(${pxfy(finweckTreeRef.value.sum(startIndexRef.value))})`\n };\n }),\n viewportItems: viewportItemsRef,\n listElRef,\n itemsElRef: ref(null),\n scrollTo,\n handleListResize,\n handleListScroll,\n handleListWheel,\n handleItemResize\n };\n },\n render() {\n const { itemResizable, keyField, keyToIndex, visibleItemsTag } = this;\n return h(VResizeObserver, {\n onResize: this.handleListResize\n }, {\n default: () => {\n var _a, _b;\n return h('div', mergeProps(this.$attrs, {\n class: ['v-vl', this.showScrollbar && 'v-vl--show-scrollbar'],\n onScroll: this.handleListScroll,\n onWheel: this.handleListWheel,\n ref: 'listElRef'\n }), [\n this.items.length !== 0\n ? h('div', {\n ref: 'itemsElRef',\n class: 'v-vl-items',\n style: this.itemsStyle\n }, [\n h(visibleItemsTag, Object.assign({\n class: 'v-vl-visible-items',\n style: this.visibleItemsStyle\n }, this.visibleItemsProps), {\n default: () => {\n const { renderCol, renderItemWithCols } = this;\n return this.viewportItems.map((item) => {\n const key = item[keyField];\n const index = keyToIndex.get(key);\n const renderedCols = renderCol != null\n ? h(VirtualListRow, {\n index,\n item\n })\n : undefined;\n const renderedItemWithCols = renderItemWithCols != null\n ? h(VirtualListRow, {\n index,\n item\n })\n : undefined;\n const itemVNode = this.$slots.default({\n item,\n renderedCols,\n renderedItemWithCols,\n index\n })[0];\n if (itemResizable) {\n return h(VResizeObserver, {\n key,\n onResize: (entry) => this.handleItemResize(key, entry)\n }, {\n default: () => itemVNode\n });\n }\n itemVNode.key = key;\n return itemVNode;\n });\n }\n })\n ])\n : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a)\n ]);\n }\n });\n }\n});\n","import { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { defineComponent, h, ref } from 'vue';\nimport { c, cssrAnchorMetaName } from '../../shared';\nconst styles = c('.v-x-scroll', {\n overflow: 'auto',\n scrollbarWidth: 'none'\n}, [\n c('&::-webkit-scrollbar', {\n width: 0,\n height: 0\n })\n]);\nexport default defineComponent({\n name: 'XScroll',\n props: {\n disabled: Boolean,\n onScroll: Function\n },\n setup() {\n const selfRef = ref(null);\n function handleWheel(e) {\n const preventYWheel = e.currentTarget.offsetWidth <\n e.currentTarget.scrollWidth;\n if (!preventYWheel || e.deltaY === 0)\n return;\n e.currentTarget.scrollLeft += e.deltaY + e.deltaX;\n e.preventDefault();\n }\n const ssrAdapter = useSsrAdapter();\n styles.mount({\n id: 'vueuc/x-scroll',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n const exposedMethods = {\n scrollTo(...args) {\n var _a;\n (_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo(...args);\n }\n };\n return Object.assign({ selfRef,\n handleWheel }, exposedMethods);\n },\n render() {\n return h('div', {\n ref: 'selfRef',\n onScroll: this.onScroll,\n onWheel: this.disabled ? undefined : this.handleWheel,\n class: 'v-x-scroll'\n }, this.$slots);\n }\n});\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport { defineComponent, renderSlot, h, onMounted, ref, nextTick } from 'vue';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nconst hiddenAttr = 'v-hidden';\nconst style = c('[v-hidden]', {\n display: 'none!important'\n});\nexport default defineComponent({\n name: 'Overflow',\n props: {\n getCounter: Function,\n getTail: Function,\n updateCounter: Function,\n onUpdateCount: Function,\n onUpdateOverflow: Function\n },\n setup(props, { slots }) {\n const selfRef = ref(null);\n const counterRef = ref(null);\n function deriveCounter(options) {\n const { value: self } = selfRef;\n const { getCounter, getTail } = props;\n let counter;\n if (getCounter !== undefined)\n counter = getCounter();\n else {\n counter = counterRef.value;\n }\n if (!self || !counter)\n return;\n if (counter.hasAttribute(hiddenAttr)) {\n counter.removeAttribute(hiddenAttr);\n }\n const { children } = self;\n if (options.showAllItemsBeforeCalculate) {\n for (const child of children) {\n if (child.hasAttribute(hiddenAttr)) {\n child.removeAttribute(hiddenAttr);\n }\n }\n }\n const containerWidth = self.offsetWidth;\n const childWidths = [];\n const tail = slots.tail ? getTail === null || getTail === void 0 ? void 0 : getTail() : null;\n let childWidthSum = tail ? tail.offsetWidth : 0;\n let overflow = false;\n const len = self.children.length - (slots.tail ? 1 : 0);\n for (let i = 0; i < len - 1; ++i) {\n if (i < 0)\n continue;\n const child = children[i];\n if (overflow) {\n if (!child.hasAttribute(hiddenAttr)) {\n child.setAttribute(hiddenAttr, '');\n }\n continue;\n }\n else if (child.hasAttribute(hiddenAttr)) {\n child.removeAttribute(hiddenAttr);\n }\n const childWidth = child.offsetWidth;\n childWidthSum += childWidth;\n childWidths[i] = childWidth;\n if (childWidthSum > containerWidth) {\n const { updateCounter } = props;\n for (let j = i; j >= 0; --j) {\n const restCount = len - 1 - j;\n if (updateCounter !== undefined) {\n updateCounter(restCount);\n }\n else {\n counter.textContent = `${restCount}`;\n }\n const counterWidth = counter.offsetWidth;\n childWidthSum -= childWidths[j];\n if (childWidthSum + counterWidth <= containerWidth || j === 0) {\n overflow = true;\n i = j - 1;\n if (tail) {\n // tail too long or 1st element too long\n // we only consider tail now\n if (i === -1) {\n tail.style.maxWidth = `${containerWidth - counterWidth}px`;\n tail.style.boxSizing = 'border-box';\n }\n else {\n tail.style.maxWidth = '';\n }\n }\n const { onUpdateCount } = props;\n if (onUpdateCount)\n onUpdateCount(restCount);\n break;\n }\n }\n }\n }\n const { onUpdateOverflow } = props;\n if (!overflow) {\n if (onUpdateOverflow !== undefined) {\n onUpdateOverflow(false);\n }\n counter.setAttribute(hiddenAttr, '');\n }\n else {\n if (onUpdateOverflow !== undefined) {\n onUpdateOverflow(true);\n }\n }\n }\n const ssrAdapter = useSsrAdapter();\n style.mount({\n id: 'vueuc/overflow',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onMounted(() => deriveCounter({\n showAllItemsBeforeCalculate: false\n }));\n // besides onMounted, other case should be manually triggered, or we shoud watch items\n return {\n selfRef,\n counterRef,\n sync: deriveCounter\n };\n },\n render() {\n const { $slots } = this;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n nextTick(() => this.sync({\n showAllItemsBeforeCalculate: false\n }));\n // It shouldn't have border\n return h('div', {\n class: 'v-overflow',\n ref: 'selfRef'\n }, [\n renderSlot($slots, 'default'),\n // $slots.counter should only has 1 element\n $slots.counter\n ? $slots.counter()\n : h('span', {\n style: {\n display: 'inline-block'\n },\n ref: 'counterRef'\n }),\n // $slots.tail should only has 1 element\n $slots.tail ? $slots.tail() : null\n ]);\n }\n});\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n// ref https://www.w3.org/TR/wai-aria-practices-1.1/examples/dialog-modal/js/dialog.js\nfunction isHTMLElement(node) {\n return node instanceof HTMLElement;\n}\nexport function focusFirstDescendant(node) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes[i];\n if (isHTMLElement(child)) {\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n }\n return false;\n}\nexport function focusLastDescendant(element) {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i];\n if (isHTMLElement(child)) {\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction attemptFocus(element) {\n if (!isFocusable(element)) {\n return false;\n }\n try {\n element.focus({ preventScroll: true });\n }\n catch (e) { }\n return document.activeElement === element;\n}\nfunction isFocusable(element) {\n if (element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\n return true;\n }\n if (element.getAttribute('disabled')) {\n return false;\n }\n switch (element.nodeName) {\n case 'A':\n return (!!element.href &&\n element.rel !== 'ignore');\n case 'INPUT':\n return (element.type !== 'hidden' &&\n element.type !== 'file');\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n}\n","import { h, defineComponent, ref, Fragment, onMounted, onBeforeUnmount, watch } from 'vue';\nimport { createId, getPreciseEventTarget } from 'seemly';\nimport { on, off } from 'evtd';\nimport { focusFirstDescendant, focusLastDescendant } from './utils';\nimport { resolveTo } from '../../shared';\nlet stack = [];\nexport const FocusTrap = defineComponent({\n name: 'FocusTrap',\n props: {\n disabled: Boolean,\n active: Boolean,\n autoFocus: {\n type: Boolean,\n default: true\n },\n onEsc: Function,\n initialFocusTo: String,\n finalFocusTo: String,\n returnFocusOnDeactivated: {\n type: Boolean,\n default: true\n }\n },\n setup(props) {\n const id = createId();\n const focusableStartRef = ref(null);\n const focusableEndRef = ref(null);\n let activated = false;\n let ignoreInternalFocusChange = false;\n const lastFocusedElement = typeof document === 'undefined' ? null : document.activeElement;\n function isCurrentActive() {\n const currentActiveId = stack[stack.length - 1];\n return currentActiveId === id;\n }\n function handleDocumentKeydown(e) {\n var _a;\n if (e.code === 'Escape') {\n if (isCurrentActive()) {\n (_a = props.onEsc) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n }\n }\n onMounted(() => {\n watch(() => props.active, (value) => {\n if (value) {\n activate();\n on('keydown', document, handleDocumentKeydown);\n }\n else {\n off('keydown', document, handleDocumentKeydown);\n if (activated) {\n deactivate();\n }\n }\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n off('keydown', document, handleDocumentKeydown);\n if (activated)\n deactivate();\n });\n function handleDocumentFocus(e) {\n if (ignoreInternalFocusChange)\n return;\n if (isCurrentActive()) {\n const mainEl = getMainEl();\n if (mainEl === null)\n return;\n if (mainEl.contains(getPreciseEventTarget(e)))\n return;\n // I don't handle shift + tab status since it's too tricky to handle\n // Not impossible but I need to sleep\n resetFocusTo('first');\n }\n }\n function getMainEl() {\n const focusableStartEl = focusableStartRef.value;\n if (focusableStartEl === null)\n return null;\n let mainEl = focusableStartEl;\n while (true) {\n mainEl = mainEl.nextSibling;\n if (mainEl === null)\n break;\n if (mainEl instanceof Element && mainEl.tagName === 'DIV') {\n break;\n }\n }\n return mainEl;\n }\n function activate() {\n var _a;\n if (props.disabled)\n return;\n stack.push(id);\n if (props.autoFocus) {\n const { initialFocusTo } = props;\n if (initialFocusTo === undefined) {\n resetFocusTo('first');\n }\n else {\n (_a = resolveTo(initialFocusTo)) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });\n }\n }\n activated = true;\n document.addEventListener('focus', handleDocumentFocus, true);\n }\n function deactivate() {\n var _a;\n if (props.disabled)\n return;\n document.removeEventListener('focus', handleDocumentFocus, true);\n stack = stack.filter((idInStack) => idInStack !== id);\n if (isCurrentActive())\n return;\n const { finalFocusTo } = props;\n if (finalFocusTo !== undefined) {\n (_a = resolveTo(finalFocusTo)) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });\n }\n else if (props.returnFocusOnDeactivated) {\n if (lastFocusedElement instanceof HTMLElement) {\n ignoreInternalFocusChange = true;\n lastFocusedElement.focus({ preventScroll: true });\n ignoreInternalFocusChange = false;\n }\n }\n }\n function resetFocusTo(target) {\n if (!isCurrentActive())\n return;\n if (props.active) {\n const focusableStartEl = focusableStartRef.value;\n const focusableEndEl = focusableEndRef.value;\n if (focusableStartEl !== null && focusableEndEl !== null) {\n const mainEl = getMainEl();\n if (mainEl == null || mainEl === focusableEndEl) {\n ignoreInternalFocusChange = true;\n focusableStartEl.focus({ preventScroll: true });\n ignoreInternalFocusChange = false;\n return;\n }\n ignoreInternalFocusChange = true;\n const focused = target === 'first'\n ? focusFirstDescendant(mainEl)\n : focusLastDescendant(mainEl);\n ignoreInternalFocusChange = false;\n if (!focused) {\n ignoreInternalFocusChange = true;\n focusableStartEl.focus({ preventScroll: true });\n ignoreInternalFocusChange = false;\n }\n }\n }\n }\n function handleStartFocus(e) {\n if (ignoreInternalFocusChange)\n return;\n const mainEl = getMainEl();\n if (mainEl === null)\n return;\n if (e.relatedTarget !== null && mainEl.contains(e.relatedTarget)) {\n // if it comes from inner, focus last\n resetFocusTo('last');\n }\n else {\n // otherwise focus first\n resetFocusTo('first');\n }\n }\n function handleEndFocus(e) {\n if (ignoreInternalFocusChange)\n return;\n if (e.relatedTarget !== null &&\n e.relatedTarget === focusableStartRef.value) {\n // if it comes from first, focus last\n resetFocusTo('last');\n }\n else {\n // otherwise focus first\n resetFocusTo('first');\n }\n }\n return {\n focusableStartRef,\n focusableEndRef,\n focusableStyle: 'position: absolute; height: 0; width: 0;',\n handleStartFocus,\n handleEndFocus\n };\n },\n render() {\n const { default: defaultSlot } = this.$slots;\n if (defaultSlot === undefined)\n return null;\n if (this.disabled)\n return defaultSlot();\n const { active, focusableStyle } = this;\n return h(Fragment, null, [\n h('div', {\n 'aria-hidden': 'true',\n tabindex: active ? '0' : '-1',\n ref: 'focusableStartRef',\n style: focusableStyle,\n onFocus: this.handleStartFocus\n }),\n defaultSlot(),\n h('div', {\n 'aria-hidden': 'true',\n style: focusableStyle,\n ref: 'focusableEndRef',\n tabindex: active ? '0' : '-1',\n onFocus: this.handleEndFocus\n })\n ]);\n }\n});\n","import { computed, getCurrentInstance, inject, ref, unref } from 'vue'\n\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const defaultNamespace = 'king'\nconst statePrefix = 'is-'\n\nfunction _bem(namespace: string, block: string, blockSuffix: string, element: string, modifier: string) {\n let cls = `${namespace}-${block}`\n if (blockSuffix) {\n cls += `-${blockSuffix}`\n }\n if (element) {\n cls += `__${element}`\n }\n if (modifier) {\n cls += `--${modifier}`\n }\n return cls\n}\n\nexport const namespaceContextKey: InjectionKey<Ref<string | undefined>> = Symbol('namespaceContextKey')\n\nexport function useGetDerivedNamespace(namespaceOverrides?: Ref<string | undefined>) {\n const derivedNamespace = namespaceOverrides || (getCurrentInstance() ? inject(namespaceContextKey, ref(defaultNamespace)) : ref(defaultNamespace))\n const namespace = computed(() => {\n return unref(derivedNamespace) || defaultNamespace\n })\n return namespace\n}\n\nexport function useNamespace(block: string, namespaceOverrides?: Ref<string | undefined>) {\n const namespace = useGetDerivedNamespace(namespaceOverrides)\n const b = (blockSuffix = '') => _bem(namespace.value, block, blockSuffix, '', '')\n const e = (element?: string) => (element ? _bem(namespace.value, block, '', element, '') : '')\n const m = (modifier?: string) => (modifier ? _bem(namespace.value, block, '', '', modifier) : '')\n const be = (blockSuffix?: string, element?: string) => (blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, '') : '')\n const em = (element?: string, modifier?: string) => (element && modifier ? _bem(namespace.value, block, '', element, modifier) : '')\n const bm = (blockSuffix?: string, modifier?: string) => (blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, '', modifier) : '')\n const bem = (blockSuffix?: string, element?: string, modifier?: string) =>\n blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : ''\n const is: {\n (name: string, state: boolean | undefined): string\n (name: string): string\n } = (name: string, ...args: [boolean | undefined] | []) => {\n const state = args.length >= 1 ? args[0]! : true\n return name && state ? `${statePrefix}${name}` : ''\n }\n\n // for css var\n // --el-xxx: value;\n const cssVar = (object: Record<string, string>) => {\n const styles: Record<string, string> = {}\n for (const key in object) {\n if (object[key]) {\n styles[`--${namespace.value}-${key}`] = object[key]\n }\n }\n return styles\n }\n // with block\n const cssVarBlock = (object: Record<string, string>) => {\n const styles: Record<string, string> = {}\n for (const key in object) {\n if (object[key]) {\n styles[`--${namespace.value}-${block}-${key}`] = object[key]\n }\n }\n return styles\n }\n\n const cssVarName = (name: string) => `--${namespace.value}-${name}`\n const cssVarBlockName = (name: string) => `--${namespace.value}-${block}-${name}`\n\n return {\n namespace,\n b,\n e,\n m,\n be,\n em,\n bm,\n bem,\n is,\n // css\n cssVar,\n cssVarName,\n cssVarBlock,\n cssVarBlockName\n }\n}\n\nexport type UseNamespaceReturn = ReturnType<typeof useNamespace>\n","import type { PropType } from 'vue'\n\nexport const scrollbarProps = {\n container: Function as PropType<() => HTMLElement | null | undefined>,\n content: Function as PropType<() => HTMLElement | null | undefined>,\n onScroll: Function as PropType<(e: Event) => void>\n} as const\n","import { computed, defineComponent, onMounted, ref } from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { off, on } from 'evtd'\nimport { defaultNamespace } from '@king-one/antdv/hooks/use-namespace'\nimport { scrollbarProps } from './types'\n\nexport default defineComponent({\n name: 'KScrollbar',\n props: scrollbarProps,\n inheritAttrs: false,\n setup(props) {\n onMounted(() => {\n if (props.container)\n return\n sync()\n })\n const handleContentResize = () => {\n sync()\n }\n const handleContainerResize = () => {\n sync()\n }\n const contentRef = ref<HTMLElement | null>(null)\n const containerRef = ref<HTMLElement | null>(null)\n const yRailRef = ref<HTMLElement | null>(null)\n const contentHeightRef = ref<Nullable<number>>(null)\n const contentWidthRef = ref<Nullable<number>>(null)\n const containerHeightRef = ref<Nullable<number>>(null)\n const containerWidthRef = ref<Nullable<number>>(null)\n const yRailSizeRef = ref<Nullable<number>>(null)\n const mergedContentRef = computed(() => props.content?.() || contentRef.value)\n const mergedContainerRef = computed(() => props.container?.() || containerRef.value)\n const containerScrollTopRef = ref(0)\n const yBarSizeRef = computed(() => {\n const { value: containerHeight } = containerHeightRef\n const { value: contentHeight } = contentHeightRef\n const { value: yRailSize } = yRailSizeRef\n if (containerHeight === null || contentHeight === null || yRailSize === null) {\n return 0\n }\n else {\n return Math.min(containerHeight, (yRailSize * containerHeight) / contentHeight + 5 * 1.5)\n }\n })\n const yBarTopRef = computed(() => {\n const { value: containerHeight } = containerHeightRef\n const { value: containerScrollTop } = containerScrollTopRef\n const { value: contentHeight } = contentHeightRef\n const { value: yRailSize } = yRailSizeRef\n if (containerHeight === null || contentHeight === null || yRailSize === null) {\n return 0\n }\n else {\n const heightDiff = contentHeight - containerHeight\n if (!heightDiff)\n return 0\n return (containerScrollTop / heightDiff) * (yRailSize - yBarSizeRef.value)\n }\n })\n const yBarTopPxRef = computed(() => {\n return `${yBarTopRef.value}px`\n })\n const needYBarRef = computed(() => {\n const { value: containerHeight } = containerHeightRef\n const { value: contentHeight } = contentHeightRef\n return containerHeight !== null && contentHeight !== null && contentHeight > containerHeight\n })\n\n const yBarSizePxRef = computed(() => {\n return `${yBarSizeRef.value}px`\n })\n const syncPositionState = () => {\n const { value: content } = mergedContentRef\n if (content) {\n contentHeightRef.value = content.offsetHeight\n contentWidthRef.value = content.offsetWidth\n }\n const { value: container } = mergedContainerRef\n if (container) {\n containerHeightRef.value = container.offsetHeight\n containerWidthRef.value = container.offsetWidth\n }\n const { value: yRailEl } = yRailRef\n if (yRailEl) {\n yRailSizeRef.value = yRailEl.offsetHeight\n }\n }\n let yBarPressed = false\n let memoYTop: number = 0\n let memoMouseY: number = 0\n let yBarVanishTimerId: number | undefined\n\n const handleYScrollMouseMove = (e: MouseEvent) => {\n if (!yBarPressed)\n return\n\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId)\n }\n const { value: containerHeight } = containerHeightRef\n const { value: contentHeight } = contentHeightRef\n const { value: yBarSize } = yBarSizeRef\n if (containerHeight === null || contentHeight === null)\n return\n const dY = e.clientY - memoMouseY\n const dScrollTop = (dY * (contentHeight - containerHeight)) / (containerHeight - yBarSize)\n const toScrollTopUpperBound = contentHeight - containerHeight\n let toScrollTop = memoYTop + dScrollTop\n toScrollTop = Math.min(toScrollTopUpperBound, toScrollTop)\n toScrollTop = Math.max(toScrollTop, 0)\n const { value: container } = mergedContainerRef\n if (container) {\n container.scrollTop = toScrollTop\n }\n }\n const handleYScrollMouseUp = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n off('mousemove', window, handleYScrollMouseMove, true)\n off('mouseup', window, handleYScrollMouseUp, true)\n yBarPressed = false\n sync()\n }\n const handleYScrollMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n on('mousemove', window, handleYScrollMouseMove, true)\n on('mouseup', window, handleYScrollMouseUp, true)\n memoYTop = containerScrollTopRef.value\n memoMouseY = e.clientY\n yBarPressed = true\n }\n function handleScroll(e: Event): void {\n const { onScroll } = props\n if (onScroll)\n onScroll(e)\n syncScrollState()\n }\n function syncScrollState(): void {\n // only collect scroll state, do not trigger any dom event\n const { value: container } = mergedContainerRef\n if (container) {\n containerScrollTopRef.value = container.scrollTop\n }\n }\n function sync(): void {\n syncPositionState()\n syncScrollState()\n }\n\n return {\n sync,\n handleContentResize,\n handleContainerResize,\n contentRef,\n yRailRef,\n containerRef,\n contentHeightRef,\n containerHeightRef,\n needYBarRef,\n yBarSizePxRef,\n handleYScrollMouseDown,\n yBarTopPxRef,\n handleScroll\n }\n },\n render() {\n const { $slots } = this\n const createYBar = () => {\n return (\n <div class={`${defaultNamespace}-scrollbar-rail`} ref=\"yRailRef\">\n {this.needYBarRef && (\n <div\n class={`${defaultNamespace}-scrollbar-rail__scrollbar`}\n style={{\n height: this.yBarSizePxRef,\n top: this.yBarTopPxRef\n }}\n onMousedown={this.handleYScrollMouseDown}\n >\n </div>\n )}\n </div>\n )\n }\n\n const createChildren = () => {\n return (\n <div class={`${defaultNamespace}-scrollbar`} {...this.$attrs}>\n {this.container\n ? (\n $slots.default?.()\n )\n : (\n <div class={`${defaultNamespace}-scrollbar-container`} onScroll={this.handleScroll} ref=\"containerRef\">\n <VResizeObserver onResize={this.handleContentResize}>\n <div ref=\"contentRef\" class={`${defaultNamespace}-scrollbar-content`}>\n {$slots.default?.()}\n </div>\n </VResizeObserver>\n </div>\n )}\n\n {createYBar()}\n </div>\n )\n }\n const createBarNode = this.container ? createChildren() : <VResizeObserver onResize={this.handleContainerResize}>{createChildren()}</VResizeObserver>\n return createBarNode\n }\n})\n","import { withInstall } from '../utils/install'\nimport ScrollBar from './src/scroll-bar'\nimport './style'\n\nexport * from './src/types'\nexport const KScrollBar = withInstall(ScrollBar)\nexport default KScrollBar\n","import type { VirtualListItemData } from 'vueuc'\nimport type { PropType } from 'vue'\n\nexport const virtualListProps = {\n items: {\n type: Array as PropType<VirtualListItemData[]>,\n default: () => []\n },\n itemSize: {\n type: Number,\n required: true\n },\n itemResizable: Boolean,\n paddingTop: {\n type: [Number, String] as PropType<number | string>,\n default: 0\n },\n paddingBottom: {\n type: [Number, String] as PropType<number | string>,\n default: 0\n },\n keyField: {\n type: String,\n default: 'key'\n },\n onScroll: Function as PropType<() => void>,\n onWheel: Function as PropType<(event: WheelEvent) => void>,\n onResize: Function as PropType<(entry: ResizeObserverEntry) => void>\n} as const\n","<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { VVirtualList, type VirtualListInst } from 'vueuc'\nimport scrollbar from '../../scroll-bar'\nimport { virtualListProps } from './types'\n\nconst props = defineProps(virtualListProps)\nconst virtualListInstRef = ref<VirtualListInst | null>(null)\nconst scrollbarInstRef = ref<InstanceType<typeof scrollbar> | null>(null)\nfunction getScrollContainer(): HTMLElement | null | undefined {\n return virtualListInstRef.value?.listElRef\n}\nfunction getScrollContent(): HTMLElement | null | undefined {\n return virtualListInstRef.value?.itemsElRef\n}\nconst syncScrollbar = () => scrollbarInstRef.value?.sync()\nfunction handleScroll() {\n props.onScroll?.()\n syncScrollbar()\n}\nfunction handleResize() {\n syncScrollbar()\n}\n</script>\n\n<template>\n <scrollbar ref=\"scrollbarInstRef\" style=\"max-height: 300px\" :container=\"getScrollContainer\" :content=\"getScrollContent\">\n <VVirtualList\n ref=\"virtualListInstRef\"\n :items=\"items\"\n style=\"height: 100%\"\n :item-size=\"itemSize\"\n :item-resizable=\"itemResizable\"\n :show-scrollbar=\"false\"\n :padding-bottom=\"paddingBottom\"\n :padding-top=\"paddingTop\"\n :on-scroll=\"handleScroll\"\n :on-resize=\"handleResize\"\n >\n <template #default=\"{ item, index }\">\n <slot :item=\"item\" :index=\"index\" />\n </template>\n </VVirtualList>\n </scrollbar>\n</template>\n\n<style></style>\n","import { withInstall } from '../utils/install'\nimport VirtualList from './src/virtual-list.vue'\n\nexport * from './src/types'\nexport const KVirtualList = withInstall(VirtualList)\nexport default KVirtualList\n","/*\n * @Description:\n * @Version: 2.0\n * @Autor: caohao\n * @Date: 2024-09-16 23:00:22\n * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git\n * @LastEditTime: 2024-10-18 13:49:00\n */\nimport type { App, Plugin } from 'vue'\nimport { KForm, KVirtualList } from './components'\n\nconst component = [KForm, KVirtualList] as Plugin[]\nexport function install(app: App): any {\n component.forEach(i => app.use(i))\n}\nconst plugin = {\n install\n}\nexport default plugin\n"],"names":["defaultNamePrefix","withInstall","main","app","comp","withInstallDirectives","name","formType","KForm","form","onceCbs","paramsMap","flushOnceCallbacks","cb","beforeNextFrameOnce","params","cbs","flushCallbacks","i","beforeNextFrame","args","getParentNode","node","getScrollParent","parentNode","overflow","overflowX","overflowY","unwrapElement","target","happensIn","e","dataSetPropName","getPreciseEventTarget","event","parseResponsiveProp","reponsiveProp","pairLiteral","prefix","value","parseResponsivePropValue","activeKeyOrSize","_a","classObj","key","activeValue","activeKey","keyAsNum","depx","pxfy","getMargin","position","parts","margin","getGap","orient","rowGap","colGap","colors","hsl2hsv","h","s","l","v","hsv2hsl","m","hsv2rgb","f","n","k","rgb2hsv","r","g","b","c","rgb2hsl","hsl2rgb","a","suffix","percent","float","hex","dhex","hslRegex","hsvRegex","hslaRegex","hsvaRegex","rgbRegex","rgbaRegex","sHexRegex","hexRegex","sHexaRegex","hexaRegex","parseHex","hsla","color","roundDeg","roundPercent","roundAlpha","hsva","rgba","roundChannel","normalizeAlpha","alphaValue","stringifyRgb","stringifyRgba","compositeChannel","v1","a1","v2","a2","composite","background","overlay","alpha","changeColor","base","options","scaleColor","lightness","toRgbaString","getAlpha","getAlphaString","toRgbString","toHsvString","toHsvaString","toHslString","toHslaString","toHexaString","unit","toHexString","createId","length","repeat","count","ret","indexMap","createValue","sleep","ms","resolve","getEventTarget","traps","createTrapHandler","el","originalHandler","moveHandler","mouseDownOutside","downHandler","upHanlder","ensureTrapHandlers","handler","handlers","elHandlers","trapHandler","trapOn","trapHandlers","on","trapOff","off","createDelegate","propagationStopped","immediatePropagationStopped","trackPropagation","trackImmediate","spy","propName","fn","source","unspy","currentTargets","currentTargetDescriptor","getCurrentTarget","defineCurrentTarget","getter","phaseToTypeToElToHandlers","typeToWindowEventHandlers","createUnifiedHandler","delegeteHandler","type","eventPhase","bubbles","phase","cursor","path","captureElToHandlers","bubbleElToHandlers","bubbleHandlers","createUnifiedWindowEventHandler","delegateHandler","unifiedHandler","unfiendWindowEventHandler","ensureElToHandlers","phaseHandlers","ensureWindowEventHandlers","ensureHandlers","elToHandlers","handlerExist","windowEventHandlerExist","mergedHandler","windowEventHandlers","capture","getSlot","scope","slots","slotName","slot","flatten","vNodes","filterCommentNode","result","vNode","createTextVNode","Fragment","Comment","getFirstVNode","content","viewMeasurer","ensureViewBoundingRect","style","getPointRect","x","y","viewRect","getRect","elRect","Binder","defineComponent","props","provide","getCurrentInstance","VBinder","inject","targetRef","ref","setTargetRef","scrollableNodes","ensureScrollListener","onScroll","removeScrollListeners","followerScrollListeners","addScrollListener","listener","removeScrollListener","onScrollRaf","followerResizeListeners","addResizeListener","onResize","removeResizeListener","onBeforeUnmount","Target","syncTarget","setTargetDirective","withDirectives","ctxKey","mousemoveoutside","ctx","clickoutside","modifiers","warnedMessages","warnOnce","location","message","mergedMessage","warn","ZIndexManager","zIndex","elementZIndex","nextZIndex","elementCount","elementZIndexPair","pair1","pair2","pair","zIndexManager","zindexable","bindings","enabled","cachedEnabled","useFalseUntilTruthy","originalRef","currentRef","readonly","stop","watch","useMemo","getterOrOptions","computedValueRef","computed","valueRef","hasInstance","isBrowser","fontsReady","isFontReady","_b","onFontsReady","deactivated","onMounted","mousePositionRef","clickHandler","left","top","width","height","usedCount","managable","useClickPosition","setup","onBeforeMount","clickedTimeRef","handleClick","useClicked","timeout","clickedRef","timerId","clearTimer","clickedHandler","supportMatchMedia","osTheme","darkMql","lightMql","handleDarkMqlChange","handleLightMqlChange","init","clean","useOsTheme","useMergedState","controlledStateRef","uncontrolledStateRef","isMounted","useCompitable","reactive","keys","isIos","useIsIos","defaultBreakpointOptions","createMediaQuery","screenWidth","mqlMap","useBreakpoints","screens","breakpointStatusRef","breakpoints","updateBreakpoints","breakpointName","breakpointValue","mql","breakpoint","useBreakpoint","breakpointsRef","useKeyboard","enabledRef","state","keydown","keyup","keydownHandler","prevent","keyupHandler","isSafari","useIsSafari","ssrContextKey","createStyleString","id","ssrAdapter","ssrContext","styles","ids","useSsrAdapter","context","res","ampCount","selector","cnt","separatorRegex","extraSpaceRegex","resolveSelectorWithAmp","amp","nextAmp","partialSelector","round","partialAmp","partialNextAmp","nextPartialNextAmp","selectorItr","part","resolveSelector","parseSelectorPath","selectorPaths","removeElement","parentElement","queryElement","parent","createElement","isMediaOrSupports","kebabRegex","kebabCase","pattern","match","unwrapProperty","prop","indent","unwrapProperties","instance","createStyle","unwrappedProps","propertyNames","statements","propertyName","property","loopCNodeListWithCallback","children","callback","child","grandChildren","traverseCNode","$","blockSelector","childNode","render","murmur2","str","len","unmount","els","addElementToList","mount","head","force","anchorMetaName","hash","queriedTarget","anchorMetaEl","wrappedRender","wrappedMount","ssr","wrappedUnmount","createCNode","CssRender","config","cssr","plugin","exists","cssrAnchorMetaName","lowBit","FinweckTree","min","ft","threshold","sumM","resolveTo","LazyTeleport","toRef","to","Teleport","oppositionPositions","oppositeAligns","propToCompare","transformOrigins","overlapTransformOrigin","oppositeAlignCssPositionProps","keepOffsetDirection","cssPositionToOppositeAlign","getPlacementAndOffsetOfFollower","placement","targetRect","followerRect","shift","flip","overlap","align","properAlign","properOffset","deriveOffset","oppositeAlignCssSizeProp","alignCssPositionProp","offsetVertically","diff","oppositeAlignCssPositionProp","currentAlignCssPositionProp","followerOverTargetSize","possibleAlternativeAlignCssPositionProp1","possibleAlternativeAlignCssPositionProp2","alternativeAlignCssSizeProp","properPosition","getProperTransformOrigin","getOffset","offsetRect","offsetTopToStandardPlacement","offsetLeftToStandardPlacement","Follower","mergedEnabledRef","followerRef","offsetContainerRef","ensureListeners","syncTrigger","syncPosition","removeListeners","follower","minWidth","internalShift","offsetContainerRect","properPlacement","properTransformOrigin","transform","syncOnNextTick","nextTick","isMountedRef","useIsMounted","mergedToRef","resizeObservers","hasActiveObservations","ro","hasSkippedObservations","msg","deliverResizeLoopError","ResizeObserverBoxOptions","freeze","obj","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","right","bottom","rectangle","isSVG","isHidden","offsetWidth","offsetHeight","isElement","isReplacedElement","global","cache","scrollRegexp","verticalRegexp","IE","parseDimension","pixel","size","switchSizes","zeroBoxes","calculateBoxSizes","forceRecalculation","cs","svg","removePadding","canScrollVertically","canScrollHorizontally","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderRight","borderBottom","borderLeft","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","verticalScrollbarThickness","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","calculateBoxSize","observedBox","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","ResizeObserverEntry","calculateDepthForNode","depth","broadcastActiveObservations","shallowestDepth","callbacks","entries","ot","entry","targetDepth","_i","callbacks_1","gatherActiveObservationsAtDepth","process","trigger","notify","queueMicroTask","toggle_1","el_1","queueResizeObserver","watching","isWatching","CATCH_PERIOD","observerConfig","events","time","scheduled","Scheduler","_this","until","elementsHaveResized","scheduler","updateCount","skipNotifyOnElement","ResizeObservation","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","observationTargets","ResizeObserverController","detail","firstObservation","index","lastObservation","ResizeObserver","ResizeObserverDelegate","PolyfillResizeObserver","delegate","C","registered","proxy","handleResize","renderSlot","maybeTouch","ensureMaybeTouch","wheelScale","ensureWheelScale","xScrollInjextionKey","setupXScroll","columnsRef","renderColRef","renderItemWithColsRef","listWidthRef","scrollLeftRef","xFinweckTreeRef","columns","column","startIndexRef","xFinweckTree","getLeft","endIndexRef","VirtualListRow","startIndex","endIndex","renderCol","renderItemWithCols","item","items","z","defaultScrollIndex","defaultScrollKey","scrollTo","isDeactivated","activateStateInitialized","onActivated","scrollTopRef","onDeactivated","totalWidthRef","keyIndexMapRef","map","keyField","listElRef","listHeightRef","keyToHeightOffset","finweckTreeRef","itemSize","heightOffset","finweckTreeUpdateTrigger","viewportItemsRef","listHeight","viewportItems","scrollToPosition","behavior","debounce","scrollToIndex","toIndex","anchorIndex","anchorTimerId","targetTop","scrollTop","handleItemResize","_c","isHideByVShow","previousHeight","delta","listEl","previousHeightSum","syncViewport","mayUseWheel","wheelCatched","handleListScroll","handleListWheel","handleListResize","itemResizable","keyToIndex","visibleItemsTag","VResizeObserver","mergeProps","renderedCols","renderedItemWithCols","itemVNode","index$1","selfRef","handleWheel","hiddenAttr","counterRef","deriveCounter","self","getCounter","getTail","counter","containerWidth","childWidths","tail","childWidthSum","childWidth","updateCounter","j","restCount","counterWidth","onUpdateCount","onUpdateOverflow","$slots","isHTMLElement","focusFirstDescendant","attemptFocus","focusLastDescendant","element","isFocusable","stack","FocusTrap","focusableStartRef","focusableEndRef","activated","ignoreInternalFocusChange","lastFocusedElement","isCurrentActive","handleDocumentKeydown","activate","deactivate","handleDocumentFocus","mainEl","getMainEl","resetFocusTo","focusableStartEl","initialFocusTo","idInStack","finalFocusTo","focusableEndEl","focused","handleStartFocus","handleEndFocus","defaultSlot","active","focusableStyle","defaultNamespace","statePrefix","_bem","namespace","block","blockSuffix","modifier","cls","namespaceContextKey","useGetDerivedNamespace","namespaceOverrides","derivedNamespace","unref","useNamespace","object","scrollbarProps","_isSlot","Object","prototype","toString","call","_isVNode","o$1","inheritAttrs","container","sync","handleContentResize","handleContainerResize","contentRef","containerRef","yRailRef","contentHeightRef","contentWidthRef","containerHeightRef","containerWidthRef","yRailSizeRef","mergedContentRef","mergedContainerRef","containerScrollTopRef","yBarSizeRef","containerHeight","yRailSize","Math","yBarTopRef","containerScrollTop","heightDiff","yBarTopPxRef","needYBarRef","yBarSizePxRef","syncPositionState","yRailEl","yBarPressed","memoYTop","memoMouseY","yBarVanishTimerId","handleYScrollMouseMove","undefined","window","clearTimeout","yBarSize","dScrollTop","clientY","toScrollTopUpperBound","toScrollTop","max","handleYScrollMouseUp","preventDefault","stopPropagation","handleYScrollMouseDown","handleScroll","syncScrollState","_slot","createYBar","_createVNode","createChildren","_mergeProps","$attrs","default","KScrollBar","ScrollBar","virtualListProps","__props","virtualListInstRef","scrollbarInstRef","getScrollContainer","getScrollContent","syncScrollbar","KVirtualList","VirtualList","component","install"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91]}
|