vft 0.0.9 → 0.0.13
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/dist/index.css +1 -1
- package/es/_virtual/_plugin-vue_export-helper.mjs +10 -0
- package/es/_virtual/_plugin-vue_export-helper.mjs.map +1 -0
- package/es/component.mjs +16 -3
- package/es/component.mjs.map +1 -1
- package/es/components/avatar/avatar.vue2.mjs +18 -14
- package/es/components/avatar/avatar.vue2.mjs.map +1 -1
- package/es/components/back-top/back-top.vue2.mjs +19 -10
- package/es/components/back-top/back-top.vue2.mjs.map +1 -1
- package/es/components/collapse-transition/index.d.ts +4 -0
- package/es/components/collapse-transition/index.mjs +10 -0
- package/es/components/collapse-transition/index.mjs.map +1 -0
- package/es/components/collapse-transition/src/collapse-transition.vue.d.ts +2 -0
- package/es/components/collapse-transition/src/collapse-transition.vue.mjs +5 -0
- package/es/components/collapse-transition/src/collapse-transition.vue.mjs.map +1 -0
- package/es/components/collapse-transition/src/collapse-transition.vue2.mjs +47 -0
- package/es/components/collapse-transition/src/collapse-transition.vue2.mjs.map +1 -0
- package/es/components/collapse-transition/style/css.d.ts +0 -0
- package/es/components/collapse-transition/style/css.mjs +3 -0
- package/es/components/collapse-transition/style/css.mjs.map +1 -0
- package/es/components/collapse-transition/style/index.d.ts +0 -0
- package/es/components/collapse-transition/style/index.mjs +3 -0
- package/es/components/collapse-transition/style/index.mjs.map +1 -0
- package/es/components/divider/divider.vue2.mjs +14 -10
- package/es/components/divider/divider.vue2.mjs.map +1 -1
- package/es/components/empty/empty.vue2.mjs +16 -12
- package/es/components/empty/empty.vue2.mjs.map +1 -1
- package/es/components/focus-trap/focus-trap.vue.d.ts +32 -0
- package/es/components/focus-trap/focus-trap.vue.mjs +11 -0
- package/es/components/focus-trap/focus-trap.vue.mjs.map +1 -0
- package/es/components/focus-trap/focus-trap.vue2.mjs +160 -0
- package/es/components/focus-trap/focus-trap.vue2.mjs.map +1 -0
- package/es/components/focus-trap/index.d.ts +5 -0
- package/es/components/focus-trap/index.mjs +26 -0
- package/es/components/focus-trap/index.mjs.map +1 -0
- package/es/components/focus-trap/tokens.d.ts +13 -0
- package/es/components/focus-trap/tokens.mjs +18 -0
- package/es/components/focus-trap/tokens.mjs.map +1 -0
- package/es/components/focus-trap/utils.d.ts +29 -0
- package/es/components/focus-trap/utils.mjs +90 -0
- package/es/components/focus-trap/utils.mjs.map +1 -0
- package/es/components/icon/icon.vue2.mjs +19 -15
- package/es/components/icon/icon.vue2.mjs.map +1 -1
- package/es/components/index.d.ts +5 -0
- package/es/components/index.mjs +32 -13
- package/es/components/index.mjs.map +1 -1
- package/es/components/menu/index.d.ts +504 -0
- package/es/components/menu/index.mjs +21 -0
- package/es/components/menu/index.mjs.map +1 -0
- package/es/components/menu/menu-collapse-transition.vue.d.ts +5 -0
- package/es/components/menu/menu-collapse-transition.vue.mjs +16 -0
- package/es/components/menu/menu-collapse-transition.vue.mjs.map +1 -0
- package/es/components/menu/menu-collapse-transition.vue2.mjs +34 -0
- package/es/components/menu/menu-collapse-transition.vue2.mjs.map +1 -0
- package/es/components/menu/menu-item-group.vue.d.ts +13 -0
- package/es/components/menu/menu-item-group.vue.mjs +5 -0
- package/es/components/menu/menu-item-group.vue.mjs.map +1 -0
- package/es/components/menu/menu-item-group.vue2.mjs +39 -0
- package/es/components/menu/menu-item-group.vue2.mjs.map +1 -0
- package/es/components/menu/menu-item.vue.d.ts +81 -0
- package/es/components/menu/menu-item.vue.mjs +5 -0
- package/es/components/menu/menu-item.vue.mjs.map +1 -0
- package/es/components/menu/menu-item.vue2.mjs +115 -0
- package/es/components/menu/menu-item.vue2.mjs.map +1 -0
- package/es/components/menu/menu.vue.d.ts +109 -0
- package/es/components/menu/menu.vue.mjs +5 -0
- package/es/components/menu/menu.vue.mjs.map +1 -0
- package/es/components/menu/menu.vue2.mjs +207 -0
- package/es/components/menu/menu.vue2.mjs.map +1 -0
- package/es/components/menu/style/css.d.ts +0 -0
- package/es/components/menu/style/css.mjs +3 -0
- package/es/components/menu/style/css.mjs.map +1 -0
- package/es/components/menu/style/index.d.ts +0 -0
- package/es/components/menu/style/index.mjs +3 -0
- package/es/components/menu/style/index.mjs.map +1 -0
- package/es/components/menu/sub-menu.vue.d.ts +112 -0
- package/es/components/menu/sub-menu.vue.mjs +5 -0
- package/es/components/menu/sub-menu.vue.mjs.map +1 -0
- package/es/components/menu/sub-menu.vue2.mjs +232 -0
- package/es/components/menu/sub-menu.vue2.mjs.map +1 -0
- package/es/components/menu/types.d.ts +59 -0
- package/es/components/menu/types.mjs +2 -0
- package/es/components/menu/types.mjs.map +1 -0
- package/es/components/menu/use-menu-css-var.d.ts +1 -0
- package/es/components/menu/use-menu-css-var.mjs +18 -0
- package/es/components/menu/use-menu-css-var.mjs.map +1 -0
- package/es/components/menu/use-menu.d.ts +14 -0
- package/es/components/menu/use-menu.mjs +23 -0
- package/es/components/menu/use-menu.mjs.map +1 -0
- package/es/components/menu/utils/menu-bar.d.ts +7 -0
- package/es/components/menu/utils/menu-bar.mjs +16 -0
- package/es/components/menu/utils/menu-bar.mjs.map +1 -0
- package/es/components/menu/utils/menu-item.d.ts +9 -0
- package/es/components/menu/utils/menu-item.mjs +42 -0
- package/es/components/menu/utils/menu-item.mjs.map +1 -0
- package/es/components/menu/utils/submenu.d.ts +12 -0
- package/es/components/menu/utils/submenu.mjs +45 -0
- package/es/components/menu/utils/submenu.mjs.map +1 -0
- package/es/components/menu-item/style/css.d.ts +0 -0
- package/es/components/menu-item/style/css.mjs +3 -0
- package/es/components/menu-item/style/css.mjs.map +1 -0
- package/es/components/menu-item/style/index.d.ts +0 -0
- package/es/components/menu-item/style/index.mjs +3 -0
- package/es/components/menu-item/style/index.mjs.map +1 -0
- package/es/components/menu-item-group/style/css.d.ts +0 -0
- package/es/components/menu-item-group/style/css.mjs +3 -0
- package/es/components/menu-item-group/style/css.mjs.map +1 -0
- package/es/components/menu-item-group/style/index.d.ts +0 -0
- package/es/components/menu-item-group/style/index.mjs +3 -0
- package/es/components/menu-item-group/style/index.mjs.map +1 -0
- package/es/components/popover/directive.d.ts +4 -0
- package/es/components/popover/directive.mjs +16 -0
- package/es/components/popover/directive.mjs.map +1 -0
- package/es/components/popover/index.d.ts +181 -0
- package/es/components/popover/index.mjs +11 -0
- package/es/components/popover/index.mjs.map +1 -0
- package/es/components/popover/popover.vue.d.ts +187 -0
- package/es/components/popover/popover.vue.mjs +5 -0
- package/es/components/popover/popover.vue.mjs.map +1 -0
- package/es/components/popover/popover.vue2.mjs +117 -0
- package/es/components/popover/popover.vue2.mjs.map +1 -0
- package/es/components/popover/style/css.d.ts +0 -0
- package/es/components/popover/style/css.mjs +4 -0
- package/es/components/popover/style/css.mjs.map +1 -0
- package/es/components/popover/style/index.d.ts +0 -0
- package/es/components/popover/style/index.mjs +4 -0
- package/es/components/popover/style/index.mjs.map +1 -0
- package/es/components/popover/types.mjs +2 -0
- package/es/components/popover/types.mjs.map +1 -0
- package/es/components/popper/arrow.vue.d.ts +18 -0
- package/es/components/popper/arrow.vue.mjs +5 -0
- package/es/components/popper/arrow.vue.mjs.map +1 -0
- package/es/components/popper/arrow.vue2.mjs +47 -0
- package/es/components/popper/arrow.vue2.mjs.map +1 -0
- package/es/components/popper/composables/index.d.ts +3 -0
- package/es/components/popper/composables/index.mjs +9 -0
- package/es/components/popper/composables/index.mjs.map +1 -0
- package/es/components/popper/composables/use-content-dom.d.ts +16 -0
- package/es/components/popper/composables/use-content-dom.mjs +43 -0
- package/es/components/popper/composables/use-content-dom.mjs.map +1 -0
- package/es/components/popper/composables/use-content.d.ts +77 -0
- package/es/components/popper/composables/use-content.mjs +64 -0
- package/es/components/popper/composables/use-content.mjs.map +1 -0
- package/es/components/popper/composables/use-focus-trap.d.ts +11 -0
- package/es/components/popper/composables/use-focus-trap.mjs +28 -0
- package/es/components/popper/composables/use-focus-trap.mjs.map +1 -0
- package/es/components/popper/constants.d.ts +24 -0
- package/es/components/popper/constants.mjs +6 -0
- package/es/components/popper/constants.mjs.map +1 -0
- package/es/components/popper/content.vue.d.ts +222 -0
- package/es/components/popper/content.vue.mjs +5 -0
- package/es/components/popper/content.vue.mjs.map +1 -0
- package/es/components/popper/content.vue2.mjs +144 -0
- package/es/components/popper/content.vue2.mjs.map +1 -0
- package/es/components/popper/index.d.ts +18 -0
- package/es/components/popper/index.mjs +17 -0
- package/es/components/popper/index.mjs.map +1 -0
- package/es/components/popper/popper.vue.d.ts +13 -0
- package/es/components/popper/popper.vue.mjs +5 -0
- package/es/components/popper/popper.vue.mjs.map +1 -0
- package/es/components/popper/popper.vue2.mjs +40 -0
- package/es/components/popper/popper.vue2.mjs.map +1 -0
- package/es/components/popper/style/css.d.ts +0 -0
- package/es/components/popper/style/css.mjs +3 -0
- package/es/components/popper/style/css.mjs.map +1 -0
- package/es/components/popper/style/index.d.ts +0 -0
- package/es/components/popper/style/index.mjs +3 -0
- package/es/components/popper/style/index.mjs.map +1 -0
- package/es/components/popper/trigger.vue.d.ts +99 -0
- package/es/components/popper/trigger.vue.mjs +5 -0
- package/es/components/popper/trigger.vue.mjs.map +1 -0
- package/es/components/popper/trigger.vue2.mjs +118 -0
- package/es/components/popper/trigger.vue2.mjs.map +1 -0
- package/es/components/popper/types.d.ts +45 -0
- package/es/components/popper/types.mjs +2 -0
- package/es/components/popper/types.mjs.map +1 -0
- package/es/components/popper/utils.d.ts +49 -0
- package/es/components/popper/utils.mjs +56 -0
- package/es/components/popper/utils.mjs.map +1 -0
- package/es/components/result/result.vue2.mjs +30 -21
- package/es/components/result/result.vue2.mjs.map +1 -1
- package/es/components/slot/index.d.ts +2 -0
- package/es/components/slot/index.mjs +6 -0
- package/es/components/slot/index.mjs.map +1 -0
- package/es/components/slot/only-child.d.ts +7 -0
- package/es/components/slot/only-child.mjs +60 -0
- package/es/components/slot/only-child.mjs.map +1 -0
- package/es/components/sub-menu/style/css.d.ts +0 -0
- package/es/components/sub-menu/style/css.mjs +3 -0
- package/es/components/sub-menu/style/css.mjs.map +1 -0
- package/es/components/sub-menu/style/index.d.ts +0 -0
- package/es/components/sub-menu/style/index.mjs +3 -0
- package/es/components/sub-menu/style/index.mjs.map +1 -0
- package/es/components/tabs/index.d.ts +21 -103
- package/es/components/tabs/index.mjs +5 -5
- package/es/components/tabs/index.mjs.map +1 -1
- package/es/components/tabs/tab-bar.vue2.mjs +14 -11
- package/es/components/tabs/tab-bar.vue2.mjs.map +1 -1
- package/es/components/tabs/tab-nav.vue2.mjs +91 -75
- package/es/components/tabs/tab-nav.vue2.mjs.map +1 -1
- package/es/components/tabs/tab-pane.vue2.mjs +32 -26
- package/es/components/tabs/tab-pane.vue2.mjs.map +1 -1
- package/es/components/tabs/tabs.vue2.mjs +52 -47
- package/es/components/tabs/tabs.vue2.mjs.map +1 -1
- package/es/components/tooltip/constants.d.ts +18 -0
- package/es/components/tooltip/constants.mjs +5 -0
- package/es/components/tooltip/constants.mjs.map +1 -0
- package/es/components/tooltip/content.vue.d.ts +268 -0
- package/es/components/tooltip/content.vue.mjs +5 -0
- package/es/components/tooltip/content.vue.mjs.map +1 -0
- package/es/components/tooltip/content.vue2.mjs +175 -0
- package/es/components/tooltip/content.vue2.mjs.map +1 -0
- package/es/components/tooltip/index.d.ts +396 -0
- package/es/components/tooltip/index.mjs +11 -0
- package/es/components/tooltip/index.mjs.map +1 -0
- package/es/components/tooltip/style/css.d.ts +0 -0
- package/es/components/tooltip/style/css.mjs +4 -0
- package/es/components/tooltip/style/css.mjs.map +1 -0
- package/es/components/tooltip/style/index.d.ts +0 -0
- package/es/components/tooltip/style/index.mjs +4 -0
- package/es/components/tooltip/style/index.mjs.map +1 -0
- package/es/components/tooltip/tooltip.vue.d.ts +470 -0
- package/es/components/tooltip/tooltip.vue.mjs +5 -0
- package/es/components/tooltip/tooltip.vue.mjs.map +1 -0
- package/es/components/tooltip/tooltip.vue2.mjs +224 -0
- package/es/components/tooltip/tooltip.vue2.mjs.map +1 -0
- package/es/components/tooltip/trigger.vue.d.ts +54 -0
- package/es/components/tooltip/trigger.vue.mjs +5 -0
- package/es/components/tooltip/trigger.vue.mjs.map +1 -0
- package/es/components/tooltip/trigger.vue2.mjs +91 -0
- package/es/components/tooltip/trigger.vue2.mjs.map +1 -0
- package/es/components/tooltip/types.d.ts +53 -0
- package/es/components/tooltip/types.mjs +2 -0
- package/es/components/tooltip/types.mjs.map +1 -0
- package/es/components/tooltip/utils.d.ts +11 -0
- package/es/components/tooltip/utils.mjs +19 -0
- package/es/components/tooltip/utils.mjs.map +1 -0
- package/es/hooks/index.d.ts +8 -0
- package/es/hooks/index.mjs +32 -6
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-delayed-toggle/index.d.ts +10 -0
- package/es/hooks/use-delayed-toggle/index.mjs +21 -0
- package/es/hooks/use-delayed-toggle/index.mjs.map +1 -0
- package/es/hooks/use-forward-ref/index.d.ts +9 -0
- package/es/hooks/use-forward-ref/index.mjs +24 -0
- package/es/hooks/use-forward-ref/index.mjs.map +1 -0
- package/es/hooks/use-id/index.d.ts +9 -0
- package/es/hooks/use-id/index.mjs +29 -0
- package/es/hooks/use-id/index.mjs.map +1 -0
- package/es/hooks/use-model-toggle/index.d.ts +25 -0
- package/es/hooks/use-model-toggle/index.mjs +62 -0
- package/es/hooks/use-model-toggle/index.mjs.map +1 -0
- package/es/hooks/use-namespace/index.d.ts +5 -2
- package/es/hooks/use-namespace/index.mjs +32 -27
- package/es/hooks/use-namespace/index.mjs.map +1 -1
- package/es/hooks/use-popper/index.d.ts +78 -0
- package/es/hooks/use-popper/index.mjs +98 -0
- package/es/hooks/use-popper/index.mjs.map +1 -0
- package/es/hooks/use-popper-container/index.d.ts +5 -0
- package/es/hooks/use-popper-container/index.mjs +27 -0
- package/es/hooks/use-popper-container/index.mjs.map +1 -0
- package/es/hooks/use-timeout/index.d.ts +4 -0
- package/es/hooks/use-timeout/index.mjs +15 -0
- package/es/hooks/use-timeout/index.mjs.map +1 -0
- package/es/hooks/use-z-index/index.d.ts +7 -0
- package/es/hooks/use-z-index/index.mjs +18 -0
- package/es/hooks/use-z-index/index.mjs.map +1 -0
- package/es/index.mjs +92 -47
- package/es/index.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/es/style.css +1 -1
- package/es/theme-style/src/collapse-transition.scss.mjs +5 -0
- package/es/theme-style/src/collapse-transition.scss.mjs.map +1 -0
- package/es/theme-style/src/menu-item-group.scss.mjs +5 -0
- package/es/theme-style/src/menu-item-group.scss.mjs.map +1 -0
- package/es/theme-style/src/menu-item.scss.mjs +5 -0
- package/es/theme-style/src/menu-item.scss.mjs.map +1 -0
- package/es/theme-style/src/menu.scss.mjs +5 -0
- package/es/theme-style/src/menu.scss.mjs.map +1 -0
- package/es/theme-style/src/popover.scss.mjs +5 -0
- package/es/theme-style/src/popover.scss.mjs.map +1 -0
- package/es/theme-style/src/popper.scss.mjs +5 -0
- package/es/theme-style/src/popper.scss.mjs.map +1 -0
- package/es/theme-style/src/sub-menu.scss.mjs +5 -0
- package/es/theme-style/src/sub-menu.scss.mjs.map +1 -0
- package/es/theme-style/src/tooltip.scss.mjs +5 -0
- package/es/theme-style/src/tooltip.scss.mjs.map +1 -0
- package/es/utils/event.d.ts +6 -0
- package/es/utils/event.mjs +10 -0
- package/es/utils/event.mjs.map +1 -0
- package/es/utils/index.d.ts +2 -0
- package/es/utils/index.mjs +24 -19
- package/es/utils/index.mjs.map +1 -1
- package/es/utils/typescript.d.ts +12 -0
- package/es/utils/typescript.mjs +5 -0
- package/es/utils/typescript.mjs.map +1 -0
- package/lib/_virtual/_plugin-vue_export-helper.js +2 -0
- package/lib/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/lib/component.js +1 -1
- package/lib/component.js.map +1 -1
- package/lib/components/avatar/avatar.vue2.js +1 -1
- package/lib/components/avatar/avatar.vue2.js.map +1 -1
- package/lib/components/back-top/back-top.vue2.js +1 -1
- package/lib/components/back-top/back-top.vue2.js.map +1 -1
- package/lib/components/collapse-transition/index.d.ts +4 -0
- package/lib/components/collapse-transition/index.js +2 -0
- package/lib/components/collapse-transition/index.js.map +1 -0
- package/lib/components/collapse-transition/src/collapse-transition.vue.d.ts +2 -0
- package/lib/components/collapse-transition/src/collapse-transition.vue.js +2 -0
- package/lib/components/collapse-transition/src/collapse-transition.vue.js.map +1 -0
- package/lib/components/collapse-transition/src/collapse-transition.vue2.js +2 -0
- package/lib/components/collapse-transition/src/collapse-transition.vue2.js.map +1 -0
- package/lib/components/collapse-transition/style/css.d.ts +0 -0
- package/lib/components/collapse-transition/style/css.js +2 -0
- package/lib/components/collapse-transition/style/css.js.map +1 -0
- package/lib/components/collapse-transition/style/index.d.ts +0 -0
- package/lib/components/collapse-transition/style/index.js +2 -0
- package/lib/components/collapse-transition/style/index.js.map +1 -0
- package/lib/components/divider/divider.vue2.js +1 -1
- package/lib/components/divider/divider.vue2.js.map +1 -1
- package/lib/components/empty/empty.vue2.js +1 -1
- package/lib/components/empty/empty.vue2.js.map +1 -1
- package/lib/components/focus-trap/focus-trap.vue.d.ts +32 -0
- package/lib/components/focus-trap/focus-trap.vue.js +2 -0
- package/lib/components/focus-trap/focus-trap.vue.js.map +1 -0
- package/lib/components/focus-trap/focus-trap.vue2.js +2 -0
- package/lib/components/focus-trap/focus-trap.vue2.js.map +1 -0
- package/lib/components/focus-trap/index.d.ts +5 -0
- package/lib/components/focus-trap/index.js +2 -0
- package/lib/components/focus-trap/index.js.map +1 -0
- package/lib/components/focus-trap/tokens.d.ts +13 -0
- package/lib/components/focus-trap/tokens.js +2 -0
- package/lib/components/focus-trap/tokens.js.map +1 -0
- package/lib/components/focus-trap/utils.d.ts +29 -0
- package/lib/components/focus-trap/utils.js +2 -0
- package/lib/components/focus-trap/utils.js.map +1 -0
- package/lib/components/icon/icon.vue2.js +1 -1
- package/lib/components/icon/icon.vue2.js.map +1 -1
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.js +1 -1
- package/lib/components/menu/index.d.ts +504 -0
- package/lib/components/menu/index.js +2 -0
- package/lib/components/menu/index.js.map +1 -0
- package/lib/components/menu/menu-collapse-transition.vue.d.ts +5 -0
- package/lib/components/menu/menu-collapse-transition.vue.js +2 -0
- package/lib/components/menu/menu-collapse-transition.vue.js.map +1 -0
- package/lib/components/menu/menu-collapse-transition.vue2.js +2 -0
- package/lib/components/menu/menu-collapse-transition.vue2.js.map +1 -0
- package/lib/components/menu/menu-item-group.vue.d.ts +13 -0
- package/lib/components/menu/menu-item-group.vue.js +2 -0
- package/lib/components/menu/menu-item-group.vue.js.map +1 -0
- package/lib/components/menu/menu-item-group.vue2.js +2 -0
- package/lib/components/menu/menu-item-group.vue2.js.map +1 -0
- package/lib/components/menu/menu-item.vue.d.ts +81 -0
- package/lib/components/menu/menu-item.vue.js +2 -0
- package/lib/components/menu/menu-item.vue.js.map +1 -0
- package/lib/components/menu/menu-item.vue2.js +2 -0
- package/lib/components/menu/menu-item.vue2.js.map +1 -0
- package/lib/components/menu/menu.vue.d.ts +109 -0
- package/lib/components/menu/menu.vue.js +2 -0
- package/lib/components/menu/menu.vue.js.map +1 -0
- package/lib/components/menu/menu.vue2.js +2 -0
- package/lib/components/menu/menu.vue2.js.map +1 -0
- package/lib/components/menu/style/css.d.ts +0 -0
- package/lib/components/menu/style/css.js +2 -0
- package/lib/components/menu/style/css.js.map +1 -0
- package/lib/components/menu/style/index.d.ts +0 -0
- package/lib/components/menu/style/index.js +2 -0
- package/lib/components/menu/style/index.js.map +1 -0
- package/lib/components/menu/sub-menu.vue.d.ts +112 -0
- package/lib/components/menu/sub-menu.vue.js +2 -0
- package/lib/components/menu/sub-menu.vue.js.map +1 -0
- package/lib/components/menu/sub-menu.vue2.js +2 -0
- package/lib/components/menu/sub-menu.vue2.js.map +1 -0
- package/lib/components/menu/types.d.ts +59 -0
- package/lib/components/menu/types.js +2 -0
- package/lib/components/menu/types.js.map +1 -0
- package/lib/components/menu/use-menu-css-var.d.ts +1 -0
- package/lib/components/menu/use-menu-css-var.js +2 -0
- package/lib/components/menu/use-menu-css-var.js.map +1 -0
- package/lib/components/menu/use-menu.d.ts +14 -0
- package/lib/components/menu/use-menu.js +2 -0
- package/lib/components/menu/use-menu.js.map +1 -0
- package/lib/components/menu/utils/menu-bar.d.ts +7 -0
- package/lib/components/menu/utils/menu-bar.js +2 -0
- package/lib/components/menu/utils/menu-bar.js.map +1 -0
- package/lib/components/menu/utils/menu-item.d.ts +9 -0
- package/lib/components/menu/utils/menu-item.js +2 -0
- package/lib/components/menu/utils/menu-item.js.map +1 -0
- package/lib/components/menu/utils/submenu.d.ts +12 -0
- package/lib/components/menu/utils/submenu.js +2 -0
- package/lib/components/menu/utils/submenu.js.map +1 -0
- package/lib/components/menu-item/style/css.d.ts +0 -0
- package/lib/components/menu-item/style/css.js +2 -0
- package/lib/components/menu-item/style/css.js.map +1 -0
- package/lib/components/menu-item/style/index.d.ts +0 -0
- package/lib/components/menu-item/style/index.js +2 -0
- package/lib/components/menu-item/style/index.js.map +1 -0
- package/lib/components/menu-item-group/style/css.d.ts +0 -0
- package/lib/components/menu-item-group/style/css.js +2 -0
- package/lib/components/menu-item-group/style/css.js.map +1 -0
- package/lib/components/menu-item-group/style/index.d.ts +0 -0
- package/lib/components/menu-item-group/style/index.js +2 -0
- package/lib/components/menu-item-group/style/index.js.map +1 -0
- package/lib/components/popover/directive.d.ts +4 -0
- package/lib/components/popover/directive.js +2 -0
- package/lib/components/popover/directive.js.map +1 -0
- package/lib/components/popover/index.d.ts +181 -0
- package/lib/components/popover/index.js +2 -0
- package/lib/components/popover/index.js.map +1 -0
- package/lib/components/popover/popover.vue.d.ts +187 -0
- package/lib/components/popover/popover.vue.js +2 -0
- package/lib/components/popover/popover.vue.js.map +1 -0
- package/lib/components/popover/popover.vue2.js +2 -0
- package/lib/components/popover/popover.vue2.js.map +1 -0
- package/lib/components/popover/style/css.d.ts +0 -0
- package/lib/components/popover/style/css.js +2 -0
- package/lib/components/popover/style/css.js.map +1 -0
- package/lib/components/popover/style/index.d.ts +0 -0
- package/lib/components/popover/style/index.js +2 -0
- package/lib/components/popover/style/index.js.map +1 -0
- package/lib/components/popover/types.js +2 -0
- package/lib/components/popover/types.js.map +1 -0
- package/lib/components/popper/arrow.vue.d.ts +18 -0
- package/lib/components/popper/arrow.vue.js +2 -0
- package/lib/components/popper/arrow.vue.js.map +1 -0
- package/lib/components/popper/arrow.vue2.js +2 -0
- package/lib/components/popper/arrow.vue2.js.map +1 -0
- package/lib/components/popper/composables/index.d.ts +3 -0
- package/lib/components/popper/composables/index.js +2 -0
- package/lib/components/popper/composables/index.js.map +1 -0
- package/lib/components/popper/composables/use-content-dom.d.ts +16 -0
- package/lib/components/popper/composables/use-content-dom.js +2 -0
- package/lib/components/popper/composables/use-content-dom.js.map +1 -0
- package/lib/components/popper/composables/use-content.d.ts +77 -0
- package/lib/components/popper/composables/use-content.js +2 -0
- package/lib/components/popper/composables/use-content.js.map +1 -0
- package/lib/components/popper/composables/use-focus-trap.d.ts +11 -0
- package/lib/components/popper/composables/use-focus-trap.js +2 -0
- package/lib/components/popper/composables/use-focus-trap.js.map +1 -0
- package/lib/components/popper/constants.d.ts +24 -0
- package/lib/components/popper/constants.js +2 -0
- package/lib/components/popper/constants.js.map +1 -0
- package/lib/components/popper/content.vue.d.ts +222 -0
- package/lib/components/popper/content.vue.js +2 -0
- package/lib/components/popper/content.vue.js.map +1 -0
- package/lib/components/popper/content.vue2.js +2 -0
- package/lib/components/popper/content.vue2.js.map +1 -0
- package/lib/components/popper/index.d.ts +18 -0
- package/lib/components/popper/index.js +2 -0
- package/lib/components/popper/index.js.map +1 -0
- package/lib/components/popper/popper.vue.d.ts +13 -0
- package/lib/components/popper/popper.vue.js +2 -0
- package/lib/components/popper/popper.vue.js.map +1 -0
- package/lib/components/popper/popper.vue2.js +2 -0
- package/lib/components/popper/popper.vue2.js.map +1 -0
- package/lib/components/popper/style/css.d.ts +0 -0
- package/lib/components/popper/style/css.js +2 -0
- package/lib/components/popper/style/css.js.map +1 -0
- package/lib/components/popper/style/index.d.ts +0 -0
- package/lib/components/popper/style/index.js +2 -0
- package/lib/components/popper/style/index.js.map +1 -0
- package/lib/components/popper/trigger.vue.d.ts +99 -0
- package/lib/components/popper/trigger.vue.js +2 -0
- package/lib/components/popper/trigger.vue.js.map +1 -0
- package/lib/components/popper/trigger.vue2.js +2 -0
- package/lib/components/popper/trigger.vue2.js.map +1 -0
- package/lib/components/popper/types.d.ts +45 -0
- package/lib/components/popper/types.js +2 -0
- package/lib/components/popper/types.js.map +1 -0
- package/lib/components/popper/utils.d.ts +49 -0
- package/lib/components/popper/utils.js +2 -0
- package/lib/components/popper/utils.js.map +1 -0
- package/lib/components/result/result.vue2.js +1 -1
- package/lib/components/result/result.vue2.js.map +1 -1
- package/lib/components/slot/index.d.ts +2 -0
- package/lib/components/slot/index.js +2 -0
- package/lib/components/slot/index.js.map +1 -0
- package/lib/components/slot/only-child.d.ts +7 -0
- package/lib/components/slot/only-child.js +2 -0
- package/lib/components/slot/only-child.js.map +1 -0
- package/lib/components/sub-menu/style/css.d.ts +0 -0
- package/lib/components/sub-menu/style/css.js +2 -0
- package/lib/components/sub-menu/style/css.js.map +1 -0
- package/lib/components/sub-menu/style/index.d.ts +0 -0
- package/lib/components/sub-menu/style/index.js +2 -0
- package/lib/components/sub-menu/style/index.js.map +1 -0
- package/lib/components/tabs/index.d.ts +21 -103
- package/lib/components/tabs/index.js +1 -1
- package/lib/components/tabs/index.js.map +1 -1
- package/lib/components/tabs/tab-bar.vue2.js +1 -1
- package/lib/components/tabs/tab-bar.vue2.js.map +1 -1
- package/lib/components/tabs/tab-nav.vue2.js +1 -1
- package/lib/components/tabs/tab-nav.vue2.js.map +1 -1
- package/lib/components/tabs/tab-pane.vue2.js +1 -1
- package/lib/components/tabs/tab-pane.vue2.js.map +1 -1
- package/lib/components/tabs/tabs.vue2.js +1 -1
- package/lib/components/tabs/tabs.vue2.js.map +1 -1
- package/lib/components/tooltip/constants.d.ts +18 -0
- package/lib/components/tooltip/constants.js +2 -0
- package/lib/components/tooltip/constants.js.map +1 -0
- package/lib/components/tooltip/content.vue.d.ts +268 -0
- package/lib/components/tooltip/content.vue.js +2 -0
- package/lib/components/tooltip/content.vue.js.map +1 -0
- package/lib/components/tooltip/content.vue2.js +2 -0
- package/lib/components/tooltip/content.vue2.js.map +1 -0
- package/lib/components/tooltip/index.d.ts +396 -0
- package/lib/components/tooltip/index.js +2 -0
- package/lib/components/tooltip/index.js.map +1 -0
- package/lib/components/tooltip/style/css.d.ts +0 -0
- package/lib/components/tooltip/style/css.js +2 -0
- package/lib/components/tooltip/style/css.js.map +1 -0
- package/lib/components/tooltip/style/index.d.ts +0 -0
- package/lib/components/tooltip/style/index.js +2 -0
- package/lib/components/tooltip/style/index.js.map +1 -0
- package/lib/components/tooltip/tooltip.vue.d.ts +470 -0
- package/lib/components/tooltip/tooltip.vue.js +2 -0
- package/lib/components/tooltip/tooltip.vue.js.map +1 -0
- package/lib/components/tooltip/tooltip.vue2.js +2 -0
- package/lib/components/tooltip/tooltip.vue2.js.map +1 -0
- package/lib/components/tooltip/trigger.vue.d.ts +54 -0
- package/lib/components/tooltip/trigger.vue.js +2 -0
- package/lib/components/tooltip/trigger.vue.js.map +1 -0
- package/lib/components/tooltip/trigger.vue2.js +2 -0
- package/lib/components/tooltip/trigger.vue2.js.map +1 -0
- package/lib/components/tooltip/types.d.ts +53 -0
- package/lib/components/tooltip/types.js +2 -0
- package/lib/components/tooltip/types.js.map +1 -0
- package/lib/components/tooltip/utils.d.ts +11 -0
- package/lib/components/tooltip/utils.js +2 -0
- package/lib/components/tooltip/utils.js.map +1 -0
- package/lib/hooks/index.d.ts +8 -0
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/use-delayed-toggle/index.d.ts +10 -0
- package/lib/hooks/use-delayed-toggle/index.js +2 -0
- package/lib/hooks/use-delayed-toggle/index.js.map +1 -0
- package/lib/hooks/use-forward-ref/index.d.ts +9 -0
- package/lib/hooks/use-forward-ref/index.js +2 -0
- package/lib/hooks/use-forward-ref/index.js.map +1 -0
- package/lib/hooks/use-id/index.d.ts +9 -0
- package/lib/hooks/use-id/index.js +6 -0
- package/lib/hooks/use-id/index.js.map +1 -0
- package/lib/hooks/use-model-toggle/index.d.ts +25 -0
- package/lib/hooks/use-model-toggle/index.js +2 -0
- package/lib/hooks/use-model-toggle/index.js.map +1 -0
- package/lib/hooks/use-namespace/index.d.ts +5 -2
- package/lib/hooks/use-namespace/index.js +1 -1
- package/lib/hooks/use-namespace/index.js.map +1 -1
- package/lib/hooks/use-popper/index.d.ts +78 -0
- package/lib/hooks/use-popper/index.js +2 -0
- package/lib/hooks/use-popper/index.js.map +1 -0
- package/lib/hooks/use-popper-container/index.d.ts +5 -0
- package/lib/hooks/use-popper-container/index.js +2 -0
- package/lib/hooks/use-popper-container/index.js.map +1 -0
- package/lib/hooks/use-timeout/index.d.ts +4 -0
- package/lib/hooks/use-timeout/index.js +2 -0
- package/lib/hooks/use-timeout/index.js.map +1 -0
- package/lib/hooks/use-z-index/index.d.ts +7 -0
- package/lib/hooks/use-z-index/index.js +2 -0
- package/lib/hooks/use-z-index/index.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/theme-style/src/collapse-transition.scss.js +2 -0
- package/lib/theme-style/src/collapse-transition.scss.js.map +1 -0
- package/lib/theme-style/src/menu-item-group.scss.js +2 -0
- package/lib/theme-style/src/menu-item-group.scss.js.map +1 -0
- package/lib/theme-style/src/menu-item.scss.js +2 -0
- package/lib/theme-style/src/menu-item.scss.js.map +1 -0
- package/lib/theme-style/src/menu.scss.js +2 -0
- package/lib/theme-style/src/menu.scss.js.map +1 -0
- package/lib/theme-style/src/popover.scss.js +2 -0
- package/lib/theme-style/src/popover.scss.js.map +1 -0
- package/lib/theme-style/src/popper.scss.js +2 -0
- package/lib/theme-style/src/popper.scss.js.map +1 -0
- package/lib/theme-style/src/sub-menu.scss.js +2 -0
- package/lib/theme-style/src/sub-menu.scss.js.map +1 -0
- package/lib/theme-style/src/tooltip.scss.js +2 -0
- package/lib/theme-style/src/tooltip.scss.js.map +1 -0
- package/lib/utils/event.d.ts +6 -0
- package/lib/utils/event.js +2 -0
- package/lib/utils/event.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +1 -1
- package/lib/utils/typescript.d.ts +12 -0
- package/lib/utils/typescript.js +2 -0
- package/lib/utils/typescript.js.map +1 -0
- package/package.json +3 -1
- package/theme-style/index.css +1 -1
- package/theme-style/src/collapse-transition.scss +0 -0
- package/theme-style/src/common/var.scss +5 -0
- package/theme-style/src/index.scss +7 -0
- package/theme-style/src/menu-item-group.scss +0 -0
- package/theme-style/src/menu-item.scss +0 -0
- package/theme-style/src/menu.scss +341 -0
- package/theme-style/src/popover.scss +62 -0
- package/theme-style/src/popper.scss +108 -0
- package/theme-style/src/sub-menu.scss +0 -0
- package/theme-style/src/tooltip.scss +0 -0
- package/theme-style/vft-collapse-transition.css +0 -0
- package/theme-style/vft-menu-item-group.css +0 -0
- package/theme-style/vft-menu-item.css +0 -0
- package/theme-style/vft-menu.css +1 -0
- package/theme-style/vft-popover.css +1 -0
- package/theme-style/vft-popper.css +1 -0
- package/theme-style/vft-sub-menu.css +0 -0
- package/theme-style/vft-tooltip.css +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty.vue2.js","sources":["../../../../../packages/components/empty/empty.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('empty')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"ts\">\nimport { renderTNode, setSize, VNode } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { getCurrentInstance, computed } from 'vue';\nimport type { ComponentSize } from '../types';\nimport { getSizeType } from '@vft-ui/utils';\nimport { EmptyEnum } from './constants';\n\nimport NoCollect from './assets/no-collect.png';\nimport NoData from './assets/no-data.png';\nimport NoFilter from './assets/no-filter.png';\nimport NoPageData from './assets/no-page-data.png';\nimport NoSearch from './assets/no-search.png';\n\ninterface EmptyProps {\n /** 图片类型或字符串 支持自定义 slot */\n img?: string;\n type?: EmptyEnum;\n /** 图片大小 */\n size?: ComponentSize | string | number[];\n /** 图片底部描述 支持自定义 slot */\n desc?: string;\n}\n\ndefineProps({\n \"img\": null,\n \"type\": { default: EmptyEnum.NO_DATA },\n \"size\": null,\n \"desc\": null\n})\n\n\n\n;\n\nconst instance = getCurrentInstance();\n\nconst imgTypeMap = new Map<EmptyEnum, {text: string; img: string; size?: EmptyProps['size']; descStyle?: Record<string, Numberish>}>([\n [\n\t\tEmptyEnum.NO_COLLECT,\n {\n text: '暂无收藏记录',\n img: NoCollect\n }\n ],\n [\n\t\tEmptyEnum.NO_PAGE_DATA,\n {\n text: '没有找到相关信息',\n size: 300,\n img: NoPageData\n }\n ],\n [\n\t\tEmptyEnum.NO_DATA,\n {\n text: '暂无数据',\n img: NoData\n }\n ],\n [\n\t\tEmptyEnum.NO_FILTER,\n {\n text: '此筛选条件下无结果',\n img: NoFilter\n }\n ],\n [\n\t\tEmptyEnum.NO_SEARCH,\n {\n text: '没有搜索结果',\n img: NoSearch\n }\n ]\n]);\n\nconst imgInfos = imgTypeMap.get(__props.type);\n\nconst imgContent = computed(() => __props.img || imgInfos?.img);\n\nconst descContent = computed(() => renderTNode(instance, 'desc', { defaultNode: imgInfos?.text }));\n\nconst _sizeType = getSizeType(__props.size as string);\n</script>\n\n<template>\n <div :class=\"[ns.b(), _sizeType ? ns.m(_sizeType) : '']\">\n <div :class=\"ns.e('image')\" :style=\"_sizeType ? {} : setSize(imgInfos?.size || size)\">\n <slot v-if=\"$slots.img\" name=\"img\" />\n <img v-else :src=\"imgContent\" alt=\"\" />\n </div>\n <span :class=\"ns.e('desc')\" v-if=\"descContent\">\n <v-node :content=\"descContent\" />\n </span>\n <div v-if=\"$slots.default\" :class=\"ns.e('bottom')\">\n <slot />\n </div>\n </div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","instance","getCurrentInstance","imgInfos","EmptyEnum","NoCollect","NoPageData","NoData","NoFilter","NoSearch","__props","imgContent","computed","descContent","renderTNode","_sizeType","getSizeType"],"mappings":"
|
|
1
|
+
{"version":3,"file":"empty.vue2.js","sources":["../../../../../packages/components/empty/empty.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('empty')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"ts\">\nimport { renderTNode, setSize, VNode } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { getCurrentInstance, computed } from 'vue';\nimport type { ComponentSize } from '../types';\nimport { getSizeType } from '@vft-ui/utils';\nimport { EmptyEnum } from './constants';\n\nimport NoCollect from './assets/no-collect.png';\nimport NoData from './assets/no-data.png';\nimport NoFilter from './assets/no-filter.png';\nimport NoPageData from './assets/no-page-data.png';\nimport NoSearch from './assets/no-search.png';\n\ninterface EmptyProps {\n /** 图片类型或字符串 支持自定义 slot */\n img?: string;\n type?: EmptyEnum;\n /** 图片大小 */\n size?: ComponentSize | string | number[];\n /** 图片底部描述 支持自定义 slot */\n desc?: string;\n}\n\ndefineProps({\n \"img\": null,\n \"type\": { default: EmptyEnum.NO_DATA },\n \"size\": null,\n \"desc\": null\n})\n\n\n\n;\n\nconst instance = getCurrentInstance();\n\nconst imgTypeMap = new Map<EmptyEnum, {text: string; img: string; size?: EmptyProps['size']; descStyle?: Record<string, Numberish>}>([\n [\n\t\tEmptyEnum.NO_COLLECT,\n {\n text: '暂无收藏记录',\n img: NoCollect\n }\n ],\n [\n\t\tEmptyEnum.NO_PAGE_DATA,\n {\n text: '没有找到相关信息',\n size: 300,\n img: NoPageData\n }\n ],\n [\n\t\tEmptyEnum.NO_DATA,\n {\n text: '暂无数据',\n img: NoData\n }\n ],\n [\n\t\tEmptyEnum.NO_FILTER,\n {\n text: '此筛选条件下无结果',\n img: NoFilter\n }\n ],\n [\n\t\tEmptyEnum.NO_SEARCH,\n {\n text: '没有搜索结果',\n img: NoSearch\n }\n ]\n]);\n\nconst imgInfos = imgTypeMap.get(__props.type);\n\nconst imgContent = computed(() => __props.img || imgInfos?.img);\n\nconst descContent = computed(() => renderTNode(instance, 'desc', { defaultNode: imgInfos?.text }));\n\nconst _sizeType = getSizeType(__props.size as string);\n</script>\n\n<template>\n <div :class=\"[ns.b(), _sizeType ? ns.m(_sizeType) : '']\">\n <div :class=\"ns.e('image')\" :style=\"_sizeType ? {} : setSize(imgInfos?.size || size)\">\n <slot v-if=\"$slots.img\" name=\"img\" />\n <img v-else :src=\"imgContent\" alt=\"\" />\n </div>\n <span :class=\"ns.e('desc')\" v-if=\"descContent\">\n <v-node :content=\"descContent\" />\n </span>\n <div v-if=\"$slots.default\" :class=\"ns.e('bottom')\">\n <slot />\n </div>\n </div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","instance","getCurrentInstance","imgInfos","EmptyEnum","NoCollect","NoPageData","NoData","NoFilter","NoSearch","__props","imgContent","computed","descContent","renderTNode","_sizeType","getSizeType"],"mappings":"smBACMA,EAAuBC,EAAAA,aAAa,OAAO,EAGjDC,EAA6BC,EAAAA,gBAAmB,CAC9C,KAAMH,EAAG,EAAE,CACb,CAAC,6GAoCD,MAAMI,EAAWC,EAAAA,qBAyCXC,MAvCiB,IAA8G,CACnI,CACAC,EAAAA,UAAU,WACR,CACE,KAAM,SACN,IAAKC,EAAA,OACP,CACF,EACA,CACAD,EAAAA,UAAU,aACR,CACE,KAAM,WACN,KAAM,IACN,IAAKE,EAAA,OACP,CACF,EACA,CACAF,EAAAA,UAAU,QACR,CACE,KAAM,OACN,IAAKG,EAAA,OACP,CACF,EACA,CACAH,EAAAA,UAAU,UACR,CACE,KAAM,YACN,IAAKI,EAAA,OACP,CACF,EACA,CACAJ,EAAAA,UAAU,UACR,CACE,KAAM,SACN,IAAKK,EAAA,OACP,CACF,CAAA,CACD,EAE2B,IAAIC,EAAQ,IAAI,EAEtCC,EAAaC,EAAAA,SAAS,IAAMF,EAAQ,MAAOP,GAAA,YAAAA,EAAU,IAAG,EAExDU,EAAcD,EAAAA,SAAS,IAAME,EAAAA,YAAYb,EAAU,OAAQ,CAAE,YAAaE,GAAA,YAAAA,EAAU,IAAK,CAAC,CAAC,EAE3FY,EAAYC,EAAAA,YAAYN,EAAQ,IAAc"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { PropType } from 'vue';
|
|
2
|
+
declare const _sfc_main: import("vue").DefineComponent<{
|
|
3
|
+
loop: BooleanConstructor;
|
|
4
|
+
trapped: BooleanConstructor;
|
|
5
|
+
focusTrapEl: PropType<HTMLElement>;
|
|
6
|
+
focusStartEl: {
|
|
7
|
+
type: PropType<HTMLElement | "first" | "container">;
|
|
8
|
+
default: string;
|
|
9
|
+
};
|
|
10
|
+
}, {
|
|
11
|
+
onKeydown: (e: KeyboardEvent) => void;
|
|
12
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested")[], "focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13
|
+
loop: BooleanConstructor;
|
|
14
|
+
trapped: BooleanConstructor;
|
|
15
|
+
focusTrapEl: PropType<HTMLElement>;
|
|
16
|
+
focusStartEl: {
|
|
17
|
+
type: PropType<HTMLElement | "first" | "container">;
|
|
18
|
+
default: string;
|
|
19
|
+
};
|
|
20
|
+
}>> & {
|
|
21
|
+
onFocusin?: ((...args: any[]) => any) | undefined;
|
|
22
|
+
onFocusout?: ((...args: any[]) => any) | undefined;
|
|
23
|
+
onFocusAfterTrapped?: ((...args: any[]) => any) | undefined;
|
|
24
|
+
onFocusAfterReleased?: ((...args: any[]) => any) | undefined;
|
|
25
|
+
"onFocusout-prevented"?: ((...args: any[]) => any) | undefined;
|
|
26
|
+
"onRelease-requested"?: ((...args: any[]) => any) | undefined;
|
|
27
|
+
}, {
|
|
28
|
+
loop: boolean;
|
|
29
|
+
trapped: boolean;
|
|
30
|
+
focusStartEl: HTMLElement | "first" | "container";
|
|
31
|
+
}>;
|
|
32
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./focus-trap.vue2.js"),t=require("vue"),u=require("../../_virtual/_plugin-vue_export-helper.js");function o(e,s,l,a,d,c){return t.renderSlot(e.$slots,"default",{handleKeydown:e.onKeydown})}const n=u.default(r.default,[["render",o]]);exports.default=n;
|
|
2
|
+
//# sourceMappingURL=focus-trap.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-trap.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("@vft/constants"),h=require("@vft/use"),k=require("@vft/utils"),q=require("lodash"),s=require("vue"),u=require("./tokens.js"),n=require("./utils.js"),I=s.defineComponent({name:"VftFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[u.ON_TRAP_FOCUS_EVT,u.ON_RELEASE_FOCUS_EVT,"focusin","focusout","focusout-prevented","release-requested"],setup(o,{emit:i}){const d=s.ref();let v,T;const{focusReason:l}=n.useFocusReason();h.useEscapeKeydown(e=>{o.trapped&&!E.paused&&i("release-requested",e)});const E={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},F=e=>{if(!o.loop&&!o.trapped||E.paused)return;const{key:t,altKey:c,ctrlKey:r,metaKey:a,currentTarget:y,shiftKey:b}=e,{loop:g}=o,U=t===D.EVENT_CODE.tab&&!c&&!r&&!a,p=document.activeElement;if(U&&p){const P=y,[O,S]=n.getEdges(P);if(O&&S){if(!b&&p===S){const f=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",f),f.defaultPrevented||(e.preventDefault(),g&&n.tryFocus(O,!0))}else if(b&&[O,P].includes(p)){const f=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",f),f.defaultPrevented||(e.preventDefault(),g&&n.tryFocus(S,!0))}}else if(p===P){const f=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",f),f.defaultPrevented||e.preventDefault()}}};s.provide(u.FOCUS_TRAP_INJECTION_KEY,{focusTrapRef:d,onKeydown:F}),s.watch(()=>o.focusTrapEl,e=>{e&&(d.value=e)},{immediate:!0}),s.watch([d],([e],[t])=>{e&&(e.addEventListener("keydown",F),e.addEventListener("focusin",m),e.addEventListener("focusout",A)),t&&(t.removeEventListener("keydown",F),t.removeEventListener("focusin",m),t.removeEventListener("focusout",A))});const _=e=>{i(u.ON_TRAP_FOCUS_EVT,e)},L=e=>i(u.ON_RELEASE_FOCUS_EVT,e),m=e=>{const t=s.unref(d);if(!t)return;const c=e.target,r=e.relatedTarget,a=c&&t.contains(c);o.trapped||r&&t.contains(r)||(v=r),a&&i("focusin",e),!E.paused&&o.trapped&&(a?T=c:n.tryFocus(T,!0))},A=e=>{const t=s.unref(d);if(!(E.paused||!t))if(o.trapped){const c=e.relatedTarget;!q.isNil(c)&&!t.contains(c)&&setTimeout(()=>{if(!E.paused&&o.trapped){const r=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",r),r.defaultPrevented||n.tryFocus(T,!0)}},0)}else{const c=e.target;c&&t.contains(c)||i("focusout",e)}};async function C(){await s.nextTick();const e=s.unref(d);if(e){n.focusableStack.push(E);const t=e.contains(document.activeElement)?v:document.activeElement;if(v=t,!e.contains(t)){const r=new Event(u.FOCUS_AFTER_TRAPPED,u.FOCUS_AFTER_TRAPPED_OPTS);e.addEventListener(u.FOCUS_AFTER_TRAPPED,_),e.dispatchEvent(r),r.defaultPrevented||s.nextTick(()=>{let a=o.focusStartEl;k.isString(a)||(n.tryFocus(a),document.activeElement!==a&&(a="first")),a==="first"&&n.focusFirstDescendant(n.obtainAllFocusableElements(e),!0),(document.activeElement===t||a==="container")&&n.tryFocus(e)})}}}function R(){const e=s.unref(d);if(e){e.removeEventListener(u.FOCUS_AFTER_TRAPPED,_);const t=new CustomEvent(u.FOCUS_AFTER_RELEASED,{...u.FOCUS_AFTER_TRAPPED_OPTS,detail:{focusReason:l.value}});e.addEventListener(u.FOCUS_AFTER_RELEASED,L),e.dispatchEvent(t),!t.defaultPrevented&&(l.value=="keyboard"||!n.isFocusCausedByUserEvent()||e.contains(document.activeElement))&&n.tryFocus(v??document.body),e.removeEventListener(u.FOCUS_AFTER_RELEASED,_),n.focusableStack.remove(E)}}return s.onMounted(()=>{o.trapped&&C(),s.watch(()=>o.trapped,e=>{e?C():R()})}),s.onBeforeUnmount(()=>{o.trapped&&R()}),{onKeydown:F}}});exports.default=I;
|
|
2
|
+
//# sourceMappingURL=focus-trap.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-trap.vue2.js","sources":["../../../../../packages/components/focus-trap/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n\n<script lang=\"ts\">\nimport { EVENT_CODE } from '@vft/constants';\nimport { useEscapeKeydown } from '@vft/use';\nimport { isString } from '@vft/utils';\nimport { isNil } from 'lodash';\nimport type { PropType } from 'vue';\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch\n} from 'vue';\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT\n} from './tokens';\nimport type { FocusLayer } from './utils';\nimport {\n createFocusOutPreventedEvent,\n focusableStack,\n focusFirstDescendant,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason\n} from './utils';\n\nexport default defineComponent({\n name: 'VftFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first'\n }\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested'\n ],\n setup (props, { emit }) {\n\t\tconst forwardRef = ref<HTMLElement | undefined>()\n\t\tlet lastFocusBeforeTrapped: HTMLElement | null\n\t\tlet lastFocusAfterTrapped: HTMLElement | null\n\n\t\tconst { focusReason } = useFocusReason()\n\n\t\tuseEscapeKeydown((event) => {\n\t\t\tif (props.trapped && !focusLayer.paused) {\n\t\t\t\temit('release-requested', event)\n\t\t\t}\n\t\t})\n\n\t\tconst focusLayer: FocusLayer = {\n\t\t\tpaused: false,\n\t\t\tpause () {\n\t\t\t\tthis.paused = true\n\t\t\t},\n\t\t\tresume () {\n\t\t\t\tthis.paused = false\n\t\t\t},\n\t\t}\n\n\t\tconst onKeydown = (e: KeyboardEvent) => {\n\t\t\tif (!props.loop && !props.trapped) return\n\t\t\tif (focusLayer.paused) return\n\n\t\t\tconst { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n\t\t\tconst { loop } = props\n\t\t\tconst isTabbing =\n\t\t\t\tkey === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n\t\t\tconst currentFocusingEl = document.activeElement\n\t\t\tif (isTabbing && currentFocusingEl) {\n\t\t\t\tconst container = currentTarget as HTMLElement\n\t\t\t\tconst [first, last] = getEdges(container)\n\t\t\t\tconst isTabbable = first && last\n\t\t\t\tif (!isTabbable) {\n\t\t\t\t\tif (currentFocusingEl === container) {\n\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t})\n\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!shiftKey && currentFocusingEl === last) {\n\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t})\n\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\tif (loop) tryFocus(first, true)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tshiftKey &&\n\t\t\t\t\t\t[first, container].includes(currentFocusingEl as HTMLElement)\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t})\n\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\tif (loop) tryFocus(last, true)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprovide(FOCUS_TRAP_INJECTION_KEY, {\n\t\t\tfocusTrapRef: forwardRef,\n\t\t\tonKeydown,\n\t\t})\n\n\t\twatch(\n\t\t\t() => props.focusTrapEl,\n\t\t\t(focusTrapEl) => {\n\t\t\t\tif (focusTrapEl) {\n\t\t\t\t\tforwardRef.value = focusTrapEl\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t)\n\n\t\twatch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n\t\t\tif (forwardRef) {\n\t\t\t\tforwardRef.addEventListener('keydown', onKeydown)\n\t\t\t\tforwardRef.addEventListener('focusin', onFocusIn)\n\t\t\t\tforwardRef.addEventListener('focusout', onFocusOut)\n\t\t\t}\n\t\t\tif (oldForwardRef) {\n\t\t\t\toldForwardRef.removeEventListener('keydown', onKeydown)\n\t\t\t\toldForwardRef.removeEventListener('focusin', onFocusIn)\n\t\t\t\toldForwardRef.removeEventListener('focusout', onFocusOut)\n\t\t\t}\n\t\t})\n\n\t\tconst trapOnFocus = (e: Event) => {\n\t\t\temit(ON_TRAP_FOCUS_EVT, e)\n\t\t}\n\t\tconst releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n\t\tconst onFocusIn = (e: FocusEvent) => {\n\t\t\tconst trapContainer = unref(forwardRef)\n\t\t\tif (!trapContainer) return\n\n\t\t\tconst target = e.target as HTMLElement | null\n\t\t\tconst relatedTarget = e.relatedTarget as HTMLElement | null\n\t\t\tconst isFocusedInTrap = target && trapContainer.contains(target)\n\n\t\t\tif (!props.trapped) {\n\t\t\t\tconst isPrevFocusedInTrap =\n\t\t\t\t\trelatedTarget && trapContainer.contains(relatedTarget)\n\t\t\t\tif (!isPrevFocusedInTrap) {\n\t\t\t\t\tlastFocusBeforeTrapped = relatedTarget\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isFocusedInTrap) emit('focusin', e)\n\n\t\t\tif (focusLayer.paused) return\n\n\t\t\tif (props.trapped) {\n\t\t\t\tif (isFocusedInTrap) {\n\t\t\t\t\tlastFocusAfterTrapped = target\n\t\t\t\t} else {\n\t\t\t\t\ttryFocus(lastFocusAfterTrapped, true)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst onFocusOut = (e: Event) => {\n\t\t\tconst trapContainer = unref(forwardRef)\n\t\t\tif (focusLayer.paused || !trapContainer) return\n\n\t\t\tif (props.trapped) {\n\t\t\t\tconst relatedTarget = (e as FocusEvent)\n\t\t\t\t\t.relatedTarget as HTMLElement | null\n\t\t\t\tif (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n\t\t\t\t\t// Give embedded focus layer time to pause this layer before reclaiming focus\n\t\t\t\t\t// And only reclaim focus if it should currently be trapping\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (!focusLayer.paused && props.trapped) {\n\t\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\t\ttryFocus(lastFocusAfterTrapped, true)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst target = e.target as HTMLElement | null\n\t\t\t\tconst isFocusedInTrap = target && trapContainer.contains(target)\n\t\t\t\tif (!isFocusedInTrap) emit('focusout', e)\n\t\t\t}\n\t\t}\n\n\t\tasync function startTrap () {\n\t\t\t// Wait for forwardRef to resolve\n\t\t\tawait nextTick()\n\t\t\tconst trapContainer = unref(forwardRef)\n\t\t\tif (trapContainer) {\n\t\t\t\tfocusableStack.push(focusLayer)\n\t\t\t\tconst prevFocusedElement = trapContainer.contains(\n\t\t\t\t\tdocument.activeElement\n\t\t\t\t)\n\t\t\t\t\t? lastFocusBeforeTrapped\n\t\t\t\t\t: document.activeElement\n\t\t\t\tlastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n\t\t\t\tconst isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n\t\t\t\tif (!isPrevFocusContained) {\n\t\t\t\t\tconst focusEvent = new Event(\n\t\t\t\t\t\tFOCUS_AFTER_TRAPPED,\n\t\t\t\t\t\tFOCUS_AFTER_TRAPPED_OPTS\n\t\t\t\t\t)\n\t\t\t\t\ttrapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\t\t\t\t\ttrapContainer.dispatchEvent(focusEvent)\n\t\t\t\t\tif (!focusEvent.defaultPrevented) {\n\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\tlet focusStartEl = props.focusStartEl\n\t\t\t\t\t\t\tif (!isString(focusStartEl)) {\n\t\t\t\t\t\t\t\ttryFocus(focusStartEl)\n\t\t\t\t\t\t\t\tif (document.activeElement !== focusStartEl) {\n\t\t\t\t\t\t\t\t\tfocusStartEl = 'first'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (focusStartEl === 'first') {\n\t\t\t\t\t\t\t\tfocusFirstDescendant(\n\t\t\t\t\t\t\t\t\tobtainAllFocusableElements(trapContainer),\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdocument.activeElement === prevFocusedElement ||\n\t\t\t\t\t\t\t\tfocusStartEl === 'container'\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\ttryFocus(trapContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction stopTrap () {\n\t\t\tconst trapContainer = unref(forwardRef)\n\n\t\t\tif (trapContainer) {\n\t\t\t\ttrapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n\t\t\t\tconst releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n\t\t\t\t\t...FOCUS_AFTER_TRAPPED_OPTS,\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\ttrapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n\t\t\t\ttrapContainer.dispatchEvent(releasedEvent)\n\t\t\t\tif (\n\t\t\t\t\t!releasedEvent.defaultPrevented &&\n\t\t\t\t\t(focusReason.value == 'keyboard' ||\n\t\t\t\t\t\t!isFocusCausedByUserEvent() ||\n\t\t\t\t\t\ttrapContainer.contains(document.activeElement))\n\t\t\t\t) {\n\t\t\t\t\ttryFocus(lastFocusBeforeTrapped ?? document.body)\n\t\t\t\t}\n\n\t\t\t\ttrapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n\t\t\t\tfocusableStack.remove(focusLayer)\n\t\t\t}\n\t\t}\n\n\t\tonMounted(() => {\n\t\t\tif (props.trapped) {\n\t\t\t\tstartTrap()\n\t\t\t}\n\n\t\t\twatch(\n\t\t\t\t() => props.trapped,\n\t\t\t\t(trapped) => {\n\t\t\t\t\tif (trapped) {\n\t\t\t\t\t\tstartTrap()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstopTrap()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\tif (props.trapped) {\n\t\t\t\tstopTrap()\n\t\t\t}\n\t\t})\n\n\t\treturn {\n\t\t\tonKeydown,\n\t\t}\n }\n});\n</script>\n"],"names":["_sfc_main","defineComponent","ON_TRAP_FOCUS_EVT","ON_RELEASE_FOCUS_EVT","props","emit","forwardRef","ref","lastFocusBeforeTrapped","lastFocusAfterTrapped","focusReason","useFocusReason","useEscapeKeydown","event","focusLayer","onKeydown","key","altKey","ctrlKey","metaKey","currentTarget","shiftKey","loop","isTabbing","EVENT_CODE","currentFocusingEl","container","first","last","getEdges","focusoutPreventedEvent","createFocusOutPreventedEvent","tryFocus","provide","FOCUS_TRAP_INJECTION_KEY","watch","focusTrapEl","oldForwardRef","onFocusIn","onFocusOut","trapOnFocus","releaseOnFocus","trapContainer","unref","target","relatedTarget","isFocusedInTrap","isNil","startTrap","nextTick","focusableStack","prevFocusedElement","focusEvent","FOCUS_AFTER_TRAPPED","FOCUS_AFTER_TRAPPED_OPTS","focusStartEl","isString","focusFirstDescendant","obtainAllFocusableElements","stopTrap","releasedEvent","FOCUS_AFTER_RELEASED","isFocusCausedByUserEvent","onMounted","trapped","onBeforeUnmount"],"mappings":"kRAwCAA,EAAeC,kBAAgB,CAC7B,KAAM,eACN,aAAc,GACd,MAAO,CACL,KAAM,QACN,QAAS,QACT,YAAa,OACb,aAAc,CACZ,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,OACX,CACF,EACA,MAAO,CACLC,EAAA,kBACAC,EAAA,qBACA,UACA,WACA,qBACA,mBACF,EACA,MAAOC,EAAO,CAAE,KAAAC,GAAQ,CACxB,MAAMC,EAAaC,EAAAA,MACf,IAAAC,EACAC,EAEE,KAAA,CAAE,YAAAC,GAAgBC,EAAAA,iBAExBC,EAAA,iBAAkBC,GAAU,CACvBT,EAAM,SAAW,CAACU,EAAW,QAChCT,EAAK,oBAAqBQ,CAAK,CAChC,CACA,EAED,MAAMC,EAAyB,CAC9B,OAAQ,GACR,OAAS,CACR,KAAK,OAAS,EACf,EACA,QAAU,CACT,KAAK,OAAS,EACf,CAAA,EAGKC,EAAa,GAAqB,CAEvC,GADI,CAACX,EAAM,MAAQ,CAACA,EAAM,SACtBU,EAAW,OAAQ,OAEvB,KAAM,CAAE,IAAAE,EAAK,OAAAC,EAAQ,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,SAAAC,CAAa,EAAA,EAC7D,CAAE,KAAAC,CAAS,EAAAlB,EACXmB,EACLP,IAAQQ,aAAW,KAAO,CAACP,GAAU,CAACC,GAAW,CAACC,EAE7CM,EAAoB,SAAS,cACnC,GAAIF,GAAaE,EAAmB,CACnC,MAAMC,EAAYN,EACZ,CAACO,EAAOC,CAAI,EAAIC,WAASH,CAAS,EAExC,GADmBC,GAASC,GAYvB,GAAA,CAACP,GAAYI,IAAsBG,EAAM,CAC5C,MAAME,EAAyBC,EAAAA,6BAA6B,CAC3D,YAAarB,EAAY,KAAA,CACzB,EACDL,EAAK,qBAAsByB,CAAsB,EAC5CA,EAAuB,mBAC3B,EAAE,eAAe,EACbR,GAAMU,WAASL,EAAO,EAAI,EAC/B,SAEAN,GACA,CAACM,EAAOD,CAAS,EAAE,SAASD,CAAgC,EAC3D,CACD,MAAMK,EAAyBC,EAAAA,6BAA6B,CAC3D,YAAarB,EAAY,KAAA,CACzB,EACDL,EAAK,qBAAsByB,CAAsB,EAC5CA,EAAuB,mBAC3B,EAAE,eAAe,EACbR,GAAMU,WAASJ,EAAM,EAAI,EAE/B,UA/BIH,IAAsBC,EAAW,CACpC,MAAMI,EAAyBC,EAAAA,6BAA6B,CAC3D,YAAarB,EAAY,KAAA,CACzB,EACDL,EAAK,qBAAsByB,CAAsB,EAC5CA,EAAuB,kBAC3B,EAAE,eAAe,CAEnB,CAyBF,CAAA,EAGDG,EAAAA,QAAQC,EAAAA,yBAA0B,CACjC,aAAc5B,EACd,UAAAS,CAAA,CACA,EAEDoB,EAAA,MACC,IAAM/B,EAAM,YACXgC,GAAgB,CACZA,IACH9B,EAAW,MAAQ8B,EAErB,EACA,CAAE,UAAW,EAAK,CAAA,EAGbD,EAAA,MAAA,CAAC7B,CAAU,EAAG,CAAC,CAACA,CAAU,EAAG,CAAC+B,CAAa,IAAM,CAClD/B,IACHA,EAAW,iBAAiB,UAAWS,CAAS,EAChDT,EAAW,iBAAiB,UAAWgC,CAAS,EAChDhC,EAAW,iBAAiB,WAAYiC,CAAU,GAE/CF,IACWA,EAAA,oBAAoB,UAAWtB,CAAS,EACxCsB,EAAA,oBAAoB,UAAWC,CAAS,EACxCD,EAAA,oBAAoB,WAAYE,CAAU,EACzD,CACA,EAEK,MAAAC,EAAe,GAAa,CACjCnC,EAAKH,EAAAA,kBAAmB,CAAC,CAAA,EAEpBuC,EAAkB,GAAapC,EAAKF,uBAAsB,CAAC,EAE3DmC,EAAa,GAAkB,CAC9B,MAAAI,EAAgBC,QAAMrC,CAAU,EACtC,GAAI,CAACoC,EAAe,OAEpB,MAAME,EAAS,EAAE,OACXC,EAAgB,EAAE,cAClBC,EAAkBF,GAAUF,EAAc,SAASE,CAAM,EAE1DxC,EAAM,SAETyC,GAAiBH,EAAc,SAASG,CAAa,IAE5BrC,EAAAqC,GAIvBC,GAAiBzC,EAAK,UAAW,CAAC,EAElC,CAAAS,EAAW,QAEXV,EAAM,UACL0C,EACqBrC,EAAAmC,EAExBZ,WAASvB,EAAuB,EAAI,EAEtC,EAGK8B,EAAc,GAAa,CAC1B,MAAAG,EAAgBC,QAAMrC,CAAU,EAClC,GAAA,EAAAQ,EAAW,QAAU,CAAC4B,GAE1B,GAAItC,EAAM,QAAS,CAClB,MAAMyC,EAAiB,EACrB,cACE,CAACE,QAAMF,CAAa,GAAK,CAACH,EAAc,SAASG,CAAa,GAGjE,WAAW,IAAM,CAChB,GAAI,CAAC/B,EAAW,QAAUV,EAAM,QAAS,CACxC,MAAM0B,EAAyBC,EAAAA,6BAA6B,CAC3D,YAAarB,EAAY,KAAA,CACzB,EACDL,EAAK,qBAAsByB,CAAsB,EAC5CA,EAAuB,kBAC3BE,WAASvB,EAAuB,EAAI,CAEtC,GACE,CAAC,CACL,KACM,CACN,MAAMmC,EAAS,EAAE,OACOA,GAAUF,EAAc,SAASE,CAAM,GACzCvC,EAAK,WAAY,CAAC,CACzC,CAAA,EAGD,eAAe2C,GAAa,CAE3B,MAAMC,EAAS,SAAA,EACT,MAAAP,EAAgBC,QAAMrC,CAAU,EACtC,GAAIoC,EAAe,CAClBQ,iBAAe,KAAKpC,CAAU,EAC9B,MAAMqC,EAAqBT,EAAc,SACxC,SAAS,aAAA,EAEPlC,EACA,SAAS,cAGZ,GAFyBA,EAAA2C,EAErB,CADyBT,EAAc,SAASS,CAAkB,EAC3C,CAC1B,MAAMC,EAAa,IAAI,MACtBC,EAAA,oBACAC,EAAA,wBAAA,EAEaZ,EAAA,iBAAiBW,sBAAqBb,CAAW,EAC/DE,EAAc,cAAcU,CAAU,EACjCA,EAAW,kBACfH,EAAAA,SAAS,IAAM,CACd,IAAIM,EAAenD,EAAM,aACpBoD,EAAAA,SAASD,CAAY,IACzBvB,EAAA,SAASuB,CAAY,EACjB,SAAS,gBAAkBA,IACfA,EAAA,UAGbA,IAAiB,SACpBE,EAAA,qBACCC,EAAAA,2BAA2BhB,CAAa,EACxC,EAAA,GAID,SAAS,gBAAkBS,GAC3BI,IAAiB,cAEjBvB,EAAA,SAASU,CAAa,CACvB,CACA,CAEH,CACD,CACD,CAEA,SAASiB,GAAY,CACd,MAAAjB,EAAgBC,QAAMrC,CAAU,EAEtC,GAAIoC,EAAe,CACJA,EAAA,oBAAoBW,sBAAqBb,CAAW,EAE5D,MAAAoB,EAAgB,IAAI,YAAYC,uBAAsB,CAC3D,GAAGP,EAAA,yBACH,OAAQ,CACP,YAAa5C,EAAY,KAC1B,CAAA,CACA,EACagC,EAAA,iBAAiBmB,uBAAsBpB,CAAc,EACnEC,EAAc,cAAckB,CAAa,EAExC,CAACA,EAAc,mBACdlD,EAAY,OAAS,YACrB,CAACoD,EAAA,yBAAA,GACDpB,EAAc,SAAS,SAAS,aAAa,IAErCV,EAAAA,SAAAxB,GAA0B,SAAS,IAAI,EAGnCkC,EAAA,oBAAoBmB,uBAAsBrB,CAAW,EACnEU,iBAAe,OAAOpC,CAAU,CACjC,CACD,CAEAiD,OAAAA,EAAAA,UAAU,IAAM,CACX3D,EAAM,SACC4C,IAGXb,EAAA,MACC,IAAM/B,EAAM,QACX4D,GAAY,CACRA,EACOhB,IAEDW,GAEX,CAAA,CACD,CACA,EAEDM,EAAAA,gBAAgB,IAAM,CACjB7D,EAAM,SACAuD,GACV,CACA,EAEM,CACN,UAAA5C,CAAA,CAED,CACF,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./focus-trap.vue.js"),E=require("./tokens.js"),e=require("./utils.js");exports.VftFocusTrap=s.default;exports.default=s.default;exports.FOCUSOUT_PREVENTED=E.FOCUSOUT_PREVENTED;exports.FOCUSOUT_PREVENTED_OPTS=E.FOCUSOUT_PREVENTED_OPTS;exports.FOCUS_AFTER_RELEASED=E.FOCUS_AFTER_RELEASED;exports.FOCUS_AFTER_TRAPPED=E.FOCUS_AFTER_TRAPPED;exports.FOCUS_AFTER_TRAPPED_OPTS=E.FOCUS_AFTER_TRAPPED_OPTS;exports.FOCUS_TRAP_INJECTION_KEY=E.FOCUS_TRAP_INJECTION_KEY;exports.ON_RELEASE_FOCUS_EVT=E.ON_RELEASE_FOCUS_EVT;exports.ON_TRAP_FOCUS_EVT=E.ON_TRAP_FOCUS_EVT;exports.createFocusOutPreventedEvent=e.createFocusOutPreventedEvent;exports.focusFirstDescendant=e.focusFirstDescendant;exports.focusableStack=e.focusableStack;exports.getEdges=e.getEdges;exports.getVisibleElement=e.getVisibleElement;exports.isFocusCausedByUserEvent=e.isFocusCausedByUserEvent;exports.isHidden=e.isHidden;exports.obtainAllFocusableElements=e.obtainAllFocusableElements;exports.tryFocus=e.tryFocus;exports.useFocusReason=e.useFocusReason;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { InjectionKey, Ref } from 'vue';
|
|
2
|
+
export declare const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
|
|
3
|
+
export declare const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
|
|
4
|
+
export declare const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented";
|
|
5
|
+
export declare const FOCUS_AFTER_TRAPPED_OPTS: EventInit;
|
|
6
|
+
export declare const FOCUSOUT_PREVENTED_OPTS: EventInit;
|
|
7
|
+
export declare const ON_TRAP_FOCUS_EVT = "focusAfterTrapped";
|
|
8
|
+
export declare const ON_RELEASE_FOCUS_EVT = "focusAfterReleased";
|
|
9
|
+
export type FocusTrapInjectionContext = {
|
|
10
|
+
focusTrapRef: Ref<HTMLElement | undefined>;
|
|
11
|
+
onKeydown: (e: KeyboardEvent) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare const FOCUS_TRAP_INJECTION_KEY: InjectionKey<FocusTrapInjectionContext>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E="focus-trap.focus-after-trapped",_="focus-trap.focus-after-released",T="focus-trap.focusout-prevented",e={cancelable:!0,bubbles:!1},O={cancelable:!0,bubbles:!1},t="focusAfterTrapped",S="focusAfterReleased",s=Symbol("vftFocusTrap");exports.FOCUSOUT_PREVENTED=T;exports.FOCUSOUT_PREVENTED_OPTS=O;exports.FOCUS_AFTER_RELEASED=_;exports.FOCUS_AFTER_TRAPPED=E;exports.FOCUS_AFTER_TRAPPED_OPTS=e;exports.FOCUS_TRAP_INJECTION_KEY=s;exports.ON_RELEASE_FOCUS_EVT=S;exports.ON_TRAP_FOCUS_EVT=t;
|
|
2
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sources":["../../../../../packages/components/focus-trap/tokens.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\n\nexport const FOCUS_AFTER_TRAPPED = 'focus-trap.focus-after-trapped';\nexport const FOCUS_AFTER_RELEASED = 'focus-trap.focus-after-released';\nexport const FOCUSOUT_PREVENTED = 'focus-trap.focusout-prevented';\nexport const FOCUS_AFTER_TRAPPED_OPTS: EventInit = {\n\tcancelable: true,\n\tbubbles: false,\n};\nexport const FOCUSOUT_PREVENTED_OPTS: EventInit = {\n\tcancelable: true,\n\tbubbles: false,\n};\n\nexport const ON_TRAP_FOCUS_EVT = 'focusAfterTrapped';\nexport const ON_RELEASE_FOCUS_EVT = 'focusAfterReleased';\n\nexport type FocusTrapInjectionContext = {\n\tfocusTrapRef: Ref<HTMLElement | undefined>\n\tonKeydown: (e: KeyboardEvent) => void\n}\n\nexport const FOCUS_TRAP_INJECTION_KEY: InjectionKey<FocusTrapInjectionContext> =\n\tSymbol('vftFocusTrap');\n"],"names":["FOCUS_AFTER_TRAPPED","FOCUS_AFTER_RELEASED","FOCUSOUT_PREVENTED","FOCUS_AFTER_TRAPPED_OPTS","FOCUSOUT_PREVENTED_OPTS","ON_TRAP_FOCUS_EVT","ON_RELEASE_FOCUS_EVT","FOCUS_TRAP_INJECTION_KEY"],"mappings":"gFAEO,MAAMA,EAAsB,iCACtBC,EAAuB,kCACvBC,EAAqB,gCACrBC,EAAsC,CAClD,WAAY,GACZ,QAAS,EACV,EACaC,EAAqC,CACjD,WAAY,GACZ,QAAS,EACV,EAEaC,EAAoB,oBACpBC,EAAuB,qBAOvBC,EACZ,OAAO,cAAc"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare const focusReason: import("vue").Ref<"pointer" | "keyboard" | undefined>;
|
|
2
|
+
declare const lastUserFocusTimestamp: import("vue").Ref<number>;
|
|
3
|
+
declare const lastAutomatedFocusTimestamp: import("vue").Ref<number>;
|
|
4
|
+
export type FocusLayer = {
|
|
5
|
+
paused: boolean;
|
|
6
|
+
pause: () => void;
|
|
7
|
+
resume: () => void;
|
|
8
|
+
};
|
|
9
|
+
export type FocusStack = FocusLayer[];
|
|
10
|
+
export declare const obtainAllFocusableElements: (element: HTMLElement) => HTMLElement[];
|
|
11
|
+
export declare const getVisibleElement: (elements: HTMLElement[], container: HTMLElement) => HTMLElement | undefined;
|
|
12
|
+
export declare const isHidden: (element: HTMLElement, container: HTMLElement) => boolean;
|
|
13
|
+
export declare const getEdges: (container: HTMLElement) => (HTMLElement | undefined)[];
|
|
14
|
+
export declare const tryFocus: (element?: HTMLElement | {
|
|
15
|
+
focus: () => void;
|
|
16
|
+
} | null, shouldSelect?: boolean) => void;
|
|
17
|
+
export declare const focusFirstDescendant: (elements: HTMLElement[], shouldSelect?: boolean) => void;
|
|
18
|
+
export declare const focusableStack: {
|
|
19
|
+
push: (layer: FocusLayer) => void;
|
|
20
|
+
remove: (layer: FocusLayer) => void;
|
|
21
|
+
};
|
|
22
|
+
export declare const isFocusCausedByUserEvent: () => boolean;
|
|
23
|
+
export declare const useFocusReason: () => {
|
|
24
|
+
focusReason: typeof focusReason;
|
|
25
|
+
lastUserFocusTimestamp: typeof lastUserFocusTimestamp;
|
|
26
|
+
lastAutomatedFocusTimestamp: typeof lastAutomatedFocusTimestamp;
|
|
27
|
+
};
|
|
28
|
+
export declare const createFocusOutPreventedEvent: (detail: CustomEventInit['detail']) => CustomEvent<any>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),E=require("./tokens.js"),d=r.ref(),i=r.ref(0),l=r.ref(0);let c=0;const F=e=>{const n=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>{const s=t.tagName==="INPUT"&&t.type==="hidden";return t.disabled||t.hidden||s?NodeFilter.FILTER_SKIP:t.tabIndex>=0||t===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)n.push(o.currentNode);return n},a=(e,n)=>{for(const o of e)if(!p(o,n))return o},p=(e,n)=>{if(process.env.NODE_ENV==="test")return!1;if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(n&&e===n)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},b=e=>{const n=F(e),o=a(n,e),t=a(n.reverse(),e);return[o,t]},y=e=>e instanceof HTMLInputElement&&"select"in e,w=(e,n)=>{if(e&&e.focus){const o=document.activeElement;e.focus({preventScroll:!0}),l.value=window.performance.now(),e!==o&&y(e)&&n&&e.select()}};function m(e,n){const o=[...e],t=e.indexOf(n);return t!==-1&&o.splice(t,1),o}const S=()=>{let e=[];return{push:t=>{const s=e[0];s&&t!==s&&s.pause(),e=m(e,t),e.unshift(t)},remove:t=>{var s,f;e=m(e,t),(f=(s=e[0])==null?void 0:s.resume)==null||f.call(s)}}},T=(e,n=!1)=>{const o=document.activeElement;for(const t of e)if(w(t,n),document.activeElement!==o)return},N=S(),L=()=>i.value>l.value,u=()=>{d.value="pointer",i.value=window.performance.now()},v=()=>{d.value="keyboard",i.value=window.performance.now()},g=()=>(r.onMounted(()=>{c===0&&(document.addEventListener("mousedown",u),document.addEventListener("touchstart",u),document.addEventListener("keydown",v)),c++}),r.onBeforeUnmount(()=>{c--,c<=0&&(document.removeEventListener("mousedown",u),document.removeEventListener("touchstart",u),document.removeEventListener("keydown",v))}),{focusReason:d,lastUserFocusTimestamp:i,lastAutomatedFocusTimestamp:l}),h=e=>new CustomEvent(E.FOCUSOUT_PREVENTED,{...E.FOCUSOUT_PREVENTED_OPTS,detail:e});exports.createFocusOutPreventedEvent=h;exports.focusFirstDescendant=T;exports.focusableStack=N;exports.getEdges=b;exports.getVisibleElement=a;exports.isFocusCausedByUserEvent=L;exports.isHidden=p;exports.obtainAllFocusableElements=F;exports.tryFocus=w;exports.useFocusReason=g;
|
|
2
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../packages/components/focus-trap/utils.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted, ref } from 'vue'\nimport { FOCUSOUT_PREVENTED, FOCUSOUT_PREVENTED_OPTS } from './tokens'\n\nconst focusReason = ref<'pointer' | 'keyboard'>()\nconst lastUserFocusTimestamp = ref<number>(0)\nconst lastAutomatedFocusTimestamp = ref<number>(0)\nlet focusReasonUserCount = 0\n\nexport type FocusLayer = {\n\tpaused: boolean\n\tpause: () => void\n\tresume: () => void\n}\n\nexport type FocusStack = FocusLayer[]\n\nexport const obtainAllFocusableElements = (\n\telement: HTMLElement\n): HTMLElement[] => {\n\tconst nodes: HTMLElement[] = []\n\tconst walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {\n\t\tacceptNode: (\n\t\t\tnode: Element & {\n\t\t\t\tdisabled: boolean\n\t\t\t\thidden: boolean\n\t\t\t\ttype: string\n\t\t\t\ttabIndex: number\n\t\t\t}\n\t\t) => {\n\t\t\tconst isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden'\n\t\t\tif (node.disabled || node.hidden || isHiddenInput)\n\t\t\t\treturn NodeFilter.FILTER_SKIP\n\t\t\treturn node.tabIndex >= 0 || node === document.activeElement\n\t\t\t\t? NodeFilter.FILTER_ACCEPT\n\t\t\t\t: NodeFilter.FILTER_SKIP\n\t\t},\n\t})\n\twhile (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement)\n\t\n\treturn nodes\n}\n\nexport const getVisibleElement = (\n\telements: HTMLElement[],\n\tcontainer: HTMLElement\n) => {\n\tfor (const element of elements) {\n\t\tif (!isHidden(element, container)) return element\n\t}\n}\n\nexport const isHidden = (element: HTMLElement, container: HTMLElement) => {\n\tif (process.env.NODE_ENV === 'test') return false\n\tif (getComputedStyle(element).visibility === 'hidden') return true\n\t\n\twhile (element) {\n\t\tif (container && element === container) return false\n\t\tif (getComputedStyle(element).display === 'none') return true\n\t\telement = element.parentElement as HTMLElement\n\t}\n\t\n\treturn false\n}\n\nexport const getEdges = (container: HTMLElement) => {\n\tconst focusable = obtainAllFocusableElements(container)\n\tconst first = getVisibleElement(focusable, container)\n\tconst last = getVisibleElement(focusable.reverse(), container)\n\treturn [first, last]\n}\n\nconst isSelectable = (\n\telement: any\n): element is HTMLInputElement & {select: () => void} => {\n\treturn element instanceof HTMLInputElement && 'select' in element\n}\n\nexport const tryFocus = (\n\telement?: HTMLElement | {focus: () => void} | null,\n\tshouldSelect?: boolean\n) => {\n\tif (element && element.focus) {\n\t\tconst prevFocusedElement = document.activeElement\n\t\telement.focus({ preventScroll: true })\n\t\tlastAutomatedFocusTimestamp.value = window.performance.now()\n\t\tif (\n\t\t\telement !== prevFocusedElement &&\n\t\t\tisSelectable(element) &&\n\t\t\tshouldSelect\n\t\t) {\n\t\t\telement.select()\n\t\t}\n\t}\n}\n\nfunction removeFromStack<T> (list: T[], item: T) {\n\tconst copy = [...list]\n\t\n\tconst idx = list.indexOf(item)\n\t\n\tif (idx !== -1) {\n\t\tcopy.splice(idx, 1)\n\t}\n\treturn copy\n}\n\nconst createFocusableStack = () => {\n\tlet stack = [] as FocusStack\n\t\n\tconst push = (layer: FocusLayer) => {\n\t\tconst currentLayer = stack[0]\n\t\t\n\t\tif (currentLayer && layer !== currentLayer) {\n\t\t\tcurrentLayer.pause()\n\t\t}\n\t\t\n\t\tstack = removeFromStack(stack, layer)\n\t\tstack.unshift(layer)\n\t}\n\t\n\tconst remove = (layer: FocusLayer) => {\n\t\tstack = removeFromStack(stack, layer)\n\t\tstack[0]?.resume?.()\n\t}\n\t\n\treturn {\n\t\tpush,\n\t\tremove,\n\t}\n}\n\nexport const focusFirstDescendant = (\n\telements: HTMLElement[],\n\tshouldSelect = false\n) => {\n\tconst prevFocusedElement = document.activeElement\n\tfor (const element of elements) {\n\t\ttryFocus(element, shouldSelect)\n\t\tif (document.activeElement !== prevFocusedElement) return\n\t}\n}\n\nexport const focusableStack = createFocusableStack()\n\nexport const isFocusCausedByUserEvent = (): boolean => {\n\treturn lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value\n}\n\nconst notifyFocusReasonPointer = () => {\n\tfocusReason.value = 'pointer'\n\tlastUserFocusTimestamp.value = window.performance.now()\n}\n\nconst notifyFocusReasonKeydown = () => {\n\tfocusReason.value = 'keyboard'\n\tlastUserFocusTimestamp.value = window.performance.now()\n}\n\nexport const useFocusReason = (): {\n\tfocusReason: typeof focusReason\n\tlastUserFocusTimestamp: typeof lastUserFocusTimestamp\n\tlastAutomatedFocusTimestamp: typeof lastAutomatedFocusTimestamp\n} => {\n\tonMounted(() => {\n\t\tif (focusReasonUserCount === 0) {\n\t\t\tdocument.addEventListener('mousedown', notifyFocusReasonPointer)\n\t\t\tdocument.addEventListener('touchstart', notifyFocusReasonPointer)\n\t\t\tdocument.addEventListener('keydown', notifyFocusReasonKeydown)\n\t\t}\n\t\tfocusReasonUserCount++\n\t})\n\t\n\tonBeforeUnmount(() => {\n\t\tfocusReasonUserCount--\n\t\tif (focusReasonUserCount <= 0) {\n\t\t\tdocument.removeEventListener('mousedown', notifyFocusReasonPointer)\n\t\t\tdocument.removeEventListener('touchstart', notifyFocusReasonPointer)\n\t\t\tdocument.removeEventListener('keydown', notifyFocusReasonKeydown)\n\t\t}\n\t})\n\t\n\treturn {\n\t\tfocusReason,\n\t\tlastUserFocusTimestamp,\n\t\tlastAutomatedFocusTimestamp,\n\t}\n}\n\nexport const createFocusOutPreventedEvent = (\n\tdetail: CustomEventInit['detail']\n) => {\n\treturn new CustomEvent(FOCUSOUT_PREVENTED, {\n\t\t...FOCUSOUT_PREVENTED_OPTS,\n\t\tdetail,\n\t})\n}\n"],"names":["focusReason","ref","lastUserFocusTimestamp","lastAutomatedFocusTimestamp","focusReasonUserCount","obtainAllFocusableElements","element","nodes","walker","node","isHiddenInput","getVisibleElement","elements","container","isHidden","getEdges","focusable","first","last","isSelectable","tryFocus","shouldSelect","prevFocusedElement","removeFromStack","list","item","copy","idx","createFocusableStack","stack","layer","currentLayer","_b","_a","focusFirstDescendant","focusableStack","isFocusCausedByUserEvent","notifyFocusReasonPointer","notifyFocusReasonKeydown","useFocusReason","onMounted","onBeforeUnmount","createFocusOutPreventedEvent","detail","FOCUSOUT_PREVENTED","FOCUSOUT_PREVENTED_OPTS"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),c=require("@vft/utils"),l=require("../../hooks/use-namespace/index.js");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.js");require("@vueuse/core");require("@vue/shared");const s=l.useNamespace("icon"),r=n.defineComponent({name:s.b()}),u=n.defineComponent({...r,props:{dot:{type:Boolean},icon:null,size:null,badge:null,color:null,classPrefix:null,spin:{type:Boolean},cursor:{type:Boolean},scale:null},emits:["click"],setup(i,{emit:a}){n.computed(()=>{const e={};return i.color&&(e.color=i.color),i.size&&(e.fontSize=c.addUnit(i.size)),i.spin&&(e.animation="vft-rotate 1s linear 0s infinite"),i.cursor&&(e.cursor="pointer"),i.scale&&(e.transform="scale(0.8)"),e});const t=(e=>e==null?void 0:e.includes("/"))(i.icon),o=n.computed(()=>i.classPrefix);return n.computed(()=>t?"":[i.icon.startsWith("vi-")?"vicon":"iconfont",`${o.value||""}${i.icon}`]),(e,d)=>(n.openBlock(),n.createElementBlock("div",null,[n.renderSlot(e.$slots,"default")]))}});exports.default=u;
|
|
2
2
|
//# sourceMappingURL=icon.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.vue2.js","sources":["../../../../../packages/components/icon/icon.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('icon')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script lang=\"ts\" setup>\nimport { computed, type CSSProperties, inject } from 'vue';\nimport { addUnit } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\n\nexport interface IconProps {\n /** 是否显示图标右上角小红点 */\n dot?: boolean;\n /** 图标名称或图片链接 */\n icon: string;\n /** 图标大小 */\n size?: Numberish;\n /** 图标右上角徽标的内容 */\n badge?: Numberish;\n /** 图标颜色 */\n color?: string;\n /** 类名前缀,用于使用自定义图标 */\n classPrefix?: string;\n spin?: boolean;\n cursor?: boolean;\n scale?: number\n}\n\nconst emit = defineEmits(['click']);\n\ndefineProps({\n \"dot\": { type: Boolean, },\n \"icon\": null,\n \"size\": null,\n \"badge\": null,\n \"color\": null,\n \"classPrefix\": null,\n \"spin\": { type: Boolean, },\n \"cursor\": { type: Boolean, },\n \"scale\": null\n})\n\n\n\n;\n\nconst style = computed(() => {\n const _style: CSSProperties = {};\n if (__props.color) {\n _style['color'] = __props.color;\n }\n if (__props.size) {\n _style['fontSize'] = addUnit(__props.size);\n }\n if (__props.spin) {\n _style['animation'] = '
|
|
1
|
+
{"version":3,"file":"icon.vue2.js","sources":["../../../../../packages/components/icon/icon.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('icon')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script lang=\"ts\" setup>\nimport { computed, type CSSProperties, inject } from 'vue';\nimport { addUnit } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\n\nexport interface IconProps {\n /** 是否显示图标右上角小红点 */\n dot?: boolean;\n /** 图标名称或图片链接 */\n icon: string;\n /** 图标大小 */\n size?: Numberish;\n /** 图标右上角徽标的内容 */\n badge?: Numberish;\n /** 图标颜色 */\n color?: string;\n /** 类名前缀,用于使用自定义图标 */\n classPrefix?: string;\n spin?: boolean;\n cursor?: boolean;\n scale?: number\n}\n\nconst emit = defineEmits(['click']);\n\ndefineProps({\n \"dot\": { type: Boolean, },\n \"icon\": null,\n \"size\": null,\n \"badge\": null,\n \"color\": null,\n \"classPrefix\": null,\n \"spin\": { type: Boolean, },\n \"cursor\": { type: Boolean, },\n \"scale\": null\n})\n\n\n\n;\n\nconst style = computed(() => {\n const _style: CSSProperties = {};\n if (__props.color) {\n _style['color'] = __props.color;\n }\n if (__props.size) {\n _style['fontSize'] = addUnit(__props.size);\n }\n if (__props.spin) {\n _style['animation'] = 'vft-rotate 1s linear 0s infinite';\n }\n if (__props.cursor) {\n _style['cursor'] = 'pointer';\n }\n if (__props.scale) {\n _style.transform = 'scale(0.8)';\n }\n return _style;\n});\n\nconst isImage = (name?: string) => name?.includes('/');\nconst isImageIcon = isImage(__props.icon);\n\n\nconst _classPrefix = computed(() => __props.classPrefix);\nconst classes = computed(() => (isImageIcon ? '' : [__props.icon.startsWith('vi-') ? 'vicon' : 'iconfont', `${_classPrefix.value || ''}${__props.icon}`]));\n</script>\n\n<template>\n\t<div>\n\t\t<slot></slot>\n\t</div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","computed","_style","__props","addUnit","isImageIcon","name","_classPrefix"],"mappings":"kVACA,MAAMA,EAAuBC,EAAAA,aAAa,MAAM,EAGhDC,EAA6BC,EAAAA,gBAAmB,CAC9C,KAAMH,EAAG,EAAE,CACb,CAAC,yMA0CaI,EAAAA,SAAS,IAAM,CAC3B,MAAMC,EAAwB,CAAA,EAC9B,OAAIC,EAAQ,QACHD,EAAA,MAAWC,EAAQ,OAExBA,EAAQ,OACVD,EAAO,SAAcE,EAAQ,QAAAD,EAAQ,IAAI,GAEvCA,EAAQ,OACVD,EAAO,UAAe,oCAEpBC,EAAQ,SACVD,EAAO,OAAY,WAEjBC,EAAQ,QACVD,EAAO,UAAY,cAEdA,CAAA,CACR,EAGK,MAAAG,GADWC,GAAkBA,GAAA,YAAAA,EAAM,SAAS,MACtBH,EAAQ,IAAI,EAGlCI,EAAeN,EAAA,SAAS,IAAME,EAAQ,WAAW,EACvCF,OAAAA,WAAS,IAAOI,EAAc,GAAK,CAACF,EAAQ,KAAK,WAAW,KAAK,EAAI,QAAU,WAAY,GAAGI,EAAa,OAAS,KAAKJ,EAAQ,MAAM,CAAE"}
|
package/lib/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./divider/index.js"),n=require("./icon/index.js"),o=require("./avatar/index.js"),u=require("./empty/index.js"),i=require("./result/index.js"),f=require("./exception/index.js"),t=require("./tabs/index.js"),s=require("./popper/index.js"),p=require("./collapse-transition/index.js"),V=require("./tooltip/index.js"),c=require("./popover/index.js"),e=require("./menu/index.js"),a=require("./empty/constants.js"),_=require("./tabs/types.js"),d=require("./popper/arrow.vue2.js"),l=require("./popper/trigger.vue2.js"),q=require("./popper/content.vue2.js");exports.VftDivider=r.VftDivider;exports.VftIcon=n.VftIcon;exports.VftAvatar=o.VftAvatar;exports.VftEmpty=u.VftEmpty;exports.VftResult=i.VftResult;exports.VftException=f.VftException;exports.VftTabPane=t.VftTabPane;exports.VftTabs=t.VftTabs;exports.VftPopper=s.VftPopper;exports.VftCollapseTransition=p.VftCollapseTransition;exports.VftTooltip=V.VftTooltip;exports.VftPopover=c.VftPopover;exports.VftMenu=e.VftMenu;exports.VftMenuItem=e.VftMenuItem;exports.VftMenuItemGroup=e.VftMenuItemGroup;exports.VftSubMenu=e.VftSubMenu;exports.EmptyEnum=a.EmptyEnum;exports.TabsRootContextKey=_.TabsRootContextKey;exports.VftPopperArrow=d.default;exports.VftPopperTrigger=l.default;exports.VftPopperContent=q.default;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|