vft 0.0.53 → 0.0.55

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 (68) hide show
  1. package/attributes.json +1 -0
  2. package/dist/index.css +1 -1
  3. package/es/component.js +0 -2
  4. package/es/components/back-top/back-top.vue2.js +4 -3
  5. package/es/components/context-menu/context-menu.vue2.js +46 -41
  6. package/es/components/icon-text/icon-text.vue2.js +31 -24
  7. package/es/components/md-container/md-container.vue2.js +74 -68
  8. package/es/components/md-container/use/useCopyCode.js +3 -3
  9. package/es/components/menu/menu-item.vue2.js +4 -3
  10. package/es/components/menu/sub-menu.vue2.js +4 -3
  11. package/es/components/multiple-tabs/multiple-tabs.vue2.js +34 -36
  12. package/es/components/multiple-tabs/tab-content.vue2.js +18 -84
  13. package/es/components/result/result.vue2.js +4 -3
  14. package/es/components/search/search.vue2.js +4 -3
  15. package/es/components/side-menu/side-menu.vue2.js +3 -2
  16. package/es/components/tabs/index.d.ts +8 -8
  17. package/es/components/tabs/tab-nav.vue.d.ts +6 -7
  18. package/es/components/tabs/tab-nav.vue2.js +42 -38
  19. package/es/components/tabs/tabs.vue.d.ts +9 -9
  20. package/es/components/tabs/tabs.vue2.js +43 -48
  21. package/es/package.json.js +1 -1
  22. package/global.d.ts +28 -3
  23. package/lib/components/back-top/back-top.vue2.cjs +1 -1
  24. package/lib/components/context-menu/context-menu.vue2.cjs +1 -1
  25. package/lib/components/icon-text/icon-text.vue2.cjs +1 -1
  26. package/lib/components/md-container/md-container.vue2.cjs +1 -1
  27. package/lib/components/md-container/use/useCopyCode.cjs +1 -1
  28. package/lib/components/menu/menu-item.vue2.cjs +1 -1
  29. package/lib/components/menu/sub-menu.vue2.cjs +1 -1
  30. package/lib/components/multiple-tabs/multiple-tabs.vue2.cjs +1 -1
  31. package/lib/components/multiple-tabs/tab-content.vue2.cjs +1 -1
  32. package/lib/components/result/result.vue2.cjs +1 -1
  33. package/lib/components/search/search.vue2.cjs +1 -1
  34. package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
  35. package/lib/components/tabs/index.d.ts +8 -8
  36. package/lib/components/tabs/tab-nav.vue.d.ts +6 -7
  37. package/lib/components/tabs/tab-nav.vue2.cjs +1 -1
  38. package/lib/components/tabs/tabs.vue.d.ts +9 -9
  39. package/lib/components/tabs/tabs.vue2.cjs +1 -1
  40. package/lib/package.json.cjs +1 -1
  41. package/package.json +6 -1
  42. package/tags.json +1 -0
  43. package/theme-style/dark/css-vars.css +1 -1
  44. package/theme-style/index.css +1 -1
  45. package/theme-style/src/button.scss +1 -2
  46. package/theme-style/src/common/var.scss +19 -20
  47. package/theme-style/src/context-menu.scss +12 -0
  48. package/theme-style/src/dark/css-vars.scss +26 -0
  49. package/theme-style/src/dark/var.scss +61 -17
  50. package/theme-style/src/icon-text.scss +2 -0
  51. package/theme-style/src/logo.scss +1 -1
  52. package/theme-style/src/md/table.scss +5 -0
  53. package/theme-style/src/md-container.scss +42 -2
  54. package/theme-style/src/menu.scss +3 -3
  55. package/theme-style/src/side-menu.scss +2 -2
  56. package/theme-style/src/tabs.scss +70 -70
  57. package/theme-style/vft-button.css +1 -1
  58. package/theme-style/vft-context-menu.css +1 -0
  59. package/theme-style/vft-footer-layout.css +1 -1
  60. package/theme-style/vft-header-layout.css +1 -1
  61. package/theme-style/vft-icon-text.css +1 -1
  62. package/theme-style/vft-logo.css +1 -1
  63. package/theme-style/vft-md-container.css +1 -1
  64. package/theme-style/vft-menu.css +1 -1
  65. package/theme-style/vft-multiple-tabs.css +1 -1
  66. package/theme-style/vft-side-menu.css +1 -1
  67. package/theme-style/vft-tabs.css +1 -1
  68. package/web-types.json +1 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),M=require("@vft/router"),A=require("@vft/use"),p=require("@vft/utils"),H=require("../../hooks/use-namespace/index.cjs");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.cjs");require("@vueuse/core");const R=require("../../utils/ns-cover.cjs");require("@vue/reactivity");require("@vue/shared");require("../divider/index.cjs");const U=require("../icon/index.cjs");require("../avatar/index.cjs");require("../empty/index.cjs");require("../result/index.cjs");require("../tabs/index.cjs");require("../popper/index.cjs");require("../collapse-transition/index.cjs");require("../tooltip/index.cjs");require("../popover/index.cjs");const f=require("../menu/index.cjs");require("../multiple-tabs/multiple-tabs.vue2.cjs");require("@vft/store");const $=require("vue-router");require("../header-layout/index.cjs");require("../footer-layout/index.cjs");require("../iframe-layout/index.cjs");require("../router-view-content/index.cjs");require("../logo/index.cjs");require("../back-top/index.cjs");require("../config-provider/index.cjs");require("../descriptions/index.cjs");require("../full-screen/index.cjs");require("../icon-text/index.cjs");require("../image/index.cjs");require("../input/index.cjs");require("../link/index.cjs");require("../pagination/index.cjs");require("../tag/index.cjs");require("./index.cjs");require("../qrcode/index.cjs");require("../overlay/index.cjs");require("../clamp/index.cjs");require("../clamp-toggle/index.cjs");require("../page-wrapper/index.cjs");require("../exception/index.cjs");require("../search/index.cjs");require("../form/index.cjs");require("../button/index.cjs");require("../checkbox/index.cjs");require("../radio/index.cjs");require("../switch/index.cjs");require("../color-picker/index.cjs");require("../scrollbar/index.cjs");require("../dropdown/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../select-v2/index.cjs");require("../verify-code/index.cjs");require("../table/index.cjs");require("../image-viewer/index.cjs");require("../md-container/index.cjs");require("../md-comment/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../message/index.cjs");const l=H.useNamespace("side-menu"),P=u.defineComponent({name:l.b()}),E=u.defineComponent({...P,props:{menus:null,uniqueOpened:{type:Boolean,default:!0},collapse:{type:Boolean,default:!1},defaultActive:null,width:null,collapseWidth:{default:50},attrMapping:null,extraHeight:{default:100},menuTopBottomHeight:{default:40},showCollapse:{type:Boolean,default:!1},dragOption:null,useMenuSelect:{type:Boolean,default:!0}},emits:["update:collapse","dragEnd","select"],setup(t,{emit:h}){const q=u.useSlots(),v=u.ref(),a=u.computed(()=>({path:"path",children:"children",title:"title",index:"path",icon:"icon",...t.attrMapping}));M.listenerRouteChange(e=>{!e||e.meta.hideSide||(v.value=e.path)});const x=(e,o)=>{const n=e[a.value.path],c=e[a.value.title],i=e==null?void 0:e[a.value.children],s=e==null?void 0:e[a.value.index],d=e==null?void 0:e[a.value.icon];return i!=null&&i.length?u.h(f.VftSubMenu,{popperAppendToBody:!0,key:s||n,index:s||n,title:c,icon:d,popperClass:l.e("popper")},{default:()=>i==null?void 0:i.map((r,k)=>{var m;const g=r[a.value.path],y=r[a.value.index],w=r[a.value.icon],B=r[a.value.title];return(m=r==null?void 0:r[a.value.children])!=null&&m.length?x(r,k):u.h(f.VftMenuItem,{key:y||g,index:y||g,route:g,icon:w,title:B,disabled:r.disabled})})}):u.h(f.VftMenuItem,{key:s||n,index:s||n,title:c,route:n,icon:d,disabled:e.disabled},q.menuItem?()=>{var r;return(r=q.menuItem)==null?void 0:r.call(q,{item:e,index:o})}:"")},O=u.computed(()=>{var e,o;return u.h(f.VftMenu,{onSelect:t.useMenuSelect?b:()=>{},defaultActive:t.defaultActive||v.value,class:[l.e("con"),(e=t.dragOption)!=null&&e.dragClassName?l.e((o=t.dragOption)==null?void 0:o.dragClassName):""],style:{height:`calc(100% - ${t.menuTopBottomHeight}px)`},uniqueOpened:t.uniqueOpened,collapse:t.collapse,"collapse-transition":!1},()=>t.menus.map((n,c)=>x(n,c)))}),{go:C}=M.useRouterHelper(),S=$.useRouter();async function b(e){var i,s,d;const o=e.route;let n=e.route;e.indexPath.some(r=>p.isUrl(r))&&(n=e.indexPath.slice(-2).join("/"));const c=(d=(s=(i=S.getRoutes().filter(r=>r.path===n))==null?void 0:i[0])==null?void 0:s.meta)==null?void 0:d.linkTarget;C(c?{url:o,winOpenOpt:{target:c}}:o),h("select",e)}const N=u.computed(()=>({...R.generateCssVars({width:t.collapse?p.addUnit(t.collapseWidth):p.addUnit(t.width)},"side-menu"),height:`calc(100% - ${t.extraHeight}px)`})),V=u.computed(()=>[l.b(),l.m("fixed")]);function T(){h("update:collapse",!t.collapse)}return u.onMounted(()=>{u.nextTick(()=>{var e,o,n;if((e=t.dragOption)!=null&&e.dragClassName){const c=(n=document.querySelectorAll("."+l.e((o=t.dragOption)==null?void 0:o.dragClassName)))==null?void 0:n[0],{initSortable:i}=A.useSortable(c,{draggable:".vft-menu-item",onEnd:s=>{const{oldIndex:d,newIndex:r}=s;p.isNullOrUndefined(d)||p.isNullOrUndefined(r)||d===r||h("dragEnd",d,r)},...t.dragOption});i()}})}),()=>u.createVNode("div",{class:V.value,style:N.value},[q.top?u.createVNode("div",{class:l.e("top")},[q.top()]):null,O.value,q.bottom?u.createVNode("div",{class:l.e("bottom")},[q.bottom()]):t.showCollapse?u.createVNode("div",{onClick:T,class:[l.e("bottom"),l.e("collapse")]},[u.createVNode(U.VftIcon,{style:{transform:t.collapse?"rotateY(180deg)":""},size:20,icon:"ico-iconoir:sidebar-collapse"},null)]):null])}});exports.default=E;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),M=require("@vft/router"),A=require("@vft/use"),p=require("@vft/utils"),H=require("../../hooks/use-namespace/index.cjs");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.cjs");require("@vueuse/core");const R=require("../../utils/ns-cover.cjs");require("@vue/reactivity");require("@vue/shared");require("../divider/index.cjs");const U=require("../icon/index.cjs");require("../avatar/index.cjs");require("../empty/index.cjs");require("../result/index.cjs");require("../tabs/index.cjs");require("../popper/index.cjs");require("../collapse-transition/index.cjs");require("../tooltip/index.cjs");require("../popover/index.cjs");const f=require("../menu/index.cjs");require("../context-menu/context-menu.vue2.cjs");require("../multiple-tabs/multiple-tabs.vue2.cjs");require("@vft/store");const $=require("vue-router");require("../header-layout/index.cjs");require("../footer-layout/index.cjs");require("../iframe-layout/index.cjs");require("../router-view-content/index.cjs");require("../logo/index.cjs");require("../back-top/index.cjs");require("../config-provider/index.cjs");require("../descriptions/index.cjs");require("../full-screen/index.cjs");require("../icon-text/index.cjs");require("../image/index.cjs");require("../input/index.cjs");require("../link/index.cjs");require("../pagination/index.cjs");require("../tag/index.cjs");require("./index.cjs");require("../qrcode/index.cjs");require("../overlay/index.cjs");require("../clamp/index.cjs");require("../clamp-toggle/index.cjs");require("../page-wrapper/index.cjs");require("../exception/index.cjs");require("../search/index.cjs");require("../form/index.cjs");require("../button/index.cjs");require("../checkbox/index.cjs");require("../radio/index.cjs");require("../switch/index.cjs");require("../color-picker/index.cjs");require("../scrollbar/index.cjs");require("../dropdown/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../select-v2/index.cjs");require("../verify-code/index.cjs");require("../table/index.cjs");require("../image-viewer/index.cjs");require("../md-container/index.cjs");require("../md-comment/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../message/index.cjs");const l=H.useNamespace("side-menu"),P=u.defineComponent({name:l.b()}),E=u.defineComponent({...P,props:{menus:null,uniqueOpened:{type:Boolean,default:!0},collapse:{type:Boolean,default:!1},defaultActive:null,width:null,collapseWidth:{default:50},attrMapping:null,extraHeight:{default:100},menuTopBottomHeight:{default:40},showCollapse:{type:Boolean,default:!1},dragOption:null,useMenuSelect:{type:Boolean,default:!0}},emits:["update:collapse","dragEnd","select"],setup(t,{emit:h}){const q=u.useSlots(),v=u.ref(),a=u.computed(()=>({path:"path",children:"children",title:"title",index:"path",icon:"icon",...t.attrMapping}));M.listenerRouteChange(e=>{!e||e.meta.hideSide||(v.value=e.path)});const x=(e,o)=>{const n=e[a.value.path],c=e[a.value.title],i=e==null?void 0:e[a.value.children],s=e==null?void 0:e[a.value.index],d=e==null?void 0:e[a.value.icon];return i!=null&&i.length?u.h(f.VftSubMenu,{popperAppendToBody:!0,key:s||n,index:s||n,title:c,icon:d,popperClass:l.e("popper")},{default:()=>i==null?void 0:i.map((r,k)=>{var m;const g=r[a.value.path],y=r[a.value.index],w=r[a.value.icon],B=r[a.value.title];return(m=r==null?void 0:r[a.value.children])!=null&&m.length?x(r,k):u.h(f.VftMenuItem,{key:y||g,index:y||g,route:g,icon:w,title:B,disabled:r.disabled})})}):u.h(f.VftMenuItem,{key:s||n,index:s||n,title:c,route:n,icon:d,disabled:e.disabled},q.menuItem?()=>{var r;return(r=q.menuItem)==null?void 0:r.call(q,{item:e,index:o})}:"")},O=u.computed(()=>{var e,o;return u.h(f.VftMenu,{onSelect:t.useMenuSelect?b:()=>{},defaultActive:t.defaultActive||v.value,class:[l.e("con"),(e=t.dragOption)!=null&&e.dragClassName?l.e((o=t.dragOption)==null?void 0:o.dragClassName):""],style:{height:`calc(100% - ${t.menuTopBottomHeight}px)`},uniqueOpened:t.uniqueOpened,collapse:t.collapse,"collapse-transition":!1},()=>t.menus.map((n,c)=>x(n,c)))}),{go:C}=M.useRouterHelper(),S=$.useRouter();async function b(e){var i,s,d;const o=e.route;let n=e.route;e.indexPath.some(r=>p.isUrl(r))&&(n=e.indexPath.slice(-2).join("/"));const c=(d=(s=(i=S.getRoutes().filter(r=>r.path===n))==null?void 0:i[0])==null?void 0:s.meta)==null?void 0:d.linkTarget;C(c?{url:o,winOpenOpt:{target:c}}:o),h("select",e)}const N=u.computed(()=>({...R.generateCssVars({width:t.collapse?p.addUnit(t.collapseWidth):p.addUnit(t.width)},"side-menu"),height:`calc(100% - ${t.extraHeight}px)`})),V=u.computed(()=>[l.b(),l.m("fixed")]);function T(){h("update:collapse",!t.collapse)}return u.onMounted(()=>{u.nextTick(()=>{var e,o,n;if((e=t.dragOption)!=null&&e.dragClassName){const c=(n=document.querySelectorAll("."+l.e((o=t.dragOption)==null?void 0:o.dragClassName)))==null?void 0:n[0],{initSortable:i}=A.useSortable(c,{draggable:".vft-menu-item",onEnd:s=>{const{oldIndex:d,newIndex:r}=s;p.isNullOrUndefined(d)||p.isNullOrUndefined(r)||d===r||h("dragEnd",d,r)},...t.dragOption});i()}})}),()=>u.createVNode("div",{class:V.value,style:N.value},[q.top?u.createVNode("div",{class:l.e("top")},[q.top()]):null,O.value,q.bottom?u.createVNode("div",{class:l.e("bottom")},[q.bottom()]):t.showCollapse?u.createVNode("div",{onClick:T,class:[l.e("bottom"),l.e("collapse")]},[u.createVNode(U.VftIcon,{style:{transform:t.collapse?"rotateY(180deg)":""},size:20,icon:"ico-iconoir:sidebar-collapse"},null)]):null])}});exports.default=E;
@@ -1,8 +1,4 @@
1
1
  export declare const VftTabs: import("vft/es/utils").SFCWithInstall<import("vue").DefineComponent<{
2
- type: {
3
- type: import("vue").PropType<import("./types").TabsType | undefined>;
4
- required: false;
5
- };
6
2
  closable: {
7
3
  type: import("vue").PropType<boolean | undefined>;
8
4
  required: false;
@@ -31,6 +27,10 @@ export declare const VftTabs: import("vft/es/utils").SFCWithInstall<import("vue"
31
27
  type: import("vue").PropType<boolean | undefined>;
32
28
  required: false;
33
29
  };
30
+ showBar: {
31
+ type: import("vue").PropType<boolean | undefined>;
32
+ required: false;
33
+ };
34
34
  closeIconCfg: {
35
35
  type: import("vue").PropType<import("..").IconProps | undefined>;
36
36
  required: false;
@@ -92,10 +92,6 @@ export declare const VftTabs: import("vft/es/utils").SFCWithInstall<import("vue"
92
92
  tabRemove: (name: string | number) => boolean;
93
93
  tabAdd: () => true;
94
94
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
95
- type: {
96
- type: import("vue").PropType<import("./types").TabsType | undefined>;
97
- required: false;
98
- };
99
95
  closable: {
100
96
  type: import("vue").PropType<boolean | undefined>;
101
97
  required: false;
@@ -124,6 +120,10 @@ export declare const VftTabs: import("vft/es/utils").SFCWithInstall<import("vue"
124
120
  type: import("vue").PropType<boolean | undefined>;
125
121
  required: false;
126
122
  };
123
+ showBar: {
124
+ type: import("vue").PropType<boolean | undefined>;
125
+ required: false;
126
+ };
127
127
  closeIconCfg: {
128
128
  type: import("vue").PropType<import("..").IconProps | undefined>;
129
129
  required: false;
@@ -1,6 +1,5 @@
1
1
  import type { PropType as __PropType } from 'vue';
2
2
  import { type IconProps } from 'vft/es/components';
3
- import type { TabsType } from './types';
4
3
  declare const _sfc_main: import("vue").DefineComponent<{
5
4
  panes: {
6
5
  type: __PropType<{
@@ -31,11 +30,11 @@ declare const _sfc_main: import("vue").DefineComponent<{
31
30
  type: __PropType<boolean | undefined>;
32
31
  required: false;
33
32
  };
34
- type: {
35
- type: __PropType<TabsType | undefined>;
33
+ stretch: {
34
+ type: __PropType<boolean | undefined>;
36
35
  required: false;
37
36
  };
38
- stretch: {
37
+ showBar: {
39
38
  type: __PropType<boolean | undefined>;
40
39
  required: false;
41
40
  };
@@ -88,11 +87,11 @@ declare const _sfc_main: import("vue").DefineComponent<{
88
87
  type: __PropType<boolean | undefined>;
89
88
  required: false;
90
89
  };
91
- type: {
92
- type: __PropType<TabsType | undefined>;
90
+ stretch: {
91
+ type: __PropType<boolean | undefined>;
93
92
  required: false;
94
93
  };
95
- stretch: {
94
+ showBar: {
96
95
  type: __PropType<boolean | undefined>;
97
96
  required: false;
98
97
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),w=require("@vft/utils"),G=require("../../utils/error.cjs");require("lodash");const T=require("@vueuse/core");require("../../utils/ns-cover.cjs");require("../divider/index.cjs");const V=require("../icon/index.cjs");require("../avatar/index.cjs");require("../empty/index.cjs");require("../result/index.cjs");require("./index.cjs");require("../popper/index.cjs");require("../collapse-transition/index.cjs");require("../tooltip/index.cjs");require("../popover/index.cjs");require("../menu/index.cjs");require("@vft/use");require("../multiple-tabs/multiple-tabs.vue2.cjs");require("@vft/router");require("@vft/store");require("vue-router");require("../header-layout/index.cjs");require("../footer-layout/index.cjs");require("../iframe-layout/index.cjs");require("../router-view-content/index.cjs");require("../logo/index.cjs");require("../back-top/index.cjs");require("../config-provider/index.cjs");require("../descriptions/index.cjs");require("../full-screen/index.cjs");require("../icon-text/index.cjs");require("../image/index.cjs");require("../input/index.cjs");require("../link/index.cjs");require("../pagination/index.cjs");require("../tag/index.cjs");require("../side-menu/index.cjs");require("../qrcode/index.cjs");require("../overlay/index.cjs");require("../clamp/index.cjs");require("../clamp-toggle/index.cjs");require("../page-wrapper/index.cjs");require("../exception/index.cjs");require("../search/index.cjs");require("../form/index.cjs");require("../button/index.cjs");require("../checkbox/index.cjs");require("../radio/index.cjs");require("../switch/index.cjs");require("../color-picker/index.cjs");require("../scrollbar/index.cjs");require("../dropdown/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../select-v2/index.cjs");require("../verify-code/index.cjs");require("../table/index.cjs");require("../image-viewer/index.cjs");require("../md-container/index.cjs");require("../md-comment/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../message/index.cjs");const R=require("../../hooks/use-namespace/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");require("@vue/reactivity");require("@vue/shared");const x=require("@vft/constants"),J=require("./types.cjs"),Q=require("./tab-bar.vue2.cjs"),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(n,{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 o=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 r=b.value[`offset${w.capitalize(h.value)}`],e=d.value;e&&(d.value=e>r?e-r:0)},j=()=>{if(!b.value||!C.value)return;const r=C.value[`offset${w.capitalize(h.value)}`],e=b.value[`offset${w.capitalize(h.value)}`],i=d.value;r-i<=e||(d.value=r-i>e*2?i+e:r-e)},$=async()=>{const r=C.value;if(!f.value||!N.value||!b.value||!r)return;await t.nextTick();const e=N.value.querySelector(".is-active");if(!e)return;const i=b.value,g=["top","bottom"].includes(q.props.tabPosition),l=e.getBoundingClientRect(),a=i.getBoundingClientRect(),c=g?r.offsetWidth-a.width:r.offsetHeight-a.height,s=d.value;let u=s;g?(l.left<a.left&&(u=s-(a.left-l.left)),l.right>a.right&&(u=s+l.right-a.right)):(l.top<a.top&&(u=s-(a.top-l.top)),l.bottom>a.bottom&&(u=s+(l.bottom-a.bottom))),u=Math.max(u,0),d.value=Math.min(u,c)},O=()=>{if(!C.value||!b.value)return;const r=C.value[`offset${w.capitalize(h.value)}`],e=b.value[`offset${w.capitalize(h.value)}`],i=d.value;e<r?(f.value=f.value||{},f.value.prev=i,f.value.next=i+e<r,r-i<e&&(d.value=r-e)):(f.value=!1,i>0&&(d.value=0))},H=r=>{const e=r.code,{up:i,down:g,left:l,right:a}=x.EVENT_CODE;if(![i,g,l,a].includes(e))return;const c=Array.from(r.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),s=c.indexOf(r.target);let u;e===l||e===i?s===0?u=c.length-1:u=s-1:s<c.length-1?u=s+1:u=0,c[u].focus(),c[u].click(),z()},z=()=>{p.value&&(y.value=!0)},I=()=>y.value=!1;t.watch(F,r=>{r==="hidden"?p.value=!1:r==="visible"&&setTimeout(()=>p.value=!0,50)}),t.watch(L,r=>{r?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(()=>n.panes,()=>D.update(),{flush:"post"});const W=t.computed(()=>{var r,e;return f.value?[t.createVNode("span",{class:[o.e("nav-prev"),o.is("disabled",!f.value.prev)],onClick:K},[(r=n.arrowLeftIconCfg)!=null&&r.icon?t.createVNode(V.VftIcon,n.arrowLeftIconCfg,null):null]),t.createVNode("span",{class:[o.e("nav-next"),o.is("disabled",!f.value.next)],onClick:j},[(e=n.arrowRightIconCfg)!=null&&e.icon?t.createVNode(V.VftIcon,n.arrowRightIconCfg,null):null])]:null}),U=t.computed(()=>{var r;return(r=n.panes)==null?void 0:r.map((e,i)=>{var S,k,B;const g=e.uid,l=e.props.disabled,a=e.props.name??e.index??`${i}`,c=!l&&(e.isClosable||n.editable);e.index=`${i}`;const s=c?t.createVNode("span",{class:"is-icon-close",onClick:v=>m("tabRemove",e,v)},[(S=n.closeIconCfg)!=null&&S.icon?t.createVNode(V.VftIcon,n.closeIconCfg,null):null]):null,u=((B=(k=e.slots).label)==null?void 0:B.call(k))||e.props.label,Y=!l&&e.active?0:-1;return t.createVNode("div",{ref:`tab-${g}`,class:[o.e("item"),o.is(q.props.tabPosition),o.is("active",e.active),o.is("disabled",l),o.is("closable",c),o.is("focus",y.value)],id:`tab-${a}`,key:`tab-${g}`,"aria-controls":`pane-${a}`,role:"tab","aria-selected":e.active,tabindex:Y,onFocus:()=>z(),onBlur:()=>I(),onClick:v=>{I(),m("tabClick",e,a,v)},onContextmenu:v=>{v.preventDefault(),m("tabContextmenu",{pane:e,index:i,event:v})},onKeydown:v=>{c&&(v.code===x.EVENT_CODE.delete||v.code===x.EVENT_CODE.backspace)&&m("tabRemove",e,v)}},[u,s])})}),X=n.editable||n.addable?t.createVNode("span",{class:o.e("new-tab"),tabindex:"0",onClick:()=>m("tabAdd"),onKeydown:r=>{r.code===x.EVENT_CODE.enter&&m("tabAdd")}},[(E=n.addIconCfg)!=null&&E.icon?t.createVNode(V.VftIcon,n.addIconCfg,null):null]):null;return()=>t.createVNode("div",{ref:N,class:[o.e("nav-wrap"),o.is("scrollable",!!f.value),o.is(q.props.tabPosition)]},[W.value,t.createVNode("div",{class:o.e("nav-scroll"),ref:b},[t.createVNode("div",{class:[o.e("nav"),o.is(q.props.tabPosition),o.is("stretch",n.stretch&&["top","bottom"].includes(q.props.tabPosition))],ref:C,style:M.value,role:"tablist",onKeydown:H},[n.type?null:t.createVNode(Q.default,{tabs:[...n.panes]},null),U.value]),X])])}});exports.default=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),w=require("@vft/utils"),G=require("../../utils/error.cjs");require("lodash");const T=require("@vueuse/core");require("../../utils/ns-cover.cjs");require("../divider/index.cjs");const V=require("../icon/index.cjs");require("../avatar/index.cjs");require("../empty/index.cjs");require("../result/index.cjs");require("./index.cjs");require("../popper/index.cjs");require("../collapse-transition/index.cjs");require("../tooltip/index.cjs");require("../popover/index.cjs");require("../menu/index.cjs");require("../context-menu/context-menu.vue2.cjs");require("../multiple-tabs/multiple-tabs.vue2.cjs");require("@vft/router");require("@vft/store");require("@vft/use");require("vue-router");require("../header-layout/index.cjs");require("../footer-layout/index.cjs");require("../iframe-layout/index.cjs");require("../router-view-content/index.cjs");require("../logo/index.cjs");require("../back-top/index.cjs");require("../config-provider/index.cjs");require("../descriptions/index.cjs");require("../full-screen/index.cjs");require("../icon-text/index.cjs");require("../image/index.cjs");require("../input/index.cjs");require("../link/index.cjs");require("../pagination/index.cjs");require("../tag/index.cjs");require("../side-menu/index.cjs");require("../qrcode/index.cjs");require("../overlay/index.cjs");require("../clamp/index.cjs");require("../clamp-toggle/index.cjs");require("../page-wrapper/index.cjs");require("../exception/index.cjs");require("../search/index.cjs");require("../form/index.cjs");require("../button/index.cjs");require("../checkbox/index.cjs");require("../radio/index.cjs");require("../switch/index.cjs");require("../color-picker/index.cjs");require("../scrollbar/index.cjs");require("../dropdown/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../select-v2/index.cjs");require("../verify-code/index.cjs");require("../table/index.cjs");require("../image-viewer/index.cjs");require("../md-container/index.cjs");require("../md-comment/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../message/index.cjs");const R=require("../../hooks/use-namespace/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");require("@vue/reactivity");require("@vue/shared");const x=require("@vft/constants"),J=require("./types.cjs"),Q=require("./tab-bar.vue2.cjs"),P=R.useNamespace("tab-nav"),Z=t.defineComponent({name:P.b()}),_=t.defineComponent({...Z,props:{panes:null,editable:{type:Boolean},addable:{type:Boolean},stretch:{type:Boolean},showBar:{type:Boolean,default:!1},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:["tabClick","tabRemove","tabAdd","tabContextmenu"],setup(n,{expose:A,emit:m}){var z;const D=t.getCurrentInstance(),b=t.inject(J.TabsRootContextKey);b||G.throwError(P.b(),"<vft-tabs><tab-nav /></vft-tabs>");const o=R.useNamespace("tabs"),F=T.useDocumentVisibility(),L=T.useWindowFocus(),N=t.ref(),q=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(b.props.tabPosition)?"width":"height"),M=t.computed(()=>({transform:`translate${h.value==="width"?"X":"Y"}(-${d.value}px)`})),K=()=>{if(!q.value)return;const r=q.value[`offset${w.capitalize(h.value)}`],e=d.value;e&&(d.value=e>r?e-r:0)},j=()=>{if(!q.value||!C.value)return;const r=C.value[`offset${w.capitalize(h.value)}`],e=q.value[`offset${w.capitalize(h.value)}`],i=d.value;r-i<=e||(d.value=r-i>e*2?i+e:r-e)},$=async()=>{const r=C.value;if(!f.value||!N.value||!q.value||!r)return;await t.nextTick();const e=N.value.querySelector(".is-active");if(!e)return;const i=q.value,g=["top","bottom"].includes(b.props.tabPosition),l=e.getBoundingClientRect(),a=i.getBoundingClientRect(),c=g?r.offsetWidth-a.width:r.offsetHeight-a.height,s=d.value;let u=s;g?(l.left<a.left&&(u=s-(a.left-l.left)),l.right>a.right&&(u=s+l.right-a.right)):(l.top<a.top&&(u=s-(a.top-l.top)),l.bottom>a.bottom&&(u=s+(l.bottom-a.bottom))),u=Math.max(u,0),d.value=Math.min(u,c)},B=()=>{if(!C.value||!q.value)return;const r=C.value[`offset${w.capitalize(h.value)}`],e=q.value[`offset${w.capitalize(h.value)}`],i=d.value;e<r?(f.value=f.value||{},f.value.prev=i,f.value.next=i+e<r,r-i<e&&(d.value=r-e)):(f.value=!1,i>0&&(d.value=0))},H=r=>{const e=r.code,{up:i,down:g,left:l,right:a}=x.EVENT_CODE;if(![i,g,l,a].includes(e))return;const c=Array.from(r.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),s=c.indexOf(r.target);let u;e===l||e===i?s===0?u=c.length-1:u=s-1:s<c.length-1?u=s+1:u=0,c[u].focus(),c[u].click(),O()},O=()=>{p.value&&(y.value=!0)},I=()=>y.value=!1;t.watch(F,r=>{r==="hidden"?p.value=!1:r==="visible"&&setTimeout(()=>p.value=!0,50)}),t.watch(L,r=>{r?setTimeout(()=>p.value=!0,50):p.value=!1}),T.useResizeObserver(N,B),t.onMounted(()=>setTimeout(()=>$(),0)),t.onUpdated(()=>B()),A({scrollToActiveTab:$,removeFocus:I}),t.watch(()=>n.panes,()=>D.update(),{flush:"post"});const W=t.computed(()=>{var r,e;return f.value?[t.createVNode("span",{class:[o.e("nav-prev"),o.is("disabled",!f.value.prev)],onClick:K},[(r=n.arrowLeftIconCfg)!=null&&r.icon?t.createVNode(V.VftIcon,n.arrowLeftIconCfg,null):null]),t.createVNode("span",{class:[o.e("nav-next"),o.is("disabled",!f.value.next)],onClick:j},[(e=n.arrowRightIconCfg)!=null&&e.icon?t.createVNode(V.VftIcon,n.arrowRightIconCfg,null):null])]:null}),U=t.computed(()=>{var r;return(r=n.panes)==null?void 0:r.map((e,i)=>{var E,S,k;const g=e.uid,l=e.props.disabled,a=e.props.name??e.index??`${i}`,c=!l&&(e.isClosable||n.editable);e.index=`${i}`;const s=c?t.createVNode("span",{class:"is-icon-close",onClick:v=>m("tabRemove",e,v)},[(E=n.closeIconCfg)!=null&&E.icon?t.createVNode(V.VftIcon,n.closeIconCfg,null):null]):null,u=((k=(S=e.slots).label)==null?void 0:k.call(S))||e.props.label,Y=!l&&e.active?0:-1;return t.createVNode("div",{ref:`tab-${g}`,class:[o.e("item"),o.is(b.props.tabPosition),o.is("active",e.active),o.is("disabled",l),o.is("closable",c),o.is("focus",y.value)],id:`tab-${a}`,key:`tab-${g}`,"aria-controls":`pane-${a}`,role:"tab","aria-selected":e.active,tabindex:Y,onFocus:()=>O(),onBlur:()=>I(),onClick:v=>{I(),m("tabClick",e,a,v)},onContextmenu:v=>{v.preventDefault(),m("tabContextmenu",{pane:e,index:i,event:v})},onKeydown:v=>{c&&(v.code===x.EVENT_CODE.delete||v.code===x.EVENT_CODE.backspace)&&m("tabRemove",e,v)}},[u,s])})}),X=n.editable||n.addable?t.createVNode("span",{class:o.e("new-tab"),tabindex:"0",onClick:()=>m("tabAdd"),onKeydown:r=>{r.code===x.EVENT_CODE.enter&&m("tabAdd")}},[(z=n.addIconCfg)!=null&&z.icon?t.createVNode(V.VftIcon,n.addIconCfg,null):null]):null;return()=>t.createVNode("div",{ref:N,class:[o.e("nav-wrap"),o.is("scrollable",!!f.value),o.is(b.props.tabPosition)]},[W.value,t.createVNode("div",{class:o.e("nav-scroll"),ref:q},[t.createVNode("div",{class:[o.e("nav"),o.is(b.props.tabPosition),o.is("stretch",n.stretch&&["top","bottom"].includes(b.props.tabPosition))],ref:C,style:M.value,role:"tablist",onKeydown:H},[n.showBar?t.createVNode(Q.default,{tabs:[...n.panes]},null):null,U.value]),X])])}});exports.default=_;
@@ -1,11 +1,7 @@
1
1
  import type { PropType as __PropType } from 'vue';
2
2
  import { type IconProps } from 'vft/es/components';
3
- import { type TabsPaneContext, type TabsType } from './types';
3
+ import { type TabsPaneContext } from './types';
4
4
  declare const _sfc_main: import("vue").DefineComponent<{
5
- type: {
6
- type: __PropType<TabsType | undefined>;
7
- required: false;
8
- };
9
5
  closable: {
10
6
  type: __PropType<boolean | undefined>;
11
7
  required: false;
@@ -34,6 +30,10 @@ declare const _sfc_main: import("vue").DefineComponent<{
34
30
  type: __PropType<boolean | undefined>;
35
31
  required: false;
36
32
  };
33
+ showBar: {
34
+ type: __PropType<boolean | undefined>;
35
+ required: false;
36
+ };
37
37
  closeIconCfg: {
38
38
  type: __PropType<IconProps | undefined>;
39
39
  required: false;
@@ -65,10 +65,6 @@ declare const _sfc_main: import("vue").DefineComponent<{
65
65
  /** 增加 */
66
66
  tabAdd: () => true;
67
67
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
68
- type: {
69
- type: __PropType<TabsType | undefined>;
70
- required: false;
71
- };
72
68
  closable: {
73
69
  type: __PropType<boolean | undefined>;
74
70
  required: false;
@@ -97,6 +93,10 @@ declare const _sfc_main: import("vue").DefineComponent<{
97
93
  type: __PropType<boolean | undefined>;
98
94
  required: false;
99
95
  };
96
+ showBar: {
97
+ type: __PropType<boolean | undefined>;
98
+ required: false;
99
+ };
100
100
  closeIconCfg: {
101
101
  type: __PropType<IconProps | undefined>;
102
102
  required: false;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),P=require("../../hooks/use-namespace/index.cjs");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.cjs");require("@vueuse/core");const s=require("@vft/utils");require("../../utils/ns-cover.cjs");const V=require("../../hooks/use-ordered-children/index.cjs");require("@vue/reactivity");require("@vue/shared");const A=require("@vft/constants"),E=require("./tab-nav.vue2.cjs"),k=require("./types.cjs"),c=P.useNamespace("tabs"),M=n.defineComponent({name:c.b()}),z=n.defineComponent({...M,props:{type:{default:""},closable:{type:Boolean},addable:{type:Boolean,default:!1},modelValue:null,editable:{type:Boolean},tabPosition:{default:"top"},beforeLeave:{type:Function},stretch:{type:Boolean},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:{[A.UPDATE_MODEL_EVENT]:t=>s.isNumberish(t),tabClick:(t,u)=>u instanceof Event,tabContextMenu:(t,u,a)=>a instanceof Event,tabChange:t=>s.isNumberish(t),edit:(t,u)=>["remove","add"].includes(u),tabRemove:t=>s.isNumberish(t),tabAdd:()=>!0},setup(t,{expose:u,emit:a}){const C=n.getCurrentInstance(),i=n.useSlots(),l=n.ref(),d=n.ref(t.modelValue??"0"),g=e=>{d.value=e,a("update:modelValue",e),a("tabChange",e)},f=async e=>{var o,r,m;if(!(d.value===e||s.isUndefined(e)))try{await((o=t.beforeLeave)==null?void 0:o.call(t,e,d.value))!==!1&&(g(e),(m=(r=l.value)==null?void 0:r.removeFocus)==null||m.call(r))}catch{}},h=(e,o,r)=>{e.props.disabled||(f(o),a("tabClick",e,r))},I=(e,o)=>{e.props.disabled||s.isUndefined(e.props.name)||(o.stopPropagation(),a("edit",e.props.name,"remove"),a("tabRemove",e.props.name))};n.watch(()=>t.modelValue,e=>f(e)),n.watch(d,async()=>{var e;await n.nextTick(),(e=l.value)==null||e.scrollToActiveTab()});const p=()=>{a("edit",void 0,"add"),a("tabAdd")},y=(e,o,r)=>{a("tabContextMenu",e,o,r)},b=n.computed(()=>{var e;return n.createVNode("div",{class:c.e("content")},[(e=i.default)==null?void 0:e.call(i)])}),{children:N,addChild:q,removeChild:w}=V.useOrderedChildren(n.getCurrentInstance(),"vft-tab-pane");n.provide(k.TabsRootContextKey,{props:C.props,currentName:d,registerPane:q,unregisterPane:w}),u({currentName:d});const T=n.computed(()=>({icon:"ico-ep:plus",size:12,...t.addIconCfg})),R=n.computed(()=>({icon:"ico-ep:close",size:14,...t.closeIconCfg})),x=n.computed(()=>({icon:"ico-ep:arrow-left",size:18,...t.arrowLeftIconCfg})),L=n.computed(()=>({icon:"ico-ep:arrow-right",size:18,...t.arrowRightIconCfg})),v=n.computed(()=>{var e;return n.createVNode("div",{class:[c.e("header"),c.is(t.tabPosition)]},[n.createVNode(E.default,{ref:l,currentName:d.value,panes:N.value,stretch:t.stretch,closeIconCfg:R.value,addIconCfg:T.value,arrowRightIconCfg:L.value,arrowLeftIconCfg:x.value,editable:t.editable,addable:t.addable,type:t.type,onTabClick:h,onTabRemove:I,onTabAdd:p,onTabContextmenu:y},null),(e=i.headerRight)==null?void 0:e.call(i)])});return()=>n.createVNode("div",{class:[c.b(),c.m(t.tabPosition),{[c.m("card")]:t.type==="card",[c.m("border-card")]:t.type==="border-card"}]},[...t.tabPosition!=="bottom"?[v.value,b.value]:[b.value,v.value]])}});exports.default=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),P=require("../../hooks/use-namespace/index.cjs");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.cjs");require("@vueuse/core");const s=require("@vft/utils");require("../../utils/ns-cover.cjs");const V=require("../../hooks/use-ordered-children/index.cjs");require("@vue/reactivity");require("@vue/shared");const A=require("@vft/constants"),B=require("./tab-nav.vue2.cjs"),E=require("./types.cjs"),d=P.useNamespace("tabs"),k=n.defineComponent({name:d.b()}),M=n.defineComponent({...k,props:{type:null,closable:{type:Boolean},addable:{type:Boolean,default:!1},modelValue:null,editable:{type:Boolean},tabPosition:{default:"top"},beforeLeave:{type:Function},stretch:{type:Boolean},closeIconCfg:null,addIconCfg:null,arrowLeftIconCfg:null,arrowRightIconCfg:null},emits:{[A.UPDATE_MODEL_EVENT]:t=>s.isNumberish(t),tabClick:(t,u)=>u instanceof Event,tabContextMenu:(t,u,a)=>a instanceof Event,tabChange:t=>s.isNumberish(t),edit:(t,u)=>["remove","add"].includes(u),tabRemove:t=>s.isNumberish(t),tabAdd:()=>!0},setup(t,{expose:u,emit:a}){const m=n.getCurrentInstance(),i=n.useSlots(),l=n.ref(),c=n.ref(t.modelValue??"0"),g=e=>{c.value=e,a("update:modelValue",e),a("tabChange",e)},f=async e=>{var o,r,C;if(!(c.value===e||s.isUndefined(e)))try{await((o=t.beforeLeave)==null?void 0:o.call(t,e,c.value))!==!1&&(g(e),(C=(r=l.value)==null?void 0:r.removeFocus)==null||C.call(r))}catch{}},h=(e,o,r)=>{e.props.disabled||(f(o),a("tabClick",e,r))},I=(e,o)=>{e.props.disabled||s.isUndefined(e.props.name)||(o.stopPropagation(),a("edit",e.props.name,"remove"),a("tabRemove",e.props.name))};n.watch(()=>t.modelValue,e=>f(e)),n.watch(c,async()=>{var e;await n.nextTick(),(e=l.value)==null||e.scrollToActiveTab()});const p=()=>{a("edit",void 0,"add"),a("tabAdd")},w=(e,o,r)=>{a("tabContextMenu",e,o,r)},b=n.computed(()=>{var e;return n.createVNode("div",{class:d.e("content")},[(e=i.default)==null?void 0:e.call(i)])}),{children:N,addChild:q,removeChild:T}=V.useOrderedChildren(n.getCurrentInstance(),"vft-tab-pane");n.provide(E.TabsRootContextKey,{props:m.props,currentName:c,registerPane:q,unregisterPane:T}),u({currentName:c});const y=n.computed(()=>({icon:"ico-ep:plus",size:12,...t.addIconCfg})),R=n.computed(()=>({icon:"ico-ep:close",size:14,...t.closeIconCfg})),x=n.computed(()=>({icon:"ico-ep:arrow-left",size:18,...t.arrowLeftIconCfg})),L=n.computed(()=>({icon:"ico-ep:arrow-right",size:18,...t.arrowRightIconCfg})),v=n.computed(()=>{var e;return n.createVNode("div",{class:[d.e("header"),d.is(t.tabPosition)]},[n.createVNode(B.default,{ref:l,currentName:c.value,panes:N.value,stretch:t.stretch,showBar:t.showBar,closeIconCfg:R.value,addIconCfg:y.value,arrowRightIconCfg:L.value,arrowLeftIconCfg:x.value,editable:t.editable,addable:t.addable,onTabClick:h,onTabRemove:I,onTabAdd:p,onTabContextmenu:w},null),(e=i.headerRight)==null?void 0:e.call(i)])});return()=>n.createVNode("div",{class:[d.b(),d.m(t.tabPosition)]},[...t.tabPosition!=="bottom"?[v.value,b.value]:[b.value,v.value]])}});exports.default=M;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.53";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.55";exports.version=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -62,6 +62,11 @@
62
62
  "vxe-table": "^4.3.6",
63
63
  "xe-utils": "^3.5.7"
64
64
  },
65
+ "vetur": {
66
+ "tags": "tags.json",
67
+ "attributes": "attributes.json"
68
+ },
69
+ "web-types": "web-types.json",
65
70
  "scripts": {
66
71
  "update:version": "pnpm version patch",
67
72
  "clean": "pnpm /^clean:/",
package/tags.json ADDED
@@ -0,0 +1 @@
1
+ {"vft-button":{"attributes":["size","type","plain","text<VersionTag version=\"2.2.0\" />","bg<VersionTag version=\"2.2.0\" />","link<VersionTag version=\"2.2.1\" />","round","circle","loading","loading-icon","disabled","icon","autofocus","native-type","auto-insert-space","color","dark"],"description":"[Docs](https://element-plus.org/en-US/component/button.html#button)"},"vft-button-group":{"description":"[Docs](https://element-plus.org/en-US/component/button.html#buttongroup)"}}
@@ -1 +1 @@
1
- html.dark{color-scheme:dark;--vft-primary-color:#2196f3;--vft-primary-color-light-3:#1d6fb0;--vft-primary-color-light-5:#1b5584;--vft-primary-color-light-7:#183b57;--vft-primary-color-light-8:#172e41;--vft-primary-color-light-9:#15212a;--vft-primary-color-dark-2:#4dabf5;--vft-success-color:#3eaf7c;--vft-success-color-light-3:#31815d;--vft-success-color-light-5:#296248;--vft-success-color-light-7:#214333;--vft-success-color-light-8:#1c3329;--vft-success-color-light-9:#18241e;--vft-success-color-dark-2:#65bf96;--vft-warning-color:#fb9b5f;--vft-warning-color-light-3:#b67349;--vft-warning-color-light-5:#88583a;--vft-warning-color-light-7:#593d2b;--vft-warning-color-light-8:#422f23;--vft-warning-color-light-9:#2b221c;--vft-warning-color-dark-2:#fcaf7f;--vft-danger-color:#f26d6d;--vft-danger-color-light-3:#af5252;--vft-danger-color-light-5:#834141;--vft-danger-color-light-7:#572f2f;--vft-danger-color-light-8:#402626;--vft-danger-color-light-9:#2a1d1d;--vft-danger-color-dark-2:#f58a8a;--vft-error-color:#f26d6d;--vft-error-color-light-3:#af5252;--vft-error-color-light-5:#834141;--vft-error-color-light-7:#572f2f;--vft-error-color-light-8:#402626;--vft-error-color-light-9:#2a1d1d;--vft-error-color-dark-2:#f58a8a;--vft-info-color:#909399;--vft-info-color-light-3:#6b6d71;--vft-info-color-light-5:#525457;--vft-info-color-light-7:#393a3c;--vft-info-color-light-8:#2d2d2f;--vft-info-color-light-9:#202121;--vft-info-color-dark-2:#a6a9ad;--vft-box-shadow:0px 12px 32px 4px rgba(255, 255, 255, 0.36),0px 8px 20px rgba(255, 255, 255, 0.72);--vft-box-shadow-light:0px 0px 12px rgba(255, 255, 255, 0.72);--vft-box-shadow-lighter:0px 0px 6px rgba(255, 255, 255, 0.72);--vft-box-shadow-dark:0px 16px 48px 16px rgba(255, 255, 255, 0.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--vft-bg-color-page:#0a0a0a;--vft-bg-color:#141414;--vft-bg-color-overlay:#1d1e1f;--vft-text-primary-color:#E5EAF3;--vft-text-regular-color:#CFD3DC;--vft-text-secondary-color:#A3A6AD;--vft-text-placeholder-color:#8D9095;--vft-text-disabled-color:#6C6E72;--vft-border-color-darker:#636466;--vft-border-color-dark:#58585B;--vft-border-color:#4C4D4F;--vft-border-color-light:#414243;--vft-border-color-lighter:#363637;--vft-border-color-extra-light:#2B2B2C;--vft-fill-color-darker:#424243;--vft-fill-color-dark:#39393A;--vft-fill-color:#303030;--vft-fill-color-light:#262727;--vft-fill-color-lighter:#1D1D1D;--vft-fill-color-extra-light:#191919;--vft-fill-color-blank:transparent;--vft-mask-color:rgba(255, 255, 255, 0.8);--vft-mask-color-extra-light:rgba(255, 255, 255, 0.3)}html.dark .vft-button{--vft-button-disabled-text-color:rgba(255, 255, 255, 0.5)}html.dark .vft-card{--vft-card-bg-color:var(--vft-bg-color-overlay)}html.dark .vft-empty{--vft-empty-fill-color-0:var(--vft-color-black);--vft-empty-fill-color-1:#4b4b52;--vft-empty-fill-color-2:#36383d;--vft-empty-fill-color-3:#1e1e20;--vft-empty-fill-color-4:#262629;--vft-empty-fill-color-5:#202124;--vft-empty-fill-color-6:#212224;--vft-empty-fill-color-7:#1b1c1f;--vft-empty-fill-color-8:#1c1d1f;--vft-empty-fill-color-9:#18181a}
1
+ html.dark{color-scheme:dark;--vft-primary-color:#2196f3;--vft-primary-color-light-3:#1d6fb0;--vft-primary-color-light-5:#1b5584;--vft-primary-color-light-7:#183b57;--vft-primary-color-light-8:#172e41;--vft-primary-color-light-9:#15212a;--vft-primary-color-dark-2:#4dabf5;--vft-success-color:#3eaf7c;--vft-success-color-light-3:#31815d;--vft-success-color-light-5:#296248;--vft-success-color-light-7:#214333;--vft-success-color-light-8:#1c3329;--vft-success-color-light-9:#18241e;--vft-success-color-dark-2:#65bf96;--vft-warning-color:#fb9b5f;--vft-warning-color-light-3:#b67349;--vft-warning-color-light-5:#88583a;--vft-warning-color-light-7:#593d2b;--vft-warning-color-light-8:#422f23;--vft-warning-color-light-9:#2b221c;--vft-warning-color-dark-2:#fcaf7f;--vft-danger-color:#f26d6d;--vft-danger-color-light-3:#af5252;--vft-danger-color-light-5:#834141;--vft-danger-color-light-7:#572f2f;--vft-danger-color-light-8:#402626;--vft-danger-color-light-9:#2a1d1d;--vft-danger-color-dark-2:#f58a8a;--vft-error-color:#f26d6d;--vft-error-color-light-3:#af5252;--vft-error-color-light-5:#834141;--vft-error-color-light-7:#572f2f;--vft-error-color-light-8:#402626;--vft-error-color-light-9:#2a1d1d;--vft-error-color-dark-2:#f58a8a;--vft-info-color:#909399;--vft-info-color-light-3:#6b6d71;--vft-info-color-light-5:#525457;--vft-info-color-light-7:#393a3c;--vft-info-color-light-8:#2d2d2f;--vft-info-color-light-9:#202121;--vft-info-color-dark-2:#a6a9ad;--vft-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, 0.36),0px 8px 20px rgba(0, 0, 0, 0.72);--vft-box-shadow-light:0px 0px 12px rgba(0, 0, 0, 0.72);--vft-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, 0.72);--vft-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, 0.72),0px 12px 32px #000,0px 8px 16px -8px #000;--vft-bg-color-page:#0a0a0a;--vft-bg-color:#141414;--vft-bg-color-overlay:#1d1e1f;--vft-text-primary-color:#E5EAF3;--vft-text-regular-color:#CFD3DC;--vft-text-secondary-color:#A3A6AD;--vft-text-placeholder-color:#8D9095;--vft-text-disabled-color:#6C6E72;--vft-border-color-darker:#636466;--vft-border-color-dark:#58585B;--vft-border-color:#4C4D4F;--vft-border-color-light:#414243;--vft-border-color-lighter:#363637;--vft-border-color-extra-light:#2B2B2C;--vft-fill-color-darker:#424243;--vft-fill-color-dark:#39393A;--vft-fill-color:#303030;--vft-fill-color-light:#262727;--vft-fill-color-lighter:#1D1D1D;--vft-fill-color-extra-light:#191919;--vft-fill-color-blank:transparent;--vft-mask-color:rgba(255, 255, 255, 0.8);--vft-mask-color-extra-light:rgba(255, 255, 255, 0.3)}html.dark .vft-button{--vft-button-disabled-text-color:rgba(255, 255, 255, 0.5)}html.dark .vft-card{--vft-card-bg-color:var(--vft-bg-color-overlay)}html.dark .vft-empty{--vft-empty-fill-color-0:var(--vft-color-black);--vft-empty-fill-color-1:#4b4b52;--vft-empty-fill-color-2:#36383d;--vft-empty-fill-color-3:#1e1e20;--vft-empty-fill-color-4:#262629;--vft-empty-fill-color-5:#202124;--vft-empty-fill-color-6:#212224;--vft-empty-fill-color-7:#1b1c1f;--vft-empty-fill-color-8:#1c1d1f;--vft-empty-fill-color-9:#18181a}html.dark .vft-header-layout{--vft-header-layout-bg-color:#21263e}html.dark .vft-multiple-tabs{--vft-multiple-tabs-bg-color:#21263e}html.dark .vft-tabs{--vft-tabs-item-color:#dbe1f0;--vft-tabs-item-color-active:#262626;--vft-tabs-item-color-hover:#262626}html.dark .vft-menu{--vft-menu-hover-bg-color:var(--vft-primary-color-light-7);--vft-menu-focus-bg-color:var(--vft-primary-color-light-7);--vft-menu-item-hover-fill:var(--vft-primary-color-light-7)}html.dark .vft-footer-layout{--vft-footer-layout-bg-color:#21263e}html.dark .vft-context-menu{background-color:#000}