@king-one/antdv 1.0.21 → 1.0.23
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 +12 -0
- package/dist/es/components/base/style/index.js +1 -0
- package/dist/es/components/collapse-transtion/hooks/use-collapse-transtion.js +67 -0
- package/dist/es/components/collapse-transtion/index.js +11 -0
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue.js +4 -0
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue2.js +24 -0
- package/dist/es/components/collapse-transtion/src/types.js +9 -0
- package/dist/es/components/collapse-transtion/style/index.js +2 -0
- package/dist/es/components/form/component/form.js +11 -0
- package/dist/es/components/form/component/form.vue.js +4 -0
- package/dist/es/components/form/component/form.vue2.js +21 -0
- package/dist/es/components/form/index.js +10 -0
- package/dist/es/components/index.js +14 -0
- package/dist/es/components/pro-dialog/hooks/useProDialog.js +34 -0
- package/dist/es/components/pro-dialog/index.js +12 -0
- package/dist/es/components/pro-dialog/src/pro-dialog.vue.js +4 -0
- package/dist/es/components/pro-dialog/src/pro-dialog.vue2.js +21 -0
- package/dist/es/components/pro-dialog/src/types.js +8 -0
- package/dist/es/components/scale-virtual-list/component/scale-virtual-list.vue.js +4 -0
- package/dist/es/components/scale-virtual-list/component/scale-virtual-list.vue2.js +63 -0
- package/dist/es/components/scale-virtual-list/component/types.js +1 -0
- package/dist/es/components/scale-virtual-list/hooks/useVirtualList.js +157 -0
- package/dist/es/components/scale-virtual-list/index.js +10 -0
- package/dist/es/components/scale-virtual-list/style/index.js +2 -0
- package/dist/es/components/scroll-bar/index.js +9 -0
- package/dist/es/components/scroll-bar/src/scroll-bar.js +169 -0
- package/dist/es/components/scroll-bar/src/{types.mjs → types.js} +4 -4
- package/dist/es/components/utils/install.js +19 -0
- package/dist/es/components/virtual-list/index.js +10 -0
- package/dist/es/components/virtual-list/src/{types.mjs → types.js} +5 -5
- package/dist/es/components/virtual-list/src/virtual-list.vue.js +4 -0
- package/dist/es/components/virtual-list/src/virtual-list.vue2.js +87 -0
- package/dist/es/hooks/use-namespace/index.js +49 -0
- package/dist/es/index.js +30 -0
- package/dist/es/installer.js +14 -0
- package/dist/es/node_modules/.pnpm/@vueuse_core@10.11.1_vue@3.4.38/node_modules/@vueuse/core/index.js +5149 -0
- package/dist/es/node_modules/.pnpm/@vueuse_shared@10.11.1_vue@3.4.38/node_modules/@vueuse/shared/index.js +1190 -0
- package/dist/es/node_modules/.pnpm/vue-demi@0.14.10_vue@3.4.38/node_modules/vue-demi/lib/index.js +24 -0
- package/dist/lib/node_modules/.pnpm/@vueuse_core@10.11.1_vue@3.4.38/node_modules/@vueuse/core/index.js +1 -0
- package/dist/lib/node_modules/.pnpm/@vueuse_shared@10.11.1_vue@3.4.38/node_modules/@vueuse/shared/index.js +1 -0
- package/dist/lib/node_modules/.pnpm/vue-demi@0.14.10_vue@3.4.38/node_modules/vue-demi/lib/index.js +1 -0
- package/dist/lib/packages/antdv/components/base/style/index.js +1 -0
- package/dist/lib/packages/antdv/components/collapse-transtion/hooks/use-collapse-transtion.js +1 -0
- package/dist/lib/packages/antdv/components/collapse-transtion/index.js +1 -0
- package/dist/lib/packages/antdv/components/collapse-transtion/src/collapse-transtion.vue.js +1 -0
- package/dist/lib/packages/antdv/components/collapse-transtion/src/collapse-transtion.vue2.js +1 -0
- package/dist/lib/packages/antdv/components/collapse-transtion/src/types.js +1 -0
- package/dist/lib/packages/antdv/components/collapse-transtion/style/index.js +1 -0
- package/dist/lib/packages/antdv/components/form/component/form.js +1 -0
- package/dist/lib/packages/antdv/components/form/component/form.vue.js +1 -0
- package/dist/lib/packages/antdv/components/form/component/form.vue2.js +1 -0
- package/dist/lib/packages/antdv/components/form/index.js +1 -0
- package/dist/lib/packages/antdv/components/index.js +1 -0
- package/dist/lib/packages/antdv/components/pro-dialog/hooks/useProDialog.js +1 -0
- package/dist/lib/packages/antdv/components/pro-dialog/index.js +1 -0
- package/dist/lib/packages/antdv/components/pro-dialog/src/pro-dialog.vue.js +1 -0
- package/dist/lib/packages/antdv/components/pro-dialog/src/pro-dialog.vue2.js +1 -0
- package/dist/lib/packages/antdv/components/pro-dialog/src/types.js +1 -0
- package/dist/lib/packages/antdv/components/scale-virtual-list/component/scale-virtual-list.vue.js +1 -0
- package/dist/lib/packages/antdv/components/scale-virtual-list/component/scale-virtual-list.vue2.js +1 -0
- package/dist/lib/packages/antdv/components/scale-virtual-list/component/types.js +1 -0
- package/dist/lib/packages/antdv/components/scale-virtual-list/hooks/useVirtualList.js +1 -0
- package/dist/lib/packages/antdv/components/scale-virtual-list/index.js +1 -0
- package/dist/lib/packages/antdv/components/scale-virtual-list/style/index.js +1 -0
- package/dist/lib/packages/antdv/components/scroll-bar/index.js +1 -0
- package/dist/lib/packages/antdv/components/scroll-bar/src/scroll-bar.js +1 -0
- package/dist/lib/packages/antdv/components/scroll-bar/src/types.js +1 -0
- package/dist/lib/packages/antdv/components/utils/install.js +1 -0
- package/dist/lib/packages/antdv/components/virtual-list/index.js +1 -0
- package/dist/lib/packages/antdv/components/virtual-list/src/types.js +1 -0
- package/dist/lib/packages/antdv/components/virtual-list/src/virtual-list.vue.js +1 -0
- package/dist/lib/packages/antdv/components/virtual-list/src/virtual-list.vue2.js +1 -0
- package/dist/lib/packages/antdv/hooks/use-namespace/index.js +1 -0
- package/dist/lib/packages/antdv/index.js +1 -0
- package/dist/lib/packages/antdv/installer.js +1 -0
- package/dist/theme-chalk/index.css +1 -1
- package/dist/theme-chalk/pro-dialog.css +1 -0
- package/dist/theme-chalk/scale-virtual-list.css +1 -0
- package/dist/{es → types}/components/collapse-transtion/hooks/use-collapse-transtion.d.ts +2 -2
- package/dist/types/components/collapse-transtion/index.d.ts +41 -0
- package/dist/types/components/collapse-transtion/src/collapse-transtion.vue.d.ts +27 -0
- package/dist/{lib → types}/components/collapse-transtion/src/types.d.ts +1 -1
- package/dist/{lib → types}/components/form/component/form.d.ts +2 -2
- package/dist/types/components/form/component/form.vue.d.ts +32 -0
- package/dist/types/components/form/index.d.ts +50 -0
- package/dist/types/components/index.d.ts +6 -0
- package/dist/types/components/pro-dialog/hooks/useProDialog.d.ts +14 -0
- package/dist/types/components/pro-dialog/index.d.ts +26 -0
- package/dist/types/components/pro-dialog/src/pro-dialog.vue.d.ts +24 -0
- package/dist/types/components/pro-dialog/src/types.d.ts +7 -0
- package/dist/types/components/scale-virtual-list/component/scale-virtual-list.vue.d.ts +28 -0
- package/dist/types/components/scale-virtual-list/component/types.d.ts +11 -0
- package/dist/types/components/scale-virtual-list/hooks/useVirtualList.d.ts +70 -0
- package/dist/types/components/scale-virtual-list/index.d.ts +67 -0
- package/dist/types/components/scroll-bar/index.d.ts +36 -0
- package/dist/types/components/scroll-bar/src/scroll-bar.d.ts +34 -0
- package/dist/{lib → types}/components/scroll-bar/src/types.d.ts +1 -1
- package/dist/{lib → types}/components/utils/install.d.ts +1 -1
- package/dist/types/components/utils/tool.d.ts +1 -0
- package/dist/types/components/virtual-list/index.d.ts +163 -0
- package/dist/{es → types}/components/virtual-list/src/types.d.ts +2 -2
- package/dist/types/components/virtual-list/src/virtual-list.vue.d.ts +364 -0
- package/dist/{es → types}/index.d.ts +1 -1
- package/dist/{lib → types}/installer.d.ts +1 -1
- package/package.json +4 -1
- package/dist/cdn/index.cdn.js +0 -16
- package/dist/cdn/index.cdn.js.map +0 -1
- package/dist/cdn/index.cdn.mjs +0 -16
- package/dist/cdn/index.cdn.mjs.map +0 -1
- package/dist/cdn/index.css +0 -1
- package/dist/es/components/base/style/index.mjs +0 -2
- package/dist/es/components/base/style/index.mjs.map +0 -1
- package/dist/es/components/collapse-transtion/hooks/use-collapse-transtion.mjs +0 -134
- package/dist/es/components/collapse-transtion/hooks/use-collapse-transtion.mjs.map +0 -1
- package/dist/es/components/collapse-transtion/index.d.ts +0 -29
- package/dist/es/components/collapse-transtion/index.mjs +0 -10
- package/dist/es/components/collapse-transtion/index.mjs.map +0 -1
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue.d.ts +0 -27
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue.mjs +0 -6
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue.mjs.map +0 -1
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue2.mjs +0 -30
- package/dist/es/components/collapse-transtion/src/collapse-transtion.vue2.mjs.map +0 -1
- package/dist/es/components/collapse-transtion/src/types.d.ts +0 -8
- package/dist/es/components/collapse-transtion/src/types.mjs +0 -9
- package/dist/es/components/collapse-transtion/src/types.mjs.map +0 -1
- package/dist/es/components/collapse-transtion/style/index.mjs +0 -3
- package/dist/es/components/collapse-transtion/style/index.mjs.map +0 -1
- package/dist/es/components/form/component/form.d.ts +0 -10
- package/dist/es/components/form/component/form.mjs +0 -11
- package/dist/es/components/form/component/form.mjs.map +0 -1
- package/dist/es/components/form/component/form.vue.d.ts +0 -16
- package/dist/es/components/form/component/form.vue.mjs +0 -6
- package/dist/es/components/form/component/form.vue.mjs.map +0 -1
- package/dist/es/components/form/component/form.vue2.mjs +0 -26
- package/dist/es/components/form/component/form.vue2.mjs.map +0 -1
- package/dist/es/components/form/index.d.ts +0 -17
- package/dist/es/components/form/index.mjs +0 -9
- package/dist/es/components/form/index.mjs.map +0 -1
- package/dist/es/components/form-item/component/form-item.vue.d.ts +0 -11
- package/dist/es/components/form-item/component/form-item.vue.mjs +0 -6
- package/dist/es/components/form-item/component/form-item.vue.mjs.map +0 -1
- package/dist/es/components/form-item/component/form-item.vue2.mjs +0 -113
- package/dist/es/components/form-item/component/form-item.vue2.mjs.map +0 -1
- package/dist/es/components/form-item/index.d.ts +0 -0
- package/dist/es/components/form-item/index.mjs +0 -2
- package/dist/es/components/form-item/index.mjs.map +0 -1
- package/dist/es/components/index.d.ts +0 -3
- package/dist/es/components/index.mjs +0 -7
- package/dist/es/components/index.mjs.map +0 -1
- package/dist/es/components/scroll-bar/index.d.ts +0 -35
- package/dist/es/components/scroll-bar/index.mjs +0 -9
- package/dist/es/components/scroll-bar/index.mjs.map +0 -1
- package/dist/es/components/scroll-bar/src/scroll-bar.d.ts +0 -33
- package/dist/es/components/scroll-bar/src/scroll-bar.mjs +0 -386
- package/dist/es/components/scroll-bar/src/scroll-bar.mjs.map +0 -1
- package/dist/es/components/scroll-bar/src/types.d.ts +0 -7
- package/dist/es/components/scroll-bar/src/types.mjs.map +0 -1
- package/dist/es/components/scroll-bar/style/index.mjs +0 -3
- package/dist/es/components/scroll-bar/style/index.mjs.map +0 -1
- package/dist/es/components/utils/install.d.ts +0 -7
- package/dist/es/components/utils/install.mjs +0 -19
- package/dist/es/components/utils/install.mjs.map +0 -1
- package/dist/es/components/virtual-list/index.d.ts +0 -312
- package/dist/es/components/virtual-list/index.mjs +0 -9
- package/dist/es/components/virtual-list/index.mjs.map +0 -1
- package/dist/es/components/virtual-list/src/types.mjs.map +0 -1
- package/dist/es/components/virtual-list/src/virtual-list.vue.d.ts +0 -312
- package/dist/es/components/virtual-list/src/virtual-list.vue.mjs +0 -6
- package/dist/es/components/virtual-list/src/virtual-list.vue.mjs.map +0 -1
- package/dist/es/components/virtual-list/src/virtual-list.vue2.mjs +0 -100
- package/dist/es/components/virtual-list/src/virtual-list.vue2.mjs.map +0 -1
- package/dist/es/hooks/use-namespace/index.d.ts +0 -23
- package/dist/es/hooks/use-namespace/index.mjs +0 -78
- package/dist/es/hooks/use-namespace/index.mjs.map +0 -1
- package/dist/es/index.mjs +0 -13
- package/dist/es/index.mjs.map +0 -1
- package/dist/es/installer.d.ts +0 -6
- package/dist/es/installer.mjs +0 -14
- package/dist/es/installer.mjs.map +0 -1
- package/dist/lib/components/base/style/index.js +0 -5
- package/dist/lib/components/base/style/index.js.map +0 -1
- package/dist/lib/components/collapse-transtion/hooks/use-collapse-transtion.d.ts +0 -12
- package/dist/lib/components/collapse-transtion/hooks/use-collapse-transtion.js +0 -136
- package/dist/lib/components/collapse-transtion/hooks/use-collapse-transtion.js.map +0 -1
- package/dist/lib/components/collapse-transtion/index.d.ts +0 -29
- package/dist/lib/components/collapse-transtion/index.js +0 -16
- package/dist/lib/components/collapse-transtion/index.js.map +0 -1
- package/dist/lib/components/collapse-transtion/src/collapse-transtion.vue.d.ts +0 -27
- package/dist/lib/components/collapse-transtion/src/collapse-transtion.vue.js +0 -10
- package/dist/lib/components/collapse-transtion/src/collapse-transtion.vue.js.map +0 -1
- package/dist/lib/components/collapse-transtion/src/collapse-transtion.vue2.js +0 -34
- package/dist/lib/components/collapse-transtion/src/collapse-transtion.vue2.js.map +0 -1
- package/dist/lib/components/collapse-transtion/src/types.js +0 -11
- package/dist/lib/components/collapse-transtion/src/types.js.map +0 -1
- package/dist/lib/components/collapse-transtion/style/index.js +0 -6
- package/dist/lib/components/collapse-transtion/style/index.js.map +0 -1
- package/dist/lib/components/form/component/form.js +0 -13
- package/dist/lib/components/form/component/form.js.map +0 -1
- package/dist/lib/components/form/component/form.vue.d.ts +0 -16
- package/dist/lib/components/form/component/form.vue.js +0 -10
- package/dist/lib/components/form/component/form.vue.js.map +0 -1
- package/dist/lib/components/form/component/form.vue2.js +0 -30
- package/dist/lib/components/form/component/form.vue2.js.map +0 -1
- package/dist/lib/components/form/index.d.ts +0 -17
- package/dist/lib/components/form/index.js +0 -15
- package/dist/lib/components/form/index.js.map +0 -1
- package/dist/lib/components/form-item/component/form-item.vue.d.ts +0 -11
- package/dist/lib/components/form-item/component/form-item.vue.js +0 -10
- package/dist/lib/components/form-item/component/form-item.vue.js.map +0 -1
- package/dist/lib/components/form-item/component/form-item.vue2.js +0 -117
- package/dist/lib/components/form-item/component/form-item.vue2.js.map +0 -1
- package/dist/lib/components/form-item/index.d.ts +0 -0
- package/dist/lib/components/form-item/index.js +0 -3
- package/dist/lib/components/form-item/index.js.map +0 -1
- package/dist/lib/components/index.d.ts +0 -3
- package/dist/lib/components/index.js +0 -18
- package/dist/lib/components/index.js.map +0 -1
- package/dist/lib/components/scroll-bar/index.d.ts +0 -35
- package/dist/lib/components/scroll-bar/index.js +0 -15
- package/dist/lib/components/scroll-bar/index.js.map +0 -1
- package/dist/lib/components/scroll-bar/src/scroll-bar.d.ts +0 -33
- package/dist/lib/components/scroll-bar/src/scroll-bar.js +0 -390
- package/dist/lib/components/scroll-bar/src/scroll-bar.js.map +0 -1
- package/dist/lib/components/scroll-bar/src/types.js +0 -11
- package/dist/lib/components/scroll-bar/src/types.js.map +0 -1
- package/dist/lib/components/scroll-bar/style/index.js +0 -6
- package/dist/lib/components/scroll-bar/style/index.js.map +0 -1
- package/dist/lib/components/utils/install.js +0 -22
- package/dist/lib/components/utils/install.js.map +0 -1
- package/dist/lib/components/virtual-list/index.d.ts +0 -312
- package/dist/lib/components/virtual-list/index.js +0 -15
- package/dist/lib/components/virtual-list/index.js.map +0 -1
- package/dist/lib/components/virtual-list/src/types.d.ts +0 -39
- package/dist/lib/components/virtual-list/src/types.js +0 -32
- package/dist/lib/components/virtual-list/src/types.js.map +0 -1
- package/dist/lib/components/virtual-list/src/virtual-list.vue.d.ts +0 -312
- package/dist/lib/components/virtual-list/src/virtual-list.vue.js +0 -10
- package/dist/lib/components/virtual-list/src/virtual-list.vue.js.map +0 -1
- package/dist/lib/components/virtual-list/src/virtual-list.vue2.js +0 -104
- package/dist/lib/components/virtual-list/src/virtual-list.vue2.js.map +0 -1
- package/dist/lib/hooks/use-namespace/index.d.ts +0 -23
- package/dist/lib/hooks/use-namespace/index.js +0 -83
- package/dist/lib/hooks/use-namespace/index.js.map +0 -1
- package/dist/lib/index.d.ts +0 -3
- package/dist/lib/index.js +0 -23
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/installer.js +0 -19
- package/dist/lib/installer.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cdn.js","sources":["../../components/utils/install.ts","../../components/form/component/form.ts","../../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","../../hooks/use-namespace/index.ts","../../components/scroll-bar/src/types.ts","../../components/scroll-bar/src/scroll-bar.tsx","../../components/scroll-bar/index.ts","../../components/virtual-list/src/types.ts","../../components/virtual-list/src/virtual-list.vue","../../components/virtual-list/index.ts","../../components/collapse-transtion/hooks/use-collapse-transtion.ts","../../components/collapse-transtion/src/types.ts","../../components/collapse-transtion/src/collapse-transtion.vue","../../components/collapse-transtion/index.ts","../../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 xScrollable: Boolean\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 xRailRef = 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 xRailSizeRef = 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 containerScrollLeftRef = ref(0)\n\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 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\n const yBarSizePxRef = computed(() => {\n return `${yBarSizeRef.value}px`\n })\n /** 竖向滚动条的top */\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\n /** 竖向滚动条的拖拽 */\n let yBarPressed = false\n let memoYTop: number = 0\n let memoMouseY: number = 0\n let yBarVanishTimerId: number | undefined\n let xBarVanishTimerId: number | undefined\n const handleYScrollMouseMove = (e: MouseEvent) => {\n if (!yBarPressed)\n return\n\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId)\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\n function handleScroll(e: Event): void {\n const { onScroll } = props\n if (onScroll)\n onScroll(e)\n syncScrollState()\n }\n /** =======================================华丽的分割线==================================== */\n\n const needXBarRef = computed(() => {\n const { value: containerWidth } = containerWidthRef\n const { value: contentWidth } = contentWidthRef\n return containerWidth !== null && contentWidth !== null && contentWidth > containerWidth\n })\n // 横向滚动条的大小(width)\n const xBarSizeRef = computed(() => {\n const { value: containerWidth } = containerWidthRef\n const { value: contentWidth } = contentWidthRef\n const { value: xRailSize } = xRailSizeRef\n if (containerWidth === null || contentWidth === null || xRailSize === null) {\n return 0\n }\n else {\n return (xRailSize * containerWidth) / contentWidth + 5 * 1.5\n }\n })\n const xBarSizePxRef = computed(() => {\n return `${xBarSizeRef.value}px`\n })\n // 横向滚动条的Left\n const xBarLeftRef = computed(() => {\n const { value: containerWidth } = containerWidthRef\n const { value: containerScrollLeft } = containerScrollLeftRef\n const { value: contentWidth } = contentWidthRef\n const { value: xRailSize } = xRailSizeRef\n if (containerWidth === null || contentWidth === null || xRailSize === null) {\n return 0\n }\n else {\n const widthDiff = contentWidth - containerWidth\n if (!widthDiff)\n return 0\n return (containerScrollLeft / widthDiff) * (xRailSize - xBarSizeRef.value)\n }\n })\n const xBarLeftPxRef = computed(() => {\n return `${xBarLeftRef.value}px`\n })\n /** 竖向滚动条的拖拽 */\n let xBarPressed = false\n let memoXLeft: number = 0\n let memoMouseX: number = 0\n const handleXScrollMouseMove = (e: MouseEvent) => {\n if (!xBarPressed)\n return\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId)\n }\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId)\n }\n const { value: containerWidth } = containerWidthRef\n const { value: contentWidth } = contentWidthRef\n const { value: xBarSize } = xBarSizeRef\n if (containerWidth === null || contentWidth === null)\n return\n const dX = e.clientX - memoMouseX\n\n const dScrollLeft = (dX * (contentWidth - containerWidth)) / (containerWidth - xBarSize)\n const toScrollLeftUpperBound = contentWidth - containerWidth\n let toScrollLeft = memoXLeft + dScrollLeft\n toScrollLeft = Math.min(toScrollLeftUpperBound, toScrollLeft)\n toScrollLeft = Math.max(toScrollLeft, 0)\n const { value: container } = mergedContainerRef\n if (container) {\n container.scrollLeft = toScrollLeft\n }\n }\n const handleXScrollMouseUp = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n off('mousemove', window, handleXScrollMouseMove, true)\n off('mouseup', window, handleXScrollMouseUp, true)\n xBarPressed = false\n sync()\n }\n function handleXScrollMouseDown(e: MouseEvent): void {\n e.preventDefault()\n e.stopPropagation()\n xBarPressed = true\n on('mousemove', window, handleXScrollMouseMove, true)\n on('mouseup', window, handleXScrollMouseUp, true)\n memoXLeft = containerScrollLeftRef.value\n memoMouseX = e.clientX\n }\n\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 containerScrollLeftRef.value = container.scrollLeft\n }\n }\n const syncPositionState = () => {\n const { value: content } = mergedContentRef\n if (content) {\n const contentClient = content.getBoundingClientRect()\n contentHeightRef.value = contentClient.height\n contentWidthRef.value = contentClient.width\n }\n const { value: container } = mergedContainerRef\n if (container) {\n const containerClient = container.getBoundingClientRect()\n containerHeightRef.value = containerClient.height\n containerWidthRef.value = containerClient.width\n }\n const { value: yRailEl } = yRailRef\n if (yRailEl) {\n yRailSizeRef.value = yRailEl.offsetHeight\n }\n const { value: xRailEl } = xRailRef\n if (xRailEl) {\n xRailSizeRef.value = xRailEl.offsetWidth\n }\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 xRailRef,\n containerRef,\n contentHeightRef,\n containerHeightRef,\n needYBarRef,\n needXBarRef,\n yBarSizePxRef,\n handleYScrollMouseDown,\n handleXScrollMouseDown,\n yBarTopPxRef,\n handleScroll,\n xBarSizePxRef,\n xBarLeftPxRef\n }\n },\n render() {\n const { $slots, xScrollable } = this\n const createXBar = () => {\n return (\n <div class={`${defaultNamespace}-scrollbar-rail ${defaultNamespace}-scrollbar-rail--horizontal`} ref=\"xRailRef\">\n {this.needXBarRef && (\n <div\n class={`${defaultNamespace}-scrollbar-rail__scrollbar--horizontal`}\n style={{\n width: this.xBarSizePxRef,\n left: this.xBarLeftPxRef\n }}\n onMousedown={this.handleXScrollMouseDown}\n >\n </div>\n )}\n </div>\n )\n }\n const createYBar = () => {\n return (\n <div class={`${defaultNamespace}-scrollbar-rail ${defaultNamespace}-scrollbar-rail--vertical`} ref=\"yRailRef\">\n {this.needYBarRef && (\n <div\n class={`${defaultNamespace}-scrollbar-rail__scrollbar--vertical`}\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 {xScrollable && createXBar()}\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 { VirtualListInst, VirtualListItemData } from 'vueuc'\nimport type { PropType } from 'vue'\n\nexport interface InterScrollParams {\n viewportItems: any[]\n scrollTop: number\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 xScrollable: Boolean,\n onScroll: Function as PropType<(params: InterScrollParams) => void>,\n onWheel: Function as PropType<(event: WheelEvent) => void>,\n onResize: Function as PropType<(entry: ResizeObserverEntry) => void>\n} as const\nexport interface VirtualListRef extends VirtualListInst {\n viewportItems: any[]\n visibleItemsStyle: {\n transform: string\n }\n}\n","<script setup lang=\"ts\">\nimport { onMounted, ref, toRaw } from 'vue'\nimport { VVirtualList, type VirtualListScrollToOptions } from 'vueuc'\nimport { debounce } from 'lodash-es'\nimport scrollbar from '../../scroll-bar'\nimport { type VirtualListRef, virtualListProps } from './types'\n\nconst props = defineProps(virtualListProps)\nconst virtualListInstRef = ref<VirtualListRef | 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()\nconst debouncedLogViewportItems = debounce(() => {\n if (virtualListInstRef.value) {\n const scrollTop = virtualListInstRef.value.listElRef.scrollTop\n const viewportItems = virtualListInstRef.value.viewportItems.map(item => toRaw(item))\n\n props.onScroll?.({ viewportItems, scrollTop })\n }\n}, 100)\nfunction handleScroll() {\n debouncedLogViewportItems()\n syncScrollbar()\n}\nonMounted(() => {\n setTimeout(() => {\n syncScrollbar()\n }, 100)\n})\n// 使用防抖函数包裹 console.log\n\nfunction handleResize() {\n syncScrollbar()\n}\nfunction scrollTo(\n options: VirtualListScrollToOptions | number,\n y?: number\n): void {\n if (typeof options === 'number') {\n virtualListInstRef.value?.scrollTo(options, y ?? 0)\n }\n else {\n virtualListInstRef.value?.scrollTo(options)\n }\n}\ndefineExpose({\n getScrollContainer,\n getScrollContent,\n scrollTo\n})\n</script>\n\n<template>\n <scrollbar ref=\"scrollbarInstRef\" style=\"max-height: 300px\" :x-scrollable=\"xScrollable\" :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","import type { RendererElement } from 'vue'\nimport type { ExtractProps } from '../src/types'\n\nfunction hreset(el: RendererElement) {\n el.style.maxHeight = ''\n el.style.overflow = el.dataset.oldOverflow\n el.style.paddingTop = el.dataset.oldPaddingTop\n el.style.paddingBottom = el.dataset.oldPaddingBottom\n}\nfunction wreset(el: RendererElement) {\n el.style.maxWidth = ''\n el.style.overflow = el.dataset.oldOverflow\n el.style.paddingLeft = el.dataset.oldPaddingLeft\n el.style.paddingRight = el.dataset.oldPaddingRight\n}\n\nconst onheight = {\n beforeEnter(el: RendererElement) {\n if (!el.dataset)\n el.dataset = {}\n\n el.dataset.oldPaddingTop = el.style.paddingTop\n el.dataset.oldPaddingBottom = el.style.paddingBottom\n if (el.style.height) {\n el.dataset.elExistsHeight = el.style.height\n }\n\n el.style.maxHeight = 0\n el.style.paddingTop = 0\n el.style.paddingBottom = 0\n },\n\n enter(el: RendererElement) {\n requestAnimationFrame(() => {\n el.dataset.oldOverflow = el.style.overflow\n if (el.dataset.elExistsHeight) {\n el.style.maxHeight = el.dataset.elExistsHeight\n }\n else if (el.scrollHeight !== 0) {\n el.style.maxHeight = `${el.scrollHeight}px`\n }\n else {\n el.style.maxHeight = 0\n }\n\n el.style.paddingTop = el.dataset.oldPaddingTop\n el.style.paddingBottom = el.dataset.oldPaddingBottom\n el.style.overflow = 'hidden'\n })\n },\n\n afterEnter(el: RendererElement) {\n el.style.maxHeight = ''\n el.style.overflow = el.dataset.oldOverflow\n },\n\n enterCancelled(el: RendererElement) {\n hreset(el)\n },\n\n beforeLeave(el: RendererElement) {\n if (!el.dataset)\n el.dataset = {}\n el.dataset.oldPaddingTop = el.style.paddingTop\n el.dataset.oldPaddingBottom = el.style.paddingBottom\n el.dataset.oldOverflow = el.style.overflow\n\n el.style.maxHeight = `${el.scrollHeight}px`\n el.style.overflow = 'hidden'\n },\n\n leave(el: RendererElement) {\n if (el.scrollHeight !== 0) {\n el.style.maxHeight = 0\n el.style.paddingTop = 0\n el.style.paddingBottom = 0\n }\n },\n\n afterLeave(el: RendererElement) {\n hreset(el)\n },\n\n leaveCancelled(el: RendererElement) {\n hreset(el)\n }\n}\nconst onwidth = {\n beforeEnter(el: RendererElement) {\n if (!el.dataset)\n el.dataset = {}\n\n el.dataset.oldPaddingLeft = el.style.paddingLeft\n el.dataset.oldPaddingRight = el.style.paddingRight\n if (el.style.width) {\n el.dataset.elExistsWidth = el.style.width\n }\n\n el.style.maxWidth = 0\n el.style.paddingLeft = 0\n el.style.paddingRight = 0\n },\n\n enter(el: RendererElement) {\n requestAnimationFrame(() => {\n el.dataset.oldOverflow = el.style.overflow\n if (el.dataset.elExistsWidth) {\n el.style.maxWidth = el.dataset.elExistsWidth\n }\n else if (el.scrollWidth !== 0) {\n el.style.maxWidth = `${el.scrollWidth}px`\n }\n else {\n el.style.maxWidth = 0\n }\n\n el.style.paddingLeft = el.dataset.oldPaddingLeft\n el.style.paddingRight = el.dataset.oldPaddingRight\n el.style.overflow = 'hidden'\n })\n },\n\n afterEnter(el: RendererElement) {\n el.style.maxWidth = ''\n el.style.overflow = el.dataset.oldOverflow\n },\n\n enterCancelled(el: RendererElement) {\n wreset(el)\n },\n\n beforeLeave(el: RendererElement) {\n if (!el.dataset)\n el.dataset = {}\n el.dataset.oldPaddingTop = el.style.paddingTop\n el.dataset.oldPaddingRight = el.style.paddingRight\n el.dataset.oldOverflow = el.style.overflow\n\n el.style.maxWidth = `${el.scrollWidth}px`\n el.style.overflow = 'hidden'\n },\n\n leave(el: RendererElement) {\n if (el.scrollWidth !== 0) {\n el.style.maxWidth = 0\n el.style.paddingTop = 0\n el.style.paddingRight = 0\n }\n },\n\n afterLeave(el: RendererElement) {\n wreset(el)\n },\n\n leaveCancelled(el: RendererElement) {\n wreset(el)\n }\n}\nexport function useCollapseTranstion(props: ExtractProps) {\n return props.mode === 'vertical' ? onheight : onwidth\n}\n","import type { ExtractPropTypes, PropType } from 'vue'\n\nexport const collapseProps = {\n mode: {\n type: String as PropType<'horizontal' | 'vertical'>,\n required: true\n }\n} as const\nexport type ExtractProps = ExtractPropTypes<typeof collapseProps>\n","<script lang=\"ts\" setup>\nimport { defaultNamespace } from '@king-one/antdv/hooks/use-namespace'\nimport { Transition } from 'vue'\nimport { useCollapseTranstion } from '../hooks/use-collapse-transtion'\nimport { collapseProps } from './types'\n\ndefineOptions({\n name: 'CollapseTransition'\n})\n\nconst props = defineProps(collapseProps)\n\nconst on = useCollapseTranstion(props)\n</script>\n\n<template>\n <Transition :name=\"mode === 'horizontal' ? `${defaultNamespace}-horizontal-transition` : `${defaultNamespace}-vertical-transition`\" v-on=\"on\">\n <slot />\n </Transition>\n</template>\n","import { withInstall } from '../utils/install'\nimport CollapseTranstion from './src/collapse-transtion.vue'\nimport './style'\n\nexport * from './src/types'\nexport const KCollapseTranstion = withInstall(CollapseTranstion)\nexport default KCollapseTranstion\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","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","e","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","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","I","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$2","inheritAttrs","container","sync","handleContentResize","handleContainerResize","contentRef","containerRef","yRailRef","xRailRef","contentHeightRef","contentWidthRef","containerHeightRef","containerWidthRef","yRailSizeRef","xRailSizeRef","mergedContentRef","mergedContainerRef","containerScrollTopRef","containerScrollLeftRef","needYBarRef","containerHeight","yBarSizeRef","yRailSize","Math","yBarSizePxRef","yBarTopRef","containerScrollTop","heightDiff","yBarTopPxRef","yBarPressed","memoYTop","memoMouseY","yBarVanishTimerId","xBarVanishTimerId","handleYScrollMouseMove","undefined","window","clearTimeout","yBarSize","dScrollTop","clientY","toScrollTopUpperBound","toScrollTop","max","handleYScrollMouseUp","preventDefault","stopPropagation","handleYScrollMouseDown","handleScroll","syncScrollState","needXBarRef","xBarSizeRef","xRailSize","xBarSizePxRef","xBarLeftRef","containerScrollLeft","widthDiff","xBarLeftPxRef","xBarPressed","memoXLeft","memoMouseX","handleXScrollMouseMove","xBarSize","dScrollLeft","clientX","toScrollLeftUpperBound","toScrollLeft","scrollLeft","handleXScrollMouseUp","handleXScrollMouseDown","syncPositionState","contentClient","getBoundingClientRect","containerClient","yRailEl","xRailEl","_slot","xScrollable","createXBar","_createVNode","createYBar","createChildren","_mergeProps","$attrs","default","KScrollBar","ScrollBar","virtualListProps","__props","virtualListInstRef","scrollbarInstRef","getScrollContainer","getScrollContent","syncScrollbar","debouncedLogViewportItems","toRaw","__expose","KVirtualList","VirtualList","hreset","wreset","onheight","onwidth","useCollapseTranstion","collapseProps","KCollapseTranstion","CollapseTranstion","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]}
|