vxe-pc-ui 4.20.0 → 4.20.2

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 (128) hide show
  1. package/dist/all.esm.js +780 -173
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/card/src/card.js +19 -4
  5. package/es/drawer/src/drawer.js +59 -15
  6. package/es/drawer/style.css +13 -6
  7. package/es/drawer/style.min.css +1 -1
  8. package/es/icon/style.css +1 -1
  9. package/es/language/fr-FR.js +29 -29
  10. package/es/layout-aside/src/layout-aside.js +10 -6
  11. package/es/layout-body/src/layout-body.js +21 -12
  12. package/es/list/src/list.js +118 -49
  13. package/es/list/style.css +25 -8
  14. package/es/list/style.min.css +1 -1
  15. package/es/menu/src/menu.js +2 -2
  16. package/es/modal/src/modal.js +56 -12
  17. package/es/modal/style.css +15 -4
  18. package/es/modal/style.min.css +1 -1
  19. package/es/scrollbar/src/scrollbar.js +73 -19
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/tabs/src/tabs.js +21 -6
  23. package/es/tree/src/tree.js +410 -53
  24. package/es/tree/style.css +43 -0
  25. package/es/tree/style.min.css +1 -1
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/log.js +1 -1
  28. package/es/ui/src/utils.js +3 -0
  29. package/es/vxe-drawer/style.css +13 -6
  30. package/es/vxe-drawer/style.min.css +1 -1
  31. package/es/vxe-list/style.css +25 -8
  32. package/es/vxe-list/style.min.css +1 -1
  33. package/es/vxe-modal/style.css +15 -4
  34. package/es/vxe-modal/style.min.css +1 -1
  35. package/es/vxe-tree/style.css +43 -0
  36. package/es/vxe-tree/style.min.css +1 -1
  37. package/lib/card/src/card.js +19 -4
  38. package/lib/card/src/card.min.js +1 -1
  39. package/lib/drawer/src/drawer.js +64 -11
  40. package/lib/drawer/src/drawer.min.js +1 -1
  41. package/lib/drawer/style/style.css +13 -6
  42. package/lib/drawer/style/style.min.css +1 -1
  43. package/lib/icon/style/style.css +1 -1
  44. package/lib/icon/style/style.min.css +1 -1
  45. package/lib/index.umd.js +887 -183
  46. package/lib/index.umd.min.js +1 -1
  47. package/lib/language/fr-FR.js +29 -29
  48. package/lib/language/fr-FR.min.js +1 -1
  49. package/lib/language/fr-FR.umd.js +29 -29
  50. package/lib/layout-aside/src/layout-aside.js +9 -8
  51. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  52. package/lib/layout-body/src/layout-body.js +29 -22
  53. package/lib/layout-body/src/layout-body.min.js +1 -1
  54. package/lib/list/src/list.js +110 -47
  55. package/lib/list/src/list.min.js +1 -1
  56. package/lib/list/style/style.css +25 -8
  57. package/lib/list/style/style.min.css +1 -1
  58. package/lib/menu/src/menu.js +1 -1
  59. package/lib/menu/src/menu.min.js +1 -1
  60. package/lib/modal/src/modal.js +61 -10
  61. package/lib/modal/src/modal.min.js +1 -1
  62. package/lib/modal/style/style.css +15 -4
  63. package/lib/modal/style/style.min.css +1 -1
  64. package/lib/scrollbar/src/scrollbar.js +81 -17
  65. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  66. package/lib/style.css +1 -1
  67. package/lib/style.min.css +1 -1
  68. package/lib/tabs/src/tabs.js +23 -11
  69. package/lib/tabs/src/tabs.min.js +1 -1
  70. package/lib/tree/src/tree.js +412 -50
  71. package/lib/tree/src/tree.min.js +1 -1
  72. package/lib/tree/style/style.css +43 -0
  73. package/lib/tree/style/style.min.css +1 -1
  74. package/lib/ui/index.js +1 -1
  75. package/lib/ui/index.min.js +1 -1
  76. package/lib/ui/src/log.js +1 -1
  77. package/lib/ui/src/log.min.js +1 -1
  78. package/lib/ui/src/utils.js +4 -0
  79. package/lib/ui/src/utils.min.js +1 -1
  80. package/lib/vxe-drawer/style/style.css +13 -6
  81. package/lib/vxe-drawer/style/style.min.css +1 -1
  82. package/lib/vxe-list/style/style.css +25 -8
  83. package/lib/vxe-list/style/style.min.css +1 -1
  84. package/lib/vxe-modal/style/style.css +15 -4
  85. package/lib/vxe-modal/style/style.min.css +1 -1
  86. package/lib/vxe-tree/style/style.css +43 -0
  87. package/lib/vxe-tree/style/style.min.css +1 -1
  88. package/package.json +2 -2
  89. package/packages/card/src/card.ts +20 -4
  90. package/packages/drawer/src/drawer.ts +73 -16
  91. package/packages/language/fr-FR.ts +903 -903
  92. package/packages/layout-aside/src/layout-aside.ts +10 -6
  93. package/packages/layout-body/src/layout-body.ts +25 -15
  94. package/packages/list/src/list.ts +130 -55
  95. package/packages/menu/src/menu.ts +2 -2
  96. package/packages/modal/src/modal.ts +71 -14
  97. package/packages/scrollbar/src/scrollbar.ts +79 -18
  98. package/packages/tabs/src/tabs.ts +21 -7
  99. package/packages/tree/src/tree.ts +452 -62
  100. package/packages/ui/src/utils.ts +4 -0
  101. package/styles/components/drawer.scss +13 -6
  102. package/styles/components/list.scss +35 -10
  103. package/styles/components/modal.scss +12 -4
  104. package/styles/components/tree.scss +76 -0
  105. package/types/components/card.d.ts +10 -1
  106. package/types/components/drawer.d.ts +20 -0
  107. package/types/components/gantt-module/gantt-view.d.ts +24 -1
  108. package/types/components/gantt.d.ts +2 -0
  109. package/types/components/layout-aside.d.ts +10 -1
  110. package/types/components/layout-body.d.ts +10 -1
  111. package/types/components/list.d.ts +13 -2
  112. package/types/components/modal.d.ts +20 -0
  113. package/types/components/scrollbar.d.ts +17 -2
  114. package/types/components/table.d.ts +80 -6
  115. package/types/components/tabs.d.ts +10 -1
  116. package/types/components/tree.d.ts +35 -2
  117. /package/es/icon/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  118. /package/es/icon/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  119. /package/es/icon/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
  120. /package/es/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  121. /package/es/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  122. /package/es/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
  123. /package/lib/icon/style/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  124. /package/lib/icon/style/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  125. /package/lib/icon/style/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
  126. /package/lib/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  127. /package/lib/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  128. /package/lib/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
@@ -60,7 +60,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
60
60
  },
61
61
  useScrollbar: {
62
62
  type: Boolean,
63
- default: () => (0, _ui.getConfig)().tabs.useScrollbar
63
+ default: () => (0, _utils.getDefaultConfig)((0, _ui.getConfig)().tabs.useScrollbar, (0, _ui.getConfig)().useScrollbar)
64
64
  },
65
65
  scrollbarConfig: Object,
66
66
  // 已废弃
@@ -171,6 +171,25 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
171
171
  const computeScrollbarOpts = (0, _vue.computed)(() => {
172
172
  return Object.assign({}, (0, _ui.getConfig)().tabs.scrollbarConfig, props.scrollbarConfig);
173
173
  });
174
+ const computeScrollbarProps = (0, _vue.computed)(() => {
175
+ const scrollbarOpts = computeScrollbarOpts.value;
176
+ const {
177
+ viewClassName,
178
+ viewInnerClassName
179
+ } = scrollbarOpts;
180
+ return {
181
+ width: scrollbarOpts.width,
182
+ height: scrollbarOpts.height,
183
+ autoHide: scrollbarOpts.autoHide,
184
+ visible: scrollbarOpts.visible,
185
+ xConfig: scrollbarOpts.xConfig,
186
+ yConfig: scrollbarOpts.yConfig,
187
+ className: scrollbarOpts.className,
188
+ viewAttrs: scrollbarOpts.viewAttrs,
189
+ viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? ' ' + viewClassName : ''),
190
+ viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
191
+ };
192
+ });
174
193
  const computeMaps = {};
175
194
  const $xeTabs = {
176
195
  xID,
@@ -846,21 +865,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
846
865
  slots
847
866
  } = item;
848
867
  const defaultSlot = slots ? slots.default : null;
849
- const scrollbarOpts = computeScrollbarOpts.value;
850
- const {
851
- viewClassName,
852
- viewInnerClassName
853
- } = scrollbarOpts;
868
+ const scrollbarProps = computeScrollbarProps.value;
854
869
  if (name && initNames.includes(name)) {
855
- return useScrollbar ? (0, _vue.h)(_scrollbar.default, Object.assign(Object.assign({
870
+ return useScrollbar ? (0, _vue.h)(_scrollbar.default, Object.assign({
856
871
  key: `${name}`,
857
872
  class: ['vxe-tabs-pane--scrollbar-item', {
858
873
  'is--visible': activeName === name
859
874
  }]
860
- }, scrollbarOpts), {
861
- viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? ' ' + viewClassName : ''),
862
- viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
863
- }), {
875
+ }, scrollbarProps), {
864
876
  default: () => defaultSlot ? callSlot(defaultSlot, {
865
877
  name
866
878
  }) : []
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("tabs"),scrollbarOffsetSize=20;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,width:[String,Number],height:[String,Number],destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.destroyOnClose},titleWidth:[String,Number],titleAlign:[String,Number],type:{type:String,default:()=>(0,_ui.getConfig)().tabs.type},position:{type:String,default:()=>(0,_ui.getConfig)().tabs.position},showClose:Boolean,showBody:{type:Boolean,default:!0},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,closeConfig:Object,refreshConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tabs.size||(0,_ui.getConfig)().size},useScrollbar:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.useScrollbar},scrollbarConfig:Object,beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(d,e){let{slots:S,emit:l}=e;var E=_xeUtils.default.uniqueId();let t=(0,_vue.inject)("$xeTabs",null),h=(0,_ui.useSize)(d).computeSize,c=(0,_vue.ref)(),M=(0,_vue.ref)(),u=(0,_vue.ref)(),v=(0,_vue.ref)(),O=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintTop:0,lintWidth:0,lintHeight:0,scrollbarWidth:0,scrollbarHeight:0,isTabOver:!1,resizeFlag:1,cacheTabMaps:{}}),m={slTimeout:void 0},w={refElem:c},B=(0,_vue.computed)(()=>{var e=d.type;return e||"default"}),L=(0,_vue.computed)(()=>{var e=d.position;return e||"top"}),z=(0,_vue.computed)(()=>{var e=L.value;return"left"===e||"right"===e}),F=(0,_vue.computed)(()=>{var{lintLeft:e,lintTop:t,lintWidth:a,lintHeight:l}=O;return z.value?{top:t+"px",height:l+"px"}:{left:e+"px",width:a+"px"}}),I=(0,_vue.computed)(()=>{var{width:e,height:t}=d,a={};return e&&(a.width=(0,_dom.toCssUnit)(e)),t&&(a.height="auto"===t?"100%":(0,_dom.toCssUnit)(t)),a}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.closeConfig,d.closeConfig)),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.refreshConfig,d.refreshConfig)),_=(0,_vue.computed)(()=>{var e=d.options;return(e||[]).filter(e=>a(e))}),b=(0,_vue.computed)(()=>{var e=O.staticTabs;return e.filter(e=>a(e))});var U=(0,_vue.computed)(()=>t?t.reactData.resizeFlag:null);let V=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.scrollbarConfig,d.scrollbarConfig)),R={},k={xID:E,props:d,context:e,reactData:O,getRefMaps:()=>w,getComputeMaps:()=>R},a=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},A=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=S[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],q=()=>{var e,t,a,l,i,s=z.value,r=M.value,n=u.value,o=v.value;r&&({scrollLeft:r,scrollTop:e,clientWidth:t,clientHeight:a,scrollWidth:l,scrollHeight:i}=r,n&&(0<(s?e:r)?(0,_dom.addClass):(0,_dom.removeClass))(n,"scrolling--middle"),o)&&((s?a<i-Math.ceil(e):t<l-Math.ceil(r))?(0,_dom.addClass):(0,_dom.removeClass))(o,"scrolling--middle")},p=()=>{var e=()=>{let t=O.activeName;var e,a,l,i,s,r=B.value,n=_.value,o=b.value,u=M.value,v=z.value;let c=0,d=0,h=0,m=0,p=0,f=0,g=!1;u&&(o=_xeUtils.default.findIndexOf(o.length?o:n,e=>e.name===t),{children:n,offsetWidth:u,scrollWidth:e,offsetHeight:l,scrollHeight:i,clientWidth:a,clientHeight:s}=u,p=u-a,f=l-s,v?(g=i!==s,-1<o&&(u=n[o])&&(l=u.clientHeight,v=u.clientWidth,m="card"===r?(c=v,d=l,u.offsetTop):"border-card"===r?(c=v,d=l,u.offsetTop-1):(d=Math.max(4,Math.floor(.6*l)),u.offsetTop+Math.floor((l-d)/2)))):(g=e!==a,-1<o&&(i=n[o])&&(s=i.clientWidth,h="card"===r?(c=s+1,i.offsetLeft):"border-card"===r?(c=s,i.offsetLeft-1):(c=Math.max(4,Math.floor(.6*s)),i.offsetLeft+Math.floor((s-c)/2))))),O.scrollbarWidth=p,O.scrollbarHeight=f,O.lintLeft=h,O.lintTop=m,O.lintWidth=c,O.lintHeight=d,O.isTabOver=g,q()};e(),(0,_vue.nextTick)(e)},f=(e,t,a)=>{l(e,(0,_ui.createEvent)(a,{$tabs:k},t))},n=e=>{l("update:modelValue",e)},o=(e,t)=>{var a=O.initNames;return!(!e||a.includes(e)||(f("tab-load",{name:e},t),a.push(e),0))},i=e=>{let l=null,i={};if(e&&e.length){let a=!1;l=d.modelValue,e.forEach(e=>{var{name:e,preload:t}=e||{};e&&(i[""+e]={loading:!1},l===e&&(a=!0),t)&&o(e,null)}),a||(l=e[0].name,o(l,null),n(l))}O.activeName=l,O.cacheTabMaps=i},j=(t,a)=>{var e=d.trigger,l=d.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod;let i=O.activeName,s=a.name,r=s;f("tab-click",{name:s},t),"manual"!==e&&s!==i&&Promise.resolve(!l||l({$tabs:k,name:s,oldName:i,newName:s,option:a})).then(e=>{e?(O.activeName=s,n(r),o(s,t),f("change",{value:r,name:s,oldName:i,newName:s,option:a},t),f("tab-change",{value:r,name:s,oldName:i,newName:s,option:a},t)):f("tab-change-fail",{value:r,name:s,oldName:i,newName:s,option:a},t)}).catch(()=>{f("tab-change-fail",{value:r,name:s,oldName:i,newName:s,option:a},t)})},P=(e,t)=>{e.stopPropagation();var{activeName:e,cacheTabMaps:a}=O,l=t.name,i=H.value.queryMethod;let s=l?a[""+l]:null;s&&(i?s.loading||(s.loading=!0,Promise.resolve(i({$tabs:k,value:e,name:l,option:t})).finally(()=>{s.loading=!1})):errLog("vxe.error.notFunc",["refresh-config.queryMethod"]))},$=(t,e,a,l)=>{t.stopPropagation();var i=O.activeName,s=W.value.beforeMethod||d.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod;let r=e.name,n=i,o=n;i===r&&(i=a<l.length-1?l[a+1]:l[a-1],o=i?i.name:null),Promise.resolve(!s||s({$tabs:k,value:n,name:r,nextName:o,option:e})).then(e=>{e?f("tab-close",{value:n,name:r,nextName:o},t):f("tab-close-fail",{value:n,name:r,nextName:o},t)}).catch(()=>{f("tab-close-fail",{value:n,name:r,nextName:o},t)})},D=(n,e)=>{var t=m.slTimeout;let o=z.value,u=o?0:e,v=o?e:0,c=6,d=35,h=(t&&(clearTimeout(t),m.slTimeout=void 0),()=>{var e,t,a,l,i,s,r=M.value;0<c&&(c--,r)&&({clientWidth:e,clientHeight:t,scrollWidth:a,scrollHeight:l,scrollLeft:i,scrollTop:s}=r,o?(v=Math.floor(v/2),0<n?t+s<l&&(r.scrollTop+=v,d-=4,m.slTimeout=setTimeout(h,d)):0<s&&(r.scrollTop-=v,d-=4,m.slTimeout=setTimeout(h,d))):(u=Math.floor(u/2),0<n?e+i<a&&(r.scrollLeft+=u,d-=4,m.slTimeout=setTimeout(h,d)):0<i&&(r.scrollLeft-=u,d-=4,m.slTimeout=setTimeout(h,d))),p())});h()},s=e=>{var t,a=z.value,l=M.value;l&&({clientWidth:l,clientHeight:t}=l,a=Math.floor(.75*(a?t:l)),D(e,a))},G=()=>{s(-1)},J=()=>{s(1)},r=n=>{let o=_.value,u=b.value,v=z.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,l,i,s,r=M.value;r&&(-1<(l=_xeUtils.default.findIndexOf(u.length?u:o,e=>e.name===n))&&({scrollLeft:e,scrollTop:s,clientWidth:t,clientHeight:i,children:a}=r,a=a[l])&&(v?(0<(i=(l=a.offsetTop)+a.clientHeight-(s+i))&&(r.scrollTop+=i),l<s&&(r.scrollTop=l)):(0<(s=(i=a.offsetLeft)+a.clientWidth-(e+t))&&(r.scrollLeft+=s),i<e&&(r.scrollLeft=i))),p())})},g=t=>{let a=O.activeName;var l=_.value,i=b.value,i=i.length?i:l,l=_xeUtils.default.findIndexOf(i,e=>e.name===a);if(-1<l){let e=null;t?l<i.length-1&&(e=i[l+1]):0<l&&(e=i[l-1]),e&&(i=t=e.name,O.activeName=t,n(i),o(t,null))}return(0,_vue.nextTick)()},x={dispatchEvent:f,scrollToTab:r,prev(){return g(!1)},next(){return g(!0)},prevTab(){return warnLog("vxe.error.delFunc",["prevTab","prev"]),x.prev()},nextTab(){return warnLog("vxe.error.delFunc",["nextTab","next"]),x.next()}};Object.assign(k,x,{});let T=h=>{let{titleWidth:m,titleAlign:p,showClose:f,closeConfig:g,refreshConfig:_}=d,{activeName:b,scrollbarWidth:e,scrollbarHeight:t,isTabOver:a,cacheTabMaps:x}=O,T=B.value,y=L.value;var l=z.value,i=F.value,s=S.tabPrefix||S["tab-prefix"]||S.prefix,r=S.tabSuffix||S["tab-suffix"]||S.suffix||S.extra;let C=W.value,N=C.visibleMethod,E=H.value,w=E.visibleMethod;return(0,_vue.h)("div",{key:"th",class:["vxe-tabs-header","type--"+T,"pos--"+y]},[s?(0,_vue.h)("div",{class:["vxe-tabs-header--prefix","type--"+T,"pos--"+y]},A(s,{name:b})):(0,_ui.renderEmptyElement)(k),a?(0,_vue.h)("div",{ref:u,class:["vxe-tabs-header--bar vxe-tabs-header--prev-bar","type--"+T,"pos--"+y],onClick:G},[(0,_vue.h)("span",{class:l?(0,_ui.getIcon)().TABS_TAB_BUTTON_TOP:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_ui.renderEmptyElement)(k),(0,_vue.h)("div",{class:["vxe-tabs-header--wrapper","type--"+T,"pos--"+y]},[(0,_vue.h)("div",{ref:M,class:"vxe-tabs-header--item-wrapper",style:l?{marginRight:`-${e+scrollbarOffsetSize}px`,paddingRight:scrollbarOffsetSize+"px"}:{marginBottom:`-${t+scrollbarOffsetSize}px`,paddingBottom:scrollbarOffsetSize+"px"},onScroll:q},h.map((t,a)=>{var{title:e,titleWidth:l,titleAlign:i,icon:s,name:r}=t,n=t.slots||{},o=n.title||n.tab,u=n.titlePrefix||n["title-prefix"],n=n.titleSuffix||n["title-suffix"],l=l||m,i=i||p,v={$tabs:k,value:b,name:r,option:t},c=b===r,d=r?x[""+r]:null,d=!!d&&d.loading;return(0,_vue.h)("div",{key:""+r,class:["vxe-tabs-header--item","type--"+T,"pos--"+y,i?"align--"+i:"",{"is--active":c}],style:l?{width:(0,_dom.toCssUnit)(l)}:void 0,onClick(e){j(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[s?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:s})]):(0,_ui.renderEmptyElement)(k),u?(0,_vue.h)("span",{class:"vxe-tabs-header--item-prefix"},A(u,{name:r,title:e})):(0,_ui.renderEmptyElement)(k),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},o?A(o,{name:r,title:e}):""+e),n?(0,_vue.h)("span",{class:"vxe-tabs-header--item-suffix"},A(n,{name:r,title:e})):(0,_ui.renderEmptyElement)(k)]),!(0,_utils.isEnableConf)(_)&&!E.enabled||w&&!w(v)?(0,_ui.renderEmptyElement)(k):(0,_vue.h)("div",{class:["vxe-tabs-header--refresh-btn",{"is--active":c,"is--loading":d,"is--disabled":d}],onClick(e){P(e,t)}},[(0,_vue.h)("i",{class:d?(0,_ui.getIcon)().TABS_TAB_REFRESH_LOADING:(0,_ui.getIcon)().TABS_TAB_REFRESH})]),!(f||(0,_utils.isEnableConf)(g)||C.enabled)||N&&!N(v)?(0,_ui.renderEmptyElement)(k):(0,_vue.h)("div",{class:["vxe-tabs-header--close-btn",{"is--active":c}],onClick(e){$(e,t,a,h)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})])])])}).concat([(0,_vue.h)("span",{key:"line",class:["vxe-tabs-header--active-line","type--"+T,"pos--"+y],style:i})]))]),a?(0,_vue.h)("div",{ref:v,class:["vxe-tabs-header--bar vxe-tabs-header--next-bar","type--"+T,"pos--"+y],onClick:J},[(0,_vue.h)("span",{class:l?(0,_ui.getIcon)().TABS_TAB_BUTTON_BOTTOM:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_ui.renderEmptyElement)(k),r?(0,_vue.h)("div",{class:["vxe-tabs-header--suffix","type--"+T,"pos--"+y]},A(r,{name:b})):(0,_ui.renderEmptyElement)(k)])},y=e=>{var t=d.useScrollbar,{initNames:a,activeName:l}=O;let{name:i,slots:s}=e,r=s?s.default:null;var e=V.value,{viewClassName:n,viewInnerClassName:o}=e;return i&&a.includes(i)?t?(0,_vue.h)(_scrollbar.default,Object.assign(Object.assign({key:""+i,class:["vxe-tabs-pane--scrollbar-item",{"is--visible":l===i}]},e),{viewClassName:"vxe-tabs-pane--scrollbar-item-view"+(n?" "+n:""),viewInnerClassName:"vxe-tabs-pane--scrollbar-item-inner"+(n?" "+o:"")}),{default:()=>r?A(r,{name:i}):[]}):(0,_vue.h)("div",{key:""+i,class:["vxe-tabs-pane--item",{"is--visible":l===i}]},r?A(r,{name:i}):[]):(0,_ui.renderEmptyElement)(k)},K=e=>{var t=d.destroyOnClose;let a=O.activeName;return t?[(t=e.find(e=>e.name===a))?y(t):(0,_ui.renderEmptyElement)(k)]:e.map(e=>y(e))},Q=e=>{var{height:t,padding:a,showBody:l}=d,{activeName:i,cacheTabMaps:s}=O,r=h.value,n=B.value,o=L.value,u=H.value.showLoading,v=S.header,c=S.footer;return l?(s=!!(s=i?s[""+i]:null)&&s.loading,i={name:i},(0,_vue.h)("div",{key:"tb",class:["vxe-tabs-pane--wrapper","type--"+n,"pos--"+o,{"is--content":l}]},[v?(0,_vue.h)("div",{class:"vxe-tabs-pane--header"},A(v,i)):(0,_ui.renderEmptyElement)(k),(0,_vue.h)("div",{class:["vxe-tabs-pane--body","type--"+n,"pos--"+o,{["size--"+r]:r,"is--padding":a,"is--height":t}]},K(e)),c?(0,_vue.h)("div",{class:"vxe-tabs-pane--footer"},A(c,i)):(0,_ui.renderEmptyElement)(k),u&&s?(0,_ui.renderEmptyElement)(k):(0,_vue.h)(_loading.default,{class:"vxe-tabs--loading",modelValue:s})])):(0,_ui.renderEmptyElement)(k)};(0,_vue.watch)(()=>d.position,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>d.modelValue,e=>{o(e,null),O.activeName=e}),(0,_vue.watch)(()=>O.activeName,e=>{r(e)});let C=(0,_vue.ref)(0),N=((0,_vue.watch)(()=>d.options?d.options.length:-1,()=>{C.value++}),(0,_vue.watch)(()=>d.options,()=>{C.value++}),(0,_vue.watch)(C,()=>{i(d.options),O.resizeFlag++}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>O.staticTabs?O.staticTabs.length:-1,()=>{N.value++}),(0,_vue.watch)(()=>O.staticTabs,()=>{N.value++}),(0,_vue.watch)(N,()=>{i(O.staticTabs),O.resizeFlag++}),(0,_vue.watch)(U,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>O.resizeFlag,()=>{(0,_vue.nextTick)(()=>{p()})}),(0,_vue.onMounted)(()=>{p(),_ui.globalEvents.on(k,"resize",p)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(k,"resize")}),(0,_vue.provide)("$xeTabs",k),o(d.modelValue,null),i(O.staticTabs.length?O.staticTabs:d.options),k.renderVN=()=>{var{height:e,padding:t,trigger:a}=d,l=O.activeName,i=h.value,s=_.value,r=b.value,n=B.value,o=L.value,u=I.value,v=S.default,r=v?r:s,s=[(0,_vue.h)("div",{key:"ts",class:"vxe-tabs-slots"},v?v({name:l}):[])];return"right"===o||"bottom"===o?s.push(Q(r),T(r)):s.push(T(r),Q(r)),(0,_vue.h)("div",{ref:c,class:["vxe-tabs","pos--"+o,"vxe-tabs--"+n,"trigger--"+("manual"===a?"trigger":"default"),{["size--"+i]:i,"is--padding":t,"is--height":e}],style:u},s)},k},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("tabs"),scrollbarOffsetSize=20;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,width:[String,Number],height:[String,Number],destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.destroyOnClose},titleWidth:[String,Number],titleAlign:[String,Number],type:{type:String,default:()=>(0,_ui.getConfig)().tabs.type},position:{type:String,default:()=>(0,_ui.getConfig)().tabs.position},showClose:Boolean,showBody:{type:Boolean,default:!0},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,closeConfig:Object,refreshConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tabs.size||(0,_ui.getConfig)().size},useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)((0,_ui.getConfig)().tabs.useScrollbar,(0,_ui.getConfig)().useScrollbar)},scrollbarConfig:Object,beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(d,e){let{slots:S,emit:i}=e;var E=_xeUtils.default.uniqueId();let t=(0,_vue.inject)("$xeTabs",null),h=(0,_ui.useSize)(d).computeSize,c=(0,_vue.ref)(),M=(0,_vue.ref)(),u=(0,_vue.ref)(),v=(0,_vue.ref)(),O=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintTop:0,lintWidth:0,lintHeight:0,scrollbarWidth:0,scrollbarHeight:0,isTabOver:!1,resizeFlag:1,cacheTabMaps:{}}),m={slTimeout:void 0},w={refElem:c},B=(0,_vue.computed)(()=>{var e=d.type;return e||"default"}),L=(0,_vue.computed)(()=>{var e=d.position;return e||"top"}),H=(0,_vue.computed)(()=>{var e=L.value;return"left"===e||"right"===e}),F=(0,_vue.computed)(()=>{var{lintLeft:e,lintTop:t,lintWidth:a,lintHeight:i}=O;return H.value?{top:t+"px",height:i+"px"}:{left:e+"px",width:a+"px"}}),I=(0,_vue.computed)(()=>{var{width:e,height:t}=d,a={};return e&&(a.width=(0,_dom.toCssUnit)(e)),t&&(a.height="auto"===t?"100%":(0,_dom.toCssUnit)(t)),a}),z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.closeConfig,d.closeConfig)),A=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.refreshConfig,d.refreshConfig)),_=(0,_vue.computed)(()=>{var e=d.options;return(e||[]).filter(e=>a(e))}),b=(0,_vue.computed)(()=>{var e=O.staticTabs;return e.filter(e=>a(e))});var U=(0,_vue.computed)(()=>t?t.reactData.resizeFlag:null);let V=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.scrollbarConfig,d.scrollbarConfig)),R=(0,_vue.computed)(()=>{var e=V.value,{viewClassName:t,viewInnerClassName:a}=e;return{width:e.width,height:e.height,autoHide:e.autoHide,visible:e.visible,xConfig:e.xConfig,yConfig:e.yConfig,className:e.className,viewAttrs:e.viewAttrs,viewClassName:"vxe-tabs-pane--scrollbar-item-view"+(t?" "+t:""),viewInnerClassName:"vxe-tabs-pane--scrollbar-item-inner"+(t?" "+a:"")}}),j={},W={xID:E,props:d,context:e,reactData:O,getRefMaps:()=>w,getComputeMaps:()=>j},a=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},k=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=S[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],q=()=>{var e,t,a,i,l,s=H.value,r=M.value,o=u.value,n=v.value;r&&({scrollLeft:r,scrollTop:e,clientWidth:t,clientHeight:a,scrollWidth:i,scrollHeight:l}=r,o&&(0<(s?e:r)?(0,_dom.addClass):(0,_dom.removeClass))(o,"scrolling--middle"),n)&&((s?a<l-Math.ceil(e):t<i-Math.ceil(r))?(0,_dom.addClass):(0,_dom.removeClass))(n,"scrolling--middle")},f=()=>{var e=()=>{let t=O.activeName;var e,a,i,l,s,r=B.value,o=_.value,n=b.value,u=M.value,v=H.value;let c=0,d=0,h=0,m=0,f=0,p=0,g=!1;u&&(n=_xeUtils.default.findIndexOf(n.length?n:o,e=>e.name===t),{children:o,offsetWidth:u,scrollWidth:e,offsetHeight:i,scrollHeight:l,clientWidth:a,clientHeight:s}=u,f=u-a,p=i-s,v?(g=l!==s,-1<n&&(u=o[n])&&(i=u.clientHeight,v=u.clientWidth,m="card"===r?(c=v,d=i,u.offsetTop):"border-card"===r?(c=v,d=i,u.offsetTop-1):(d=Math.max(4,Math.floor(.6*i)),u.offsetTop+Math.floor((i-d)/2)))):(g=e!==a,-1<n&&(l=o[n])&&(s=l.clientWidth,h="card"===r?(c=s+1,l.offsetLeft):"border-card"===r?(c=s,l.offsetLeft-1):(c=Math.max(4,Math.floor(.6*s)),l.offsetLeft+Math.floor((s-c)/2))))),O.scrollbarWidth=f,O.scrollbarHeight=p,O.lintLeft=h,O.lintTop=m,O.lintWidth=c,O.lintHeight=d,O.isTabOver=g,q()};e(),(0,_vue.nextTick)(e)},p=(e,t,a)=>{i(e,(0,_ui.createEvent)(a,{$tabs:W},t))},o=e=>{i("update:modelValue",e)},n=(e,t)=>{var a=O.initNames;return!(!e||a.includes(e)||(p("tab-load",{name:e},t),a.push(e),0))},l=e=>{let i=null,l={};if(e&&e.length){let a=!1;i=d.modelValue,e.forEach(e=>{var{name:e,preload:t}=e||{};e&&(l[""+e]={loading:!1},i===e&&(a=!0),t)&&n(e,null)}),a||(i=e[0].name,n(i,null),o(i))}O.activeName=i,O.cacheTabMaps=l},D=(t,a)=>{var e=d.trigger,i=d.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod;let l=O.activeName,s=a.name,r=s;p("tab-click",{name:s},t),"manual"!==e&&s!==l&&Promise.resolve(!i||i({$tabs:W,name:s,oldName:l,newName:s,option:a})).then(e=>{e?(O.activeName=s,o(r),n(s,t),p("change",{value:r,name:s,oldName:l,newName:s,option:a},t),p("tab-change",{value:r,name:s,oldName:l,newName:s,option:a},t)):p("tab-change-fail",{value:r,name:s,oldName:l,newName:s,option:a},t)}).catch(()=>{p("tab-change-fail",{value:r,name:s,oldName:l,newName:s,option:a},t)})},P=(e,t)=>{e.stopPropagation();var{activeName:e,cacheTabMaps:a}=O,i=t.name,l=A.value.queryMethod;let s=i?a[""+i]:null;s&&(l?s.loading||(s.loading=!0,Promise.resolve(l({$tabs:W,value:e,name:i,option:t})).finally(()=>{s.loading=!1})):errLog("vxe.error.notFunc",["refresh-config.queryMethod"]))},$=(t,e,a,i)=>{t.stopPropagation();var l=O.activeName,s=z.value.beforeMethod||d.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod;let r=e.name,o=l,n=o;l===r&&(l=a<i.length-1?i[a+1]:i[a-1],n=l?l.name:null),Promise.resolve(!s||s({$tabs:W,value:o,name:r,nextName:n,option:e})).then(e=>{e?p("tab-close",{value:o,name:r,nextName:n},t):p("tab-close-fail",{value:o,name:r,nextName:n},t)}).catch(()=>{p("tab-close-fail",{value:o,name:r,nextName:n},t)})},G=(o,e)=>{var t=m.slTimeout;let n=H.value,u=n?0:e,v=n?e:0,c=6,d=35,h=(t&&(clearTimeout(t),m.slTimeout=void 0),()=>{var e,t,a,i,l,s,r=M.value;0<c&&(c--,r)&&({clientWidth:e,clientHeight:t,scrollWidth:a,scrollHeight:i,scrollLeft:l,scrollTop:s}=r,n?(v=Math.floor(v/2),0<o?t+s<i&&(r.scrollTop+=v,d-=4,m.slTimeout=setTimeout(h,d)):0<s&&(r.scrollTop-=v,d-=4,m.slTimeout=setTimeout(h,d))):(u=Math.floor(u/2),0<o?e+l<a&&(r.scrollLeft+=u,d-=4,m.slTimeout=setTimeout(h,d)):0<l&&(r.scrollLeft-=u,d-=4,m.slTimeout=setTimeout(h,d))),f())});h()},s=e=>{var t,a=H.value,i=M.value;i&&({clientWidth:i,clientHeight:t}=i,a=Math.floor(.75*(a?t:i)),G(e,a))},J=()=>{s(-1)},K=()=>{s(1)},r=o=>{let n=_.value,u=b.value,v=H.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,i,l,s,r=M.value;r&&(-1<(i=_xeUtils.default.findIndexOf(u.length?u:n,e=>e.name===o))&&({scrollLeft:e,scrollTop:s,clientWidth:t,clientHeight:l,children:a}=r,a=a[i])&&(v?(0<(l=(i=a.offsetTop)+a.clientHeight-(s+l))&&(r.scrollTop+=l),i<s&&(r.scrollTop=i)):(0<(s=(l=a.offsetLeft)+a.clientWidth-(e+t))&&(r.scrollLeft+=s),l<e&&(r.scrollLeft=l))),f())})},g=t=>{let a=O.activeName;var i=_.value,l=b.value,l=l.length?l:i,i=_xeUtils.default.findIndexOf(l,e=>e.name===a);if(-1<i){let e=null;t?i<l.length-1&&(e=l[i+1]):0<i&&(e=l[i-1]),e&&(l=t=e.name,O.activeName=t,o(l),n(t,null))}return(0,_vue.nextTick)()},x={dispatchEvent:p,scrollToTab:r,prev(){return g(!1)},next(){return g(!0)},prevTab(){return warnLog("vxe.error.delFunc",["prevTab","prev"]),x.prev()},nextTab(){return warnLog("vxe.error.delFunc",["nextTab","next"]),x.next()}};Object.assign(W,x,{});let T=h=>{let{titleWidth:m,titleAlign:f,showClose:p,closeConfig:g,refreshConfig:_}=d,{activeName:b,scrollbarWidth:e,scrollbarHeight:t,isTabOver:a,cacheTabMaps:x}=O,T=B.value,C=L.value;var i=H.value,l=F.value,s=S.tabPrefix||S["tab-prefix"]||S.prefix,r=S.tabSuffix||S["tab-suffix"]||S.suffix||S.extra;let y=z.value,N=y.visibleMethod,E=A.value,w=E.visibleMethod;return(0,_vue.h)("div",{key:"th",class:["vxe-tabs-header","type--"+T,"pos--"+C]},[s?(0,_vue.h)("div",{class:["vxe-tabs-header--prefix","type--"+T,"pos--"+C]},k(s,{name:b})):(0,_ui.renderEmptyElement)(W),a?(0,_vue.h)("div",{ref:u,class:["vxe-tabs-header--bar vxe-tabs-header--prev-bar","type--"+T,"pos--"+C],onClick:J},[(0,_vue.h)("span",{class:i?(0,_ui.getIcon)().TABS_TAB_BUTTON_TOP:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_ui.renderEmptyElement)(W),(0,_vue.h)("div",{class:["vxe-tabs-header--wrapper","type--"+T,"pos--"+C]},[(0,_vue.h)("div",{ref:M,class:"vxe-tabs-header--item-wrapper",style:i?{marginRight:`-${e+scrollbarOffsetSize}px`,paddingRight:scrollbarOffsetSize+"px"}:{marginBottom:`-${t+scrollbarOffsetSize}px`,paddingBottom:scrollbarOffsetSize+"px"},onScroll:q},h.map((t,a)=>{var{title:e,titleWidth:i,titleAlign:l,icon:s,name:r}=t,o=t.slots||{},n=o.title||o.tab,u=o.titlePrefix||o["title-prefix"],o=o.titleSuffix||o["title-suffix"],i=i||m,l=l||f,v={$tabs:W,value:b,name:r,option:t},c=b===r,d=r?x[""+r]:null,d=!!d&&d.loading;return(0,_vue.h)("div",{key:""+r,class:["vxe-tabs-header--item","type--"+T,"pos--"+C,l?"align--"+l:"",{"is--active":c}],style:i?{width:(0,_dom.toCssUnit)(i)}:void 0,onClick(e){D(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[s?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:s})]):(0,_ui.renderEmptyElement)(W),u?(0,_vue.h)("span",{class:"vxe-tabs-header--item-prefix"},k(u,{name:r,title:e})):(0,_ui.renderEmptyElement)(W),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},n?k(n,{name:r,title:e}):""+e),o?(0,_vue.h)("span",{class:"vxe-tabs-header--item-suffix"},k(o,{name:r,title:e})):(0,_ui.renderEmptyElement)(W)]),!(0,_utils.isEnableConf)(_)&&!E.enabled||w&&!w(v)?(0,_ui.renderEmptyElement)(W):(0,_vue.h)("div",{class:["vxe-tabs-header--refresh-btn",{"is--active":c,"is--loading":d,"is--disabled":d}],onClick(e){P(e,t)}},[(0,_vue.h)("i",{class:d?(0,_ui.getIcon)().TABS_TAB_REFRESH_LOADING:(0,_ui.getIcon)().TABS_TAB_REFRESH})]),!(p||(0,_utils.isEnableConf)(g)||y.enabled)||N&&!N(v)?(0,_ui.renderEmptyElement)(W):(0,_vue.h)("div",{class:["vxe-tabs-header--close-btn",{"is--active":c}],onClick(e){$(e,t,a,h)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})])])])}).concat([(0,_vue.h)("span",{key:"line",class:["vxe-tabs-header--active-line","type--"+T,"pos--"+C],style:l})]))]),a?(0,_vue.h)("div",{ref:v,class:["vxe-tabs-header--bar vxe-tabs-header--next-bar","type--"+T,"pos--"+C],onClick:K},[(0,_vue.h)("span",{class:i?(0,_ui.getIcon)().TABS_TAB_BUTTON_BOTTOM:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_ui.renderEmptyElement)(W),r?(0,_vue.h)("div",{class:["vxe-tabs-header--suffix","type--"+T,"pos--"+C]},k(r,{name:b})):(0,_ui.renderEmptyElement)(W)])},C=e=>{var t=d.useScrollbar,{initNames:a,activeName:i}=O;let{name:l,slots:s}=e,r=s?s.default:null;e=R.value;return l&&a.includes(l)?t?(0,_vue.h)(_scrollbar.default,Object.assign({key:""+l,class:["vxe-tabs-pane--scrollbar-item",{"is--visible":i===l}]},e),{default:()=>r?k(r,{name:l}):[]}):(0,_vue.h)("div",{key:""+l,class:["vxe-tabs-pane--item",{"is--visible":i===l}]},r?k(r,{name:l}):[]):(0,_ui.renderEmptyElement)(W)},Q=e=>{var t=d.destroyOnClose;let a=O.activeName;return t?[(t=e.find(e=>e.name===a))?C(t):(0,_ui.renderEmptyElement)(W)]:e.map(e=>C(e))},X=e=>{var{height:t,padding:a,showBody:i}=d,{activeName:l,cacheTabMaps:s}=O,r=h.value,o=B.value,n=L.value,u=A.value.showLoading,v=S.header,c=S.footer;return i?(s=!!(s=l?s[""+l]:null)&&s.loading,l={name:l},(0,_vue.h)("div",{key:"tb",class:["vxe-tabs-pane--wrapper","type--"+o,"pos--"+n,{"is--content":i}]},[v?(0,_vue.h)("div",{class:"vxe-tabs-pane--header"},k(v,l)):(0,_ui.renderEmptyElement)(W),(0,_vue.h)("div",{class:["vxe-tabs-pane--body","type--"+o,"pos--"+n,{["size--"+r]:r,"is--padding":a,"is--height":t}]},Q(e)),c?(0,_vue.h)("div",{class:"vxe-tabs-pane--footer"},k(c,l)):(0,_ui.renderEmptyElement)(W),u&&s?(0,_ui.renderEmptyElement)(W):(0,_vue.h)(_loading.default,{class:"vxe-tabs--loading",modelValue:s})])):(0,_ui.renderEmptyElement)(W)};(0,_vue.watch)(()=>d.position,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>d.modelValue,e=>{n(e,null),O.activeName=e}),(0,_vue.watch)(()=>O.activeName,e=>{r(e)});let y=(0,_vue.ref)(0),N=((0,_vue.watch)(()=>d.options?d.options.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>d.options,()=>{y.value++}),(0,_vue.watch)(y,()=>{l(d.options),O.resizeFlag++}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>O.staticTabs?O.staticTabs.length:-1,()=>{N.value++}),(0,_vue.watch)(()=>O.staticTabs,()=>{N.value++}),(0,_vue.watch)(N,()=>{l(O.staticTabs),O.resizeFlag++}),(0,_vue.watch)(U,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>O.resizeFlag,()=>{(0,_vue.nextTick)(()=>{f()})}),(0,_vue.onMounted)(()=>{f(),_ui.globalEvents.on(W,"resize",f)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(W,"resize")}),(0,_vue.provide)("$xeTabs",W),n(d.modelValue,null),l(O.staticTabs.length?O.staticTabs:d.options),W.renderVN=()=>{var{height:e,padding:t,trigger:a}=d,i=O.activeName,l=h.value,s=_.value,r=b.value,o=B.value,n=L.value,u=I.value,v=S.default,r=v?r:s,s=[(0,_vue.h)("div",{key:"ts",class:"vxe-tabs-slots"},v?v({name:i}):[])];return"right"===n||"bottom"===n?s.push(X(r),T(r)):s.push(T(r),X(r)),(0,_vue.h)("div",{ref:c,class:["vxe-tabs","pos--"+n,"vxe-tabs--"+o,"trigger--"+("manual"===a?"trigger":"default"),{["size--"+l]:l,"is--padding":t,"is--height":e}],style:u},s)},W},render(){return this.renderVN()}});