vxe-pc-ui 4.20.6 → 4.20.8

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 (64) hide show
  1. package/dist/all.esm.js +5136 -5077
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/scrollbar/src/scrollbar.js +20 -3
  6. package/es/scrollbar/style.css +11 -0
  7. package/es/scrollbar/style.min.css +1 -1
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/tabs/src/tabs.js +5 -3
  11. package/es/tooltip/src/tooltip.js +52 -11
  12. package/es/tooltip/style.css +2 -1
  13. package/es/tooltip/style.min.css +1 -1
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-scrollbar/style.css +11 -0
  17. package/es/vxe-scrollbar/style.min.css +1 -1
  18. package/es/vxe-tooltip/style.css +2 -1
  19. package/es/vxe-tooltip/style.min.css +1 -1
  20. package/lib/icon/style/style.css +1 -1
  21. package/lib/icon/style/style.min.css +1 -1
  22. package/lib/index.umd.js +4709 -4356
  23. package/lib/index.umd.min.js +1 -1
  24. package/lib/scrollbar/src/scrollbar.js +22 -3
  25. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  26. package/lib/scrollbar/style/style.css +11 -0
  27. package/lib/scrollbar/style/style.min.css +1 -1
  28. package/lib/style.css +1 -1
  29. package/lib/style.min.css +1 -1
  30. package/lib/tabs/src/tabs.js +45 -33
  31. package/lib/tabs/src/tabs.min.js +1 -1
  32. package/lib/tooltip/src/tooltip.js +86 -32
  33. package/lib/tooltip/src/tooltip.min.js +1 -1
  34. package/lib/tooltip/style/style.css +2 -1
  35. package/lib/tooltip/style/style.min.css +1 -1
  36. package/lib/ui/index.js +1 -1
  37. package/lib/ui/index.min.js +1 -1
  38. package/lib/ui/src/log.js +1 -1
  39. package/lib/ui/src/log.min.js +1 -1
  40. package/lib/vxe-scrollbar/style/style.css +11 -0
  41. package/lib/vxe-scrollbar/style/style.min.css +1 -1
  42. package/lib/vxe-tooltip/style/style.css +2 -1
  43. package/lib/vxe-tooltip/style/style.min.css +1 -1
  44. package/package.json +2 -2
  45. package/packages/scrollbar/src/scrollbar.ts +20 -2
  46. package/packages/tabs/src/tabs.ts +6 -3
  47. package/packages/tooltip/src/tooltip.ts +54 -12
  48. package/styles/components/scrollbar.scss +15 -1
  49. package/styles/components/tooltip.scss +2 -1
  50. package/types/components/scrollbar.d.ts +19 -1
  51. package/types/components/table.d.ts +1 -0
  52. package/types/components/tooltip.d.ts +21 -0
  53. /package/es/icon/{iconfont.1792054434227.ttf → iconfont.1792115566662.ttf} +0 -0
  54. /package/es/icon/{iconfont.1792054434227.woff → iconfont.1792115566662.woff} +0 -0
  55. /package/es/icon/{iconfont.1792054434227.woff2 → iconfont.1792115566662.woff2} +0 -0
  56. /package/es/{iconfont.1792054434227.ttf → iconfont.1792115566662.ttf} +0 -0
  57. /package/es/{iconfont.1792054434227.woff → iconfont.1792115566662.woff} +0 -0
  58. /package/es/{iconfont.1792054434227.woff2 → iconfont.1792115566662.woff2} +0 -0
  59. /package/lib/icon/style/{iconfont.1792054434227.ttf → iconfont.1792115566662.ttf} +0 -0
  60. /package/lib/icon/style/{iconfont.1792054434227.woff → iconfont.1792115566662.woff} +0 -0
  61. /package/lib/icon/style/{iconfont.1792054434227.woff2 → iconfont.1792115566662.woff2} +0 -0
  62. /package/lib/{iconfont.1792054434227.ttf → iconfont.1792115566662.ttf} +0 -0
  63. /package/lib/{iconfont.1792054434227.woff → iconfont.1792115566662.woff} +0 -0
  64. /package/lib/{iconfont.1792054434227.woff2 → iconfont.1792115566662.woff2} +0 -0
@@ -15,6 +15,18 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
15
15
  var _loading = _interopRequireDefault(require("../../loading"));
16
16
  var _scrollbar = _interopRequireDefault(require("../../scrollbar"));
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ const {
19
+ baseUtils,
20
+ createEvent,
21
+ getConfig,
22
+ getIcon,
23
+ globalEvents,
24
+ permission,
25
+ renderEmptyElement
26
+ } = _ui.VxeUI;
27
+ const {
28
+ getDefVal
29
+ } = baseUtils;
18
30
  const {
19
31
  warnLog,
20
32
  errLog
@@ -29,17 +41,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
29
41
  height: [String, Number],
30
42
  destroyOnClose: {
31
43
  type: Boolean,
32
- default: () => (0, _ui.getConfig)().tabs.destroyOnClose
44
+ default: () => getConfig().tabs.destroyOnClose
33
45
  },
34
46
  titleWidth: [String, Number],
35
47
  titleAlign: [String, Number],
36
48
  type: {
37
49
  type: String,
38
- default: () => (0, _ui.getConfig)().tabs.type
50
+ default: () => getConfig().tabs.type
39
51
  },
40
52
  position: {
41
53
  type: String,
42
- default: () => (0, _ui.getConfig)().tabs.position
54
+ default: () => getConfig().tabs.position
43
55
  },
44
56
  showClose: Boolean,
45
57
  showBody: {
@@ -48,7 +60,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
48
60
  },
49
61
  padding: {
50
62
  type: Boolean,
51
- default: () => (0, _ui.getConfig)().tabs.padding
63
+ default: () => getConfig().tabs.padding
52
64
  },
53
65
  trigger: String,
54
66
  beforeChangeMethod: Function,
@@ -56,11 +68,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
56
68
  refreshConfig: Object,
57
69
  size: {
58
70
  type: String,
59
- default: () => (0, _ui.getConfig)().tabs.size || (0, _ui.getConfig)().size
71
+ default: () => getConfig().tabs.size || getConfig().size
60
72
  },
61
73
  useScrollbar: {
62
74
  type: Boolean,
63
- default: () => (0, _utils.getDefaultConfig)((0, _ui.getConfig)().tabs.useScrollbar, (0, _ui.getConfig)().useScrollbar)
75
+ default: () => getDefVal(getConfig().tabs.useScrollbar, getConfig().useScrollbar)
64
76
  },
65
77
  scrollbarConfig: Object,
66
78
  // 已废弃
@@ -148,10 +160,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
148
160
  return stys;
149
161
  });
150
162
  const computeCloseOpts = (0, _vue.computed)(() => {
151
- return Object.assign({}, (0, _ui.getConfig)().tabs.closeConfig, props.closeConfig);
163
+ return Object.assign({}, getConfig().tabs.closeConfig, props.closeConfig);
152
164
  });
153
165
  const computeRefreshOpts = (0, _vue.computed)(() => {
154
- return Object.assign({}, (0, _ui.getConfig)().tabs.refreshConfig, props.refreshConfig);
166
+ return Object.assign({}, getConfig().tabs.refreshConfig, props.refreshConfig);
155
167
  });
156
168
  const computeTabOptions = (0, _vue.computed)(() => {
157
169
  const {
@@ -169,7 +181,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
169
181
  return $xeParentTabs ? $xeParentTabs.reactData.resizeFlag : null;
170
182
  });
171
183
  const computeScrollbarOpts = (0, _vue.computed)(() => {
172
- return Object.assign({}, (0, _ui.getConfig)().tabs.scrollbarConfig, props.scrollbarConfig);
184
+ return Object.assign({}, getConfig().tabs.scrollbarConfig, props.scrollbarConfig);
173
185
  });
174
186
  const computeScrollbarProps = (0, _vue.computed)(() => {
175
187
  const scrollbarOpts = computeScrollbarOpts.value;
@@ -204,7 +216,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
204
216
  permissionCode
205
217
  } = item;
206
218
  if (permissionCode) {
207
- if (!_ui.permission.checkVisible(permissionCode)) {
219
+ if (!permission.checkVisible(permissionCode)) {
208
220
  return false;
209
221
  }
210
222
  }
@@ -335,7 +347,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
335
347
  (0, _vue.nextTick)(handleStyle);
336
348
  };
337
349
  const dispatchEvent = (type, params, evnt) => {
338
- emit(type, (0, _ui.createEvent)(evnt, {
350
+ emit(type, createEvent(evnt, {
339
351
  $tabs: $xeTabs
340
352
  }, params));
341
353
  };
@@ -391,7 +403,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
391
403
  const {
392
404
  trigger
393
405
  } = props;
394
- const beforeMethod = props.beforeChangeMethod || (0, _ui.getConfig)().tabs.beforeChangeMethod;
406
+ const beforeMethod = props.beforeChangeMethod || getConfig().tabs.beforeChangeMethod;
395
407
  const {
396
408
  activeName
397
409
  } = reactData;
@@ -490,7 +502,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
490
502
  activeName
491
503
  } = reactData;
492
504
  const closeOpts = computeCloseOpts.value;
493
- const beforeMethod = closeOpts.beforeMethod || props.beforeCloseMethod || (0, _ui.getConfig)().tabs.beforeCloseMethod;
505
+ const beforeMethod = closeOpts.beforeMethod || props.beforeCloseMethod || getConfig().tabs.beforeCloseMethod;
494
506
  const {
495
507
  name
496
508
  } = item;
@@ -739,13 +751,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
739
751
  class: ['vxe-tabs-header--prefix', `type--${tabType}`, `pos--${tabPosition}`]
740
752
  }, callSlot(tabPrefixSlot, {
741
753
  name: activeName
742
- })) : (0, _ui.renderEmptyElement)($xeTabs), isTabOver ? (0, _vue.h)('div', {
754
+ })) : renderEmptyElement($xeTabs), isTabOver ? (0, _vue.h)('div', {
743
755
  ref: refHeadPrevElem,
744
756
  class: ['vxe-tabs-header--bar vxe-tabs-header--prev-bar', `type--${tabType}`, `pos--${tabPosition}`],
745
757
  onClick: scrollLeftEvent
746
758
  }, [(0, _vue.h)('span', {
747
- class: lrPosition ? (0, _ui.getIcon)().TABS_TAB_BUTTON_TOP : (0, _ui.getIcon)().TABS_TAB_BUTTON_LEFT
748
- })]) : (0, _ui.renderEmptyElement)($xeTabs), (0, _vue.h)('div', {
759
+ class: lrPosition ? getIcon().TABS_TAB_BUTTON_TOP : getIcon().TABS_TAB_BUTTON_LEFT
760
+ })]) : renderEmptyElement($xeTabs), (0, _vue.h)('div', {
749
761
  class: ['vxe-tabs-header--wrapper', `type--${tabType}`, `pos--${tabPosition}`]
750
762
  }, [(0, _vue.h)('div', {
751
763
  ref: refHeadWrapperElem,
@@ -800,12 +812,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
800
812
  class: 'vxe-tabs-header--item-icon'
801
813
  }, [(0, _vue.h)('i', {
802
814
  class: icon
803
- })]) : (0, _ui.renderEmptyElement)($xeTabs), titlePrefixSlot ? (0, _vue.h)('span', {
815
+ })]) : renderEmptyElement($xeTabs), titlePrefixSlot ? (0, _vue.h)('span', {
804
816
  class: 'vxe-tabs-header--item-prefix'
805
817
  }, callSlot(titlePrefixSlot, {
806
818
  name,
807
819
  title
808
- })) : (0, _ui.renderEmptyElement)($xeTabs), (0, _vue.h)('span', {
820
+ })) : renderEmptyElement($xeTabs), (0, _vue.h)('span', {
809
821
  class: 'vxe-tabs-header--item-name'
810
822
  }, titleSlot ? callSlot(titleSlot, {
811
823
  name,
@@ -815,7 +827,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
815
827
  }, callSlot(titleSuffixSlot, {
816
828
  name,
817
829
  title
818
- })) : (0, _ui.renderEmptyElement)($xeTabs)]), ((0, _utils.isEnableConf)(refreshConfig) || refreshOpts.enabled) && (refreshVisibleMethod ? refreshVisibleMethod(params) : true) ? (0, _vue.h)('div', {
830
+ })) : renderEmptyElement($xeTabs)]), ((0, _utils.isEnableConf)(refreshConfig) || refreshOpts.enabled) && (refreshVisibleMethod ? refreshVisibleMethod(params) : true) ? (0, _vue.h)('div', {
819
831
  class: ['vxe-tabs-header--refresh-btn', {
820
832
  'is--active': isActive,
821
833
  'is--loading': isLoading,
@@ -825,8 +837,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
825
837
  handleRefreshTabEvent(evnt, item);
826
838
  }
827
839
  }, [(0, _vue.h)('i', {
828
- class: isLoading ? (0, _ui.getIcon)().TABS_TAB_REFRESH_LOADING : (0, _ui.getIcon)().TABS_TAB_REFRESH
829
- })]) : (0, _ui.renderEmptyElement)($xeTabs), (showClose || (0, _utils.isEnableConf)(closeConfig) || closeOpts.enabled) && (!closeVisibleMethod || closeVisibleMethod(params)) ? (0, _vue.h)('div', {
840
+ class: isLoading ? getIcon().TABS_TAB_REFRESH_LOADING : getIcon().TABS_TAB_REFRESH
841
+ })]) : renderEmptyElement($xeTabs), (showClose || (0, _utils.isEnableConf)(closeConfig) || closeOpts.enabled) && (!closeVisibleMethod || closeVisibleMethod(params)) ? (0, _vue.h)('div', {
830
842
  class: ['vxe-tabs-header--close-btn', {
831
843
  'is--active': isActive
832
844
  }],
@@ -834,8 +846,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
834
846
  handleCloseTabEvent(evnt, item, index, tabList);
835
847
  }
836
848
  }, [(0, _vue.h)('i', {
837
- class: (0, _ui.getIcon)().TABS_TAB_CLOSE
838
- })]) : (0, _ui.renderEmptyElement)($xeTabs)])]);
849
+ class: getIcon().TABS_TAB_CLOSE
850
+ })]) : renderEmptyElement($xeTabs)])]);
839
851
  }).concat([(0, _vue.h)('span', {
840
852
  key: 'line',
841
853
  class: ['vxe-tabs-header--active-line', `type--${tabType}`, `pos--${tabPosition}`],
@@ -845,12 +857,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
845
857
  class: ['vxe-tabs-header--bar vxe-tabs-header--next-bar', `type--${tabType}`, `pos--${tabPosition}`],
846
858
  onClick: scrollRightEvent
847
859
  }, [(0, _vue.h)('span', {
848
- class: lrPosition ? (0, _ui.getIcon)().TABS_TAB_BUTTON_BOTTOM : (0, _ui.getIcon)().TABS_TAB_BUTTON_RIGHT
849
- })]) : (0, _ui.renderEmptyElement)($xeTabs), tabSuffixSlot ? (0, _vue.h)('div', {
860
+ class: lrPosition ? getIcon().TABS_TAB_BUTTON_BOTTOM : getIcon().TABS_TAB_BUTTON_RIGHT
861
+ })]) : renderEmptyElement($xeTabs), tabSuffixSlot ? (0, _vue.h)('div', {
850
862
  class: ['vxe-tabs-header--suffix', `type--${tabType}`, `pos--${tabPosition}`]
851
863
  }, callSlot(tabSuffixSlot, {
852
864
  name: activeName
853
- })) : (0, _ui.renderEmptyElement)($xeTabs)]);
865
+ })) : renderEmptyElement($xeTabs)]);
854
866
  };
855
867
  const renderTabPane = item => {
856
868
  const {
@@ -885,7 +897,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
885
897
  name
886
898
  }) : []);
887
899
  }
888
- return (0, _ui.renderEmptyElement)($xeTabs);
900
+ return renderEmptyElement($xeTabs);
889
901
  };
890
902
  const renderTabContent = tabList => {
891
903
  const {
@@ -896,7 +908,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
896
908
  } = reactData;
897
909
  if (destroyOnClose) {
898
910
  const activeTab = tabList.find(item => item.name === activeName);
899
- return [activeTab ? renderTabPane(activeTab) : (0, _ui.renderEmptyElement)($xeTabs)];
911
+ return [activeTab ? renderTabPane(activeTab) : renderEmptyElement($xeTabs)];
900
912
  }
901
913
  return tabList.map(item => renderTabPane(item));
902
914
  };
@@ -920,7 +932,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
920
932
  const headerpSlot = slots.header;
921
933
  const footerSlot = slots.footer;
922
934
  if (!showBody) {
923
- return (0, _ui.renderEmptyElement)($xeTabs);
935
+ return renderEmptyElement($xeTabs);
924
936
  }
925
937
  const cacheItem = activeName ? cacheTabMaps[`${activeName}`] : null;
926
938
  const isLoading = cacheItem ? cacheItem.loading : false;
@@ -934,7 +946,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
934
946
  }]
935
947
  }, [headerpSlot ? (0, _vue.h)('div', {
936
948
  class: 'vxe-tabs-pane--header'
937
- }, callSlot(headerpSlot, defParams)) : (0, _ui.renderEmptyElement)($xeTabs), (0, _vue.h)('div', {
949
+ }, callSlot(headerpSlot, defParams)) : renderEmptyElement($xeTabs), (0, _vue.h)('div', {
938
950
  class: ['vxe-tabs-pane--body', `type--${tabType}`, `pos--${tabPosition}`, {
939
951
  [`size--${vSize}`]: vSize,
940
952
  'is--padding': padding,
@@ -942,7 +954,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
942
954
  }]
943
955
  }, renderTabContent(tabList)), footerSlot ? (0, _vue.h)('div', {
944
956
  class: 'vxe-tabs-pane--footer'
945
- }, callSlot(footerSlot, defParams)) : (0, _ui.renderEmptyElement)($xeTabs), showLoading && isLoading ? (0, _ui.renderEmptyElement)($xeTabs) : (0, _vue.h)(_loading.default, {
957
+ }, callSlot(footerSlot, defParams)) : renderEmptyElement($xeTabs), showLoading && isLoading ? renderEmptyElement($xeTabs) : (0, _vue.h)(_loading.default, {
946
958
  class: 'vxe-tabs--loading',
947
959
  modelValue: isLoading
948
960
  })]);
@@ -1027,10 +1039,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1027
1039
  });
1028
1040
  (0, _vue.onMounted)(() => {
1029
1041
  updateTabStyle();
1030
- _ui.globalEvents.on($xeTabs, 'resize', updateTabStyle);
1042
+ globalEvents.on($xeTabs, 'resize', updateTabStyle);
1031
1043
  });
1032
1044
  (0, _vue.onUnmounted)(() => {
1033
- _ui.globalEvents.off($xeTabs, 'resize');
1045
+ globalEvents.off($xeTabs, 'resize');
1034
1046
  });
1035
1047
  (0, _vue.provide)('$xeTabs', $xeTabs);
1036
1048
  addInitName(props.modelValue, null);
@@ -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,_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()}});
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{baseUtils,createEvent,getConfig,getIcon,globalEvents,permission,renderEmptyElement}=_ui.VxeUI,getDefVal=baseUtils.getDefVal,{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:()=>getConfig().tabs.destroyOnClose},titleWidth:[String,Number],titleAlign:[String,Number],type:{type:String,default:()=>getConfig().tabs.type},position:{type:String,default:()=>getConfig().tabs.position},showClose:Boolean,showBody:{type:Boolean,default:!0},padding:{type:Boolean,default:()=>getConfig().tabs.padding},trigger:String,beforeChangeMethod:Function,closeConfig:Object,refreshConfig:Object,size:{type:String,default:()=>getConfig().tabs.size||getConfig().size},useScrollbar:{type:Boolean,default:()=>getDefVal(getConfig().tabs.useScrollbar,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: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"}),H=(0,_vue.computed)(()=>{var e=L.value;return"left"===e||"right"===e}),U=(0,_vue.computed)(()=>{var{lintLeft:e,lintTop:t,lintWidth:a,lintHeight:l}=O;return H.value?{top:t+"px",height:l+"px"}:{left:e+"px",width:a+"px"}}),q=(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({},getConfig().tabs.closeConfig,d.closeConfig)),A=(0,_vue.computed)(()=>Object.assign({},getConfig().tabs.refreshConfig,d.refreshConfig)),b=(0,_vue.computed)(()=>{var e=d.options;return(e||[]).filter(e=>a(e))}),_=(0,_vue.computed)(()=>{var e=O.staticTabs;return e.filter(e=>a(e))});var V=(0,_vue.computed)(()=>t?t.reactData.resizeFlag:null);let F=(0,_vue.computed)(()=>Object.assign({},getConfig().tabs.scrollbarConfig,d.scrollbarConfig)),R=(0,_vue.computed)(()=>{var e=F.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:"")}}),D={},W={xID:E,props:d,context:e,reactData:O,getRefMaps:()=>w,getComputeMaps:()=>D},a=e=>{e=e.permissionCode;return!(e&&!permission.checkVisible(e))},k=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=S[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],I=()=>{var e,t,a,l,i,s=H.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")},f=()=>{var e=()=>{let t=O.activeName;var e,a,l,i,s,r=B.value,n=b.value,o=_.value,u=M.value,v=H.value;let c=0,d=0,h=0,m=0,f=0,p=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,f=u-a,p=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=f,O.scrollbarHeight=p,O.lintLeft=h,O.lintTop=m,O.lintWidth=c,O.lintHeight=d,O.isTabOver=g,I()};e(),(0,_vue.nextTick)(e)},p=(e,t,a)=>{l(e,createEvent(a,{$tabs:W},t))},n=e=>{l("update:modelValue",e)},o=(e,t)=>{var a=O.initNames;return!(!e||a.includes(e)||(p("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||getConfig().tabs.beforeChangeMethod;let i=O.activeName,s=a.name,r=s;p("tab-click",{name:s},t),"manual"!==e&&s!==i&&Promise.resolve(!l||l({$tabs:W,name:s,oldName:i,newName:s,option:a})).then(e=>{e?(O.activeName=s,n(r),o(s,t),p("change",{value:r,name:s,oldName:i,newName:s,option:a},t),p("tab-change",{value:r,name:s,oldName:i,newName:s,option:a},t)):p("tab-change-fail",{value:r,name:s,oldName:i,newName:s,option:a},t)}).catch(()=>{p("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=A.value.queryMethod;let s=l?a[""+l]:null;s&&(i?s.loading||(s.loading=!0,Promise.resolve(i({$tabs:W,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=z.value.beforeMethod||d.beforeCloseMethod||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:W,value:n,name:r,nextName:o,option:e})).then(e=>{e?p("tab-close",{value:n,name:r,nextName:o},t):p("tab-close-fail",{value:n,name:r,nextName:o},t)}).catch(()=>{p("tab-close-fail",{value:n,name:r,nextName:o},t)})},G=(n,e)=>{var t=m.slTimeout;let o=H.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))),f())});h()},s=e=>{var t,a=H.value,l=M.value;l&&({clientWidth:l,clientHeight:t}=l,a=Math.floor(.75*(a?t:l)),G(e,a))},J=()=>{s(-1)},K=()=>{s(1)},r=n=>{let o=b.value,u=_.value,v=H.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))),f())})},g=t=>{let a=O.activeName;var l=b.value,i=_.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: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:b}=d,{activeName:_,scrollbarWidth:e,scrollbarHeight:t,isTabOver:a,cacheTabMaps:x}=O,T=B.value,C=L.value;var l=H.value,i=U.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:_})):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:l?getIcon().TABS_TAB_BUTTON_TOP:getIcon().TABS_TAB_BUTTON_LEFT})]):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:l?{marginRight:`-${e+scrollbarOffsetSize}px`,paddingRight:scrollbarOffsetSize+"px"}:{marginBottom:`-${t+scrollbarOffsetSize}px`,paddingBottom:scrollbarOffsetSize+"px"},onScroll:I},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||f,v={$tabs:W,value:_,name:r,option:t},c=_===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,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})]):renderEmptyElement(W),u?(0,_vue.h)("span",{class:"vxe-tabs-header--item-prefix"},k(u,{name:r,title:e})):renderEmptyElement(W),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},o?k(o,{name:r,title:e}):""+e),n?(0,_vue.h)("span",{class:"vxe-tabs-header--item-suffix"},k(n,{name:r,title:e})):renderEmptyElement(W)]),!(0,_utils.isEnableConf)(b)&&!E.enabled||w&&!w(v)?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?getIcon().TABS_TAB_REFRESH_LOADING:getIcon().TABS_TAB_REFRESH})]),!(p||(0,_utils.isEnableConf)(g)||y.enabled)||N&&!N(v)?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:getIcon().TABS_TAB_CLOSE})])])])}).concat([(0,_vue.h)("span",{key:"line",class:["vxe-tabs-header--active-line","type--"+T,"pos--"+C],style:i})]))]),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:l?getIcon().TABS_TAB_BUTTON_BOTTOM:getIcon().TABS_TAB_BUTTON_RIGHT})]):renderEmptyElement(W),r?(0,_vue.h)("div",{class:["vxe-tabs-header--suffix","type--"+T,"pos--"+C]},k(r,{name:_})):renderEmptyElement(W)])},C=e=>{var t=d.useScrollbar,{initNames:a,activeName:l}=O;let{name:i,slots:s}=e,r=s?s.default:null;e=R.value;return i&&a.includes(i)?t?(0,_vue.h)(_scrollbar.default,Object.assign({key:""+i,class:["vxe-tabs-pane--scrollbar-item",{"is--visible":l===i}]},e),{default:()=>r?k(r,{name:i}):[]}):(0,_vue.h)("div",{key:""+i,class:["vxe-tabs-pane--item",{"is--visible":l===i}]},r?k(r,{name:i}):[]):renderEmptyElement(W)},Q=e=>{var t=d.destroyOnClose;let a=O.activeName;return t?[(t=e.find(e=>e.name===a))?C(t):renderEmptyElement(W)]:e.map(e=>C(e))},X=e=>{var{height:t,padding:a,showBody:l}=d,{activeName:i,cacheTabMaps:s}=O,r=h.value,n=B.value,o=L.value,u=A.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"},k(v,i)):renderEmptyElement(W),(0,_vue.h)("div",{class:["vxe-tabs-pane--body","type--"+n,"pos--"+o,{["size--"+r]:r,"is--padding":a,"is--height":t}]},Q(e)),c?(0,_vue.h)("div",{class:"vxe-tabs-pane--footer"},k(c,i)):renderEmptyElement(W),u&&s?renderEmptyElement(W):(0,_vue.h)(_loading.default,{class:"vxe-tabs--loading",modelValue:s})])):renderEmptyElement(W)};(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 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,()=>{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)(V,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>O.resizeFlag,()=>{(0,_vue.nextTick)(()=>{f()})}),(0,_vue.onMounted)(()=>{f(),globalEvents.on(W,"resize",f)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(W,"resize")}),(0,_vue.provide)("$xeTabs",W),o(d.modelValue,null),i(O.staticTabs.length?O.staticTabs:d.options),W.renderVN=()=>{var{height:e,padding:t,trigger:a}=d,l=O.activeName,i=h.value,s=b.value,r=_.value,n=B.value,o=L.value,u=q.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(X(r),T(r)):s.push(T(r),X(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)},W},render(){return this.renderVN()}});
@@ -11,7 +11,17 @@ var _ui = require("../../ui");
11
11
  var _utils = require("../../ui/src/utils");
12
12
  var _dom = require("../../ui/src/dom");
13
13
  var _vn = require("../../ui/src/vn");
14
+ var _scrollbar = _interopRequireDefault(require("../../scrollbar"));
14
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ const {
17
+ baseUtils,
18
+ getConfig,
19
+ createEvent,
20
+ globalEvents
21
+ } = _ui.VxeUI;
22
+ const {
23
+ getDefVal
24
+ } = baseUtils;
15
25
  function createReactData() {
16
26
  return {
17
27
  target: null,
@@ -31,6 +41,7 @@ function createReactData() {
31
41
  }
32
42
  function createInternalData() {
33
43
  return {
44
+ // scrollbarViewEl: undefined,
34
45
  // showDelayTip: undefined
35
46
  };
36
47
  }
@@ -40,16 +51,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
40
51
  modelValue: Boolean,
41
52
  size: {
42
53
  type: String,
43
- default: () => (0, _ui.getConfig)().tooltip.size || (0, _ui.getConfig)().size
54
+ default: () => getConfig().tooltip.size || getConfig().size
44
55
  },
45
56
  selector: [String, Element],
46
57
  trigger: {
47
58
  type: String,
48
- default: () => (0, _ui.getConfig)().tooltip.trigger || 'hover'
59
+ default: () => getConfig().tooltip.trigger || 'hover'
49
60
  },
50
61
  theme: {
51
62
  type: String,
52
- default: () => (0, _ui.getConfig)().tooltip.theme || 'dark'
63
+ default: () => getConfig().tooltip.theme || 'dark'
53
64
  },
54
65
  content: {
55
66
  type: [String, Number],
@@ -57,67 +68,72 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
57
68
  },
58
69
  useHtml: {
59
70
  type: Boolean,
60
- default: () => _xeUtils.default.isBoolean((0, _ui.getConfig)().tooltip.useHtml) ? (0, _ui.getConfig)().tooltip.useHtml : null
71
+ default: () => _xeUtils.default.isBoolean(getConfig().tooltip.useHtml) ? getConfig().tooltip.useHtml : null
61
72
  },
62
73
  // 已废弃,请使用 useHtml
63
74
  useHTML: {
64
75
  type: Boolean,
65
- default: () => (0, _ui.getConfig)().tooltip.useHTML
76
+ default: () => getConfig().tooltip.useHTML
66
77
  },
67
78
  zIndex: [String, Number],
68
79
  popupClassName: [String, Function],
69
80
  width: {
70
81
  type: [String, Number],
71
- default: () => (0, _ui.getConfig)().tooltip.Width
82
+ default: () => getConfig().tooltip.Width
72
83
  },
73
84
  height: {
74
85
  type: [String, Number],
75
- default: () => (0, _ui.getConfig)().tooltip.height
86
+ default: () => getConfig().tooltip.height
76
87
  },
77
88
  minWidth: {
78
89
  type: [String, Number],
79
- default: () => (0, _ui.getConfig)().tooltip.minWidth
90
+ default: () => getConfig().tooltip.minWidth
80
91
  },
81
92
  minHeight: {
82
93
  type: [String, Number],
83
- default: () => (0, _ui.getConfig)().tooltip.minHeight
94
+ default: () => getConfig().tooltip.minHeight
84
95
  },
85
96
  maxWidth: {
86
97
  type: [String, Number],
87
- default: () => (0, _ui.getConfig)().tooltip.maxWidth
98
+ default: () => getConfig().tooltip.maxWidth
88
99
  },
89
100
  maxHeight: {
90
101
  type: [String, Number],
91
- default: () => (0, _ui.getConfig)().tooltip.maxHeight
102
+ default: () => getConfig().tooltip.maxHeight
92
103
  },
93
104
  placement: {
94
105
  type: String,
95
- default: () => (0, _ui.getConfig)().tooltip.placement
106
+ default: () => getConfig().tooltip.placement
96
107
  },
97
108
  defaultPlacement: {
98
109
  type: String,
99
- default: () => (0, _ui.getConfig)().tooltip.defaultPlacement
110
+ default: () => getConfig().tooltip.defaultPlacement
100
111
  },
101
112
  isArrow: {
102
113
  type: Boolean,
103
- default: () => (0, _ui.getConfig)().tooltip.isArrow
114
+ default: () => getConfig().tooltip.isArrow
104
115
  },
105
116
  enterable: {
106
117
  type: Boolean,
107
- default: () => (0, _ui.getConfig)().tooltip.enterable
118
+ default: () => getConfig().tooltip.enterable
108
119
  },
109
120
  enterDelay: {
110
121
  type: Number,
111
- default: () => (0, _ui.getConfig)().tooltip.enterDelay
122
+ default: () => getConfig().tooltip.enterDelay
112
123
  },
113
124
  leaveDelay: {
114
125
  type: Number,
115
- default: () => (0, _ui.getConfig)().tooltip.leaveDelay
126
+ default: () => getConfig().tooltip.leaveDelay
116
127
  },
117
128
  appendTo: {
118
129
  type: [String, Function],
119
- default: () => (0, _ui.getConfig)().tooltip.appendTo
120
- }
130
+ default: () => getConfig().tooltip.appendTo
131
+ },
132
+ useScrollbar: {
133
+ type: Boolean,
134
+ default: () => getDefVal(getConfig().tooltip.useScrollbar, getConfig().useScrollbar)
135
+ },
136
+ scrollbarConfig: Object
121
137
  },
122
138
  emits: ['update:modelValue', 'show', 'hide'],
123
139
  setup(props, context) {
@@ -132,7 +148,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
132
148
  const reactData = (0, _vue.reactive)(createReactData());
133
149
  const internalData = createInternalData();
134
150
  const refElem = (0, _vue.ref)();
135
- const contentWrapperfElem = (0, _vue.ref)();
151
+ const contentScrollbar = (0, _vue.ref)();
152
+ const contentWrapperElem = (0, _vue.ref)();
136
153
  const computeWrapperStyle = (0, _vue.computed)(() => {
137
154
  const {
138
155
  width,
@@ -175,7 +192,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
175
192
  getRefMaps: () => refMaps
176
193
  };
177
194
  const dispatchEvent = (type, params, evnt) => {
178
- emit(type, (0, _ui.createEvent)(evnt, {
195
+ emit(type, createEvent(evnt, {
179
196
  $tooltip: $xeTooltip
180
197
  }, params));
181
198
  };
@@ -267,7 +284,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
267
284
  tipStore.arrowStyle = {
268
285
  left: '50%'
269
286
  };
270
- return $xeTooltip.updatePlacement();
287
+ return $xeTooltip.updatePlacement().then(() => {
288
+ return $xeTooltip.updatePlacement();
289
+ });
271
290
  };
272
291
  const handleDelayFn = () => {
273
292
  internalData.showDelayTip = _xeUtils.default.debounce(() => {
@@ -350,7 +369,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
350
369
  } = reactData;
351
370
  const panelElem = refElem.value;
352
371
  if (!targetElem || !panelElem) {
353
- return;
372
+ return (0, _vue.nextTick)();
354
373
  }
355
374
  const targetRect = targetElem.getBoundingClientRect();
356
375
  const targetWidth = targetElem.offsetWidth;
@@ -386,6 +405,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
386
405
  tipStore.placement = ppObj.placement;
387
406
  tipStore.style = panelStyle;
388
407
  tipStore.arrowStyle.left = ppObj.arrowLeft ? `${ppObj.arrowLeft}px` : '';
408
+ return (0, _vue.nextTick)();
389
409
  };
390
410
  const tooltipMethods = {
391
411
  dispatchEvent,
@@ -412,8 +432,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
412
432
  return handleVisible(target, content);
413
433
  },
414
434
  updatePlacement() {
415
- updateTipStyle();
416
- return (0, _vue.nextTick)().then(updateTipStyle);
435
+ return updateTipStyle().then(() => {
436
+ return updateTipStyle();
437
+ }).then(() => {
438
+ return updateTipStyle();
439
+ });
417
440
  },
418
441
  isActived() {
419
442
  return reactData.tipActive;
@@ -439,6 +462,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
439
462
  Object.assign($xeTooltip, tooltipMethods, tooltipPrivateMethods);
440
463
  const renderContent = () => {
441
464
  const {
465
+ useScrollbar,
466
+ theme,
442
467
  useHtml,
443
468
  useHTML
444
469
  } = props;
@@ -462,9 +487,22 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
462
487
  key: 'cd'
463
488
  }, `${tipContent}`));
464
489
  }
490
+ if (useScrollbar) {
491
+ return (0, _vue.h)(_scrollbar.default, {
492
+ key: 5,
493
+ ref: contentScrollbar,
494
+ class: 'vxe-tooltip--scrollbar-content',
495
+ theme,
496
+ viewClassName: 'vxe-tooltip--scrollbar-content-view',
497
+ viewInnerClassName: 'vxe-tooltip--scrollbar-content-inner',
498
+ viewStyle: wrapperStyle
499
+ }, {
500
+ default: () => contVNs
501
+ });
502
+ }
465
503
  return (0, _vue.h)('div', {
466
504
  key: 3,
467
- ref: contentWrapperfElem,
505
+ ref: contentWrapperElem,
468
506
  class: 'vxe-tooltip--content',
469
507
  style: wrapperStyle
470
508
  }, contVNs);
@@ -529,7 +567,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
529
567
  });
530
568
  handleDelayFn();
531
569
  (0, _vue.onMounted)(() => {
532
- const contentWrapperfEl = contentWrapperfElem.value;
570
+ const $scrollbar = contentScrollbar.value;
571
+ if ($scrollbar) {
572
+ const viewEl = $scrollbar.getViewElem();
573
+ if (viewEl) {
574
+ viewEl.addEventListener('wheel', wheelEvent, {
575
+ passive: false
576
+ });
577
+ internalData.scrollbarViewEl = viewEl;
578
+ }
579
+ }
580
+ const contentWrapperfEl = contentWrapperElem.value;
533
581
  if (contentWrapperfEl) {
534
582
  contentWrapperfEl.addEventListener('wheel', wheelEvent, {
535
583
  passive: false
@@ -572,31 +620,37 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
572
620
  }
573
621
  }
574
622
  });
575
- _ui.globalEvents.on($xeTooltip, 'blur', handleGlobalBlurEvent);
576
- _ui.globalEvents.on($xeTooltip, 'scroll', handleGlobalScrollEvent);
623
+ globalEvents.on($xeTooltip, 'blur', handleGlobalBlurEvent);
624
+ globalEvents.on($xeTooltip, 'scroll', handleGlobalScrollEvent);
577
625
  });
578
626
  (0, _vue.onBeforeUnmount)(() => {
579
627
  const {
580
628
  target
581
629
  } = reactData;
630
+ const {
631
+ scrollbarViewEl
632
+ } = internalData;
582
633
  const panelElem = refElem.value;
583
634
  if (target) {
584
635
  target.onmouseenter = null;
585
636
  target.onmouseleave = null;
586
637
  target.onclick = null;
587
638
  }
588
- const contentWrapperfEl = contentWrapperfElem.value;
639
+ const contentWrapperfEl = contentWrapperElem.value;
589
640
  if (contentWrapperfEl) {
590
641
  contentWrapperfEl.removeEventListener('wheel', wheelEvent);
591
642
  }
643
+ if (scrollbarViewEl) {
644
+ scrollbarViewEl.removeEventListener('wheel', wheelEvent);
645
+ }
592
646
  if (panelElem) {
593
647
  const parentNode = panelElem.parentNode;
594
648
  if (parentNode) {
595
649
  parentNode.removeChild(panelElem);
596
650
  }
597
651
  }
598
- _ui.globalEvents.off($xeTooltip, 'blur');
599
- _ui.globalEvents.off($xeTooltip, 'scroll');
652
+ globalEvents.off($xeTooltip, 'blur');
653
+ globalEvents.off($xeTooltip, 'scroll');
600
654
  _xeUtils.default.assign(reactData, createReactData());
601
655
  _xeUtils.default.assign(internalData, createInternalData());
602
656
  });