vft 0.0.20 → 0.0.21

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.
Files changed (226) hide show
  1. package/dist/index.css +1 -1
  2. package/es/component.mjs +32 -30
  3. package/es/component.mjs.map +1 -1
  4. package/es/components/back-top/back-top.vue2.mjs +8 -6
  5. package/es/components/back-top/back-top.vue2.mjs.map +1 -1
  6. package/es/components/config-provider/config-provider.vue.d.ts +9 -0
  7. package/es/components/config-provider/config-provider.vue2.mjs +32 -23
  8. package/es/components/config-provider/config-provider.vue2.mjs.map +1 -1
  9. package/es/components/config-provider/constants.d.ts +2 -0
  10. package/es/components/config-provider/constants.mjs +3 -2
  11. package/es/components/config-provider/constants.mjs.map +1 -1
  12. package/es/components/config-provider/index.d.ts +8 -0
  13. package/es/components/config-provider/index.mjs +7 -6
  14. package/es/components/context-menu/context-menu.vue2.mjs +17 -10
  15. package/es/components/context-menu/context-menu.vue2.mjs.map +1 -1
  16. package/es/components/index.d.ts +3 -0
  17. package/es/components/index.mjs +87 -71
  18. package/es/components/index.mjs.map +1 -1
  19. package/es/components/loading/directive.d.ts +18 -0
  20. package/es/components/loading/directive.mjs +50 -0
  21. package/es/components/loading/directive.mjs.map +1 -0
  22. package/es/components/loading/index.d.ts +39 -0
  23. package/es/components/loading/index.mjs +19 -0
  24. package/es/components/loading/index.mjs.map +1 -0
  25. package/es/components/loading/loading.d.ts +27 -0
  26. package/es/components/loading/loading.mjs +122 -0
  27. package/es/components/loading/loading.mjs.map +1 -0
  28. package/es/components/loading/service.d.ts +3 -0
  29. package/es/components/loading/service.mjs +68 -0
  30. package/es/components/loading/service.mjs.map +1 -0
  31. package/es/components/loading/style/css.d.ts +0 -0
  32. package/es/components/loading/style/css.mjs +3 -0
  33. package/es/components/loading/style/css.mjs.map +1 -0
  34. package/es/components/loading/style/index.d.ts +0 -0
  35. package/es/components/loading/style/index.mjs +3 -0
  36. package/es/components/loading/style/index.mjs.map +1 -0
  37. package/es/components/loading/types.d.ts +25 -0
  38. package/es/components/loading/types.mjs +2 -0
  39. package/es/components/loading/types.mjs.map +1 -0
  40. package/es/components/menu/menu-item.vue2.mjs +4 -2
  41. package/es/components/menu/menu-item.vue2.mjs.map +1 -1
  42. package/es/components/menu/sub-menu.vue2.mjs +4 -2
  43. package/es/components/menu/sub-menu.vue2.mjs.map +1 -1
  44. package/es/components/message/index.d.ts +3 -0
  45. package/es/components/message/index.mjs +14 -0
  46. package/es/components/message/index.mjs.map +1 -0
  47. package/es/components/message/instance.d.ts +17 -0
  48. package/es/components/message/instance.mjs +16 -0
  49. package/es/components/message/instance.mjs.map +1 -0
  50. package/es/components/message/message.vue.d.ts +129 -0
  51. package/es/components/message/message.vue.mjs +5 -0
  52. package/es/components/message/message.vue.mjs.map +1 -0
  53. package/es/components/message/message.vue2.mjs +129 -0
  54. package/es/components/message/message.vue2.mjs.map +1 -0
  55. package/es/components/message/method.d.ts +4 -0
  56. package/es/components/message/method.mjs +98 -0
  57. package/es/components/message/method.mjs.map +1 -0
  58. package/es/components/message/style/css.d.ts +0 -0
  59. package/es/components/message/style/css.mjs +3 -0
  60. package/es/components/message/style/css.mjs.map +1 -0
  61. package/es/components/message/style/index.d.ts +0 -0
  62. package/es/components/message/style/index.mjs +3 -0
  63. package/es/components/message/style/index.mjs.map +1 -0
  64. package/es/components/message/types.d.ts +63 -0
  65. package/es/components/message/types.mjs +23 -0
  66. package/es/components/message/types.mjs.map +1 -0
  67. package/es/components/multiple-tabs/multiple-tabs.vue2.mjs +4 -2
  68. package/es/components/multiple-tabs/multiple-tabs.vue2.mjs.map +1 -1
  69. package/es/components/multiple-tabs/tab-content.vue2.mjs +18 -11
  70. package/es/components/multiple-tabs/tab-content.vue2.mjs.map +1 -1
  71. package/es/components/page-wrapper/index.d.ts +12 -0
  72. package/es/components/page-wrapper/index.mjs +11 -0
  73. package/es/components/page-wrapper/index.mjs.map +1 -0
  74. package/es/components/page-wrapper/page-wrapper.vue.d.ts +13 -0
  75. package/es/components/page-wrapper/page-wrapper.vue.mjs +5 -0
  76. package/es/components/page-wrapper/page-wrapper.vue.mjs.map +1 -0
  77. package/es/components/page-wrapper/page-wrapper.vue2.mjs +43 -0
  78. package/es/components/page-wrapper/page-wrapper.vue2.mjs.map +1 -0
  79. package/es/components/page-wrapper/style/css.d.ts +0 -0
  80. package/es/components/page-wrapper/style/css.mjs +3 -0
  81. package/es/components/page-wrapper/style/css.mjs.map +1 -0
  82. package/es/components/page-wrapper/style/index.d.ts +0 -0
  83. package/es/components/page-wrapper/style/index.mjs +3 -0
  84. package/es/components/page-wrapper/style/index.mjs.map +1 -0
  85. package/es/components/result/result.vue2.mjs +4 -2
  86. package/es/components/result/result.vue2.mjs.map +1 -1
  87. package/es/components/side-menu/side-menu.vue2.mjs +4 -2
  88. package/es/components/side-menu/side-menu.vue2.mjs.map +1 -1
  89. package/es/components/tabs/tab-nav.vue2.mjs +19 -17
  90. package/es/components/tabs/tab-nav.vue2.mjs.map +1 -1
  91. package/es/defaults.d.ts +1 -1
  92. package/es/defaults.mjs +4 -3
  93. package/es/defaults.mjs.map +1 -1
  94. package/es/index.d.ts +1 -1
  95. package/es/index.mjs +135 -119
  96. package/es/index.mjs.map +1 -1
  97. package/es/make-installer.d.ts +2 -1
  98. package/es/make-installer.mjs +8 -6
  99. package/es/make-installer.mjs.map +1 -1
  100. package/es/package.json.mjs +1 -1
  101. package/es/plugin.d.ts +3 -0
  102. package/es/plugin.mjs +10 -0
  103. package/es/plugin.mjs.map +1 -0
  104. package/es/style.css +1 -1
  105. package/es/theme-style/src/loading.scss.mjs +5 -0
  106. package/es/theme-style/src/loading.scss.mjs.map +1 -0
  107. package/es/theme-style/src/message.scss.mjs +5 -0
  108. package/es/theme-style/src/message.scss.mjs.map +1 -0
  109. package/es/theme-style/src/page-wrapper.scss.mjs +5 -0
  110. package/es/theme-style/src/page-wrapper.scss.mjs.map +1 -0
  111. package/lib/component.js +1 -1
  112. package/lib/component.js.map +1 -1
  113. package/lib/components/back-top/back-top.vue2.js +1 -1
  114. package/lib/components/back-top/back-top.vue2.js.map +1 -1
  115. package/lib/components/config-provider/config-provider.vue.d.ts +9 -0
  116. package/lib/components/config-provider/config-provider.vue2.js +1 -1
  117. package/lib/components/config-provider/config-provider.vue2.js.map +1 -1
  118. package/lib/components/config-provider/constants.d.ts +2 -0
  119. package/lib/components/config-provider/constants.js +1 -1
  120. package/lib/components/config-provider/constants.js.map +1 -1
  121. package/lib/components/config-provider/index.d.ts +8 -0
  122. package/lib/components/config-provider/index.js +1 -1
  123. package/lib/components/context-menu/context-menu.vue2.js +1 -1
  124. package/lib/components/context-menu/context-menu.vue2.js.map +1 -1
  125. package/lib/components/index.d.ts +3 -0
  126. package/lib/components/index.js +1 -1
  127. package/lib/components/loading/directive.d.ts +18 -0
  128. package/lib/components/loading/directive.js +2 -0
  129. package/lib/components/loading/directive.js.map +1 -0
  130. package/lib/components/loading/index.d.ts +39 -0
  131. package/lib/components/loading/index.js +2 -0
  132. package/lib/components/loading/index.js.map +1 -0
  133. package/lib/components/loading/loading.d.ts +27 -0
  134. package/lib/components/loading/loading.js +2 -0
  135. package/lib/components/loading/loading.js.map +1 -0
  136. package/lib/components/loading/service.d.ts +3 -0
  137. package/lib/components/loading/service.js +2 -0
  138. package/lib/components/loading/service.js.map +1 -0
  139. package/lib/components/loading/style/css.d.ts +0 -0
  140. package/lib/components/loading/style/css.js +2 -0
  141. package/lib/components/loading/style/css.js.map +1 -0
  142. package/lib/components/loading/style/index.d.ts +0 -0
  143. package/lib/components/loading/style/index.js +2 -0
  144. package/lib/components/loading/style/index.js.map +1 -0
  145. package/lib/components/loading/types.d.ts +25 -0
  146. package/lib/components/loading/types.js +2 -0
  147. package/lib/components/loading/types.js.map +1 -0
  148. package/lib/components/menu/menu-item.vue2.js +1 -1
  149. package/lib/components/menu/menu-item.vue2.js.map +1 -1
  150. package/lib/components/menu/sub-menu.vue2.js +1 -1
  151. package/lib/components/menu/sub-menu.vue2.js.map +1 -1
  152. package/lib/components/message/index.d.ts +3 -0
  153. package/lib/components/message/index.js +2 -0
  154. package/lib/components/message/index.js.map +1 -0
  155. package/lib/components/message/instance.d.ts +17 -0
  156. package/lib/components/message/instance.js +2 -0
  157. package/lib/components/message/instance.js.map +1 -0
  158. package/lib/components/message/message.vue.d.ts +129 -0
  159. package/lib/components/message/message.vue.js +2 -0
  160. package/lib/components/message/message.vue.js.map +1 -0
  161. package/lib/components/message/message.vue2.js +2 -0
  162. package/lib/components/message/message.vue2.js.map +1 -0
  163. package/lib/components/message/method.d.ts +4 -0
  164. package/lib/components/message/method.js +2 -0
  165. package/lib/components/message/method.js.map +1 -0
  166. package/lib/components/message/style/css.d.ts +0 -0
  167. package/lib/components/message/style/css.js +2 -0
  168. package/lib/components/message/style/css.js.map +1 -0
  169. package/lib/components/message/style/index.d.ts +0 -0
  170. package/lib/components/message/style/index.js +2 -0
  171. package/lib/components/message/style/index.js.map +1 -0
  172. package/lib/components/message/types.d.ts +63 -0
  173. package/lib/components/message/types.js +2 -0
  174. package/lib/components/message/types.js.map +1 -0
  175. package/lib/components/multiple-tabs/multiple-tabs.vue2.js +1 -1
  176. package/lib/components/multiple-tabs/multiple-tabs.vue2.js.map +1 -1
  177. package/lib/components/multiple-tabs/tab-content.vue2.js +1 -1
  178. package/lib/components/multiple-tabs/tab-content.vue2.js.map +1 -1
  179. package/lib/components/page-wrapper/index.d.ts +12 -0
  180. package/lib/components/page-wrapper/index.js +2 -0
  181. package/lib/components/page-wrapper/index.js.map +1 -0
  182. package/lib/components/page-wrapper/page-wrapper.vue.d.ts +13 -0
  183. package/lib/components/page-wrapper/page-wrapper.vue.js +2 -0
  184. package/lib/components/page-wrapper/page-wrapper.vue.js.map +1 -0
  185. package/lib/components/page-wrapper/page-wrapper.vue2.js +2 -0
  186. package/lib/components/page-wrapper/page-wrapper.vue2.js.map +1 -0
  187. package/lib/components/page-wrapper/style/css.d.ts +0 -0
  188. package/lib/components/page-wrapper/style/css.js +2 -0
  189. package/lib/components/page-wrapper/style/css.js.map +1 -0
  190. package/lib/components/page-wrapper/style/index.d.ts +0 -0
  191. package/lib/components/page-wrapper/style/index.js +2 -0
  192. package/lib/components/page-wrapper/style/index.js.map +1 -0
  193. package/lib/components/result/result.vue2.js +1 -1
  194. package/lib/components/result/result.vue2.js.map +1 -1
  195. package/lib/components/side-menu/side-menu.vue2.js +1 -1
  196. package/lib/components/side-menu/side-menu.vue2.js.map +1 -1
  197. package/lib/components/tabs/tab-nav.vue2.js +1 -1
  198. package/lib/components/tabs/tab-nav.vue2.js.map +1 -1
  199. package/lib/defaults.d.ts +1 -1
  200. package/lib/defaults.js +1 -1
  201. package/lib/defaults.js.map +1 -1
  202. package/lib/index.d.ts +1 -1
  203. package/lib/index.js +1 -1
  204. package/lib/index.js.map +1 -1
  205. package/lib/make-installer.d.ts +2 -1
  206. package/lib/make-installer.js +1 -1
  207. package/lib/make-installer.js.map +1 -1
  208. package/lib/package.json.js +1 -1
  209. package/lib/plugin.d.ts +3 -0
  210. package/lib/plugin.js +2 -0
  211. package/lib/plugin.js.map +1 -0
  212. package/lib/theme-style/src/loading.scss.js +2 -0
  213. package/lib/theme-style/src/loading.scss.js.map +1 -0
  214. package/lib/theme-style/src/message.scss.js +2 -0
  215. package/lib/theme-style/src/message.scss.js.map +1 -0
  216. package/lib/theme-style/src/page-wrapper.scss.js +2 -0
  217. package/lib/theme-style/src/page-wrapper.scss.js.map +1 -0
  218. package/package.json +1 -1
  219. package/theme-style/index.css +1 -1
  220. package/theme-style/src/index.scss +3 -0
  221. package/theme-style/src/loading.scss +112 -0
  222. package/theme-style/src/message.scss +111 -0
  223. package/theme-style/src/page-wrapper.scss +28 -0
  224. package/theme-style/vft-loading.css +1 -0
  225. package/theme-style/vft-message.css +1 -0
  226. package/theme-style/vft-page-wrapper.css +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"side-menu.vue2.js","sources":["../../../../../packages/components/side-menu/side-menu.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('side-menu')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script lang=\"tsx\" setup>\nimport { listenerRouteChange, type MenuType, useRouterHelper } from '@vft/router';\nimport { useSortable } from '@vft/use';\nimport { addUnit, generateCssVars, isNullOrUndefined, isUrl } from '@vft/utils';\nimport Sortable, { type SortableEvent } from 'sortablejs';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { VftMenu as Menu, VftSubMenu as SubMenu, VftMenuItem as MenuItem, VftIcon as Icon } from '@vft-ui/components';\nimport { ref, h, type VNode, computed, useSlots, onMounted, nextTick } from 'vue';\nimport { useRouter } from 'vue-router';\n\ninterface MenuConProps {\n menus: MenuType[];\n uniqueOpened?: boolean;\n collapse?: boolean;\n defaultActive?: string;\n width?: Numberish;\n collapseWidth?: Numberish;\n attrMapping?: {\n path?: string;\n children?: string;\n title?: string;\n index?: Numberish;\n icon?: string;\n };\n /** 系统内除去侧边栏的其他高度 */\n extraHeight?: number;\n /** 上下插槽的总体高度 */\n menuTopBottomHeight?: number;\n /** 显示底部折叠按钮 */\n showCollapse?: boolean;\n /** 排序配置 */\n dragOption?: Sortable.Options & {dragClassName: string};\n useMenuSelect?: boolean\n}\n\ndefineProps({\n \"menus\": null,\n \"uniqueOpened\": { type: Boolean, default: true },\n \"collapse\": { type: Boolean, default: false },\n \"defaultActive\": null,\n \"width\": null,\n \"collapseWidth\": { default: 50 },\n \"attrMapping\": null,\n \"extraHeight\": { default: 100 },\n \"menuTopBottomHeight\": { default: 40 },\n \"showCollapse\": { type: Boolean, default: false },\n \"dragOption\": null,\n \"useMenuSelect\": { type: Boolean, default: true }\n})\n\nconst emit = defineEmits(['update:collapse', 'dragEnd', 'select']);\n\n\n\nconst slots = useSlots();\n\n;\n\nconst _defaultActive = ref();\n\nconst _attrMapping = computed(() => {\n\treturn {\n path: 'path',\n children: 'children',\n title: 'title',\n index: 'path',\n icon: 'icon',\n ...__props.attrMapping\n };\n});\n\nlistenerRouteChange((route) => {\n if (!route || route.meta.hideSide) {\n return;\n }\n _defaultActive.value = route.path as string;\n});\n\nconst vSubMenu = (item: Record<string, any>, itemIndex: number): VNode => {\n const _path = item[_attrMapping.value.path!];\n const _title = item[_attrMapping.value.title!];\n const _children = item?.[_attrMapping.value.children!];\n const _index = item?.[_attrMapping.value.index!];\n const _icon = item?.[_attrMapping.value.icon!];\n\n return _children?.length\n ? h(\n // @ts-ignore\n SubMenu,\n {\n popperAppendToBody: true,\n key: _index || _path,\n index: _index || _path,\n title: _title,\n icon: _icon,\n popperClass: ns.e('popper')\n },\n {\n default: () => {\n return _children?.map((subItem: Record<string, any>, index: number) => {\n const subPath = subItem[_attrMapping.value.path!];\n const subIndex = subItem[_attrMapping.value.index!];\n const subIcon = subItem[_attrMapping.value.icon!];\n const subTitle = subItem[_attrMapping.value.title!];\n return subItem?.[_attrMapping.value.children!]?.length\n ? vSubMenu(subItem, index)\n : // @ts-ignore\n h(MenuItem, {\n key: subIndex || subPath,\n index: subIndex || subPath,\n route: subPath,\n icon: subIcon,\n title: subTitle,\n disabled: subItem.disabled\n });\n });\n }\n }\n )\n : h(MenuItem, {\n key: _index || _path,\n index: _index || _path,\n title: _title,\n route: _path,\n icon: _icon,\n disabled: item.disabled\n }, slots.menuItem ? () => slots.menuItem?.({ item, index: itemIndex }) : '');\n};\n\nconst vMenu = computed(() => {\n return h(\n Menu,\n {\n onSelect: __props.useMenuSelect ? handleSelect : () => {},\n defaultActive: __props.defaultActive || _defaultActive.value,\n class: [ns.e('con'), __props.dragOption?.dragClassName ? ns.e(__props.dragOption?.dragClassName) : ''],\n style: { height: `calc(100% - ${__props.menuTopBottomHeight}px)` },\n uniqueOpened: __props.uniqueOpened,\n collapse: __props.collapse,\n 'collapse-transition': false\n }, () =>\n __props.menus.map((item, index) => {\n return vSubMenu(item, index);\n })\n );\n});\n\nconst { go } = useRouterHelper();\nconst router = useRouter();\n\nasync function handleSelect (data: {route: string; indexPath: string[]}) {\n const path = data.route;\n\n let _path = data.route;\n\n if (data.indexPath.some((item) => isUrl(item))) {\n _path = data.indexPath.slice(-2).join('/');\n }\n const linkTarget = router.getRoutes().filter((item) => item.path === _path)?.[0]?.meta?.linkTarget;\n\n if (linkTarget) {\n go({ url: path, winOpenOpt: { target: linkTarget as TargetContext } });\n } else {\n go(path);\n }\n emit('select', data);\n}\n\nconst style = computed(() => {\n return {\n ...generateCssVars({ 'border-right': 'none' }, 'menu'),\n ...generateCssVars({ width: !__props.collapse ? addUnit(__props.width) : addUnit(__props.collapseWidth) }, 'side-menu'),\n height: `calc(100% - ${__props.extraHeight}px)`\n };\n});\n\nconst menuClass = computed(() => {\n return [ns.b(), ns.m('fixed')];\n});\n\nfunction onChangeCollapse () {\n emit('update:collapse', !__props.collapse);\n}\n\nonMounted(() => {\n nextTick(() => {\n if (__props.dragOption?.dragClassName) {\n const el = document.querySelectorAll('.' + ns.e(__props.dragOption?.dragClassName))?.[0] as HTMLElement;\n\n const { initSortable } = useSortable(el, {\n draggable: '.vft-menu-item',\n onEnd: (evt: SortableEvent) => {\n const { oldIndex, newIndex } = evt;\n if (isNullOrUndefined(oldIndex) || isNullOrUndefined(newIndex) || oldIndex === newIndex) {\n return;\n }\n emit('dragEnd', oldIndex, newIndex);\n },\n ...__props.dragOption\n });\n initSortable();\n }\n });\n});\n\ndefineRender(() => {\n return (\n <div class={menuClass.value} style={style.value}>\n {slots.top ? <div class={ns.e('top')}>{slots.top()}</div> : null}\n {vMenu.value}\n {slots.bottom ? (\n <div class={ns.e('bottom')}>{slots.bottom()}</div>\n ) : __props.showCollapse ? (\n <div onClick={onChangeCollapse} class={[ns.e('bottom'), ns.e('collapse')]}>\n <Icon style={{ transform: __props.collapse ? 'rotateY(180deg)' : '' }} icon=\"vi-collapse\"></Icon>\n </div>\n ) : null}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","slots","useSlots","_defaultActive","ref","_attrMapping","computed","path","children","title","index","icon","__props","attrMapping","listenerRouteChange","route","meta","hideSide","value","vSubMenu","item","itemIndex","_path","_title","_children","_index","_icon","length","h","SubMenu","popperAppendToBody","key","popperClass","e","default","map","subItem","subPath","subIndex","subIcon","subTitle","MenuItem","disabled","menuItem","vMenu","Menu","onSelect","useMenuSelect","handleSelect","defaultActive","class","dragOption","dragClassName","style","height","menuTopBottomHeight","uniqueOpened","collapse","menus","go","useRouterHelper","router","useRouter","data","indexPath","some","isUrl","slice","join","linkTarget","getRoutes","filter","url","winOpenOpt","target","emit","generateCssVars","width","addUnit","collapseWidth","extraHeight","menuClass","m","onChangeCollapse","onMounted","nextTick","el","document","querySelectorAll","initSortable","useSortable","draggable","onEnd","evt","oldIndex","newIndex","isNullOrUndefined","_createVNode","top","bottom","showCollapse","Icon","transform"],"mappings":"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"}
1
+ {"version":3,"file":"side-menu.vue2.js","sources":["../../../../../packages/components/side-menu/side-menu.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('side-menu')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script lang=\"tsx\" setup>\nimport { listenerRouteChange, type MenuType, useRouterHelper } from '@vft/router';\nimport { useSortable } from '@vft/use';\nimport { addUnit, generateCssVars, isNullOrUndefined, isUrl } from '@vft/utils';\nimport Sortable, { type SortableEvent } from 'sortablejs';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { VftMenu as Menu, VftSubMenu as SubMenu, VftMenuItem as MenuItem, VftIcon as Icon } from '@vft-ui/components';\nimport { ref, h, type VNode, computed, useSlots, onMounted, nextTick } from 'vue';\nimport { useRouter } from 'vue-router';\n\ninterface MenuConProps {\n menus: MenuType[];\n uniqueOpened?: boolean;\n collapse?: boolean;\n defaultActive?: string;\n width?: Numberish;\n collapseWidth?: Numberish;\n attrMapping?: {\n path?: string;\n children?: string;\n title?: string;\n index?: Numberish;\n icon?: string;\n };\n /** 系统内除去侧边栏的其他高度 */\n extraHeight?: number;\n /** 上下插槽的总体高度 */\n menuTopBottomHeight?: number;\n /** 显示底部折叠按钮 */\n showCollapse?: boolean;\n /** 排序配置 */\n dragOption?: Sortable.Options & {dragClassName: string};\n useMenuSelect?: boolean\n}\n\ndefineProps({\n \"menus\": null,\n \"uniqueOpened\": { type: Boolean, default: true },\n \"collapse\": { type: Boolean, default: false },\n \"defaultActive\": null,\n \"width\": null,\n \"collapseWidth\": { default: 50 },\n \"attrMapping\": null,\n \"extraHeight\": { default: 100 },\n \"menuTopBottomHeight\": { default: 40 },\n \"showCollapse\": { type: Boolean, default: false },\n \"dragOption\": null,\n \"useMenuSelect\": { type: Boolean, default: true }\n})\n\nconst emit = defineEmits(['update:collapse', 'dragEnd', 'select']);\n\n\n\nconst slots = useSlots();\n\n;\n\nconst _defaultActive = ref();\n\nconst _attrMapping = computed(() => {\n\treturn {\n path: 'path',\n children: 'children',\n title: 'title',\n index: 'path',\n icon: 'icon',\n ...__props.attrMapping\n };\n});\n\nlistenerRouteChange((route) => {\n if (!route || route.meta.hideSide) {\n return;\n }\n _defaultActive.value = route.path as string;\n});\n\nconst vSubMenu = (item: Record<string, any>, itemIndex: number): VNode => {\n const _path = item[_attrMapping.value.path!];\n const _title = item[_attrMapping.value.title!];\n const _children = item?.[_attrMapping.value.children!];\n const _index = item?.[_attrMapping.value.index!];\n const _icon = item?.[_attrMapping.value.icon!];\n\n return _children?.length\n ? h(\n // @ts-ignore\n SubMenu,\n {\n popperAppendToBody: true,\n key: _index || _path,\n index: _index || _path,\n title: _title,\n icon: _icon,\n popperClass: ns.e('popper')\n },\n {\n default: () => {\n return _children?.map((subItem: Record<string, any>, index: number) => {\n const subPath = subItem[_attrMapping.value.path!];\n const subIndex = subItem[_attrMapping.value.index!];\n const subIcon = subItem[_attrMapping.value.icon!];\n const subTitle = subItem[_attrMapping.value.title!];\n return subItem?.[_attrMapping.value.children!]?.length\n ? vSubMenu(subItem, index)\n : // @ts-ignore\n h(MenuItem, {\n key: subIndex || subPath,\n index: subIndex || subPath,\n route: subPath,\n icon: subIcon,\n title: subTitle,\n disabled: subItem.disabled\n });\n });\n }\n }\n )\n : h(MenuItem, {\n key: _index || _path,\n index: _index || _path,\n title: _title,\n route: _path,\n icon: _icon,\n disabled: item.disabled\n }, slots.menuItem ? () => slots.menuItem?.({ item, index: itemIndex }) : '');\n};\n\nconst vMenu = computed(() => {\n return h(\n Menu,\n {\n onSelect: __props.useMenuSelect ? handleSelect : () => {},\n defaultActive: __props.defaultActive || _defaultActive.value,\n class: [ns.e('con'), __props.dragOption?.dragClassName ? ns.e(__props.dragOption?.dragClassName) : ''],\n style: { height: `calc(100% - ${__props.menuTopBottomHeight}px)` },\n uniqueOpened: __props.uniqueOpened,\n collapse: __props.collapse,\n 'collapse-transition': false\n }, () =>\n __props.menus.map((item, index) => {\n return vSubMenu(item, index);\n })\n );\n});\n\nconst { go } = useRouterHelper();\nconst router = useRouter();\n\nasync function handleSelect (data: {route: string; indexPath: string[]}) {\n const path = data.route;\n\n let _path = data.route;\n\n if (data.indexPath.some((item) => isUrl(item))) {\n _path = data.indexPath.slice(-2).join('/');\n }\n const linkTarget = router.getRoutes().filter((item) => item.path === _path)?.[0]?.meta?.linkTarget;\n\n if (linkTarget) {\n go({ url: path, winOpenOpt: { target: linkTarget as TargetContext } });\n } else {\n go(path);\n }\n emit('select', data);\n}\n\nconst style = computed(() => {\n return {\n ...generateCssVars({ 'border-right': 'none' }, 'menu'),\n ...generateCssVars({ width: !__props.collapse ? addUnit(__props.width) : addUnit(__props.collapseWidth) }, 'side-menu'),\n height: `calc(100% - ${__props.extraHeight}px)`\n };\n});\n\nconst menuClass = computed(() => {\n return [ns.b(), ns.m('fixed')];\n});\n\nfunction onChangeCollapse () {\n emit('update:collapse', !__props.collapse);\n}\n\nonMounted(() => {\n nextTick(() => {\n if (__props.dragOption?.dragClassName) {\n const el = document.querySelectorAll('.' + ns.e(__props.dragOption?.dragClassName))?.[0] as HTMLElement;\n\n const { initSortable } = useSortable(el, {\n draggable: '.vft-menu-item',\n onEnd: (evt: SortableEvent) => {\n const { oldIndex, newIndex } = evt;\n if (isNullOrUndefined(oldIndex) || isNullOrUndefined(newIndex) || oldIndex === newIndex) {\n return;\n }\n emit('dragEnd', oldIndex, newIndex);\n },\n ...__props.dragOption\n });\n initSortable();\n }\n });\n});\n\ndefineRender(() => {\n return (\n <div class={menuClass.value} style={style.value}>\n {slots.top ? <div class={ns.e('top')}>{slots.top()}</div> : null}\n {vMenu.value}\n {slots.bottom ? (\n <div class={ns.e('bottom')}>{slots.bottom()}</div>\n ) : __props.showCollapse ? (\n <div onClick={onChangeCollapse} class={[ns.e('bottom'), ns.e('collapse')]}>\n <Icon style={{ transform: __props.collapse ? 'rotateY(180deg)' : '' }} icon=\"vi-collapse\"></Icon>\n </div>\n ) : null}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","slots","useSlots","_defaultActive","ref","_attrMapping","computed","path","children","title","index","icon","__props","attrMapping","listenerRouteChange","route","meta","hideSide","value","vSubMenu","item","itemIndex","_path","_title","_children","_index","_icon","length","h","SubMenu","popperAppendToBody","key","popperClass","e","default","map","subItem","subPath","subIndex","subIcon","subTitle","MenuItem","disabled","menuItem","vMenu","Menu","onSelect","useMenuSelect","handleSelect","defaultActive","class","dragOption","dragClassName","style","height","menuTopBottomHeight","uniqueOpened","collapse","menus","go","useRouterHelper","router","useRouter","data","indexPath","some","isUrl","slice","join","linkTarget","getRoutes","filter","url","winOpenOpt","target","emit","generateCssVars","width","addUnit","collapseWidth","extraHeight","menuClass","m","onChangeCollapse","onMounted","nextTick","el","document","querySelectorAll","initSortable","useSortable","draggable","onEnd","evt","oldIndex","newIndex","isNullOrUndefined","_createVNode","top","bottom","showCollapse","Icon","transform"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("@vue/shared");const G=require("../../utils/error.js");require("../divider/index.js");const V=require("../icon/index.js");require("../avatar/index.js");require("../empty/index.js");require("../result/index.js");require("../exception/index.js");require("./index.js");require("../popper/index.js");require("../collapse-transition/index.js");require("../tooltip/index.js");require("../popover/index.js");require("../menu/index.js");const w=require("@vft/utils");require("@vft/use");require("../multiple-tabs/index.js");require("../header-layout/index.js");require("../footer-layout/index.js");require("../iframe-layout/index.js");require("../router-view-content/index.js");require("../logo/index.js");require("../back-top/index.js");require("../config-provider/index.js");require("../descriptions/index.js");require("../full-screen/index.js");require("../icon-text/index.js");require("../image/index.js");require("../input/index.js");require("../link/index.js");require("../pagination/index.js");require("../tag/index.js");require("../side-menu/index.js");require("../qrcode/index.js");require("../overlay/index.js");require("../clamp/index.js");require("../clamp-toggle/index.js");const R=require("../../hooks/use-namespace/index.js");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.js");const T=require("@vueuse/core"),x=require("@vft/constants"),J=require("./types.js"),Q=require("./tab-bar.vue2.js"),P=R.useNamespace("tab-nav"),Z=t.defineComponent({name:P.b()}),_=t.defineComponent({...Z,props:{panes:null,editable:{type:Boolean},addable:{type:Boolean},type:null,stretch:{type:Boolean},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:["tabClick","tabRemove","tabAdd","tabContextmenu"],setup(a,{expose:A,emit:m}){var E;const D=t.getCurrentInstance(),q=t.inject(J.TabsRootContextKey);q||G.throwError(P.b(),"<vft-tabs><tab-nav /></vft-tabs>");const n=R.useNamespace("tabs"),F=T.useDocumentVisibility(),L=T.useWindowFocus(),N=t.ref(),b=t.ref(),C=t.ref(),f=t.ref(!1),d=t.ref(0),y=t.ref(!1),p=t.ref(!0),h=t.computed(()=>["top","bottom"].includes(q.props.tabPosition)?"width":"height"),M=t.computed(()=>({transform:`translate${h.value==="width"?"X":"Y"}(-${d.value}px)`})),K=()=>{if(!b.value)return;const o=b.value[`offset${w.capitalize(h.value)}`],e=d.value;e&&(d.value=e>o?e-o:0)},j=()=>{if(!b.value||!C.value)return;const o=C.value[`offset${w.capitalize(h.value)}`],e=b.value[`offset${w.capitalize(h.value)}`],r=d.value;o-r<=e||(d.value=o-r>e*2?r+e:o-e)},$=async()=>{const o=C.value;if(!f.value||!N.value||!b.value||!o)return;await t.nextTick();const e=N.value.querySelector(".is-active");if(!e)return;const r=b.value,g=["top","bottom"].includes(q.props.tabPosition),i=e.getBoundingClientRect(),l=r.getBoundingClientRect(),u=g?o.offsetWidth-l.width:o.offsetHeight-l.height,c=d.value;let s=c;g?(i.left<l.left&&(s=c-(l.left-i.left)),i.right>l.right&&(s=c+i.right-l.right)):(i.top<l.top&&(s=c-(l.top-i.top)),i.bottom>l.bottom&&(s=c+(i.bottom-l.bottom))),s=Math.max(s,0),d.value=Math.min(s,u)},O=()=>{if(!C.value||!b.value)return;const o=C.value[`offset${w.capitalize(h.value)}`],e=b.value[`offset${w.capitalize(h.value)}`],r=d.value;e<o?(f.value=f.value||{},f.value.prev=r,f.value.next=r+e<o,o-r<e&&(d.value=o-e)):(f.value=!1,r>0&&(d.value=0))},H=o=>{const e=o.code,{up:r,down:g,left:i,right:l}=x.EVENT_CODE;if(![r,g,i,l].includes(e))return;const u=Array.from(o.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),c=u.indexOf(o.target);let s;e===i||e===r?c===0?s=u.length-1:s=c-1:c<u.length-1?s=c+1:s=0,u[s].focus(),u[s].click(),z()},z=()=>{p.value&&(y.value=!0)},I=()=>y.value=!1;t.watch(F,o=>{o==="hidden"?p.value=!1:o==="visible"&&setTimeout(()=>p.value=!0,50)}),t.watch(L,o=>{o?setTimeout(()=>p.value=!0,50):p.value=!1}),T.useResizeObserver(N,O),t.onMounted(()=>setTimeout(()=>$(),0)),t.onUpdated(()=>O()),A({scrollToActiveTab:$,removeFocus:I}),t.watch(()=>a.panes,()=>D.update(),{flush:"post"});const W=t.computed(()=>{var o,e;return f.value?[t.createVNode("span",{class:[n.e("nav-prev"),n.is("disabled",!f.value.prev)],onClick:K},[(o=a.arrowLeftIconCfg)!=null&&o.icon?t.createVNode(V.VftIcon,a.arrowLeftIconCfg,null):null]),t.createVNode("span",{class:[n.e("nav-next"),n.is("disabled",!f.value.next)],onClick:j},[(e=a.arrowRightIconCfg)!=null&&e.icon?t.createVNode(V.VftIcon,a.arrowRightIconCfg,null):null])]:null}),U=t.computed(()=>{var o;return(o=a.panes)==null?void 0:o.map((e,r)=>{var S,k,B;const g=e.uid,i=e.props.disabled,l=e.props.name??e.index??`${r}`,u=!i&&(e.isClosable||a.editable);e.index=`${r}`;const c=u?t.createVNode("span",{class:"is-icon-close",onClick:v=>m("tabRemove",e,v)},[(S=a.closeIconCfg)!=null&&S.icon?t.createVNode(V.VftIcon,a.closeIconCfg,null):null]):null,s=((B=(k=e.slots).label)==null?void 0:B.call(k))||e.props.label,Y=!i&&e.active?0:-1;return t.createVNode("div",{ref:`tab-${g}`,class:[n.e("item"),n.is(q.props.tabPosition),n.is("active",e.active),n.is("disabled",i),n.is("closable",u),n.is("focus",y.value)],id:`tab-${l}`,key:`tab-${g}`,"aria-controls":`pane-${l}`,role:"tab","aria-selected":e.active,tabindex:Y,onFocus:()=>z(),onBlur:()=>I(),onClick:v=>{I(),m("tabClick",e,l,v)},onContextmenu:v=>{v.preventDefault(),m("tabContextmenu",{pane:e,index:r,event:v})},onKeydown:v=>{u&&(v.code===x.EVENT_CODE.delete||v.code===x.EVENT_CODE.backspace)&&m("tabRemove",e,v)}},[s,c])})}),X=a.editable||a.addable?t.createVNode("span",{class:n.e("new-tab"),tabindex:"0",onClick:()=>m("tabAdd"),onKeydown:o=>{o.code===x.EVENT_CODE.enter&&m("tabAdd")}},[(E=a.addIconCfg)!=null&&E.icon?t.createVNode(V.VftIcon,a.addIconCfg,null):null]):null;return()=>t.createVNode("div",{ref:N,class:[n.e("nav-wrap"),n.is("scrollable",!!f.value),n.is(q.props.tabPosition)]},[W.value,t.createVNode("div",{class:n.e("nav-scroll"),ref:b},[t.createVNode("div",{class:[n.e("nav"),n.is(q.props.tabPosition),n.is("stretch",a.stretch&&["top","bottom"].includes(q.props.tabPosition))],ref:C,style:M.value,role:"tablist",onKeydown:H},[a.type?null:t.createVNode(Q.default,{tabs:[...a.panes]},null),U.value]),X])])}});exports.default=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("@vue/shared");const G=require("../../utils/error.js");require("../divider/index.js");const V=require("../icon/index.js");require("../avatar/index.js");require("../empty/index.js");require("../result/index.js");require("../exception/index.js");require("./index.js");require("../popper/index.js");require("../collapse-transition/index.js");require("../tooltip/index.js");require("../popover/index.js");require("../menu/index.js");const w=require("@vft/utils");require("@vft/use");require("../multiple-tabs/index.js");require("../header-layout/index.js");require("../footer-layout/index.js");require("../iframe-layout/index.js");require("../router-view-content/index.js");require("../logo/index.js");require("../back-top/index.js");require("../config-provider/index.js");require("../descriptions/index.js");require("../full-screen/index.js");require("../icon-text/index.js");require("../image/index.js");require("../input/index.js");require("../link/index.js");require("../pagination/index.js");require("../tag/index.js");require("../side-menu/index.js");require("../qrcode/index.js");require("../overlay/index.js");require("../clamp/index.js");require("../clamp-toggle/index.js");require("../page-wrapper/index.js");require("../message/index.js");const R=require("../../hooks/use-namespace/index.js");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.js");const T=require("@vueuse/core"),x=require("@vft/constants"),J=require("./types.js"),Q=require("./tab-bar.vue2.js"),P=R.useNamespace("tab-nav"),Z=t.defineComponent({name:P.b()}),_=t.defineComponent({...Z,props:{panes:null,editable:{type:Boolean},addable:{type:Boolean},type:null,stretch:{type:Boolean},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:["tabClick","tabRemove","tabAdd","tabContextmenu"],setup(a,{expose:A,emit:m}){var E;const D=t.getCurrentInstance(),q=t.inject(J.TabsRootContextKey);q||G.throwError(P.b(),"<vft-tabs><tab-nav /></vft-tabs>");const n=R.useNamespace("tabs"),F=T.useDocumentVisibility(),L=T.useWindowFocus(),N=t.ref(),b=t.ref(),C=t.ref(),f=t.ref(!1),d=t.ref(0),y=t.ref(!1),p=t.ref(!0),h=t.computed(()=>["top","bottom"].includes(q.props.tabPosition)?"width":"height"),M=t.computed(()=>({transform:`translate${h.value==="width"?"X":"Y"}(-${d.value}px)`})),K=()=>{if(!b.value)return;const o=b.value[`offset${w.capitalize(h.value)}`],e=d.value;e&&(d.value=e>o?e-o:0)},j=()=>{if(!b.value||!C.value)return;const o=C.value[`offset${w.capitalize(h.value)}`],e=b.value[`offset${w.capitalize(h.value)}`],r=d.value;o-r<=e||(d.value=o-r>e*2?r+e:o-e)},$=async()=>{const o=C.value;if(!f.value||!N.value||!b.value||!o)return;await t.nextTick();const e=N.value.querySelector(".is-active");if(!e)return;const r=b.value,g=["top","bottom"].includes(q.props.tabPosition),i=e.getBoundingClientRect(),l=r.getBoundingClientRect(),c=g?o.offsetWidth-l.width:o.offsetHeight-l.height,u=d.value;let s=u;g?(i.left<l.left&&(s=u-(l.left-i.left)),i.right>l.right&&(s=u+i.right-l.right)):(i.top<l.top&&(s=u-(l.top-i.top)),i.bottom>l.bottom&&(s=u+(i.bottom-l.bottom))),s=Math.max(s,0),d.value=Math.min(s,c)},O=()=>{if(!C.value||!b.value)return;const o=C.value[`offset${w.capitalize(h.value)}`],e=b.value[`offset${w.capitalize(h.value)}`],r=d.value;e<o?(f.value=f.value||{},f.value.prev=r,f.value.next=r+e<o,o-r<e&&(d.value=o-e)):(f.value=!1,r>0&&(d.value=0))},H=o=>{const e=o.code,{up:r,down:g,left:i,right:l}=x.EVENT_CODE;if(![r,g,i,l].includes(e))return;const c=Array.from(o.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),u=c.indexOf(o.target);let s;e===i||e===r?u===0?s=c.length-1:s=u-1:u<c.length-1?s=u+1:s=0,c[s].focus(),c[s].click(),z()},z=()=>{p.value&&(y.value=!0)},I=()=>y.value=!1;t.watch(F,o=>{o==="hidden"?p.value=!1:o==="visible"&&setTimeout(()=>p.value=!0,50)}),t.watch(L,o=>{o?setTimeout(()=>p.value=!0,50):p.value=!1}),T.useResizeObserver(N,O),t.onMounted(()=>setTimeout(()=>$(),0)),t.onUpdated(()=>O()),A({scrollToActiveTab:$,removeFocus:I}),t.watch(()=>a.panes,()=>D.update(),{flush:"post"});const W=t.computed(()=>{var o,e;return f.value?[t.createVNode("span",{class:[n.e("nav-prev"),n.is("disabled",!f.value.prev)],onClick:K},[(o=a.arrowLeftIconCfg)!=null&&o.icon?t.createVNode(V.VftIcon,a.arrowLeftIconCfg,null):null]),t.createVNode("span",{class:[n.e("nav-next"),n.is("disabled",!f.value.next)],onClick:j},[(e=a.arrowRightIconCfg)!=null&&e.icon?t.createVNode(V.VftIcon,a.arrowRightIconCfg,null):null])]:null}),U=t.computed(()=>{var o;return(o=a.panes)==null?void 0:o.map((e,r)=>{var S,k,B;const g=e.uid,i=e.props.disabled,l=e.props.name??e.index??`${r}`,c=!i&&(e.isClosable||a.editable);e.index=`${r}`;const u=c?t.createVNode("span",{class:"is-icon-close",onClick:v=>m("tabRemove",e,v)},[(S=a.closeIconCfg)!=null&&S.icon?t.createVNode(V.VftIcon,a.closeIconCfg,null):null]):null,s=((B=(k=e.slots).label)==null?void 0:B.call(k))||e.props.label,Y=!i&&e.active?0:-1;return t.createVNode("div",{ref:`tab-${g}`,class:[n.e("item"),n.is(q.props.tabPosition),n.is("active",e.active),n.is("disabled",i),n.is("closable",c),n.is("focus",y.value)],id:`tab-${l}`,key:`tab-${g}`,"aria-controls":`pane-${l}`,role:"tab","aria-selected":e.active,tabindex:Y,onFocus:()=>z(),onBlur:()=>I(),onClick:v=>{I(),m("tabClick",e,l,v)},onContextmenu:v=>{v.preventDefault(),m("tabContextmenu",{pane:e,index:r,event:v})},onKeydown:v=>{c&&(v.code===x.EVENT_CODE.delete||v.code===x.EVENT_CODE.backspace)&&m("tabRemove",e,v)}},[s,u])})}),X=a.editable||a.addable?t.createVNode("span",{class:n.e("new-tab"),tabindex:"0",onClick:()=>m("tabAdd"),onKeydown:o=>{o.code===x.EVENT_CODE.enter&&m("tabAdd")}},[(E=a.addIconCfg)!=null&&E.icon?t.createVNode(V.VftIcon,a.addIconCfg,null):null]):null;return()=>t.createVNode("div",{ref:N,class:[n.e("nav-wrap"),n.is("scrollable",!!f.value),n.is(q.props.tabPosition)]},[W.value,t.createVNode("div",{class:n.e("nav-scroll"),ref:b},[t.createVNode("div",{class:[n.e("nav"),n.is(q.props.tabPosition),n.is("stretch",a.stretch&&["top","bottom"].includes(q.props.tabPosition))],ref:C,style:M.value,role:"tablist",onKeydown:H},[a.type?null:t.createVNode(Q.default,{tabs:[...a.panes]},null),U.value]),X])])}});exports.default=_;
2
2
  //# sourceMappingURL=tab-nav.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-nav.vue2.js","sources":["../../../../../packages/components/tabs/tab-nav.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns_nav = /* hoist-static*/ useNamespace('tab-nav')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: ns_nav.b()\n});</script>\n<script lang=\"tsx\" setup>\nimport { throwError } from '@vft-ui/utils';\nimport {\n computed,\n type CSSProperties,\n getCurrentInstance,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n watch\n} from 'vue';\nimport { type IconProps, VftIcon } from '@vft-ui/components';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { capitalize } from '@vft/utils';\nimport { EVENT_CODE } from '@vft/constants';\nimport { TabsRootContextKey } from './types';\nimport type { TabsPaneContext, TabsType, Scrollable } from './types';\nimport { useDocumentVisibility, useResizeObserver, useWindowFocus } from '@vueuse/core';\nimport TabBar from './tab-bar.vue';\n\ninterface TabNavProps {\n panes: TabsPaneContext[];\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** tab 类型 */\n type?: TabsType;\n stretch?: boolean;\n /** 图标配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"panes\": null,\n \"editable\": { type: Boolean, },\n \"addable\": { type: Boolean, },\n \"type\": null,\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits(['tabClick', 'tabRemove', 'tabAdd', 'tabContextmenu']);\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\n// 获取从 index.vue 提供的数据信息\nconst rootTabs = inject(TabsRootContextKey)!;\nif (!rootTabs) throwError(ns_nav.b(), `<vft-tabs><tab-nav /></vft-tabs>`)\n\nconst ns = useNamespace('tabs');\nconst visibility = useDocumentVisibility();\nconst focused = useWindowFocus();\n\n// 整个 nav dom 包含前进后退 btn (vft-tabs__nav-wrap)\nconst el$ = ref<HTMLDivElement>();\n// el$ 子节点 包含 newButton (vft-tabs__nav-scroll)\nconst navScroll$ = ref<HTMLDivElement>();\n// navScroll$ 子节点 (vft-tabs__nav)\nconst nav$ = ref<HTMLDivElement>();\n\n/** 是否展示左右滚动 */\nconst scrollable = ref<false | Scrollable>(false);\n// 记录滚动时的偏移量\nconst navOffset = ref(0);\nconst isFocus = ref(false);\nconst focusable = ref(true);\n\n// 根据 tabPosition 确定 sizeName 是 width or height\nconst sizeName = computed(() => ['top', 'bottom'].includes(rootTabs.props.tabPosition!) ? 'width' : 'height');\n\n// 设置 tab 导航栏的 translateX or translateY 的偏移量\nconst navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y';\n return {\n transform: `translate${dir}(-${navOffset.value}px)`\n };\n});\n\n// 向前滚动\nconst scrollPrev = () => {\n if (!navScroll$.value) return;\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`];\n const currentOffset = navOffset.value;\n\n if (!currentOffset) return;\n\n navOffset.value = currentOffset > containerSize ? currentOffset - containerSize : 0;\n};\n\n// 向后滚动\nconst scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return;\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`];\n const currentOffset = navOffset.value;\n\n if (navSize - currentOffset <= containerSize) return;\n\n navOffset.value = navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize;\n};\n\n// 滚动到激活的 tab 主要是获取 navOffset 的值\nconst scrollToActiveTab = async() => {\n const nav = nav$.value;\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return;\n\n await nextTick();\n\n const activeTab = el$.value.querySelector('.is-active');\n if (!activeTab) return;\n\n const navScroll = navScroll$.value;\n const isHorizontal = ['top', 'bottom'].includes(\n rootTabs.props.tabPosition!\n );\n const activeTabBounding = activeTab.getBoundingClientRect();\n // vft-tabs__nav-scroll\n const navScrollBounding = navScroll.getBoundingClientRect();\n const maxOffset = isHorizontal\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height;\n\n const currentOffset = navOffset.value;\n\n let newOffset = currentOffset;\n\n if (isHorizontal) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left);\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right;\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top);\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom);\n }\n }\n newOffset = Math.max(newOffset, 0);\n navOffset.value = Math.min(newOffset, maxOffset);\n};\n\nconst update = () => {\n if (!nav$.value || !navScroll$.value) return;\n // 根据 position 的不同 获取 nav$(vft-tabs__nav) 的 offsetWidth or offsetHeight\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];\n // 获取到 navScroll$ 的 offsetWidth or offsetHeight\n const containerSize = navScroll$.value[`offset${capitalize(sizeName.value)}`];\n // 获取到当前的偏移量\n const currentOffset = navOffset.value;\n // 由于 navScroll$ 的 overflow 是 hidden,所以当 vft-tabs__nav 撑开时其宽度可能会超过 vft-tabs__nav-scroll\n if (containerSize < navSize) {\n scrollable.value = scrollable.value || {};\n scrollable.value.prev = currentOffset;\n scrollable.value.next = currentOffset + containerSize < navSize;\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize;\n }\n } else {\n scrollable.value = false;\n if (currentOffset > 0) {\n navOffset.value = 0;\n }\n }\n};\n\nconst changeTab = (e: KeyboardEvent) => {\n const code = e.code;\n\n const { up, down, left, right } = EVENT_CODE;\n if (![up, down, left, right].includes(code)) return;\n\n // 左右上下键更换tab\n const tabList = Array.from(\n (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(\n '[role=tab]:not(.is-disabled)'\n )\n );\n const currentIndex = tabList.indexOf(e.target as HTMLDivElement);\n\n let nextIndex: number;\n if (code === left || code === up) {\n // left\n if (currentIndex === 0) {\n // first\n nextIndex = tabList.length - 1;\n } else {\n nextIndex = currentIndex - 1;\n }\n } else {\n // right\n if (currentIndex < tabList.length - 1) {\n // not last\n nextIndex = currentIndex + 1;\n } else {\n nextIndex = 0;\n }\n }\n tabList[nextIndex].focus(); // 改变焦点元素\n tabList[nextIndex].click(); // 选中下一个tab\n setFocus();\n};\n\nconst setFocus = () => {\n if (focusable.value) isFocus.value = true;\n};\nconst removeFocus = () => (isFocus.value = false);\n\nwatch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false;\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50);\n }\n});\n\nwatch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50);\n } else {\n focusable.value = false;\n }\n});\n\n// 监听 resize 触发 update\nuseResizeObserver(el$, update);\n\nonMounted(() => setTimeout(() => scrollToActiveTab(), 0));\nonUpdated(() => update());\n\ndefineExpose({\n scrollToActiveTab,\n removeFocus\n});\n\nwatch(\n () => __props.panes,\n () => vm.update(),\n { flush: 'post' }\n);\n\n// 前进后退标签\nconst scrollBtn = computed(() => {\n return scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev)\n ]}\n onClick={scrollPrev}\n >\n {__props.arrowLeftIconCfg?.icon ? <VftIcon {...__props.arrowLeftIconCfg}></VftIcon> : null}\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next)\n ]}\n onClick={scrollNext}\n >\n {__props.arrowRightIconCfg?.icon ? <VftIcon {...__props.arrowRightIconCfg}></VftIcon> : null}\n </span>\n ]\n : null;\n});\n\n// 渲染 tab-pane\nconst tabs = computed(() => {\n return __props.panes?.map((pane, index) => {\n const uid = pane.uid;\n const disabled = pane.props.disabled;\n const tabName = pane.props.name ?? pane.index ?? `${index}`;\n const closable = !disabled && (pane.isClosable || __props.editable);\n pane.index = `${index}`;\n\n // 关闭标签图标\n const btnClose = closable ? (\n <span class=\"is-icon-close\" onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}>\n {__props.closeIconCfg?.icon ? <VftIcon {...__props.closeIconCfg}></VftIcon> : null}\n </span>\n ) : null;\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label;\n const tabindex = !disabled && pane.active ? 0 : -1;\n\n return (\n <div\n ref={`tab-${uid}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition!),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value)\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus();\n emit('tabClick', pane, tabName, ev);\n }}\n onContextmenu={(event) => {\n event.preventDefault();\n emit('tabContextmenu', { pane, index, event });\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev);\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n );\n });\n});\n\n// 增加 tab 的 dom\nconst newButton =\n __props.editable || __props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={() => emit('tabAdd')}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) emit('tabAdd');\n }}\n >\n {__props.addIconCfg?.icon ? <VftIcon {...__props.addIconCfg}></VftIcon> : null}\n </span>\n ) : null;\n\ndefineRender(() => {\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition!)\n ]}\n >\n {scrollBtn.value}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition!),\n ns.is(\n 'stretch',\n __props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition!)\n )\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n >\n {...[\n !__props.type ? <TabBar tabs={[...__props.panes]} /> : null,\n tabs.value\n ]}\n </div>\n {newButton}\n </div>\n </div>\n );\n});\n</script>\n"],"names":["ns_nav","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","rootTabs","inject","TabsRootContextKey","throwError","ns","visibility","useDocumentVisibility","focused","useWindowFocus","el$","ref","navScroll$","nav$","scrollable","navOffset","isFocus","focusable","sizeName","computed","includes","props","tabPosition","navStyle","transform","value","scrollPrev","containerSize","capitalize","currentOffset","scrollNext","navSize","scrollToActiveTab","nav","nextTick","activeTab","querySelector","navScroll","isHorizontal","activeTabBounding","getBoundingClientRect","navScrollBounding","maxOffset","offsetWidth","width","offsetHeight","height","newOffset","left","right","top","bottom","Math","max","min","update","prev","next","changeTab","e","code","up","down","EVENT_CODE","tabList","Array","from","currentTarget","querySelectorAll","currentIndex","indexOf","target","nextIndex","length","focus","click","setFocus","removeFocus","watch","setTimeout","useResizeObserver","onMounted","onUpdated","expose","__props","panes","flush","scrollBtn","_createVNode","is","arrowLeftIconCfg","icon","VftIcon","arrowRightIconCfg","tabs","map","pane","index","uid","disabled","tabName","closable","isClosable","editable","btnClose","ev","emit","closeIconCfg","tabLabelContent","slots","label","tabindex","active","onFocus","onBlur","event","preventDefault","delete","backspace","newButton","addable","onClick","enter","addIconCfg","stretch","type","TabBar"],"mappings":"uiDACMA,EAA2BC,EAAAA,aAAa,SAAS,EAGvDC,EAA6BC,EAAAA,gBAAmB,CAC/CC,KAAMJ,EAAOK,EAAC,CACf,CAAC,wSAyDD,MAAMC,EAAKC,EAAAA,qBAGLC,EAAWC,SAAOC,EAAAA,kBAAkB,EACrCF,GAAUG,aAAWX,EAAOK,IAAM,kCAAiC,EAExE,MAAMO,EAAKX,eAAa,MAAM,EACxBY,EAAaC,EAAAA,wBACbC,EAAUC,EAAAA,iBAGVC,EAAMC,EAAAA,MAENC,EAAaD,EAAAA,MAEbE,EAAOF,EAAAA,MAGPG,EAAaH,MAAwB,EAAK,EAE1CI,EAAYJ,MAAI,CAAC,EACjBK,EAAUL,MAAI,EAAK,EACnBM,EAAYN,MAAI,EAAI,EAGpBO,EAAWC,EAAQ,SAAC,IAAM,CAAC,MAAO,QAAQ,EAAEC,SAASnB,EAASoB,MAAMC,WAAW,EAAK,QAAU,QAAQ,EAGtGC,EAAWJ,EAAAA,SAAwB,KAEhC,CACLK,UAAY,YAFFN,EAASO,QAAU,QAAU,IAAM,QAEdV,EAAUU,YAE5C,EAGKC,EAAaA,IAAM,CACvB,GAAI,CAACd,EAAWa,MAAO,OACvB,MAAME,EACJf,EAAWa,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAClDI,EAAgBd,EAAUU,MAE3BI,IAELd,EAAUU,MAAQI,EAAgBF,EAAgBE,EAAgBF,EAAgB,IAI9EG,EAAaA,IAAM,CACvB,GAAI,CAAClB,EAAWa,OAAS,CAACZ,EAAKY,MAAO,OAEtC,MAAMM,EAAUlB,EAAKY,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAC1DE,EACJf,EAAWa,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAClDI,EAAgBd,EAAUU,MAE5BM,EAAUF,GAAiBF,IAE/BZ,EAAUU,MAAQM,EAAUF,EAAgBF,EAAgB,EACxDE,EAAgBF,EAChBI,EAAUJ,IAIVK,EAAoB,SAAW,CACnC,MAAMC,EAAMpB,EAAKY,MACjB,GAAI,CAACX,EAAWW,OAAS,CAACf,EAAIe,OAAS,CAACb,EAAWa,OAAS,CAACQ,EAAK,OAElE,MAAMC,EAAQ,SAAA,EAEd,MAAMC,EAAYzB,EAAIe,MAAMW,cAAc,YAAY,EACtD,GAAI,CAACD,EAAW,OAEhB,MAAME,EAAYzB,EAAWa,MACvBa,EAAe,CAAC,MAAO,QAAQ,EAAElB,SACrCnB,EAASoB,MAAMC,WAAW,EAEtBiB,EAAoBJ,EAAUK,wBAE9BC,EAAoBJ,EAAUG,wBAC9BE,EAAYJ,EACdL,EAAIU,YAAcF,EAAkBG,MACpCX,EAAIY,aAAeJ,EAAkBK,OAEnCjB,EAAgBd,EAAUU,MAEhC,IAAIsB,EAAYlB,EAEZS,GACEC,EAAkBS,KAAOP,EAAkBO,OAC7CD,EACElB,GAAiBY,EAAkBO,KAAOT,EAAkBS,OAE5DT,EAAkBU,MAAQR,EAAkBQ,QAC9CF,EACElB,EAAgBU,EAAkBU,MAAQR,EAAkBQ,SAG5DV,EAAkBW,IAAMT,EAAkBS,MAC5CH,EACElB,GAAiBY,EAAkBS,IAAMX,EAAkBW,MAE3DX,EAAkBY,OAASV,EAAkBU,SAC/CJ,EACElB,GACCU,EAAkBY,OAASV,EAAkBU,UAGpDJ,EAAYK,KAAKC,IAAIN,EAAW,CAAC,EACjChC,EAAUU,MAAQ2B,KAAKE,IAAIP,EAAWL,CAAS,GAG3Ca,EAASA,IAAM,CACnB,GAAI,CAAC1C,EAAKY,OAAS,CAACb,EAAWa,MAAO,OAEtC,MAAMM,EAAUlB,EAAKY,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAE1DE,EAAgBf,EAAWa,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAEtEI,EAAgBd,EAAUU,MAE5BE,EAAgBI,GAClBjB,EAAWW,MAAQX,EAAWW,OAAS,CAAA,EACvCX,EAAWW,MAAM+B,KAAO3B,EACxBf,EAAWW,MAAMgC,KAAO5B,EAAgBF,EAAgBI,EACpDA,EAAUF,EAAgBF,IAC5BZ,EAAUU,MAAQM,EAAUJ,KAG9Bb,EAAWW,MAAQ,GACfI,EAAgB,IAClBd,EAAUU,MAAQ,KAKlBiC,EAAaC,GAAqB,CACtC,MAAMC,EAAOD,EAAEC,KAET,CAAEC,GAAAA,EAAIC,KAAAA,EAAMd,KAAAA,EAAMC,MAAAA,CAAO,EAAGc,aAClC,GAAI,CAAC,CAACF,EAAIC,EAAMd,EAAMC,CAAK,EAAE7B,SAASwC,CAAI,EAAG,OAG7C,MAAMI,EAAUC,MAAMC,KACnBP,EAAEQ,cAAiCC,iBAClC,8BAA8B,CAC/B,EAEGC,EAAeL,EAAQM,QAAQX,EAAEY,MAAM,EAE7C,IAAIC,EACAZ,IAASZ,GAAQY,IAASC,EAExBQ,IAAiB,EAEnBG,EAAYR,EAAQS,OAAS,EAE7BD,EAAYH,EAAe,EAIzBA,EAAeL,EAAQS,OAAS,EAElCD,EAAYH,EAAe,EAE3BG,EAAY,EAGhBR,EAAQQ,CAAS,EAAEE,QACnBV,EAAQQ,CAAS,EAAEG,QACnBC,KAGIA,EAAWA,IAAM,CACjB3D,EAAUQ,QAAOT,EAAQS,MAAQ,KAEjCoD,EAAcA,IAAO7D,EAAQS,MAAQ,GAE3CqD,EAAK,MAACxE,EAAaA,GAAe,CAC5BA,IAAe,SACjBW,EAAUQ,MAAQ,GACTnB,IAAe,WACxByE,WAAW,IAAO9D,EAAUQ,MAAQ,GAAO,EAAE,CAEjD,CAAC,EAEDqD,EAAK,MAACtE,EAAUA,GAAY,CACtBA,EACFuE,WAAW,IAAO9D,EAAUQ,MAAQ,GAAO,EAAE,EAE7CR,EAAUQ,MAAQ,EAEtB,CAAC,EAGDuD,oBAAkBtE,EAAK6C,CAAM,EAE7B0B,EAAS,UAAC,IAAMF,WAAW,IAAM/C,EAAiB,EAAI,CAAC,CAAC,EACxDkD,YAAU,IAAM3B,EAAM,CAAE,EAExB4B,EAAa,CACXnD,kBAAAA,EACA6C,YAAAA,CACF,CAAC,EAEDC,EAAK,MACH,IAAMM,EAAQC,MACd,IAAMtF,EAAGwD,OAAM,EACf,CAAE+B,MAAO,MAAO,CAAC,EAInB,MAAMC,EAAYpE,EAAAA,SAAS,IAAM,SAC/B,OAAOL,EAAWW,MACd,CAAA+D,EAAAA,YAAA,OAAA,CAAA,MAES,CACLnF,EAAGsD,EAAE,UAAU,EACftD,EAAGoF,GAAG,WAAY,CAAC3E,EAAWW,MAAM+B,IAAI,CAAC,EAC1C,QACQ9B,CAAU,EAAA,EAElB0D,EAAAA,EAAQM,mBAARN,MAAAA,EAA0BO,KAAIH,EAAAA,YAAAI,EAAAA,QAAgBR,EAAQM,iBAA+B,IAAA,EAAA,IAAI,GAAAF,EAAAA,YAAA,OAAA,CAAA,MAGnF,CACLnF,EAAGsD,EAAE,UAAU,EACftD,EAAGoF,GAAG,WAAY,CAAC3E,EAAWW,MAAMgC,IAAI,CAAC,EAC1C,QACQ3B,CAAU,EAAA,EAEjBsD,EAAAA,EAAQS,oBAART,MAAAA,EAA2BO,KAAIH,EAAA,YAAAI,EAAA,QAAgBR,EAAQS,wBAAgC,IAAI,CAAA,CAAA,EAG/F,IACN,CAAC,EAGKC,EAAO3E,EAAAA,SAAS,IAAM,OAC1B,OAAOiE,EAAAA,EAAQC,QAARD,YAAAA,EAAeW,IAAI,CAACC,EAAMC,IAAU,WACzC,MAAMC,EAAMF,EAAKE,IACXC,EAAWH,EAAK3E,MAAM8E,SACtBC,EAAUJ,EAAK3E,MAAMxB,MAAQmG,EAAKC,OAAU,GAAEA,IAC9CI,EAAW,CAACF,IAAaH,EAAKM,YAAclB,EAAQmB,UAC1DP,EAAKC,MAAS,GAAEA,IAGhB,MAAMO,EAAWH,EAAQb,EAAA,YAAA,OAAA,CAAA,MACX,gBAAe,QAAWiB,GAAmBC,EAAK,YAAaV,EAAMS,CAAE,CAAC,EAAA,EACjFrB,EAAAA,EAAQuB,eAARvB,MAAAA,EAAsBO,KAAIH,EAAA,YAAAI,EAAA,QAAgBR,EAAQuB,aAA2B,IAAA,EAAA,IAAI,GAElF,KAEEC,IAAkBZ,GAAAA,EAAAA,EAAKa,OAAMC,QAAXd,YAAAA,EAAAA,KAAAA,KAAwBA,EAAK3E,MAAMyF,MACrDC,EAAW,CAACZ,GAAYH,EAAKgB,OAAS,EAAI,GAEhD,OAAAxB,EAAAA,YAAA,MAAA,CAAA,IAEU,OAAMU,IAAK,MACV,CACL7F,EAAGsD,EAAE,MAAM,EACXtD,EAAGoF,GAAGxF,EAASoB,MAAMC,WAAW,EAChCjB,EAAGoF,GAAG,SAAUO,EAAKgB,MAAM,EAC3B3G,EAAGoF,GAAG,WAAYU,CAAQ,EAC1B9F,EAAGoF,GAAG,WAAYY,CAAQ,EAC1BhG,EAAGoF,GAAG,QAASzE,EAAQS,KAAK,CAAC,EAC9B,GACI,OAAM2E,IAAS,IACd,OAAMF,IAAK,gBACD,QAAOE,IAAS,KAC3B,MAAK,gBACKJ,EAAKgB,OAAM,SAChBD,EAAQ,QACTE,IAAMrC,EAAU,EAAA,OACjBsC,IAAMrC,EAAa,EAAA,QACjB4B,GAAmB,CAC3B5B,IACA6B,EAAK,WAAYV,EAAMI,EAASK,CAAE,CACnC,EAAA,cACeU,GAAU,CACxBA,EAAMC,eAAc,EACpBV,EAAK,iBAAkB,CAAEV,KAAAA,EAAMC,MAAAA,EAAOkB,MAAAA,CAAM,CAAC,CAC9C,EAAA,UACWV,GAAsB,CAE9BJ,IACCI,EAAG7C,OAASG,EAAU,WAACsD,QACtBZ,EAAG7C,OAASG,aAAWuD,YAEzBZ,EAAK,YAAaV,EAAMS,CAAE,CAE9B,CAAC,EAAA,CAEIG,EAAiBJ,CAAS,CAAA,CAGrC,EACF,CAAC,EAGKe,EACJnC,EAAQmB,UAAYnB,EAAQoC,QAAOhC,EAAA,YAAA,OAAA,CAAA,MAExBnF,EAAGsD,EAAE,SAAS,EAAC,SACb,IAAG,QACH8D,IAAMf,EAAK,QAAQ,EAAC,UACjBD,GAAsB,CAC5BA,EAAG7C,OAASG,EAAAA,WAAW2D,OAAOhB,EAAK,QAAQ,CACjD,CAAC,EAAA,EAEAtB,EAAAA,EAAQuC,aAARvC,MAAAA,EAAoBO,KAAIH,EAAA,YAAAI,EAAA,QAAgBR,EAAQuC,WAAyB,IAAA,EAAA,IAAI,GAE9E,KAEO,MAAA,IACXnC,EAAAA,YAAA,MAAA,CAAA,IAES9E,EAAG,MACD,CACLL,EAAGsD,EAAE,UAAU,EACftD,EAAGoF,GAAG,aAAc,CAAC,CAAC3E,EAAWW,KAAK,EACtCpB,EAAGoF,GAAGxF,EAASoB,MAAMC,WAAW,CAAE,CACnC,EAAA,CAEAiE,EAAU9D,MAAK+D,EAAAA,YAAA,MAAA,CAAA,MACJnF,EAAGsD,EAAE,YAAY,EAAC,IAAO/C,CAAU,EAAA,CAAA4E,EAAA,YAAA,MAAA,CAAA,MAEpC,CACLnF,EAAGsD,EAAE,KAAK,EACVtD,EAAGoF,GAAGxF,EAASoB,MAAMC,WAAW,EAChCjB,EAAGoF,GACD,UACAL,EAAQwC,SACR,CAAC,MAAO,QAAQ,EAAExG,SAASnB,EAASoB,MAAMC,WAAW,CAAE,CACxD,EACF,IACIT,EAAI,MACFU,EAASE,MAAK,KAChB,UAAS,UACHiC,GAEP,CACD0B,EAAQyC,KAA8C,KAA1CrC,EAAAA,YAAAsC,EAAAA,QAAA,CAAA,KAAiB,CAAC,GAAG1C,EAAQC,KAAK,CAAC,EAAA,IAAA,EAChDS,EAAKrE,KACN,GAEF8F,CAAS,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"tab-nav.vue2.js","sources":["../../../../../packages/components/tabs/tab-nav.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns_nav = /* hoist-static*/ useNamespace('tab-nav')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: ns_nav.b()\n});</script>\n<script lang=\"tsx\" setup>\nimport { throwError } from '@vft-ui/utils';\nimport {\n computed,\n type CSSProperties,\n getCurrentInstance,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n watch\n} from 'vue';\nimport { type IconProps, VftIcon } from '@vft-ui/components';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { capitalize } from '@vft/utils';\nimport { EVENT_CODE } from '@vft/constants';\nimport { TabsRootContextKey } from './types';\nimport type { TabsPaneContext, TabsType, Scrollable } from './types';\nimport { useDocumentVisibility, useResizeObserver, useWindowFocus } from '@vueuse/core';\nimport TabBar from './tab-bar.vue';\n\ninterface TabNavProps {\n panes: TabsPaneContext[];\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** tab 类型 */\n type?: TabsType;\n stretch?: boolean;\n /** 图标配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"panes\": null,\n \"editable\": { type: Boolean, },\n \"addable\": { type: Boolean, },\n \"type\": null,\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits(['tabClick', 'tabRemove', 'tabAdd', 'tabContextmenu']);\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\n// 获取从 index.vue 提供的数据信息\nconst rootTabs = inject(TabsRootContextKey)!;\nif (!rootTabs) throwError(ns_nav.b(), `<vft-tabs><tab-nav /></vft-tabs>`)\n\nconst ns = useNamespace('tabs');\nconst visibility = useDocumentVisibility();\nconst focused = useWindowFocus();\n\n// 整个 nav dom 包含前进后退 btn (vft-tabs__nav-wrap)\nconst el$ = ref<HTMLDivElement>();\n// el$ 子节点 包含 newButton (vft-tabs__nav-scroll)\nconst navScroll$ = ref<HTMLDivElement>();\n// navScroll$ 子节点 (vft-tabs__nav)\nconst nav$ = ref<HTMLDivElement>();\n\n/** 是否展示左右滚动 */\nconst scrollable = ref<false | Scrollable>(false);\n// 记录滚动时的偏移量\nconst navOffset = ref(0);\nconst isFocus = ref(false);\nconst focusable = ref(true);\n\n// 根据 tabPosition 确定 sizeName 是 width or height\nconst sizeName = computed(() => ['top', 'bottom'].includes(rootTabs.props.tabPosition!) ? 'width' : 'height');\n\n// 设置 tab 导航栏的 translateX or translateY 的偏移量\nconst navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y';\n return {\n transform: `translate${dir}(-${navOffset.value}px)`\n };\n});\n\n// 向前滚动\nconst scrollPrev = () => {\n if (!navScroll$.value) return;\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`];\n const currentOffset = navOffset.value;\n\n if (!currentOffset) return;\n\n navOffset.value = currentOffset > containerSize ? currentOffset - containerSize : 0;\n};\n\n// 向后滚动\nconst scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return;\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`];\n const currentOffset = navOffset.value;\n\n if (navSize - currentOffset <= containerSize) return;\n\n navOffset.value = navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize;\n};\n\n// 滚动到激活的 tab 主要是获取 navOffset 的值\nconst scrollToActiveTab = async() => {\n const nav = nav$.value;\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return;\n\n await nextTick();\n\n const activeTab = el$.value.querySelector('.is-active');\n if (!activeTab) return;\n\n const navScroll = navScroll$.value;\n const isHorizontal = ['top', 'bottom'].includes(\n rootTabs.props.tabPosition!\n );\n const activeTabBounding = activeTab.getBoundingClientRect();\n // vft-tabs__nav-scroll\n const navScrollBounding = navScroll.getBoundingClientRect();\n const maxOffset = isHorizontal\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height;\n\n const currentOffset = navOffset.value;\n\n let newOffset = currentOffset;\n\n if (isHorizontal) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left);\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right;\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top);\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom);\n }\n }\n newOffset = Math.max(newOffset, 0);\n navOffset.value = Math.min(newOffset, maxOffset);\n};\n\nconst update = () => {\n if (!nav$.value || !navScroll$.value) return;\n // 根据 position 的不同 获取 nav$(vft-tabs__nav) 的 offsetWidth or offsetHeight\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];\n // 获取到 navScroll$ 的 offsetWidth or offsetHeight\n const containerSize = navScroll$.value[`offset${capitalize(sizeName.value)}`];\n // 获取到当前的偏移量\n const currentOffset = navOffset.value;\n // 由于 navScroll$ 的 overflow 是 hidden,所以当 vft-tabs__nav 撑开时其宽度可能会超过 vft-tabs__nav-scroll\n if (containerSize < navSize) {\n scrollable.value = scrollable.value || {};\n scrollable.value.prev = currentOffset;\n scrollable.value.next = currentOffset + containerSize < navSize;\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize;\n }\n } else {\n scrollable.value = false;\n if (currentOffset > 0) {\n navOffset.value = 0;\n }\n }\n};\n\nconst changeTab = (e: KeyboardEvent) => {\n const code = e.code;\n\n const { up, down, left, right } = EVENT_CODE;\n if (![up, down, left, right].includes(code)) return;\n\n // 左右上下键更换tab\n const tabList = Array.from(\n (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(\n '[role=tab]:not(.is-disabled)'\n )\n );\n const currentIndex = tabList.indexOf(e.target as HTMLDivElement);\n\n let nextIndex: number;\n if (code === left || code === up) {\n // left\n if (currentIndex === 0) {\n // first\n nextIndex = tabList.length - 1;\n } else {\n nextIndex = currentIndex - 1;\n }\n } else {\n // right\n if (currentIndex < tabList.length - 1) {\n // not last\n nextIndex = currentIndex + 1;\n } else {\n nextIndex = 0;\n }\n }\n tabList[nextIndex].focus(); // 改变焦点元素\n tabList[nextIndex].click(); // 选中下一个tab\n setFocus();\n};\n\nconst setFocus = () => {\n if (focusable.value) isFocus.value = true;\n};\nconst removeFocus = () => (isFocus.value = false);\n\nwatch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false;\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50);\n }\n});\n\nwatch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50);\n } else {\n focusable.value = false;\n }\n});\n\n// 监听 resize 触发 update\nuseResizeObserver(el$, update);\n\nonMounted(() => setTimeout(() => scrollToActiveTab(), 0));\nonUpdated(() => update());\n\ndefineExpose({\n scrollToActiveTab,\n removeFocus\n});\n\nwatch(\n () => __props.panes,\n () => vm.update(),\n { flush: 'post' }\n);\n\n// 前进后退标签\nconst scrollBtn = computed(() => {\n return scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev)\n ]}\n onClick={scrollPrev}\n >\n {__props.arrowLeftIconCfg?.icon ? <VftIcon {...__props.arrowLeftIconCfg}></VftIcon> : null}\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next)\n ]}\n onClick={scrollNext}\n >\n {__props.arrowRightIconCfg?.icon ? <VftIcon {...__props.arrowRightIconCfg}></VftIcon> : null}\n </span>\n ]\n : null;\n});\n\n// 渲染 tab-pane\nconst tabs = computed(() => {\n return __props.panes?.map((pane, index) => {\n const uid = pane.uid;\n const disabled = pane.props.disabled;\n const tabName = pane.props.name ?? pane.index ?? `${index}`;\n const closable = !disabled && (pane.isClosable || __props.editable);\n pane.index = `${index}`;\n\n // 关闭标签图标\n const btnClose = closable ? (\n <span class=\"is-icon-close\" onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}>\n {__props.closeIconCfg?.icon ? <VftIcon {...__props.closeIconCfg}></VftIcon> : null}\n </span>\n ) : null;\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label;\n const tabindex = !disabled && pane.active ? 0 : -1;\n\n return (\n <div\n ref={`tab-${uid}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition!),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value)\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus();\n emit('tabClick', pane, tabName, ev);\n }}\n onContextmenu={(event) => {\n event.preventDefault();\n emit('tabContextmenu', { pane, index, event });\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev);\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n );\n });\n});\n\n// 增加 tab 的 dom\nconst newButton =\n __props.editable || __props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={() => emit('tabAdd')}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) emit('tabAdd');\n }}\n >\n {__props.addIconCfg?.icon ? <VftIcon {...__props.addIconCfg}></VftIcon> : null}\n </span>\n ) : null;\n\ndefineRender(() => {\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition!)\n ]}\n >\n {scrollBtn.value}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition!),\n ns.is(\n 'stretch',\n __props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition!)\n )\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n >\n {...[\n !__props.type ? <TabBar tabs={[...__props.panes]} /> : null,\n tabs.value\n ]}\n </div>\n {newButton}\n </div>\n </div>\n );\n});\n</script>\n"],"names":["ns_nav","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","rootTabs","inject","TabsRootContextKey","throwError","ns","visibility","useDocumentVisibility","focused","useWindowFocus","el$","ref","navScroll$","nav$","scrollable","navOffset","isFocus","focusable","sizeName","computed","includes","props","tabPosition","navStyle","transform","value","scrollPrev","containerSize","capitalize","currentOffset","scrollNext","navSize","scrollToActiveTab","nav","nextTick","activeTab","querySelector","navScroll","isHorizontal","activeTabBounding","getBoundingClientRect","navScrollBounding","maxOffset","offsetWidth","width","offsetHeight","height","newOffset","left","right","top","bottom","Math","max","min","update","prev","next","changeTab","e","code","up","down","EVENT_CODE","tabList","Array","from","currentTarget","querySelectorAll","currentIndex","indexOf","target","nextIndex","length","focus","click","setFocus","removeFocus","watch","setTimeout","useResizeObserver","onMounted","onUpdated","expose","__props","panes","flush","scrollBtn","_createVNode","is","arrowLeftIconCfg","icon","VftIcon","arrowRightIconCfg","tabs","map","pane","index","uid","disabled","tabName","closable","isClosable","editable","btnClose","ev","emit","closeIconCfg","tabLabelContent","slots","label","tabindex","active","onFocus","onBlur","event","preventDefault","delete","backspace","newButton","addable","onClick","enter","addIconCfg","stretch","type","TabBar"],"mappings":"0mDACMA,EAA2BC,EAAAA,aAAa,SAAS,EAGvDC,EAA6BC,EAAAA,gBAAmB,CAC/CC,KAAMJ,EAAOK,EAAC,CACf,CAAC,wSAyDD,MAAMC,EAAKC,EAAAA,qBAGLC,EAAWC,SAAOC,EAAAA,kBAAkB,EACrCF,GAAUG,aAAWX,EAAOK,IAAM,kCAAiC,EAExE,MAAMO,EAAKX,eAAa,MAAM,EACxBY,EAAaC,EAAAA,wBACbC,EAAUC,EAAAA,iBAGVC,EAAMC,EAAAA,MAENC,EAAaD,EAAAA,MAEbE,EAAOF,EAAAA,MAGPG,EAAaH,MAAwB,EAAK,EAE1CI,EAAYJ,MAAI,CAAC,EACjBK,EAAUL,MAAI,EAAK,EACnBM,EAAYN,MAAI,EAAI,EAGpBO,EAAWC,EAAQ,SAAC,IAAM,CAAC,MAAO,QAAQ,EAAEC,SAASnB,EAASoB,MAAMC,WAAW,EAAK,QAAU,QAAQ,EAGtGC,EAAWJ,EAAAA,SAAwB,KAEhC,CACLK,UAAY,YAFFN,EAASO,QAAU,QAAU,IAAM,QAEdV,EAAUU,YAE5C,EAGKC,EAAaA,IAAM,CACvB,GAAI,CAACd,EAAWa,MAAO,OACvB,MAAME,EACJf,EAAWa,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAClDI,EAAgBd,EAAUU,MAE3BI,IAELd,EAAUU,MAAQI,EAAgBF,EAAgBE,EAAgBF,EAAgB,IAI9EG,EAAaA,IAAM,CACvB,GAAI,CAAClB,EAAWa,OAAS,CAACZ,EAAKY,MAAO,OAEtC,MAAMM,EAAUlB,EAAKY,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAC1DE,EACJf,EAAWa,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAClDI,EAAgBd,EAAUU,MAE5BM,EAAUF,GAAiBF,IAE/BZ,EAAUU,MAAQM,EAAUF,EAAgBF,EAAgB,EACxDE,EAAgBF,EAChBI,EAAUJ,IAIVK,EAAoB,SAAW,CACnC,MAAMC,EAAMpB,EAAKY,MACjB,GAAI,CAACX,EAAWW,OAAS,CAACf,EAAIe,OAAS,CAACb,EAAWa,OAAS,CAACQ,EAAK,OAElE,MAAMC,EAAQ,SAAA,EAEd,MAAMC,EAAYzB,EAAIe,MAAMW,cAAc,YAAY,EACtD,GAAI,CAACD,EAAW,OAEhB,MAAME,EAAYzB,EAAWa,MACvBa,EAAe,CAAC,MAAO,QAAQ,EAAElB,SACrCnB,EAASoB,MAAMC,WAAW,EAEtBiB,EAAoBJ,EAAUK,wBAE9BC,EAAoBJ,EAAUG,wBAC9BE,EAAYJ,EACdL,EAAIU,YAAcF,EAAkBG,MACpCX,EAAIY,aAAeJ,EAAkBK,OAEnCjB,EAAgBd,EAAUU,MAEhC,IAAIsB,EAAYlB,EAEZS,GACEC,EAAkBS,KAAOP,EAAkBO,OAC7CD,EACElB,GAAiBY,EAAkBO,KAAOT,EAAkBS,OAE5DT,EAAkBU,MAAQR,EAAkBQ,QAC9CF,EACElB,EAAgBU,EAAkBU,MAAQR,EAAkBQ,SAG5DV,EAAkBW,IAAMT,EAAkBS,MAC5CH,EACElB,GAAiBY,EAAkBS,IAAMX,EAAkBW,MAE3DX,EAAkBY,OAASV,EAAkBU,SAC/CJ,EACElB,GACCU,EAAkBY,OAASV,EAAkBU,UAGpDJ,EAAYK,KAAKC,IAAIN,EAAW,CAAC,EACjChC,EAAUU,MAAQ2B,KAAKE,IAAIP,EAAWL,CAAS,GAG3Ca,EAASA,IAAM,CACnB,GAAI,CAAC1C,EAAKY,OAAS,CAACb,EAAWa,MAAO,OAEtC,MAAMM,EAAUlB,EAAKY,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAE1DE,EAAgBf,EAAWa,MAAO,SAAQG,EAAU,WAACV,EAASO,KAAK,GAAG,EAEtEI,EAAgBd,EAAUU,MAE5BE,EAAgBI,GAClBjB,EAAWW,MAAQX,EAAWW,OAAS,CAAA,EACvCX,EAAWW,MAAM+B,KAAO3B,EACxBf,EAAWW,MAAMgC,KAAO5B,EAAgBF,EAAgBI,EACpDA,EAAUF,EAAgBF,IAC5BZ,EAAUU,MAAQM,EAAUJ,KAG9Bb,EAAWW,MAAQ,GACfI,EAAgB,IAClBd,EAAUU,MAAQ,KAKlBiC,EAAaC,GAAqB,CACtC,MAAMC,EAAOD,EAAEC,KAET,CAAEC,GAAAA,EAAIC,KAAAA,EAAMd,KAAAA,EAAMC,MAAAA,CAAO,EAAGc,aAClC,GAAI,CAAC,CAACF,EAAIC,EAAMd,EAAMC,CAAK,EAAE7B,SAASwC,CAAI,EAAG,OAG7C,MAAMI,EAAUC,MAAMC,KACnBP,EAAEQ,cAAiCC,iBAClC,8BAA8B,CAC/B,EAEGC,EAAeL,EAAQM,QAAQX,EAAEY,MAAM,EAE7C,IAAIC,EACAZ,IAASZ,GAAQY,IAASC,EAExBQ,IAAiB,EAEnBG,EAAYR,EAAQS,OAAS,EAE7BD,EAAYH,EAAe,EAIzBA,EAAeL,EAAQS,OAAS,EAElCD,EAAYH,EAAe,EAE3BG,EAAY,EAGhBR,EAAQQ,CAAS,EAAEE,QACnBV,EAAQQ,CAAS,EAAEG,QACnBC,KAGIA,EAAWA,IAAM,CACjB3D,EAAUQ,QAAOT,EAAQS,MAAQ,KAEjCoD,EAAcA,IAAO7D,EAAQS,MAAQ,GAE3CqD,EAAK,MAACxE,EAAaA,GAAe,CAC5BA,IAAe,SACjBW,EAAUQ,MAAQ,GACTnB,IAAe,WACxByE,WAAW,IAAO9D,EAAUQ,MAAQ,GAAO,EAAE,CAEjD,CAAC,EAEDqD,EAAK,MAACtE,EAAUA,GAAY,CACtBA,EACFuE,WAAW,IAAO9D,EAAUQ,MAAQ,GAAO,EAAE,EAE7CR,EAAUQ,MAAQ,EAEtB,CAAC,EAGDuD,oBAAkBtE,EAAK6C,CAAM,EAE7B0B,EAAS,UAAC,IAAMF,WAAW,IAAM/C,EAAiB,EAAI,CAAC,CAAC,EACxDkD,YAAU,IAAM3B,EAAM,CAAE,EAExB4B,EAAa,CACXnD,kBAAAA,EACA6C,YAAAA,CACF,CAAC,EAEDC,EAAK,MACH,IAAMM,EAAQC,MACd,IAAMtF,EAAGwD,OAAM,EACf,CAAE+B,MAAO,MAAO,CAAC,EAInB,MAAMC,EAAYpE,EAAAA,SAAS,IAAM,SAC/B,OAAOL,EAAWW,MACd,CAAA+D,EAAAA,YAAA,OAAA,CAAA,MAES,CACLnF,EAAGsD,EAAE,UAAU,EACftD,EAAGoF,GAAG,WAAY,CAAC3E,EAAWW,MAAM+B,IAAI,CAAC,EAC1C,QACQ9B,CAAU,EAAA,EAElB0D,EAAAA,EAAQM,mBAARN,MAAAA,EAA0BO,KAAIH,EAAAA,YAAAI,EAAAA,QAAgBR,EAAQM,iBAA+B,IAAA,EAAA,IAAI,GAAAF,EAAAA,YAAA,OAAA,CAAA,MAGnF,CACLnF,EAAGsD,EAAE,UAAU,EACftD,EAAGoF,GAAG,WAAY,CAAC3E,EAAWW,MAAMgC,IAAI,CAAC,EAC1C,QACQ3B,CAAU,EAAA,EAEjBsD,EAAAA,EAAQS,oBAART,MAAAA,EAA2BO,KAAIH,EAAA,YAAAI,EAAA,QAAgBR,EAAQS,wBAAgC,IAAI,CAAA,CAAA,EAG/F,IACN,CAAC,EAGKC,EAAO3E,EAAAA,SAAS,IAAM,OAC1B,OAAOiE,EAAAA,EAAQC,QAARD,YAAAA,EAAeW,IAAI,CAACC,EAAMC,IAAU,WACzC,MAAMC,EAAMF,EAAKE,IACXC,EAAWH,EAAK3E,MAAM8E,SACtBC,EAAUJ,EAAK3E,MAAMxB,MAAQmG,EAAKC,OAAU,GAAEA,IAC9CI,EAAW,CAACF,IAAaH,EAAKM,YAAclB,EAAQmB,UAC1DP,EAAKC,MAAS,GAAEA,IAGhB,MAAMO,EAAWH,EAAQb,EAAA,YAAA,OAAA,CAAA,MACX,gBAAe,QAAWiB,GAAmBC,EAAK,YAAaV,EAAMS,CAAE,CAAC,EAAA,EACjFrB,EAAAA,EAAQuB,eAARvB,MAAAA,EAAsBO,KAAIH,EAAA,YAAAI,EAAA,QAAgBR,EAAQuB,aAA2B,IAAA,EAAA,IAAI,GAElF,KAEEC,IAAkBZ,GAAAA,EAAAA,EAAKa,OAAMC,QAAXd,YAAAA,EAAAA,KAAAA,KAAwBA,EAAK3E,MAAMyF,MACrDC,EAAW,CAACZ,GAAYH,EAAKgB,OAAS,EAAI,GAEhD,OAAAxB,EAAAA,YAAA,MAAA,CAAA,IAEU,OAAMU,IAAK,MACV,CACL7F,EAAGsD,EAAE,MAAM,EACXtD,EAAGoF,GAAGxF,EAASoB,MAAMC,WAAW,EAChCjB,EAAGoF,GAAG,SAAUO,EAAKgB,MAAM,EAC3B3G,EAAGoF,GAAG,WAAYU,CAAQ,EAC1B9F,EAAGoF,GAAG,WAAYY,CAAQ,EAC1BhG,EAAGoF,GAAG,QAASzE,EAAQS,KAAK,CAAC,EAC9B,GACI,OAAM2E,IAAS,IACd,OAAMF,IAAK,gBACD,QAAOE,IAAS,KAC3B,MAAK,gBACKJ,EAAKgB,OAAM,SAChBD,EAAQ,QACTE,IAAMrC,EAAU,EAAA,OACjBsC,IAAMrC,EAAa,EAAA,QACjB4B,GAAmB,CAC3B5B,IACA6B,EAAK,WAAYV,EAAMI,EAASK,CAAE,CACnC,EAAA,cACeU,GAAU,CACxBA,EAAMC,eAAc,EACpBV,EAAK,iBAAkB,CAAEV,KAAAA,EAAMC,MAAAA,EAAOkB,MAAAA,CAAM,CAAC,CAC9C,EAAA,UACWV,GAAsB,CAE9BJ,IACCI,EAAG7C,OAASG,EAAU,WAACsD,QACtBZ,EAAG7C,OAASG,aAAWuD,YAEzBZ,EAAK,YAAaV,EAAMS,CAAE,CAE9B,CAAC,EAAA,CAEIG,EAAiBJ,CAAS,CAAA,CAGrC,EACF,CAAC,EAGKe,EACJnC,EAAQmB,UAAYnB,EAAQoC,QAAOhC,EAAA,YAAA,OAAA,CAAA,MAExBnF,EAAGsD,EAAE,SAAS,EAAC,SACb,IAAG,QACH8D,IAAMf,EAAK,QAAQ,EAAC,UACjBD,GAAsB,CAC5BA,EAAG7C,OAASG,EAAAA,WAAW2D,OAAOhB,EAAK,QAAQ,CACjD,CAAC,EAAA,EAEAtB,EAAAA,EAAQuC,aAARvC,MAAAA,EAAoBO,KAAIH,EAAA,YAAAI,EAAA,QAAgBR,EAAQuC,WAAyB,IAAA,EAAA,IAAI,GAE9E,KAEO,MAAA,IACXnC,EAAAA,YAAA,MAAA,CAAA,IAES9E,EAAG,MACD,CACLL,EAAGsD,EAAE,UAAU,EACftD,EAAGoF,GAAG,aAAc,CAAC,CAAC3E,EAAWW,KAAK,EACtCpB,EAAGoF,GAAGxF,EAASoB,MAAMC,WAAW,CAAE,CACnC,EAAA,CAEAiE,EAAU9D,MAAK+D,EAAAA,YAAA,MAAA,CAAA,MACJnF,EAAGsD,EAAE,YAAY,EAAC,IAAO/C,CAAU,EAAA,CAAA4E,EAAA,YAAA,MAAA,CAAA,MAEpC,CACLnF,EAAGsD,EAAE,KAAK,EACVtD,EAAGoF,GAAGxF,EAASoB,MAAMC,WAAW,EAChCjB,EAAGoF,GACD,UACAL,EAAQwC,SACR,CAAC,MAAO,QAAQ,EAAExG,SAASnB,EAASoB,MAAMC,WAAW,CAAE,CACxD,EACF,IACIT,EAAI,MACFU,EAASE,MAAK,KAChB,UAAS,UACHiC,GAEP,CACD0B,EAAQyC,KAA8C,KAA1CrC,EAAAA,YAAAsC,EAAAA,QAAA,CAAA,KAAiB,CAAC,GAAG1C,EAAQC,KAAK,CAAC,EAAA,IAAA,EAChDS,EAAKrE,KACN,GAEF8F,CAAS,CAAA,CAAA,CAAA"}
package/lib/defaults.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  declare const _default: {
2
2
  version: string;
3
- install: (app: import("vue").App<any>, options?: any) => void;
3
+ install: (app: import("vue").App<any>, options?: Partial<import("vft/es/components").ConfigProviderProps> | undefined) => void;
4
4
  };
5
5
  export default _default;
package/lib/defaults.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./make-installer.js"),t=require("./component.js"),l=e.makeInstaller([...t.default]);exports.default=l;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./make-installer.js"),t=require("./component.js"),l=require("./plugin.js"),r=e.makeInstaller([...t.default,...l.default]);exports.default=r;
2
2
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sources":["../../../packages/vft/defaults.ts"],"sourcesContent":["import { makeInstaller } from './make-installer'\nimport Components from './component'\n\nexport default makeInstaller([...Components, ...[]])\n"],"names":["makeInstaller","Components"],"mappings":"+KAGeA,EAAAA,EAAAA,cAAc,CAAC,GAAGC,SAAiB,CAAC"}
1
+ {"version":3,"file":"defaults.js","sources":["../../../packages/vft/defaults.ts"],"sourcesContent":["import { makeInstaller } from './make-installer'\nimport Components from './component'\nimport Plugins from './plugin'\n\nexport default makeInstaller([...Components, ...Plugins])\n"],"names":["makeInstaller","Components","Plugins"],"mappings":"wMAIeA,EAAAA,EAAAA,cAAc,CAAC,GAAGC,UAAY,GAAGC,EAAO,OAAA,CAAC"}
package/lib/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export * from 'vft/es/components';
3
3
  export * from 'vft/es/constants';
4
4
  export * from 'vft/es/hooks';
5
5
  export * from './make-installer';
6
- export declare const install: (app: import("vue").App<any>, options?: any) => void;
6
+ export declare const install: (app: import("vue").App<any>, options?: Partial<import("vft/es/components").ConfigProviderProps> | undefined) => void;
7
7
  export declare const version: string;
8
8
  export default installer;
9
9
  export { default as dayjs } from 'dayjs';
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("./defaults.js"),T=require("./components/divider/index.js"),g=require("./components/icon/index.js"),E=require("./components/avatar/index.js"),C=require("./components/empty/index.js"),m=require("./components/result/index.js"),I=require("./components/exception/index.js"),c=require("./components/tabs/index.js"),_=require("./components/popper/index.js"),$=require("./components/collapse-transition/index.js"),y=require("./components/tooltip/index.js"),M=require("./components/popover/index.js"),t=require("./components/menu/index.js"),d=require("./components/context-menu/createContextMenu.js"),P=require("./components/context-menu/useContextMenu.js"),b=require("./components/multiple-tabs/index.js"),D=require("./components/header-layout/index.js"),v=require("./components/footer-layout/index.js"),N=require("./components/iframe-layout/index.js"),K=require("./components/router-view-content/index.js"),S=require("./components/logo/index.js"),A=require("./components/back-top/index.js"),L=require("./components/config-provider/index.js"),f=require("./components/descriptions/index.js"),R=require("./components/full-screen/index.js"),O=require("./components/icon-text/index.js"),G=require("./components/image/index.js"),F=require("./components/input/index.js"),w=require("./components/link/index.js"),k=require("./components/pagination/index.js"),z=require("./components/tag/index.js"),Y=require("./components/side-menu/index.js"),j=require("./components/qrcode/index.js"),H=require("./components/overlay/index.js"),J=require("./components/clamp/index.js"),U=require("./components/clamp-toggle/index.js"),W=require("./constants/aria.js"),l=require("./constants/date.js"),o=require("./constants/event.js"),Z=require("./constants/key.js"),p=require("./constants/size.js"),e=require("./hooks/use-namespace/index.js"),h=require("./hooks/use-cursor/index.js"),B=require("./hooks/use-popper/index.js"),r=require("./hooks/use-z-index/index.js"),i=require("./hooks/use-forward-ref/index.js"),s=require("./hooks/use-id/index.js"),V=require("./hooks/use-popper-container/index.js"),Q=require("./hooks/use-delayed-toggle/index.js"),X=require("./hooks/use-timeout/index.js"),ee=require("./hooks/use-ordered-children/index.js"),u=require("./hooks/use-model-toggle/index.js"),te=require("./make-installer.js"),ne=require("dayjs"),oe=require("./components/empty/constants.js"),re=require("./components/tabs/types.js"),ie=require("./components/popper/arrow.vue2.js"),se=require("./components/popper/trigger.vue2.js"),ue=require("./components/popper/content.vue2.js"),ae=require("./components/multiple-tabs/use/use-tab-dropdown.js"),x=require("./components/multiple-tabs/use/use-multiple-tabs.js"),ce=require("./components/config-provider/constants.js"),a=require("./components/config-provider/hooks/use-global-config.js"),de=require("./components/pagination/pagination.js"),q=require("./components/pagination/usePagination.js"),fe=n.default.install,le=n.default.version;exports.default=n.default;exports.VftDivider=T.VftDivider;exports.VftIcon=g.VftIcon;exports.VftAvatar=E.VftAvatar;exports.VftEmpty=C.VftEmpty;exports.VftResult=m.VftResult;exports.VftException=I.VftException;exports.VftTabPane=c.VftTabPane;exports.VftTabs=c.VftTabs;exports.VftPopper=_.VftPopper;exports.VftCollapseTransition=$.VftCollapseTransition;exports.VftTooltip=y.VftTooltip;exports.VftPopover=M.VftPopover;exports.VftMenu=t.VftMenu;exports.VftMenuItem=t.VftMenuItem;exports.VftMenuItemGroup=t.VftMenuItemGroup;exports.VftSubMenu=t.VftSubMenu;exports.createContextMenu=d.createContextMenu;exports.destroyContextMenu=d.destroyContextMenu;exports.useContextMenu=P.useContextMenu;exports.VftMultipleTabs=b.VftMultipleTabs;exports.VftHeaderLayout=D.VftHeaderLayout;exports.VftFooterLayout=v.VftFooterLayout;exports.VftIframeLayout=N.VftIframeLayout;exports.VftRouterViewContent=K.VftRouterViewContent;exports.VftLogo=S.VftLogo;exports.VftBackTop=A.VftBackTop;exports.VftConfigProvider=L.VftConfigProvider;exports.VftDescriptions=f.VftDescriptions;exports.VftDescriptionsItem=f.VftDescriptionsItem;exports.VftFullScreen=R.VftFullScreen;exports.VftIconText=O.VftIconText;exports.VftImage=G.VftImage;exports.VftInput=F.VftInput;exports.VftLink=w.VftLink;exports.VftPagination=k.VftPagination;exports.VftTag=z.VftTag;exports.VftSideMenu=Y.VftSideMenu;exports.VftQrcode=j.VftQrcode;exports.VftOverlay=H.VftOverlay;exports.VftClamp=J.VftClamp;exports.VftClampToggle=U.VftClampToggle;exports.EVENT_CODE=W.EVENT_CODE;exports.WEEK_DAYS=l.WEEK_DAYS;exports.datePickTypes=l.datePickTypes;exports.CHANGE_EVENT=o.CHANGE_EVENT;exports.INPUT_EVENT=o.INPUT_EVENT;exports.UPDATE_MODEL_EVENT=o.UPDATE_MODEL_EVENT;exports.INSTALLED_KEY=Z.INSTALLED_KEY;exports.componentSizeMap=p.componentSizeMap;exports.componentSizes=p.componentSizes;exports._bem=e._bem;exports.defaultNamespace=e.defaultNamespace;exports.namespaceContextKey=e.namespaceContextKey;exports.useGetDerivedNamespace=e.useGetDerivedNamespace;exports.useNamespace=e.useNamespace;exports.useCursor=h.useCursor;exports.usePopper=B.usePopper;exports.defaultInitialZIndex=r.defaultInitialZIndex;exports.useZIndex=r.useZIndex;exports.zIndexContextKey=r.zIndexContextKey;exports.FORWARD_REF_INJECTION_KEY=i.FORWARD_REF_INJECTION_KEY;exports.useForwardRef=i.useForwardRef;exports.useForwardRefDirective=i.useForwardRefDirective;exports.ID_INJECTION_KEY=s.ID_INJECTION_KEY;exports.useId=s.useId;exports.useIdInjection=s.useIdInjection;exports.usePopperContainer=V.usePopperContainer;exports.usePopperContainerId=V.usePopperContainerId;exports.useDelayedToggle=Q.useDelayedToggle;exports.useTimeout=X.useTimeout;exports.useOrderedChildren=ee.useOrderedChildren;exports.createModelToggleComposable=u.createModelToggleComposable;exports.useModelToggle=u.useModelToggle;exports.useModelToggleEmits=u.useModelToggleEmits;exports.makeInstaller=te.makeInstaller;exports.dayjs=ne;exports.EmptyEnum=oe.EmptyEnum;exports.TabsRootContextKey=re.TabsRootContextKey;exports.VftPopperArrow=ie.default;exports.VftPopperTrigger=se.default;exports.VftPopperContent=ue.default;exports.useTabDropdown=ae.useTabDropdown;exports.initAffixTabs=x.initAffixTabs;exports.useTabsDrag=x.useTabsDrag;exports.configProviderContextKey=ce.configProviderContextKey;exports.provideGlobalConfig=a.provideGlobalConfig;exports.useGlobalComponentSettings=a.useGlobalComponentSettings;exports.useGlobalConfig=a.useGlobalConfig;exports.paginationEmits=de.paginationEmits;exports.elPaginationKey=q.elPaginationKey;exports.usePagination=q.usePagination;exports.install=fe;exports.version=le;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("./defaults.js"),C=require("./components/divider/index.js"),E=require("./components/icon/index.js"),I=require("./components/avatar/index.js"),_=require("./components/empty/index.js"),$=require("./components/result/index.js"),v=require("./components/exception/index.js"),d=require("./components/tabs/index.js"),y=require("./components/popper/index.js"),D=require("./components/collapse-transition/index.js"),M=require("./components/tooltip/index.js"),P=require("./components/popover/index.js"),t=require("./components/menu/index.js"),f=require("./components/context-menu/createContextMenu.js"),b=require("./components/context-menu/useContextMenu.js"),N=require("./components/multiple-tabs/index.js"),L=require("./components/header-layout/index.js"),K=require("./components/footer-layout/index.js"),S=require("./components/iframe-layout/index.js"),A=require("./components/router-view-content/index.js"),R=require("./components/logo/index.js"),O=require("./components/back-top/index.js"),G=require("./components/config-provider/index.js"),l=require("./components/descriptions/index.js"),F=require("./components/full-screen/index.js"),w=require("./components/icon-text/index.js"),k=require("./components/image/index.js"),z=require("./components/input/index.js"),Y=require("./components/link/index.js"),j=require("./components/pagination/index.js"),W=require("./components/tag/index.js"),H=require("./components/side-menu/index.js"),J=require("./components/qrcode/index.js"),U=require("./components/overlay/index.js"),Z=require("./components/clamp/index.js"),h=require("./components/clamp-toggle/index.js"),B=require("./components/page-wrapper/index.js"),Q=require("./components/message/index.js"),X=require("./components/loading/index.js"),ee=require("./constants/aria.js"),p=require("./constants/date.js"),r=require("./constants/event.js"),te=require("./constants/key.js"),V=require("./constants/size.js"),e=require("./hooks/use-namespace/index.js"),ne=require("./hooks/use-cursor/index.js"),re=require("./hooks/use-popper/index.js"),o=require("./hooks/use-z-index/index.js"),i=require("./hooks/use-forward-ref/index.js"),s=require("./hooks/use-id/index.js"),g=require("./hooks/use-popper-container/index.js"),oe=require("./hooks/use-delayed-toggle/index.js"),ie=require("./hooks/use-timeout/index.js"),se=require("./hooks/use-ordered-children/index.js"),u=require("./hooks/use-model-toggle/index.js"),ue=require("./make-installer.js"),ae=require("dayjs"),ce=require("./components/empty/constants.js"),de=require("./components/tabs/types.js"),fe=require("./components/popper/arrow.vue2.js"),le=require("./components/popper/trigger.vue2.js"),pe=require("./components/popper/content.vue2.js"),Ve=require("./components/multiple-tabs/use/use-tab-dropdown.js"),x=require("./components/multiple-tabs/use/use-multiple-tabs.js"),q=require("./components/config-provider/constants.js"),a=require("./components/config-provider/hooks/use-global-config.js"),ge=require("./components/pagination/pagination.js"),T=require("./components/pagination/usePagination.js"),m=require("./components/message/types.js"),c=require("./components/loading/directive.js"),xe=require("./components/loading/service.js"),qe=n.default.install,Te=n.default.version;exports.default=n.default;exports.VftDivider=C.VftDivider;exports.VftIcon=E.VftIcon;exports.VftAvatar=I.VftAvatar;exports.VftEmpty=_.VftEmpty;exports.VftResult=$.VftResult;exports.VftException=v.VftException;exports.VftTabPane=d.VftTabPane;exports.VftTabs=d.VftTabs;exports.VftPopper=y.VftPopper;exports.VftCollapseTransition=D.VftCollapseTransition;exports.VftTooltip=M.VftTooltip;exports.VftPopover=P.VftPopover;exports.VftMenu=t.VftMenu;exports.VftMenuItem=t.VftMenuItem;exports.VftMenuItemGroup=t.VftMenuItemGroup;exports.VftSubMenu=t.VftSubMenu;exports.createContextMenu=f.createContextMenu;exports.destroyContextMenu=f.destroyContextMenu;exports.useContextMenu=b.useContextMenu;exports.VftMultipleTabs=N.VftMultipleTabs;exports.VftHeaderLayout=L.VftHeaderLayout;exports.VftFooterLayout=K.VftFooterLayout;exports.VftIframeLayout=S.VftIframeLayout;exports.VftRouterViewContent=A.VftRouterViewContent;exports.VftLogo=R.VftLogo;exports.VftBackTop=O.VftBackTop;exports.VftConfigProvider=G.VftConfigProvider;exports.VftDescriptions=l.VftDescriptions;exports.VftDescriptionsItem=l.VftDescriptionsItem;exports.VftFullScreen=F.VftFullScreen;exports.VftIconText=w.VftIconText;exports.VftImage=k.VftImage;exports.VftInput=z.VftInput;exports.VftLink=Y.VftLink;exports.VftPagination=j.VftPagination;exports.VftTag=W.VftTag;exports.VftSideMenu=H.VftSideMenu;exports.VftQrcode=J.VftQrcode;exports.VftOverlay=U.VftOverlay;exports.VftClamp=Z.VftClamp;exports.VftClampToggle=h.VftClampToggle;exports.VftPageWrapper=B.VftPageWrapper;exports.VftMessage=Q.VftMessage;exports.VftLoading=X.VftLoading;exports.EVENT_CODE=ee.EVENT_CODE;exports.WEEK_DAYS=p.WEEK_DAYS;exports.datePickTypes=p.datePickTypes;exports.CHANGE_EVENT=r.CHANGE_EVENT;exports.INPUT_EVENT=r.INPUT_EVENT;exports.UPDATE_MODEL_EVENT=r.UPDATE_MODEL_EVENT;exports.INSTALLED_KEY=te.INSTALLED_KEY;exports.componentSizeMap=V.componentSizeMap;exports.componentSizes=V.componentSizes;exports._bem=e._bem;exports.defaultNamespace=e.defaultNamespace;exports.namespaceContextKey=e.namespaceContextKey;exports.useGetDerivedNamespace=e.useGetDerivedNamespace;exports.useNamespace=e.useNamespace;exports.useCursor=ne.useCursor;exports.usePopper=re.usePopper;exports.defaultInitialZIndex=o.defaultInitialZIndex;exports.useZIndex=o.useZIndex;exports.zIndexContextKey=o.zIndexContextKey;exports.FORWARD_REF_INJECTION_KEY=i.FORWARD_REF_INJECTION_KEY;exports.useForwardRef=i.useForwardRef;exports.useForwardRefDirective=i.useForwardRefDirective;exports.ID_INJECTION_KEY=s.ID_INJECTION_KEY;exports.useId=s.useId;exports.useIdInjection=s.useIdInjection;exports.usePopperContainer=g.usePopperContainer;exports.usePopperContainerId=g.usePopperContainerId;exports.useDelayedToggle=oe.useDelayedToggle;exports.useTimeout=ie.useTimeout;exports.useOrderedChildren=se.useOrderedChildren;exports.createModelToggleComposable=u.createModelToggleComposable;exports.useModelToggle=u.useModelToggle;exports.useModelToggleEmits=u.useModelToggleEmits;exports.makeInstaller=ue.makeInstaller;exports.dayjs=ae;exports.EmptyEnum=ce.EmptyEnum;exports.TabsRootContextKey=de.TabsRootContextKey;exports.VftPopperArrow=fe.default;exports.VftPopperTrigger=le.default;exports.VftPopperContent=pe.default;exports.useTabDropdown=Ve.useTabDropdown;exports.initAffixTabs=x.initAffixTabs;exports.useTabsDrag=x.useTabsDrag;exports.configProviderContextKey=q.configProviderContextKey;exports.messageConfig=q.messageConfig;exports.provideGlobalConfig=a.provideGlobalConfig;exports.useGlobalComponentSettings=a.useGlobalComponentSettings;exports.useGlobalConfig=a.useGlobalConfig;exports.paginationEmits=ge.paginationEmits;exports.elPaginationKey=T.elPaginationKey;exports.usePagination=T.usePagination;exports.messageDefaults=m.messageDefaults;exports.messageTypes=m.messageTypes;exports.VftLoadingDirective=c.vLoading;exports.createLoadingDirective=c.createLoadingDirective;exports.vLoading=c.vLoading;exports.VftLoadingService=xe.Loading;exports.install=qe;exports.version=Te;
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/vft/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@vft-ui/components'\nexport * from '@vft-ui/constants'\nexport * from '@vft-ui/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer\n\nexport { default as dayjs } from 'dayjs'\n"],"names":["install","installer","version"],"mappings":"y9FAMaA,GAAUC,EAAU,QAAA,QACpBC,GAAUD,EAAAA,QAAU"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/vft/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@vft-ui/components'\nexport * from '@vft-ui/constants'\nexport * from '@vft-ui/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer\n\nexport { default as dayjs } from 'dayjs'\n"],"names":["install","installer","version"],"mappings":"4uGAMaA,GAAUC,EAAU,QAAA,QACpBC,GAAUD,EAAAA,QAAU"}
@@ -1,5 +1,6 @@
1
1
  import type { App, Plugin } from '@vue/runtime-core';
2
+ import type { ConfigProviderContext } from 'vft/es/components/config-provider';
2
3
  export declare const makeInstaller: (components?: Plugin[]) => {
3
4
  version: string;
4
- install: (app: App, options?: any) => void;
5
+ install: (app: App, options?: ConfigProviderContext) => void;
5
6
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./constants/key.js"),s=require("./package.json.js"),i=(t=[])=>{const n=(e,l)=>{e[r.INSTALLED_KEY]||(e[r.INSTALLED_KEY]=!0,t.forEach(o=>e.use(o)))};return{version:s.version,install:n}};exports.makeInstaller=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./components/config-provider/index.js");const t=require("./constants/key.js"),l=require("./package.json.js"),s=require("./components/config-provider/hooks/use-global-config.js"),u=(n=[])=>{const o=(e,r)=>{e[t.INSTALLED_KEY]||(e[t.INSTALLED_KEY]=!0,n.forEach(i=>e.use(i)),r&&s.provideGlobalConfig(r,e,!0))};return{version:l.version,install:o}};exports.makeInstaller=u;
2
2
  //# sourceMappingURL=make-installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.js","sources":["../../../packages/vft/make-installer.ts"],"sourcesContent":["import { INSTALLED_KEY } from '@vft-ui/constants'\nimport { version } from './package.json'\n\nimport type { App, Plugin } from '@vue/runtime-core'\n\nexport const makeInstaller = (components: Plugin[] = []) => {\n const install = (app: App, options?: any) => {\n if (app[INSTALLED_KEY]) return\n\n app[INSTALLED_KEY] = true\n components.forEach((c) => app.use(c))\n\n }\n\n return {\n version,\n install,\n }\n}\n"],"names":["makeInstaller","components","install","app","options","INSTALLED_KEY","c","version"],"mappings":"qJAKaA,EAAgB,CAACC,EAAuB,KAAO,CACpD,MAAAC,EAAU,CAACC,EAAUC,IAAkB,CACvCD,EAAIE,EAAAA,aAAa,IAErBF,EAAIE,EAAAA,aAAa,EAAI,GACrBJ,EAAW,QAASK,GAAMH,EAAI,IAAIG,CAAC,CAAC,EAAA,EAI/B,MAAA,CAAA,QACLC,EAAA,QACA,QAAAL,CAAA,CAEJ"}
1
+ {"version":3,"file":"make-installer.js","sources":["../../../packages/vft/make-installer.ts"],"sourcesContent":["import { provideGlobalConfig } from '@vft-ui/components/config-provider'\nimport { INSTALLED_KEY } from '@vft-ui/constants'\nimport { version } from './package.json'\n\nimport type { App, Plugin } from '@vue/runtime-core'\nimport type { ConfigProviderContext } from '@vft-ui/components/config-provider'\n\nexport const makeInstaller = (components: Plugin[] = []) => {\n const install = (app: App, options?: ConfigProviderContext) => {\n if (app[INSTALLED_KEY]) return\n \n app[INSTALLED_KEY] = true\n components.forEach((c) => app.use(c))\n \n if (options) provideGlobalConfig(options, app, true)\n }\n \n return {\n version,\n install,\n }\n}\n\n"],"names":["makeInstaller","components","install","app","options","INSTALLED_KEY","c","provideGlobalConfig","version"],"mappings":"2QAOaA,EAAgB,CAACC,EAAuB,KAAO,CACpD,MAAAC,EAAU,CAACC,EAAUC,IAAoC,CACzDD,EAAIE,EAAAA,aAAa,IAErBF,EAAIE,EAAAA,aAAa,EAAI,GACrBJ,EAAW,QAASK,GAAMH,EAAI,IAAIG,CAAC,CAAC,EAEhCF,GAA6BG,EAAAA,oBAAAH,EAASD,EAAK,EAAI,EAAA,EAG9C,MAAA,CAAA,QACLK,EAAA,QACA,QAAAN,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.20";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.21";exports.version=e;
2
2
  //# sourceMappingURL=package.json.js.map
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'vue';
2
+ declare const _default: Plugin<any[]>[];
3
+ export default _default;
package/lib/plugin.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./components/loading/index.js"),t=require("./components/message/index.js"),i=[e.VftLoading,t.VftMessage];exports.default=i;
2
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["../../../packages/vft/plugin.ts"],"sourcesContent":["import { VftLoading } from '@vft-ui/components/loading'\nimport { VftMessage } from '@vft-ui/components/message'\n\nimport type { Plugin } from 'vue'\n\nexport default [\n VftLoading,\n VftMessage,\n] as Plugin[]\n"],"names":["Plugins","VftLoading","VftMessage"],"mappings":"wMAKeA,EAAA,CACbC,EAAA,WACAC,EAAA,UACF"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="";exports.default=e;
2
+ //# sourceMappingURL=loading.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="";exports.default=e;
2
+ //# sourceMappingURL=message.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="";exports.default=e;
2
+ //# sourceMappingURL=page-wrapper.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-wrapper.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",