vxe-pc-ui 4.1.20 → 4.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +82 -1
  2. package/es/anchor/src/anchor-link.js +1 -1
  3. package/es/anchor/src/anchor.js +1 -1
  4. package/es/breadcrumb/src/breadcrumb.js +1 -1
  5. package/es/button/src/button-group.js +4 -1
  6. package/es/calendar/src/calendar.js +64 -32
  7. package/es/carousel/src/carousel-item.js +13 -3
  8. package/es/carousel/src/carousel.js +16 -8
  9. package/es/checkbox/src/checkbox.js +30 -14
  10. package/es/checkbox/src/group.js +17 -8
  11. package/es/collapse-pane/index.js +1 -1
  12. package/es/countdown/src/countdown.js +1 -1
  13. package/es/date-picker/src/date-picker.js +12 -12
  14. package/es/drawer/src/drawer.js +1 -1
  15. package/es/form/render/index.js +1 -2
  16. package/es/form/src/form-config-item.js +4 -3
  17. package/es/form/src/form-gather.js +5 -3
  18. package/es/form/src/form-item.js +15 -10
  19. package/es/form/src/form.js +11 -8
  20. package/es/form/src/render.js +2 -1
  21. package/es/form/src/util.js +2 -1
  22. package/es/icon/style.css +1 -1
  23. package/es/icon-picker/src/icon-picker.js +22 -10
  24. package/es/image/src/group.js +4 -1
  25. package/es/image/src/preview.js +1 -1
  26. package/es/input/src/input.js +129 -65
  27. package/es/layout-aside/src/layout-aside.js +1 -1
  28. package/es/list/src/list.js +7 -5
  29. package/es/list-design/src/list-design.js +1 -1
  30. package/es/list-design/src/list-view.js +1 -1
  31. package/es/loading/src/loading.js +1 -1
  32. package/es/menu/src/menu.js +1 -1
  33. package/es/number-input/src/number-input.js +6 -6
  34. package/es/pager/src/pager.js +85 -45
  35. package/es/password-input/src/password-input.js +2 -2
  36. package/es/print/src/page-break.js +11 -2
  37. package/es/print/src/print.js +6 -4
  38. package/es/radio/src/group.js +5 -2
  39. package/es/row/src/row.js +1 -1
  40. package/es/select/src/optgroup.js +11 -8
  41. package/es/select/src/option.js +9 -7
  42. package/es/select/src/select.js +32 -29
  43. package/es/select/src/util.js +2 -2
  44. package/es/style.css +1 -1
  45. package/es/style.min.css +1 -1
  46. package/es/tabs/src/tab-pane.js +13 -3
  47. package/es/tabs/src/tabs.js +57 -47
  48. package/es/textarea/src/textarea.js +4 -4
  49. package/es/tooltip/src/tooltip.js +1 -1
  50. package/es/tree/src/tree.js +6 -3
  51. package/es/tree-select/src/tree-select.js +16 -9
  52. package/es/ui/index.js +1 -7
  53. package/es/ui/src/log.js +1 -1
  54. package/es/upload/src/upload.js +5 -5
  55. package/lib/anchor/src/anchor-link.js +1 -1
  56. package/lib/anchor/src/anchor-link.min.js +1 -1
  57. package/lib/anchor/src/anchor.js +1 -1
  58. package/lib/anchor/src/anchor.min.js +1 -1
  59. package/lib/breadcrumb/src/breadcrumb.js +1 -1
  60. package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
  61. package/lib/button/src/button-group.js +4 -1
  62. package/lib/button/src/button-group.min.js +1 -1
  63. package/lib/calendar/src/calendar.js +42 -24
  64. package/lib/calendar/src/calendar.min.js +1 -1
  65. package/lib/carousel/src/carousel-item.js +16 -3
  66. package/lib/carousel/src/carousel-item.min.js +1 -1
  67. package/lib/carousel/src/carousel.js +18 -8
  68. package/lib/carousel/src/carousel.min.js +1 -1
  69. package/lib/checkbox/src/checkbox.js +16 -12
  70. package/lib/checkbox/src/checkbox.min.js +1 -1
  71. package/lib/checkbox/src/group.js +10 -7
  72. package/lib/checkbox/src/group.min.js +1 -1
  73. package/lib/collapse-pane/index.js +1 -1
  74. package/lib/collapse-pane/index.min.js +1 -1
  75. package/lib/countdown/src/countdown.js +1 -1
  76. package/lib/countdown/src/countdown.min.js +1 -1
  77. package/lib/date-picker/src/date-picker.js +12 -12
  78. package/lib/drawer/src/drawer.js +1 -1
  79. package/lib/drawer/src/drawer.min.js +1 -1
  80. package/lib/form/render/index.js +1 -4
  81. package/lib/form/render/index.min.js +1 -1
  82. package/lib/form/src/form-config-item.js +4 -5
  83. package/lib/form/src/form-config-item.min.js +1 -1
  84. package/lib/form/src/form-gather.js +11 -9
  85. package/lib/form/src/form-gather.min.js +1 -1
  86. package/lib/form/src/form-item.js +11 -12
  87. package/lib/form/src/form-item.min.js +1 -1
  88. package/lib/form/src/form.js +7 -7
  89. package/lib/form/src/form.min.js +1 -1
  90. package/lib/form/src/render.js +2 -1
  91. package/lib/form/src/util.js +2 -1
  92. package/lib/icon/style/style.css +1 -1
  93. package/lib/icon/style/style.min.css +1 -1
  94. package/lib/icon-picker/src/icon-picker.js +20 -11
  95. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  96. package/lib/image/src/group.js +4 -1
  97. package/lib/image/src/group.min.js +1 -1
  98. package/lib/image/src/preview.js +1 -1
  99. package/lib/image/src/preview.min.js +1 -1
  100. package/lib/index.umd.js +522 -377
  101. package/lib/index.umd.min.js +1 -1
  102. package/lib/input/src/input.js +77 -50
  103. package/lib/input/src/input.min.js +1 -1
  104. package/lib/layout-aside/src/layout-aside.js +1 -1
  105. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  106. package/lib/list/src/list.js +9 -5
  107. package/lib/list/src/list.min.js +1 -1
  108. package/lib/list-design/src/list-design.js +1 -1
  109. package/lib/list-design/src/list-design.min.js +1 -1
  110. package/lib/list-design/src/list-view.js +1 -1
  111. package/lib/list-design/src/list-view.min.js +1 -1
  112. package/lib/loading/src/loading.js +1 -1
  113. package/lib/loading/src/loading.min.js +1 -1
  114. package/lib/menu/src/menu.js +1 -1
  115. package/lib/menu/src/menu.min.js +1 -1
  116. package/lib/number-input/src/number-input.js +6 -6
  117. package/lib/pager/src/pager.js +40 -39
  118. package/lib/pager/src/pager.min.js +1 -1
  119. package/lib/password-input/src/password-input.js +2 -2
  120. package/lib/print/src/page-break.js +14 -2
  121. package/lib/print/src/page-break.min.js +1 -1
  122. package/lib/print/src/print.js +8 -6
  123. package/lib/print/src/print.min.js +1 -1
  124. package/lib/radio/src/group.js +5 -2
  125. package/lib/radio/src/group.min.js +1 -1
  126. package/lib/row/src/row.js +1 -1
  127. package/lib/row/src/row.min.js +1 -1
  128. package/lib/select/src/optgroup.js +12 -9
  129. package/lib/select/src/optgroup.min.js +1 -1
  130. package/lib/select/src/option.js +9 -7
  131. package/lib/select/src/option.min.js +1 -1
  132. package/lib/select/src/select.js +33 -32
  133. package/lib/select/src/select.min.js +1 -1
  134. package/lib/select/src/util.js +2 -2
  135. package/lib/select/src/util.min.js +1 -1
  136. package/lib/style.css +1 -1
  137. package/lib/style.min.css +1 -1
  138. package/lib/tabs/src/tab-pane.js +16 -3
  139. package/lib/tabs/src/tab-pane.min.js +1 -1
  140. package/lib/tabs/src/tabs.js +62 -50
  141. package/lib/tabs/src/tabs.min.js +1 -1
  142. package/lib/textarea/src/textarea.js +4 -4
  143. package/lib/tooltip/src/tooltip.js +1 -1
  144. package/lib/tooltip/src/tooltip.min.js +1 -1
  145. package/lib/tree/src/tree.js +2 -2
  146. package/lib/tree/src/tree.min.js +1 -1
  147. package/lib/tree-select/src/tree-select.js +11 -7
  148. package/lib/tree-select/src/tree-select.min.js +1 -1
  149. package/lib/ui/index.js +3 -10
  150. package/lib/ui/index.min.js +1 -1
  151. package/lib/ui/src/log.js +1 -1
  152. package/lib/ui/src/log.min.js +1 -1
  153. package/lib/upload/src/upload.js +5 -5
  154. package/lib/upload/src/upload.min.js +1 -1
  155. package/package.json +2 -2
  156. package/packages/anchor/src/anchor-link.ts +2 -2
  157. package/packages/anchor/src/anchor.ts +2 -2
  158. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  159. package/packages/button/src/button-group.ts +4 -1
  160. package/packages/calendar/src/calendar.ts +67 -35
  161. package/packages/carousel/src/carousel-item.ts +19 -4
  162. package/packages/carousel/src/carousel.ts +19 -11
  163. package/packages/checkbox/src/checkbox.ts +34 -15
  164. package/packages/checkbox/src/group.ts +22 -10
  165. package/packages/collapse-pane/index.ts +1 -1
  166. package/packages/countdown/src/countdown.ts +2 -2
  167. package/packages/date-picker/src/date-picker.ts +12 -12
  168. package/packages/drawer/src/drawer.ts +2 -2
  169. package/packages/form/render/index.ts +1 -3
  170. package/packages/form/src/form-config-item.ts +4 -3
  171. package/packages/form/src/form-gather.ts +5 -3
  172. package/packages/form/src/form-item.ts +15 -10
  173. package/packages/form/src/form.ts +12 -10
  174. package/packages/form/src/render.ts +2 -1
  175. package/packages/form/src/util.ts +2 -1
  176. package/packages/icon-picker/src/icon-picker.ts +26 -13
  177. package/packages/image/src/group.ts +4 -1
  178. package/packages/image/src/preview.ts +2 -2
  179. package/packages/input/src/input.ts +133 -71
  180. package/packages/layout-aside/src/layout-aside.ts +2 -2
  181. package/packages/list/src/list.ts +12 -11
  182. package/packages/list-design/src/list-design.ts +2 -2
  183. package/packages/list-design/src/list-view.ts +2 -2
  184. package/packages/loading/src/loading.ts +2 -2
  185. package/packages/menu/src/menu.ts +2 -2
  186. package/packages/number-input/src/number-input.ts +6 -6
  187. package/packages/pager/src/pager.ts +91 -50
  188. package/packages/password-input/src/password-input.ts +2 -2
  189. package/packages/print/src/page-break.ts +18 -4
  190. package/packages/print/src/print.ts +10 -5
  191. package/packages/radio/src/group.ts +6 -3
  192. package/packages/row/src/row.ts +2 -2
  193. package/packages/select/src/optgroup.ts +16 -13
  194. package/packages/select/src/option.ts +10 -8
  195. package/packages/select/src/select.ts +42 -36
  196. package/packages/select/src/util.ts +3 -3
  197. package/packages/tabs/src/tab-pane.ts +20 -5
  198. package/packages/tabs/src/tabs.ts +59 -49
  199. package/packages/textarea/src/textarea.ts +4 -4
  200. package/packages/tooltip/src/tooltip.ts +2 -2
  201. package/packages/tree/src/tree.ts +7 -4
  202. package/packages/tree-select/src/tree-select.ts +20 -12
  203. package/packages/ui/index.ts +0 -7
  204. package/packages/upload/src/upload.ts +6 -6
  205. package/types/components/calendar.d.ts +6 -0
  206. package/types/components/carousel.d.ts +5 -0
  207. package/types/components/form.d.ts +4 -2
  208. package/types/components/icon-picker.d.ts +4 -0
  209. package/types/components/input.d.ts +9 -1
  210. package/types/components/list.d.ts +1 -0
  211. package/types/components/optgroup.d.ts +10 -4
  212. package/types/components/tabs.d.ts +4 -0
  213. package/types/components/toolbar.d.ts +5 -0
  214. package/types/components/tree-select.d.ts +4 -0
  215. package/types/ui/index.d.ts +0 -22
  216. /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  217. /package/es/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  218. /package/es/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  219. /package/es/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  220. /package/es/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  221. /package/es/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  222. /package/es/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  223. /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  224. /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
  225. /package/lib/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  226. /package/lib/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  227. /package/lib/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  228. /package/lib/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  229. /package/lib/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  230. /package/lib/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  231. /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _vue = require("vue");
8
8
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
+ var _ui = require("../../ui");
9
10
  var _util = require("./util");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  var _default = exports.default = (0, _vue.defineComponent)({
@@ -22,7 +23,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
22
23
  emits: [],
23
24
  setup(props, context) {
24
25
  const {
25
- slots
26
+ slots,
27
+ emit
26
28
  } = context;
27
29
  const xID = _xeUtils.default.uniqueId();
28
30
  const refElem = (0, _vue.ref)();
@@ -53,6 +55,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
53
55
  getRefMaps: () => refMaps,
54
56
  getComputeMaps: () => computeMaps
55
57
  };
58
+ const dispatchEvent = (type, params, evnt) => {
59
+ emit(type, (0, _ui.createEvent)(evnt, {
60
+ $tabPane: $xeTabPane
61
+ }, params));
62
+ };
63
+ const tabPaneMethods = {
64
+ dispatchEvent
65
+ };
66
+ const tabPanePrivateMethods = {};
67
+ Object.assign($xeTabPane, tabPaneMethods, tabPanePrivateMethods);
56
68
  (0, _vue.watch)(() => props.title, val => {
57
69
  tabConfig.title = val;
58
70
  });
@@ -66,8 +78,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
66
78
  tabConfig.permissionCode = val;
67
79
  });
68
80
  (0, _vue.onMounted)(() => {
69
- if ($xeTabs && refElem.value) {
70
- (0, _util.assembleAnchorTab)($xeTabs, refElem.value, tabConfig);
81
+ const elem = refElem.value;
82
+ if ($xeTabs && elem) {
83
+ (0, _util.assembleAnchorTab)($xeTabs, elem, tabConfig);
71
84
  }
72
85
  });
73
86
  (0, _vue.onUnmounted)(() => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabPane",props:{title:[String,Number],name:[String,Number],icon:String,titleWidth:[String,Number],titleAlign:[String,Number],preload:Boolean,permissionCode:[String,Number]},emits:[],setup(e,t){var i=t["slots"],r=_xeUtils.default.uniqueId();const u=(0,_vue.ref)(),n=(0,_vue.inject)("$xeTabs",null);var o=(0,_vue.reactive)({});const l=(0,_vue.reactive)({id:r,title:e.title,name:e.name,icon:e.icon,titleWidth:e.titleWidth,titleAlign:e.titleAlign,preload:e.preload,permissionCode:e.permissionCode,slots:{default:i.default}}),a={refElem:u},s={};i={xID:r,props:e,context:t,reactData:o,getRefMaps:()=>a,getComputeMaps:()=>s};(0,_vue.watch)(()=>e.title,e=>{l.title=e}),(0,_vue.watch)(()=>e.name,e=>{l.name=e}),(0,_vue.watch)(()=>e.icon,e=>{l.icon=e}),(0,_vue.watch)(()=>e.permissionCode,e=>{l.permissionCode=e}),(0,_vue.onMounted)(()=>{n&&u.value&&(0,_util.assembleAnchorTab)(n,u.value,l)}),(0,_vue.onUnmounted)(()=>{n&&(0,_util.destroyAnchorTab)(n,l)});return i.renderVN=()=>(0,_vue.h)("div",{ref:u},[]),i},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabPane",props:{title:[String,Number],name:[String,Number],icon:String,titleWidth:[String,Number],titleAlign:[String,Number],preload:Boolean,permissionCode:[String,Number]},emits:[],setup(e,t){const{slots:i,emit:r}=t;var n=_xeUtils.default.uniqueId();const u=(0,_vue.ref)(),a=(0,_vue.inject)("$xeTabs",null);var o=(0,_vue.reactive)({});const l=(0,_vue.reactive)({id:n,title:e.title,name:e.name,icon:e.icon,titleWidth:e.titleWidth,titleAlign:e.titleAlign,preload:e.preload,permissionCode:e.permissionCode,slots:{default:i.default}}),s={refElem:u},d={},v={xID:n,props:e,context:t,reactData:o,getRefMaps:()=>s,getComputeMaps:()=>d};Object.assign(v,{dispatchEvent:(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$tabPane:v},t))}},{}),(0,_vue.watch)(()=>e.title,e=>{l.title=e}),(0,_vue.watch)(()=>e.name,e=>{l.name=e}),(0,_vue.watch)(()=>e.icon,e=>{l.icon=e}),(0,_vue.watch)(()=>e.permissionCode,e=>{l.permissionCode=e}),(0,_vue.onMounted)(()=>{var e=u.value;a&&e&&(0,_util.assembleAnchorTab)(a,e,l)}),(0,_vue.onUnmounted)(()=>{a&&(0,_util.destroyAnchorTab)(a,l)});return v.renderVN=()=>(0,_vue.h)("div",{ref:u},[]),v},render(){return this.renderVN()}});
@@ -49,31 +49,23 @@ var _default = exports.default = (0, _vue.defineComponent)({
49
49
  isTabOver: false,
50
50
  resizeFlag: 1
51
51
  });
52
+ const internalData = {
53
+ slTimeout: undefined
54
+ };
52
55
  const refMaps = {
53
56
  refElem
54
57
  };
55
- const handleFilterTab = item => {
56
- const {
57
- permissionCode
58
- } = item;
59
- if (permissionCode) {
60
- if (!_ui.permission.checkVisible(permissionCode)) {
61
- return false;
62
- }
63
- }
64
- return true;
65
- };
66
58
  const computeTabOptions = (0, _vue.computed)(() => {
67
59
  const {
68
60
  options
69
61
  } = props;
70
- return (options || []).filter(handleFilterTab);
62
+ return (options || []).filter(item => handleFilterTab(item));
71
63
  });
72
64
  const computeTabStaticOptions = (0, _vue.computed)(() => {
73
65
  const {
74
66
  staticTabs
75
67
  } = reactData;
76
- return staticTabs.filter(handleFilterTab);
68
+ return staticTabs.filter(item => handleFilterTab(item));
77
69
  });
78
70
  const computeMaps = {};
79
71
  const $xeTabs = {
@@ -84,6 +76,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
84
76
  getRefMaps: () => refMaps,
85
77
  getComputeMaps: () => computeMaps
86
78
  };
79
+ const handleFilterTab = item => {
80
+ const {
81
+ permissionCode
82
+ } = item;
83
+ if (permissionCode) {
84
+ if (!_ui.permission.checkVisible(permissionCode)) {
85
+ return false;
86
+ }
87
+ }
88
+ return true;
89
+ };
87
90
  const callSlot = (slotFunc, params) => {
88
91
  if (slotFunc) {
89
92
  if (_xeUtils.default.isString(slotFunc)) {
@@ -259,12 +262,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
259
262
  }, evnt);
260
263
  }
261
264
  };
262
- let scrollTimeout = null;
263
265
  const startScrollAnimation = (offsetPos, offsetSize) => {
266
+ const {
267
+ slTimeout
268
+ } = internalData;
264
269
  let offsetLeft = offsetSize;
265
270
  let scrollCount = 6;
266
271
  let delayNum = 35;
267
- clearTimeout(scrollTimeout);
272
+ if (slTimeout) {
273
+ clearTimeout(slTimeout);
274
+ internalData.slTimeout = undefined;
275
+ }
268
276
  const scrollAnimate = () => {
269
277
  const headerWrapperEl = refHeadWrapperElem.value;
270
278
  if (scrollCount > 0) {
@@ -280,13 +288,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
280
288
  if (clientWidth + scrollLeft < scrollWidth) {
281
289
  headerWrapperEl.scrollLeft += offsetLeft;
282
290
  delayNum -= 4;
283
- scrollTimeout = setTimeout(scrollAnimate, delayNum);
291
+ internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
284
292
  }
285
293
  } else {
286
294
  if (scrollLeft > 0) {
287
295
  headerWrapperEl.scrollLeft -= offsetLeft;
288
296
  delayNum -= 4;
289
- scrollTimeout = setTimeout(scrollAnimate, delayNum);
297
+ internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
290
298
  }
291
299
  }
292
300
  updateTabStyle();
@@ -340,42 +348,44 @@ var _default = exports.default = (0, _vue.defineComponent)({
340
348
  }
341
349
  });
342
350
  };
343
- const createHandlePrevNext = isNext => {
344
- return () => {
345
- const {
346
- activeName
347
- } = reactData;
348
- const tabOptions = computeTabOptions.value;
349
- const tabStaticOptions = computeTabStaticOptions.value;
350
- const list = tabStaticOptions.length ? tabStaticOptions : tabOptions;
351
- const index = _xeUtils.default.findIndexOf(list, item => item.name === activeName);
352
- if (index > -1) {
353
- let item = null;
354
- if (isNext) {
355
- if (index < list.length - 1) {
356
- item = list[index + 1];
357
- }
358
- } else {
359
- if (index > 0) {
360
- item = list[index - 1];
361
- }
351
+ const handlePrevNext = isNext => {
352
+ const {
353
+ activeName
354
+ } = reactData;
355
+ const tabOptions = computeTabOptions.value;
356
+ const tabStaticOptions = computeTabStaticOptions.value;
357
+ const list = tabStaticOptions.length ? tabStaticOptions : tabOptions;
358
+ const index = _xeUtils.default.findIndexOf(list, item => item.name === activeName);
359
+ if (index > -1) {
360
+ let item = null;
361
+ if (isNext) {
362
+ if (index < list.length - 1) {
363
+ item = list[index + 1];
362
364
  }
363
- if (item) {
364
- const name = item.name;
365
- const value = name;
366
- reactData.activeName = name;
367
- emit('update:modelValue', value);
368
- addInitName(name, null);
365
+ } else {
366
+ if (index > 0) {
367
+ item = list[index - 1];
369
368
  }
370
369
  }
371
- return (0, _vue.nextTick)();
372
- };
370
+ if (item) {
371
+ const name = item.name;
372
+ const value = name;
373
+ reactData.activeName = name;
374
+ emit('update:modelValue', value);
375
+ addInitName(name, null);
376
+ }
377
+ }
378
+ return (0, _vue.nextTick)();
373
379
  };
374
380
  const tabsMethods = {
375
381
  dispatchEvent,
376
382
  scrollToTab,
377
- prev: createHandlePrevNext(false),
378
- next: createHandlePrevNext(true),
383
+ prev() {
384
+ return handlePrevNext(false);
385
+ },
386
+ next() {
387
+ return handlePrevNext(true);
388
+ },
379
389
  prevTab() {
380
390
  if (process.env.NODE_ENV === 'development') {
381
391
  (0, _log.warnLog)('vxe.error.delFunc', ['prevTab', 'prev']);
@@ -506,9 +516,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
506
516
  } = reactData;
507
517
  const activeDefaultTab = tabList.find(item => item.name === activeName);
508
518
  if (destroyOnClose) {
509
- return activeDefaultTab ? [renderTabPane(activeDefaultTab)] : (0, _vue.createCommentVNode)();
519
+ return [activeDefaultTab ? renderTabPane(activeDefaultTab) : (0, _vue.createCommentVNode)()];
510
520
  }
511
- return tabList.map(renderTabPane);
521
+ return tabList.map(item => renderTabPane(item));
512
522
  };
513
523
  const renderVN = () => {
514
524
  const {
@@ -574,7 +584,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
574
584
  });
575
585
  }
576
586
  (0, _vue.watch)(() => reactData.resizeFlag, () => {
577
- (0, _vue.nextTick)(updateTabStyle);
587
+ (0, _vue.nextTick)(() => {
588
+ updateTabStyle();
589
+ });
578
590
  });
579
591
  (0, _vue.nextTick)(() => {
580
592
  _ui.globalEvents.on($xeTabs, 'resize', updateTabStyle);
@@ -585,10 +597,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
585
597
  (0, _vue.onUnmounted)(() => {
586
598
  _ui.globalEvents.off($xeTabs, 'resize');
587
599
  });
588
- $xeTabs.renderVN = renderVN;
589
600
  (0, _vue.provide)('$xeTabs', $xeTabs);
590
601
  addInitName(props.modelValue, null);
591
602
  initDefaultName(reactData.staticTabs.length ? reactData.staticTabs : props.options);
603
+ $xeTabs.renderVN = renderVN;
592
604
  return $xeTabs;
593
605
  },
594
606
  render() {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../..//ui/src/dom"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,height:[String,Number],destroyOnClose:Boolean,titleWidth:[String,Number],titleAlign:[String,Number],type:String,showClose:Boolean,padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(h,e){const{slots:r,emit:i}=e;var t=_xeUtils.default.uniqueId();const a=(0,_vue.inject)("$xeTabs",null),u=(0,_vue.ref)(),m=(0,_vue.ref)(),_=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintWidth:0,isTabOver:!1,resizeFlag:1}),l={refElem:u},n=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},o=(0,_vue.computed)(()=>{var e=h["options"];return(e||[]).filter(n)}),v=(0,_vue.computed)(()=>{var e=_["staticTabs"];return e.filter(n)}),s={},c={xID:t,props:h,context:e,reactData:_,getRefMaps:()=>l,getComputeMaps:()=>s},f=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=r[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],d=()=>{(0,_vue.nextTick)(()=>{var e=h["type"];const t=_["activeName"];var a,l=o.value,n=v.value,i=m.value;let s=0,r=0,u=!1;i&&(n=_xeUtils.default.findIndexOf(n.length?n:l,e=>e.name===t),{children:l,scrollWidth:i,clientWidth:a}=i,u=i!==a,-1<n)&&(a=(i=l[n]).clientWidth,e?"card"===e?(s=a+2,r=i.offsetLeft):"border-card"===e&&(s=a+2,r=i.offsetLeft-1):(s=Math.max(4,Math.floor(.6*a)),r=i.offsetLeft+Math.floor((a-s)/2))),_.lintLeft=r,_.lintWidth=s,_.isTabOver=u})},b=(e,t,a)=>{i(e,(0,_ui.createEvent)(a,{$tabs:c},t))},g=(e,t)=>{var a=_["initNames"];return!(!e||a.includes(e)||(b("tab-load",{name:e},t),a.push(e),0))},p=e=>{let a=null;if(e&&e.length){let t=!1;a=h.modelValue,e.forEach(e=>{a===e.name&&(t=!0),e&&e.preload&&g(e.name,null)}),t||(a=e[0].name,g(a,null),i("update:modelValue",a))}_.activeName=a},x=(e,t)=>{var a=h["trigger"],l=h.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod,n=_["activeName"],t=t["name"];"manual"===a?b("tab-click",{name:t},e):(a=t,_.activeName=t,i("update:modelValue",a),b("tab-click",{name:t},e),g(t,e),t!==n&&(!l||l({$tabs:c,name:t,oldName:n,newName:t})?b("change",{value:a,name:t,oldName:n,newName:t},e):b("tab-change-fail",{value:a,name:t,oldName:n,newName:t},e)))},N=(e,t,a,l)=>{e.stopPropagation();var n=_["activeName"],i=h.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod,t=t["name"],s=n;let r=s;n===t&&(n=a<l.length-1?l[a+1]:l[a-1],r=n?n.name:null),!i||i({$tabs:c,value:s,name:t,nextName:r})?b("tab-close",{value:s,name:t,nextName:r},e):b("tab-close-fail",{value:s,name:t,nextName:r},e)};let T=null;const C=e=>{var t=m.value;if(t){t=Math.floor(.75*t.clientWidth);{var r=e;let n=t,i=6,s=35;clearTimeout(T);const u=()=>{var e,t,a,l=m.value;0<i&&(i--,l)&&({clientWidth:e,scrollWidth:t,scrollLeft:a}=l,n=Math.floor(n/2),0<r?e+a<t&&(l.scrollLeft+=n,s-=4,T=setTimeout(u,s)):0<a&&(l.scrollLeft-=n,s-=4,T=setTimeout(u,s)),d())};u()}}},V=()=>{C(-1)},w=()=>{C(1)},k=i=>{const s=o.value,r=v.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,l,n=m.value;n&&(-1<(a=_xeUtils.default.findIndexOf(r.length?r:s,e=>e.name===i))&&({scrollLeft:e,clientWidth:t,children:l}=n,l=l[a])&&(0<(l=(a=l.offsetLeft)+l.clientWidth-(e+t))&&(n.scrollLeft+=l),a<e)&&(n.scrollLeft=a),d())})};t=n=>()=>{const t=_["activeName"];var a=o.value,l=v.value,l=l.length?l:a,a=_xeUtils.default.findIndexOf(l,e=>e.name===t);if(-1<a){let e=null;n?a<l.length-1&&(e=l[a+1]):0<a&&(e=l[a-1]),e&&(a=l=e.name,_.activeName=l,i("update:modelValue",a),g(l,null))}return(0,_vue.nextTick)()};const L={dispatchEvent:b,scrollToTab:k,prev:t(!1),next:t(!0),prevTab(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["prevTab","prev"]),L.prev()},nextTab(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["nextTab","next"]),L.next()}};Object.assign(c,L,{});const y=e=>{var{initNames:t,activeName:a}=_,{name:e,slots:l}=e,l=l?l.default:null;return e&&t.includes(e)?(0,_vue.h)("div",{key:e,class:["vxe-tabs-pane--item",{"is--visible":a===e,"has--content":!!l}]},l?f(l,{name:e}):[]):(0,_vue.createCommentVNode)()};(0,_vue.watch)(()=>h.modelValue,e=>{g(e,null),_.activeName=e}),(0,_vue.watch)(()=>_.activeName,e=>{k(e),(0,_vue.nextTick)(()=>{_.resizeFlag++})});const M=(0,_vue.ref)(0),O=((0,_vue.watch)(()=>h.options?h.options.length:-1,()=>{M.value++}),(0,_vue.watch)(()=>h.options,()=>{M.value++}),(0,_vue.watch)(M,()=>{p(h.options),d()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>_.staticTabs?_.staticTabs.length:-1,()=>{O.value++}),(0,_vue.watch)(()=>_.staticTabs,()=>{O.value++}),(0,_vue.watch)(O,()=>{p(_.staticTabs),d()}),a&&(0,_vue.watch)(()=>a?a.reactData.resizeFlag:null,()=>{_.resizeFlag++}),(0,_vue.watch)(()=>_.resizeFlag,()=>{(0,_vue.nextTick)(d)}),(0,_vue.nextTick)(()=>{_ui.globalEvents.on(c,"resize",d)}),(0,_vue.onMounted)(()=>{d()}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(c,"resize")}),c.renderVN=()=>{var{type:e,height:t,padding:a,trigger:l}=h,n=o.value,i=v.value,s=r.default,i=s?i:n;return(0,_vue.h)("div",{ref:u,class:["vxe-tabs","vxe-tabs--"+(e||"default"),"trigger--"+("manual"===l?"trigger":"default"),{"is--padding":a,"is--height":t}],style:t?{height:(0,_dom.toCssUnit)(t)}:null},[(0,_vue.h)("div",{class:"vxe-tabs-slots"},s?s({}):[]),(u=>{const{type:e,titleWidth:o,titleAlign:v,showClose:c}=h,{activeName:d,lintLeft:t,lintWidth:a,isTabOver:l}=_;var n=r.extra;return(0,_vue.h)("div",{class:"vxe-tabs-header"},[l?(0,_vue.h)("div",{class:"vxe-tabs-header--bar vxe-tabs-header--left-bar",onClick:V},[(0,_vue.h)("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-tabs-header--wrapper"},[(0,_vue.h)("div",{ref:m,class:"vxe-tabs-header--item-wrapper"},u.map((t,a)=>{var{title:e,titleWidth:l,titleAlign:n,icon:i,name:s,slots:r}=t,r=r?r.tab:null,l=l||o,n=n||v;return(0,_vue.h)("div",{key:""+s,class:["vxe-tabs-header--item",n?"align--"+n:"",{"is--active":d===s}],style:l?{width:(0,_dom.toCssUnit)(l)}:null,onClick(e){x(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[i?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:i})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},r?f(r,{name:s,title:e}):""+e)]),c?(0,_vue.h)("div",{class:"vxe-tabs-header--close-btn",onClick(e){N(e,t,a,u)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})]):(0,_vue.createCommentVNode)()])])}).concat([(0,_vue.h)("span",{key:"line",class:"vxe-tabs-header--active-line type--"+(e||"default"),style:{left:t+"px",width:a+"px"}})]))]),l?(0,_vue.h)("div",{class:"vxe-tabs-header--bar vxe-tabs-header--right-bar",onClick:w},[(0,_vue.h)("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_vue.createCommentVNode)(),n?(0,_vue.h)("div",{class:"vxe-tabs-header--extra"},(0,_vn.getSlotVNs)(n({}))):(0,_vue.createCommentVNode)()])})(i),(0,_vue.h)("div",{class:"vxe-tabs-pane"},(e=>{var t=h["destroyOnClose"];const a=_["activeName"];var l=e.find(e=>e.name===a);return t?l?[y(l)]:(0,_vue.createCommentVNode)():e.map(y)})(i))])},(0,_vue.provide)("$xeTabs",c),g(h.modelValue,null),p(_.staticTabs.length?_.staticTabs:h.options),c},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../..//ui/src/dom"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,height:[String,Number],destroyOnClose:Boolean,titleWidth:[String,Number],titleAlign:[String,Number],type:String,showClose:Boolean,padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(m,e){const{slots:r,emit:n}=e;var t=_xeUtils.default.uniqueId();const a=(0,_vue.inject)("$xeTabs",null),u=(0,_vue.ref)(),h=(0,_vue.ref)(),_=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintWidth:0,isTabOver:!1,resizeFlag:1}),o={slTimeout:void 0},l={refElem:u},v=(0,_vue.computed)(()=>{var e=m["options"];return(e||[]).filter(e=>s(e))}),c=(0,_vue.computed)(()=>{var e=_["staticTabs"];return e.filter(e=>s(e))}),i={},d={xID:t,props:m,context:e,reactData:_,getRefMaps:()=>l,getComputeMaps:()=>i},s=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},f=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=r[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],b=()=>{(0,_vue.nextTick)(()=>{var e=m["type"];const t=_["activeName"];var a,l=v.value,i=c.value,n=h.value;let s=0,r=0,u=!1;n&&(i=_xeUtils.default.findIndexOf(i.length?i:l,e=>e.name===t),{children:l,scrollWidth:n,clientWidth:a}=n,u=n!==a,-1<i)&&(a=(n=l[i]).clientWidth,e?"card"===e?(s=a+2,r=n.offsetLeft):"border-card"===e&&(s=a+2,r=n.offsetLeft-1):(s=Math.max(4,Math.floor(.6*a)),r=n.offsetLeft+Math.floor((a-s)/2))),_.lintLeft=r,_.lintWidth=s,_.isTabOver=u})},g=(e,t,a)=>{n(e,(0,_ui.createEvent)(a,{$tabs:d},t))},p=(e,t)=>{var a=_["initNames"];return!(!e||a.includes(e)||(g("tab-load",{name:e},t),a.push(e),0))},x=e=>{let a=null;if(e&&e.length){let t=!1;a=m.modelValue,e.forEach(e=>{a===e.name&&(t=!0),e&&e.preload&&p(e.name,null)}),t||(a=e[0].name,p(a,null),n("update:modelValue",a))}_.activeName=a},N=(e,t)=>{var a=m["trigger"],l=m.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod,i=_["activeName"],t=t["name"];"manual"===a?g("tab-click",{name:t},e):(a=t,_.activeName=t,n("update:modelValue",a),g("tab-click",{name:t},e),p(t,e),t!==i&&(!l||l({$tabs:d,name:t,oldName:i,newName:t})?g("change",{value:a,name:t,oldName:i,newName:t},e):g("tab-change-fail",{value:a,name:t,oldName:i,newName:t},e)))},T=(e,t,a,l)=>{e.stopPropagation();var i=_["activeName"],n=m.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod,t=t["name"],s=i;let r=s;i===t&&(i=a<l.length-1?l[a+1]:l[a-1],r=i?i.name:null),!n||n({$tabs:d,value:s,name:t,nextName:r})?g("tab-close",{value:s,name:t,nextName:r},e):g("tab-close-fail",{value:s,name:t,nextName:r},e)},C=e=>{var t=h.value;if(t){t=Math.floor(.75*t.clientWidth);{var r=e,e=t,t=o["slTimeout"];let i=e,n=6,s=35;t&&(clearTimeout(t),o.slTimeout=void 0);const u=()=>{var e,t,a,l=h.value;0<n&&(n--,l)&&({clientWidth:e,scrollWidth:t,scrollLeft:a}=l,i=Math.floor(i/2),0<r?e+a<t&&(l.scrollLeft+=i,s-=4,o.slTimeout=setTimeout(u,s)):0<a&&(l.scrollLeft-=i,s-=4,o.slTimeout=setTimeout(u,s)),b())};u()}}},V=()=>{C(-1)},w=()=>{C(1)},k=n=>{const s=v.value,r=c.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,l,i=h.value;i&&(-1<(a=_xeUtils.default.findIndexOf(r.length?r:s,e=>e.name===n))&&({scrollLeft:e,clientWidth:t,children:l}=i,l=l[a])&&(0<(l=(a=l.offsetLeft)+l.clientWidth-(e+t))&&(i.scrollLeft+=l),a<e)&&(i.scrollLeft=a),b())})},L=t=>{const a=_["activeName"];var l=v.value,i=c.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,_.activeName=t,n("update:modelValue",i),p(t,null))}return(0,_vue.nextTick)()},y={dispatchEvent:g,scrollToTab:k,prev(){return L(!1)},next(){return L(!0)},prevTab(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["prevTab","prev"]),y.prev()},nextTab(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["nextTab","next"]),y.next()}};Object.assign(d,y,{});const M=e=>{var{initNames:t,activeName:a}=_,{name:e,slots:l}=e,l=l?l.default:null;return e&&t.includes(e)?(0,_vue.h)("div",{key:e,class:["vxe-tabs-pane--item",{"is--visible":a===e,"has--content":!!l}]},l?f(l,{name:e}):[]):(0,_vue.createCommentVNode)()};(0,_vue.watch)(()=>m.modelValue,e=>{p(e,null),_.activeName=e}),(0,_vue.watch)(()=>_.activeName,e=>{k(e),(0,_vue.nextTick)(()=>{_.resizeFlag++})});const O=(0,_vue.ref)(0),W=((0,_vue.watch)(()=>m.options?m.options.length:-1,()=>{O.value++}),(0,_vue.watch)(()=>m.options,()=>{O.value++}),(0,_vue.watch)(O,()=>{x(m.options),b()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>_.staticTabs?_.staticTabs.length:-1,()=>{W.value++}),(0,_vue.watch)(()=>_.staticTabs,()=>{W.value++}),(0,_vue.watch)(W,()=>{x(_.staticTabs),b()}),a&&(0,_vue.watch)(()=>a?a.reactData.resizeFlag:null,()=>{_.resizeFlag++}),(0,_vue.watch)(()=>_.resizeFlag,()=>{(0,_vue.nextTick)(()=>{b()})}),(0,_vue.nextTick)(()=>{_ui.globalEvents.on(d,"resize",b)}),(0,_vue.onMounted)(()=>{b()}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(d,"resize")}),(0,_vue.provide)("$xeTabs",d),p(m.modelValue,null),x(_.staticTabs.length?_.staticTabs:m.options),d.renderVN=()=>{var{type:e,height:t,padding:a,trigger:l}=m,i=v.value,n=c.value,s=r.default,n=s?n:i;return(0,_vue.h)("div",{ref:u,class:["vxe-tabs","vxe-tabs--"+(e||"default"),"trigger--"+("manual"===l?"trigger":"default"),{"is--padding":a,"is--height":t}],style:t?{height:(0,_dom.toCssUnit)(t)}:null},[(0,_vue.h)("div",{class:"vxe-tabs-slots"},s?s({}):[]),(u=>{const{type:e,titleWidth:o,titleAlign:v,showClose:c}=m,{activeName:d,lintLeft:t,lintWidth:a,isTabOver:l}=_;var i=r.extra;return(0,_vue.h)("div",{class:"vxe-tabs-header"},[l?(0,_vue.h)("div",{class:"vxe-tabs-header--bar vxe-tabs-header--left-bar",onClick:V},[(0,_vue.h)("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-tabs-header--wrapper"},[(0,_vue.h)("div",{ref:h,class:"vxe-tabs-header--item-wrapper"},u.map((t,a)=>{var{title:e,titleWidth:l,titleAlign:i,icon:n,name:s,slots:r}=t,r=r?r.tab:null,l=l||o,i=i||v;return(0,_vue.h)("div",{key:""+s,class:["vxe-tabs-header--item",i?"align--"+i:"",{"is--active":d===s}],style:l?{width:(0,_dom.toCssUnit)(l)}:null,onClick(e){N(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[n?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:n})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},r?f(r,{name:s,title:e}):""+e)]),c?(0,_vue.h)("div",{class:"vxe-tabs-header--close-btn",onClick(e){T(e,t,a,u)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})]):(0,_vue.createCommentVNode)()])])}).concat([(0,_vue.h)("span",{key:"line",class:"vxe-tabs-header--active-line type--"+(e||"default"),style:{left:t+"px",width:a+"px"}})]))]),l?(0,_vue.h)("div",{class:"vxe-tabs-header--bar vxe-tabs-header--right-bar",onClick:w},[(0,_vue.h)("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_vue.createCommentVNode)(),i?(0,_vue.h)("div",{class:"vxe-tabs-header--extra"},(0,_vn.getSlotVNs)(i({}))):(0,_vue.createCommentVNode)()])})(n),(0,_vue.h)("div",{class:"vxe-tabs-pane"},(e=>{var t=m["destroyOnClose"];const a=_["activeName"];var l=e.find(e=>e.name===a);return t?[l?M(l):(0,_vue.createCommentVNode)()]:e.map(e=>M(e))})(n))])},d},render(){return this.renderVN()}});
@@ -214,7 +214,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
214
214
  value
215
215
  }, evnt);
216
216
  };
217
- const emitUpdate = (value, evnt) => {
217
+ const handleChange = (value, evnt) => {
218
218
  reactData.inputValue = value;
219
219
  emit('update:modelValue', value);
220
220
  if (_xeUtils.default.toValueString(props.modelValue) !== value) {
@@ -235,7 +235,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
235
235
  const value = textElem.value;
236
236
  reactData.inputValue = value;
237
237
  if (immediate) {
238
- emitUpdate(value, evnt);
238
+ handleChange(value, evnt);
239
239
  }
240
240
  $xeTextarea.dispatchEvent('input', {
241
241
  value
@@ -249,7 +249,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
249
249
  if (immediate) {
250
250
  triggerEvent(evnt);
251
251
  } else {
252
- emitUpdate(reactData.inputValue, evnt);
252
+ handleChange(reactData.inputValue, evnt);
253
253
  }
254
254
  };
255
255
  const blurEvent = evnt => {
@@ -260,7 +260,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
260
260
  inputValue
261
261
  } = reactData;
262
262
  if (!immediate) {
263
- emitUpdate(inputValue, evnt);
263
+ handleChange(inputValue, evnt);
264
264
  }
265
265
  $xeTextarea.dispatchEvent('blur', {
266
266
  value: inputValue
@@ -420,8 +420,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
420
420
  }
421
421
  }
422
422
  });
423
- $xeTooltip.renderVN = renderVN;
424
423
  handleDelayFn();
424
+ $xeTooltip.renderVN = renderVN;
425
425
  return $xeTooltip;
426
426
  },
427
427
  render() {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTooltip",props:{modelValue:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tooltip.size||(0,_ui.getConfig)().size},trigger:{type:String,default:()=>(0,_ui.getConfig)().tooltip.trigger||"hover"},theme:{type:String,default:()=>(0,_ui.getConfig)().tooltip.theme||"dark"},content:{type:[String,Number],default:null},useHTML:Boolean,zIndex:[String,Number],popupClassName:[String,Function],isArrow:{type:Boolean,default:!0},enterable:Boolean,enterDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.enterDelay},leaveDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.leaveDelay}},emits:["update:modelValue"],setup(p,e){const{slots:v,emit:l}=e;var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(p)["computeSize"],d=(0,_vue.reactive)({target:null,isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}),o={},g=(0,_vue.ref)(),i={refElem:g},f={xID:t,props:p,context:e,reactData:d,internalData:o,getRefMaps:()=>i};let r={};const n=()=>{var{tipTarget:i,tipStore:l}=d;if(i){var{scrollTop:r,scrollLeft:o,visibleWidth:n}=(0,_dom.getDomNode)(),{top:a,left:u}=(0,_dom.getAbsolutePos)(i),s=g.value,p=s.offsetHeight,s=s.offsetWidth;let e=u,t=a-p-6;(e=Math.max(6,u+Math.floor((i.offsetWidth-s)/2)))+s+6>o+n&&(e=o+n-s-6),a-p<r+6&&(l.placement="bottom",t=a+i.offsetHeight+6),l.style.top=t+"px",l.style.left=e+"px",l.arrowStyle.left=u-e+i.offsetWidth/2+"px"}},a=e=>{e!==d.visible&&(d.visible=e,d.isUpdate=!0,l("update:modelValue",e))},u=()=>{d.tipZindex<(0,_utils.getLastZIndex)()&&(d.tipZindex=(0,_utils.nextZIndex)())},s=()=>{d.visible?r.close():S(d.target,p.content)},_=()=>{S(d.target,p.content)},m=()=>{var{trigger:e,enterable:t,leaveDelay:i}=p;d.tipActive=!1,t&&"hover"===e?setTimeout(()=>{d.tipActive||r.close()},i):r.close()},x=()=>{d.tipActive=!0},h=()=>{var{trigger:e,enterable:t,leaveDelay:i}=p;d.tipActive=!1,t&&"hover"===e&&setTimeout(()=>{d.tipActive||r.close()},i)},y=()=>{var e=d["tipStore"],t=g.value;return t&&!t.parentNode&&document.body.appendChild(t),a(!0),u(),e.placement="top",e.style={width:"auto",left:0,top:0,zIndex:p.zIndex||d.tipZindex},e.arrowStyle={left:"50%"},r.updatePlacement()},b=()=>{o.showDelayTip=_xeUtils.default.debounce(()=>{d.tipActive&&y()},p.enterDelay,{leading:!1,trailing:!0})},S=(e,t)=>{var i=v.content;if((i||""!==t&&!_xeUtils.default.eqNull(t))&&e){var i=o["showDelayTip"],{trigger:l,enterDelay:r}=p;if(d.tipActive=!0,d.tipTarget=e,d.tipContent=t,!r||"hover"!==l)return y();i&&i()}return(0,_vue.nextTick)()};r={dispatchEvent(e,t,i){l(e,(0,_ui.createEvent)(i,{$tooltip:f},t))},open(e,t){return S(e||d.target,t)},close(){return d.tipTarget=null,d.tipActive=!1,Object.assign(d.tipStore,{style:{},placement:"",arrowStyle:null}),a(!1),(0,_vue.nextTick)()},toVisible(e,t){return S(e,t)},updatePlacement(){return(0,_vue.nextTick)().then(()=>{var e=d["tipTarget"],t=g.value;if(e&&t)return n(),(0,_vue.nextTick)().then(()=>{n()})})},isActived(){return d.tipActive},setActived(e){d.tipActive=!!e}},Object.assign(f,r);return(0,_vue.watch)(()=>p.enterDelay,()=>{b()}),(0,_vue.watch)(()=>p.content,e=>{d.tipContent=e}),(0,_vue.watch)(()=>p.modelValue,e=>{d.isUpdate||(e?S(d.target,p.content):r.close()),d.isUpdate=!1}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e,{trigger:t,content:i}=p;const l=g.value;if(l){const r=l.parentNode;r&&(d.tipContent=i,d.tipZindex=(0,_utils.nextZIndex)(),_xeUtils.default.arrayEach(l.children,(e,t)=>{1<t&&(r.insertBefore(e,l),d.target||(d.target=e))}),r.removeChild(l),e=d["target"],e&&("hover"===t?(e.onmouseenter=_,e.onmouseleave=m):"click"===t&&(e.onclick=s)),p.modelValue)&&S(e,i)}})}),(0,_vue.onBeforeUnmount)(()=>{var e=d["target"],t=g.value;e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),t&&(e=t.parentNode)&&e.removeChild(t)}),f.renderVN=()=>{var{popupClassName:e,theme:t,isArrow:i,enterable:l}=p,{tipActive:r,visible:o,tipStore:n}=d,a=v.default,u=c.value;let s;return l&&(s={onMouseenter:x,onMouseleave:h}),(0,_vue.h)("div",Object.assign({ref:g,class:["vxe-table--tooltip-wrapper","theme--"+t,e?_xeUtils.default.isFunction(e)?e({$tooltip:f}):e:"",{["size--"+u]:u,["placement--"+n.placement]:n.placement,"is--enterable":l,"is--visible":o,"is--arrow":i,"is--active":r}],style:n.style},s),[(t=p.useHTML,e=d.tipContent,(u=v.content)?(0,_vue.h)("div",{key:1,class:"vxe-table--tooltip-content"},(0,_vn.getSlotVNs)(u({}))):t?(0,_vue.h)("div",{key:2,class:"vxe-table--tooltip-content",innerHTML:e}):(0,_vue.h)("div",{key:3,class:"vxe-table--tooltip-content"},""+e)),(0,_vue.h)("div",{class:"vxe-table--tooltip-arrow",style:n.arrowStyle}),...a?(0,_vn.getSlotVNs)(a({})):[]])},b(),f},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTooltip",props:{modelValue:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tooltip.size||(0,_ui.getConfig)().size},trigger:{type:String,default:()=>(0,_ui.getConfig)().tooltip.trigger||"hover"},theme:{type:String,default:()=>(0,_ui.getConfig)().tooltip.theme||"dark"},content:{type:[String,Number],default:null},useHTML:Boolean,zIndex:[String,Number],popupClassName:[String,Function],isArrow:{type:Boolean,default:!0},enterable:Boolean,enterDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.enterDelay},leaveDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.leaveDelay}},emits:["update:modelValue"],setup(p,e){const{slots:v,emit:l}=e;var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(p)["computeSize"],d=(0,_vue.reactive)({target:null,isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}),o={},g=(0,_vue.ref)(),i={refElem:g},f={xID:t,props:p,context:e,reactData:d,internalData:o,getRefMaps:()=>i};let r={};const n=()=>{var{tipTarget:i,tipStore:l}=d;if(i){var{scrollTop:r,scrollLeft:o,visibleWidth:n}=(0,_dom.getDomNode)(),{top:a,left:u}=(0,_dom.getAbsolutePos)(i),s=g.value,p=s.offsetHeight,s=s.offsetWidth;let e=u,t=a-p-6;(e=Math.max(6,u+Math.floor((i.offsetWidth-s)/2)))+s+6>o+n&&(e=o+n-s-6),a-p<r+6&&(l.placement="bottom",t=a+i.offsetHeight+6),l.style.top=t+"px",l.style.left=e+"px",l.arrowStyle.left=u-e+i.offsetWidth/2+"px"}},a=e=>{e!==d.visible&&(d.visible=e,d.isUpdate=!0,l("update:modelValue",e))},u=()=>{d.tipZindex<(0,_utils.getLastZIndex)()&&(d.tipZindex=(0,_utils.nextZIndex)())},s=()=>{d.visible?r.close():S(d.target,p.content)},_=()=>{S(d.target,p.content)},m=()=>{var{trigger:e,enterable:t,leaveDelay:i}=p;d.tipActive=!1,t&&"hover"===e?setTimeout(()=>{d.tipActive||r.close()},i):r.close()},x=()=>{d.tipActive=!0},h=()=>{var{trigger:e,enterable:t,leaveDelay:i}=p;d.tipActive=!1,t&&"hover"===e&&setTimeout(()=>{d.tipActive||r.close()},i)},y=()=>{var e=d["tipStore"],t=g.value;return t&&!t.parentNode&&document.body.appendChild(t),a(!0),u(),e.placement="top",e.style={width:"auto",left:0,top:0,zIndex:p.zIndex||d.tipZindex},e.arrowStyle={left:"50%"},r.updatePlacement()},b=()=>{o.showDelayTip=_xeUtils.default.debounce(()=>{d.tipActive&&y()},p.enterDelay,{leading:!1,trailing:!0})},S=(e,t)=>{var i=v.content;if((i||""!==t&&!_xeUtils.default.eqNull(t))&&e){var i=o["showDelayTip"],{trigger:l,enterDelay:r}=p;if(d.tipActive=!0,d.tipTarget=e,d.tipContent=t,!r||"hover"!==l)return y();i&&i()}return(0,_vue.nextTick)()};r={dispatchEvent(e,t,i){l(e,(0,_ui.createEvent)(i,{$tooltip:f},t))},open(e,t){return S(e||d.target,t)},close(){return d.tipTarget=null,d.tipActive=!1,Object.assign(d.tipStore,{style:{},placement:"",arrowStyle:null}),a(!1),(0,_vue.nextTick)()},toVisible(e,t){return S(e,t)},updatePlacement(){return(0,_vue.nextTick)().then(()=>{var e=d["tipTarget"],t=g.value;if(e&&t)return n(),(0,_vue.nextTick)().then(()=>{n()})})},isActived(){return d.tipActive},setActived(e){d.tipActive=!!e}},Object.assign(f,r);return(0,_vue.watch)(()=>p.enterDelay,()=>{b()}),(0,_vue.watch)(()=>p.content,e=>{d.tipContent=e}),(0,_vue.watch)(()=>p.modelValue,e=>{d.isUpdate||(e?S(d.target,p.content):r.close()),d.isUpdate=!1}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e,{trigger:t,content:i}=p;const l=g.value;if(l){const r=l.parentNode;r&&(d.tipContent=i,d.tipZindex=(0,_utils.nextZIndex)(),_xeUtils.default.arrayEach(l.children,(e,t)=>{1<t&&(r.insertBefore(e,l),d.target||(d.target=e))}),r.removeChild(l),e=d["target"],e&&("hover"===t?(e.onmouseenter=_,e.onmouseleave=m):"click"===t&&(e.onclick=s)),p.modelValue)&&S(e,i)}})}),(0,_vue.onBeforeUnmount)(()=>{var e=d["target"],t=g.value;e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),t&&(e=t.parentNode)&&e.removeChild(t)}),b(),f.renderVN=()=>{var{popupClassName:e,theme:t,isArrow:i,enterable:l}=p,{tipActive:r,visible:o,tipStore:n}=d,a=v.default,u=c.value;let s;return l&&(s={onMouseenter:x,onMouseleave:h}),(0,_vue.h)("div",Object.assign({ref:g,class:["vxe-table--tooltip-wrapper","theme--"+t,e?_xeUtils.default.isFunction(e)?e({$tooltip:f}):e:"",{["size--"+u]:u,["placement--"+n.placement]:n.placement,"is--enterable":l,"is--visible":o,"is--arrow":i,"is--active":r}],style:n.style},s),[(t=p.useHTML,e=d.tipContent,(u=v.content)?(0,_vue.h)("div",{key:1,class:"vxe-table--tooltip-content"},(0,_vn.getSlotVNs)(u({}))):t?(0,_vue.h)("div",{key:2,class:"vxe-table--tooltip-content",innerHTML:e}):(0,_vue.h)("div",{key:3,class:"vxe-table--tooltip-content"},""+e)),(0,_vue.h)("div",{class:"vxe-table--tooltip-arrow",style:n.arrowStyle}),...a?(0,_vn.getSlotVNs)(a({})):[]])},f},render(){return this.renderVN()}});
@@ -482,7 +482,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
482
482
  nodeMaps
483
483
  } = reactData;
484
484
  if (!lazy) {
485
- return (0, _vue.nextTick)();
485
+ return Promise.resolve([]);
486
486
  }
487
487
  const childrenField = computeChildrenField.value;
488
488
  const parentNodeItem = nodeMaps[getNodeId(node)];
@@ -1212,7 +1212,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
1212
1212
  })
1213
1213
  } : {})]);
1214
1214
  };
1215
- $xeTree.renderVN = renderVN;
1216
1215
  const dataFlag = (0, _vue.ref)(0);
1217
1216
  (0, _vue.watch)(() => props.data ? props.data.length : 0, () => {
1218
1217
  dataFlag.value++;
@@ -1243,6 +1242,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1243
1242
  });
1244
1243
  updateData(props.data || []);
1245
1244
  updateCheckboxChecked(props.checkNodeKeys || []);
1245
+ $xeTree.renderVN = renderVN;
1246
1246
  return $xeTree;
1247
1247
  },
1248
1248
  render() {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTree",props:{data:Array,height:[String,Number],minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.minHeight},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.accordion},childrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.childrenField},valueField:{type:String,default:()=>(0,_ui.getConfig)().tree.valueField},keyField:{type:String,default:()=>(0,_ui.getConfig)().tree.keyField},parentField:{type:String,default:()=>(0,_ui.getConfig)().tree.parentField},titleField:{type:String,default:()=>(0,_ui.getConfig)().tree.titleField},hasChildField:{type:String,default:()=>(0,_ui.getConfig)().tree.hasChildField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,showLine:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showLine},trigger:String,indent:{type:Number,default:()=>(0,_ui.getConfig)().tree.indent},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showRadio},checkNodeKey:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.checkNodeKey},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showCheckbox},checkNodeKeys:{type:Array,default:()=>(0,_ui.getConfig)().tree.checkNodeKeys},checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,toggleMethod:Function,loadMethod:Function,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>(0,_ui.getConfig)().tree.iconOpen},iconClose:{type:String,default:()=>(0,_ui.getConfig)().tree.iconClose},iconLoaded:{type:String,default:()=>(0,_ui.getConfig)().tree.iconLoaded},size:{type:String,default:()=>(0,_ui.getConfig)().tree.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","update:checkNodeKey","update:checkNodeKeys","node-click","node-dblclick","current-change","radio-change","checkbox-change","load-success","load-error"],setup(O,e){const{emit:o,slots:w}=e;var t=_xeUtils.default.uniqueId();const s=(0,_ui.useSize)(O)["computeSize"],u=(0,_vue.ref)(),I=(0,_vue.reactive)({currentNode:null,nodeMaps:{},selectRadioKey:O.checkNodeKey,treeList:[],treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},selectCheckboxMaps:{},indeterminateCheckboxMaps:{}});const y={refElem:u},V=(0,_vue.computed)(()=>O.titleField||"title"),d=(0,_vue.computed)(()=>O.keyField||"id"),h=(0,_vue.computed)(()=>{var e=d.value;return O.valueField||e}),E=(0,_vue.computed)(()=>O.parentField||"parentId"),K=(0,_vue.computed)(()=>O.childrenField||"children"),T=(0,_vue.computed)(()=>O.hasChildField||"hasChild"),m=(0,_vue.computed)(()=>{var e=v.value["isCurrent"];return _xeUtils.default.isBoolean(e)?e:O.isCurrent}),b=(0,_vue.computed)(()=>{var e=v.value["isHover"];return _xeUtils.default.isBoolean(e)?e:O.isHover}),R=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.radioConfig,O.radioConfig)),B=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.checkboxConfig,O.checkboxConfig)),v=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.nodeConfig,O.nodeConfig)),N=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.loadingConfig,O.loadingConfig)),M=(0,_vue.computed)(()=>{var{height:e,minHeight:t}=O,a={};return e&&(a.height=(0,_dom.toCssUnit)(e)),t&&(a.minHeight=(0,_dom.toCssUnit)(t)),a}),U={computeRadioOpts:R,computeCheckboxOpts:B,computeNodeOpts:v},p={xID:t,props:O,context:e,internalData:{},reactData:I,getRefMaps:()=>y,getComputeMaps:()=>U},j=e=>{var t=h.value,e=_xeUtils.default.get(e,t);return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)};const a=e=>{var t=I["selectRadioKey"];return t===e};const D=e=>{var t=I["selectCheckboxMaps"];return!!t[e]};const S=e=>{var t=I["indeterminateCheckboxMaps"];return!!t[e]};const L=e=>{o("update:checkNodeKeys",e)},P=e=>{o("update:checkNodeKey",e)};const l=(e,t)=>{const a=Object.assign({},I.selectCheckboxMaps);e.forEach(e=>{t?a[e]=!0:a[e]&&delete a[e]}),I.selectCheckboxMaps=a},n=e=>{const t={};e&&e.forEach(e=>{t[e]=!0}),I.selectCheckboxMaps=t},i=(e,t,a)=>{t?a[e]&&(a[e]=!0):a[e]&&delete a[e]},F=(e,t,a)=>{o(e,(0,_ui.createEvent)(a,{$tree:p},t))},c={dispatchEvent:F,clearRadioNode(){return(I.selectRadioKey=null,_vue.nextTick)()},setRadioNode:(e,t)=>(e&&(I.selectRadioKey=t?j(e):null),(0,_vue.nextTick)()),setCheckboxNode:(e,t)=>(e&&(_xeUtils.default.isArray(e)||(e=[e]),l(e.map(e=>j(e)),t)),(0,_vue.nextTick)()),setCheckboxByNodeId:(e,t)=>(e&&(_xeUtils.default.isArray(e)||(e=[e]),l(e,t)),(0,_vue.nextTick)()),clearCheckboxNode(){return I.selectCheckboxMaps={},(0,_vue.nextTick)()},setAllCheckboxNode(e){const t=Object.assign(I.selectCheckboxMaps);var a=K.value;return e&&_xeUtils.default.eachTree(I.treeList,e=>{e=j(e);t[e]=!0},{children:a}),I.selectCheckboxMaps=t,(0,_vue.nextTick)()},clearExpandNode(){return c.clearAllExpandNode()},clearAllExpandNode(){return _xeUtils.default.each(I.nodeMaps,e=>{e.treeLoaded=!1}),I.treeExpandedMaps={},(0,_vue.nextTick)()},setExpandByNodeId(e,t){const a=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{i(e,t,a)}),I.treeExpandedMaps=a),(0,_vue.nextTick)()},setExpandNode(e,t){const a=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=j(e);i(e,t,a)}),I.treeExpandedMaps=a),(0,_vue.nextTick)()},toggleExpandByNodeId(e){const t=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{i(e,!t[e],t)}),I.treeExpandedMaps=t),(0,_vue.nextTick)()},toggleExpandNode(e){const t=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=j(e);i(e,!t[e],t)}),I.treeExpandedMaps=t),(0,_vue.nextTick)()},setAllExpandNode(){const t=Object.assign(I.treeExpandedMaps);var e=K.value;return _xeUtils.default.eachTree(I.treeList,e=>{e=j(e);t[e]=!0},{children:e}),I.treeExpandedMaps=t,(0,_vue.nextTick)()},reloadExpandNode(e){var t=O["lazy"];return t?(c.clearExpandLoaded(e),_(e)):(0,_vue.nextTick)()},clearExpandLoaded(e){var t=O["lazy"],a=I["nodeMaps"];return t&&(t=a[j(e)])&&(t.treeLoaded=!1),(0,_vue.nextTick)()},loadChildrenNode(i,e){const{lazy:t,transform:a}=O,r=I["nodeMaps"];if(!t)return(0,_vue.nextTick)();const o=K.value,l=r[j(i)],c=l?l.level:0,s=l?l.nodes:[];return(e=>{const a=h.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return j(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,a,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,a,o,n,d)=>{e=j(e);r[e]={item:i,itemIndex:-1,items:a,parent:n||l.item,nodes:s.concat(d),level:c+d.length,lineCount:0,treeLoaded:!1}},{children:o}),i[o]=e,a&&(i[o]=e),x(i),e))},isExpandByNode:e=>{var t=I["treeExpandedMaps"];return!!t[j(e)]},isCheckedByRadioNodeId:a,isCheckedByRadioNode:e=>a(j(e)),isCheckedByCheckboxNodeId:D,isIndeterminateByCheckboxNode:e=>S(j(e)),isCheckedByCheckboxNode:e=>D(j(e))},r=e=>{var t=O["transform"],a=d.value,o=E.value,n=K.value;I.treeList=t?_xeUtils.default.toArrayTree(e,{key:a,parentKey:o,mapChildren:n}):e?e.slice(0):[];{t=I.treeList;const r=h.value,l=(a=K.value,{});_xeUtils.default.eachTree(t,(e,t,a,o,n,d)=>{let i=j(e);i||(i=getNodeUniqueId(),_xeUtils.default.set(e,r,i)),l[i]={item:e,itemIndex:t,items:a,parent:n,nodes:d,level:d.length,lineCount:0,treeLoaded:!1}},{children:a}),I.nodeMaps=l}},g=(e,o,n)=>{var t=I["treeExpandedMaps"],a=K.value,d=j(e);n.lineCount++,t[d]&&_xeUtils.default.arrayEach(e[a],(e,t,a)=>{(!o||t<a.length-1)&&g(e,!1,n)})},x=e=>{const a=I["nodeMaps"];e&&(e=j(e),e=a[e])&&_xeUtils.default.lastArrayEach(e.nodes,e=>{var t=j(e),t=a[t];t&&(t.lineCount=0,g(e,!0,t))})},$=(e,t)=>{var{showRadio:a,showCheckbox:o,trigger:n}=O,d=R.value,i=B.value;let r=!1,l=!1,c=!1,s=!1;m.value?(r=!0,((e,t)=>{e.preventDefault();const a=v.value,{currentMethod:o,trigger:n}=a,d=K.value,i=_xeUtils.default.get(t,d),r=i&&i.length;let l=!!o;if(n==="child"){if(r)return}else if(n==="parent")if(!r)return;if(o)l=!o({node:t});var c;l||(c=!0,I.currentNode=t,F("current-change",{node:t,checked:!0},e))})(e,t)):I.currentNode&&(I.currentNode=null),"node"===n&&(s=!0,z(e,t)),a&&"node"===d.trigger&&(l=!0,q(e,t)),o&&"node"===i.trigger&&(c=!0,A(e,t)),F("node-click",{node:t,triggerCurrent:r,triggerRadio:l,triggerCheckbox:c,triggerExpand:s},e)},_=i=>{var e=B.value;const a=O["loadMethod"],r=e["checkStrictly"];return new Promise(e=>{if(a){const o=I["treeExpandLazyLoadedMaps"];var t=I["nodeMaps"];const n=j(i),d=t[n];o[n]=!0,Promise.resolve(a({$tree:p,node:i})).then(a=>{if(d.treeLoaded=!0,o[n]&&delete o[n],a=_xeUtils.default.isArray(a)?a:[])return c.loadChildrenNode(i,a).then(e=>{var t=I["treeExpandedMaps"];return e.length&&!t[n]&&(t[n]=!0),!r&&c.isCheckedByCheckboxNodeId(n)&&l(e.map(e=>j(e)),!0),x(i),F("load-success",{node:i,data:a},new Event("load-success")),(0,_vue.nextTick)()});x(i),F("load-success",{node:i,data:a},new Event("load-success"))}).catch(e=>{var t=I["treeExpandLazyLoadedMaps"];d.treeLoaded=!1,t[n]&&delete t[n],x(i),F("load-error",{node:i,data:e},new Event("load-error"))}).finally(()=>(0,_vue.nextTick)())}else e()})},X=(e,t)=>{const{lazy:o,accordion:a,toggleMethod:n}=O,{nodeMaps:d,treeExpandLazyLoadedMaps:i}=I,r=Object.assign({},I.treeExpandedMaps),l=K.value,c=T.value,s=[];let u=n?e.filter(e=>n({$tree:p,expanded:t,node:e})):e;a&&(u=u.length?[u[u.length-1]]:[],e=j(u[0]),e=d[e])&&e.items.forEach(e=>{e=j(e);r[e]&&delete r[e]});const h=[];return t?u.forEach(e=>{var t,a=j(e);r[a]||(t=d[a],o&&e[c]&&!t.treeLoaded&&!i[a]?s.push(_(e)):e[l]&&e[l].length&&(r[a]=!0,h.push(e)))}):u.forEach(e=>{var t=j(e);r[t]&&(delete r[t],h.push(e))}),I.treeExpandedMaps=r,h.forEach(x),Promise.all(s)},z=(e,t)=>{var a=O["lazy"],{treeExpandedMaps:o,treeExpandLazyLoadedMaps:n}=I,d=j(t),o=!o[d];e.stopPropagation(),a&&n[d]||X([t],o)},f=(e,n,d)=>{var t=K.value,t=_xeUtils.default.get(e,t),e=j(e);if(t&&t.length){let a=!1,o=0;t.forEach(e=>{var e=j(e),t=n[e];(t||d[e])&&(t&&o++,a=!0)}),o===t.length?(n[e]||(n[e]=!0),d[e]&&delete d[e]):(n[e]&&delete n[e],d[e]=a)}else d[e]&&delete d[e]},G=()=>{var e=I["treeList"];const l=K.value;var t=B.value["checkStrictly"];if(!t){const c=Object.assign({},I.selectCheckboxMaps),s={};_xeUtils.default.eachTree(e,(e,t,a,o,n,d)=>{var i=_xeUtils.default.get(e,l);if(i&&i.length||f(e,c,s),t===a.length-1)for(let e=d.length-2;0<=e;e--){var r=d[e];f(r,c,s)}}),I.selectCheckboxMaps=c,I.indeterminateCheckboxMaps=s}},A=(e,a)=>{e.preventDefault(),e.stopPropagation();var{checkStrictly:o,checkMethod:n}=B.value;let t=!!n;if(!(t=n?!n({node:a}):t)){const i=Object.assign({},I.selectCheckboxMaps);var n=K.value,d=j(a);let t=!1;i[d]?delete i[d]:(t=!0,i[d]=t),o||_xeUtils.default.eachTree(_xeUtils.default.get(a,n),e=>{e=j(e);t?i[e]||(i[e]=!0):i[e]&&delete i[e]},{children:n}),I.selectCheckboxMaps=i,G();d=Object.keys(I.selectCheckboxMaps);L(d),F("checkbox-change",{node:a,value:d,checked:t},e)}},q=(e,t)=>{e.preventDefault(),e.stopPropagation();var a=R.value["checkMethod"];let o=!!a;(o=a?!a({node:t}):o)||(a=j(t),I.selectRadioKey=a,P(a),F("radio-change",{node:t,value:a,checked:!0},e))};Object.assign(p,c,{});const H=a=>{var{lazy:e,showRadio:t,showCheckbox:o,showLine:n,indent:d,iconOpen:i,iconClose:r,iconLoaded:l,showIcon:c}=O,{nodeMaps:s,treeExpandedMaps:u,currentNode:h,selectRadioKey:v,treeExpandLazyLoadedMaps:p}=I,g=K.value,x=V.value,_=T.value,g=_xeUtils.default.get(a,g),f=g&&g.length,C=w.title,k=w.extra,y=j(a),E=u[y],s=s[y],x=_xeUtils.default.get(a,x);const m=[];f&&u[y]&&(n&&m.push((0,_vue.h)("div",{key:"line",class:"vxe-tree--node-child-line",style:{height:`calc(${s.lineCount} * var(--vxe-ui-tree-node-height) - var(--vxe-ui-tree-node-height) / 2)`,left:(s.level+1)*(d||1)+"px"}})),g.forEach(e=>{m.push(H(e))}));let b=!1,N=(t&&(b=y==v),!1),M=(o&&(N=D(y)),!1),U=!1,L=!1;return e&&(U=!!p[y],M=a[_],L=!!s.treeLoaded),(0,_vue.h)("div",{class:["vxe-tree--node-wrapper","node--level-"+s.level],nodeid:y},[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":h&&y===j(h),"is-radio--checked":b,"is-checkbox--checked":N}],style:{paddingLeft:(s.level-1)*(d||1)+"px"},onClick(e){$(e,a)},onDblclick(e){var t;e=e,t=a,F("node-dblclick",{node:t},e)}},[c||n?(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},c&&(!e||L?f:M)?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){z(e,a)}},[(0,_vue.h)("i",{class:U?l||(0,_ui.getIcon)().TREE_NODE_LOADED:E?i||(0,_ui.getIcon)().TREE_NODE_OPEN:r||(0,_ui.getIcon)().TREE_NODE_CLOSE})])]:[]):(0,_vue.createCommentVNode)(),((t,e)=>{var a=O["showRadio"],{showIcon:o,checkMethod:n,visibleMethod:d}=R.value,d=!d||d({node:t});let i=!!n;return a&&o&&d?(n&&(i=!n({node:t})),(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":e,"is--disabled":i}],onClick:e=>{i||q(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])):(0,_vue.createCommentVNode)()})(a,b),((t,e,a)=>{var o=O["showCheckbox"],{showIcon:n,checkMethod:d,visibleMethod:i}=B.value,e=S(e),i=!i||i({node:t});let r=!!d;return o&&n&&i?(d&&(r=!d({node:t})),(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":a,"is--indeterminate":e,"is--disabled":r}],onClick:e=>{r||A(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:a?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])):(0,_vue.createCommentVNode)()})(a,y,N),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-title"},C?(0,_vn.getSlotVNs)(C({node:a})):""+x),k?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(k({node:a}))):(0,_vue.createCommentVNode)()])]),f&&u[y]?(0,_vue.h)("div",{class:"vxe-tree--node-child-wrapper"},m):(0,_vue.createCommentVNode)()])};p.renderVN=()=>{var{loading:e,trigger:t,showLine:a}=O,o=s.value,n=R.value,d=B.value,i=M.value,r=N.value,l=b.value;const c=w.loading;return(0,_vue.h)("div",{ref:u,class:["vxe-tree",{["size--"+o]:o,"show--line":a,"checkbox--highlight":d.highlight,"radio--highlight":n.highlight,"node--hover":l,"node--trigger":"node"===t,"is--loading":e}],style:i},[(o=I.treeList,(0,_vue.h)("div",{class:"vxe-tree--node-list-wrapper"},o.map(e=>H(e)))),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:r.icon,text:r.text},c?{default:()=>c({$tree:p})}:{})])};const C=(0,_vue.ref)(0),k=((0,_vue.watch)(()=>O.data?O.data.length:0,()=>{C.value++}),(0,_vue.watch)(()=>O.data,()=>{C.value++}),(0,_vue.watch)(C,()=>{r(O.data||[])}),(0,_vue.watch)(()=>O.checkNodeKey,e=>{I.selectRadioKey=e}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>O.checkNodeKeys?O.checkNodeKeys.length:0,()=>{k.value++}),(0,_vue.watch)(()=>O.checkNodeKeys,()=>{k.value++}),(0,_vue.watch)(k,()=>{n(O.checkNodeKeys||[])}),(0,_vue.onUnmounted)(()=>{I.treeList=[],I.treeExpandedMaps={},I.nodeMaps={}}),r(O.data||[]),n(O.checkNodeKeys||[]),p},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTree",props:{data:Array,height:[String,Number],minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.minHeight},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.accordion},childrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.childrenField},valueField:{type:String,default:()=>(0,_ui.getConfig)().tree.valueField},keyField:{type:String,default:()=>(0,_ui.getConfig)().tree.keyField},parentField:{type:String,default:()=>(0,_ui.getConfig)().tree.parentField},titleField:{type:String,default:()=>(0,_ui.getConfig)().tree.titleField},hasChildField:{type:String,default:()=>(0,_ui.getConfig)().tree.hasChildField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,showLine:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showLine},trigger:String,indent:{type:Number,default:()=>(0,_ui.getConfig)().tree.indent},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showRadio},checkNodeKey:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.checkNodeKey},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showCheckbox},checkNodeKeys:{type:Array,default:()=>(0,_ui.getConfig)().tree.checkNodeKeys},checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,toggleMethod:Function,loadMethod:Function,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>(0,_ui.getConfig)().tree.iconOpen},iconClose:{type:String,default:()=>(0,_ui.getConfig)().tree.iconClose},iconLoaded:{type:String,default:()=>(0,_ui.getConfig)().tree.iconLoaded},size:{type:String,default:()=>(0,_ui.getConfig)().tree.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","update:checkNodeKey","update:checkNodeKeys","node-click","node-dblclick","current-change","radio-change","checkbox-change","load-success","load-error"],setup(O,e){const{emit:o,slots:w}=e;var t=_xeUtils.default.uniqueId();const s=(0,_ui.useSize)(O)["computeSize"],u=(0,_vue.ref)(),I=(0,_vue.reactive)({currentNode:null,nodeMaps:{},selectRadioKey:O.checkNodeKey,treeList:[],treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},selectCheckboxMaps:{},indeterminateCheckboxMaps:{}});const y={refElem:u},V=(0,_vue.computed)(()=>O.titleField||"title"),d=(0,_vue.computed)(()=>O.keyField||"id"),h=(0,_vue.computed)(()=>{var e=d.value;return O.valueField||e}),E=(0,_vue.computed)(()=>O.parentField||"parentId"),K=(0,_vue.computed)(()=>O.childrenField||"children"),R=(0,_vue.computed)(()=>O.hasChildField||"hasChild"),m=(0,_vue.computed)(()=>{var e=v.value["isCurrent"];return _xeUtils.default.isBoolean(e)?e:O.isCurrent}),b=(0,_vue.computed)(()=>{var e=v.value["isHover"];return _xeUtils.default.isBoolean(e)?e:O.isHover}),T=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.radioConfig,O.radioConfig)),B=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.checkboxConfig,O.checkboxConfig)),v=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.nodeConfig,O.nodeConfig)),N=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.loadingConfig,O.loadingConfig)),M=(0,_vue.computed)(()=>{var{height:e,minHeight:t}=O,a={};return e&&(a.height=(0,_dom.toCssUnit)(e)),t&&(a.minHeight=(0,_dom.toCssUnit)(t)),a}),U={computeRadioOpts:T,computeCheckboxOpts:B,computeNodeOpts:v},p={xID:t,props:O,context:e,internalData:{},reactData:I,getRefMaps:()=>y,getComputeMaps:()=>U},j=e=>{var t=h.value,e=_xeUtils.default.get(e,t);return _xeUtils.default.eqNull(e)?"":encodeURIComponent(e)};const a=e=>{var t=I["selectRadioKey"];return t===e};const D=e=>{var t=I["selectCheckboxMaps"];return!!t[e]};const S=e=>{var t=I["indeterminateCheckboxMaps"];return!!t[e]};const L=e=>{o("update:checkNodeKeys",e)},P=e=>{o("update:checkNodeKey",e)};const l=(e,t)=>{const a=Object.assign({},I.selectCheckboxMaps);e.forEach(e=>{t?a[e]=!0:a[e]&&delete a[e]}),I.selectCheckboxMaps=a},n=e=>{const t={};e&&e.forEach(e=>{t[e]=!0}),I.selectCheckboxMaps=t},i=(e,t,a)=>{t?a[e]&&(a[e]=!0):a[e]&&delete a[e]},F=(e,t,a)=>{o(e,(0,_ui.createEvent)(a,{$tree:p},t))},c={dispatchEvent:F,clearRadioNode(){return(I.selectRadioKey=null,_vue.nextTick)()},setRadioNode:(e,t)=>(e&&(I.selectRadioKey=t?j(e):null),(0,_vue.nextTick)()),setCheckboxNode:(e,t)=>(e&&(_xeUtils.default.isArray(e)||(e=[e]),l(e.map(e=>j(e)),t)),(0,_vue.nextTick)()),setCheckboxByNodeId:(e,t)=>(e&&(_xeUtils.default.isArray(e)||(e=[e]),l(e,t)),(0,_vue.nextTick)()),clearCheckboxNode(){return I.selectCheckboxMaps={},(0,_vue.nextTick)()},setAllCheckboxNode(e){const t=Object.assign(I.selectCheckboxMaps);var a=K.value;return e&&_xeUtils.default.eachTree(I.treeList,e=>{e=j(e);t[e]=!0},{children:a}),I.selectCheckboxMaps=t,(0,_vue.nextTick)()},clearExpandNode(){return c.clearAllExpandNode()},clearAllExpandNode(){return _xeUtils.default.each(I.nodeMaps,e=>{e.treeLoaded=!1}),I.treeExpandedMaps={},(0,_vue.nextTick)()},setExpandByNodeId(e,t){const a=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{i(e,t,a)}),I.treeExpandedMaps=a),(0,_vue.nextTick)()},setExpandNode(e,t){const a=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=j(e);i(e,t,a)}),I.treeExpandedMaps=a),(0,_vue.nextTick)()},toggleExpandByNodeId(e){const t=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{i(e,!t[e],t)}),I.treeExpandedMaps=t),(0,_vue.nextTick)()},toggleExpandNode(e){const t=Object.assign(I.treeExpandedMaps);return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=j(e);i(e,!t[e],t)}),I.treeExpandedMaps=t),(0,_vue.nextTick)()},setAllExpandNode(){const t=Object.assign(I.treeExpandedMaps);var e=K.value;return _xeUtils.default.eachTree(I.treeList,e=>{e=j(e);t[e]=!0},{children:e}),I.treeExpandedMaps=t,(0,_vue.nextTick)()},reloadExpandNode(e){var t=O["lazy"];return t?(c.clearExpandLoaded(e),_(e)):(0,_vue.nextTick)()},clearExpandLoaded(e){var t=O["lazy"],a=I["nodeMaps"];return t&&(t=a[j(e)])&&(t.treeLoaded=!1),(0,_vue.nextTick)()},loadChildrenNode(i,e){const{lazy:t,transform:a}=O,r=I["nodeMaps"];if(!t)return Promise.resolve([]);const o=K.value,l=r[j(i)],c=l?l.level:0,s=l?l.nodes:[];return(e=>{const a=h.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return j(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,a,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,a,o,n,d)=>{e=j(e);r[e]={item:i,itemIndex:-1,items:a,parent:n||l.item,nodes:s.concat(d),level:c+d.length,lineCount:0,treeLoaded:!1}},{children:o}),i[o]=e,a&&(i[o]=e),x(i),e))},isExpandByNode:e=>{var t=I["treeExpandedMaps"];return!!t[j(e)]},isCheckedByRadioNodeId:a,isCheckedByRadioNode:e=>a(j(e)),isCheckedByCheckboxNodeId:D,isIndeterminateByCheckboxNode:e=>S(j(e)),isCheckedByCheckboxNode:e=>D(j(e))},r=e=>{var t=O["transform"],a=d.value,o=E.value,n=K.value;I.treeList=t?_xeUtils.default.toArrayTree(e,{key:a,parentKey:o,mapChildren:n}):e?e.slice(0):[];{t=I.treeList;const r=h.value,l=(a=K.value,{});_xeUtils.default.eachTree(t,(e,t,a,o,n,d)=>{let i=j(e);i||(i=getNodeUniqueId(),_xeUtils.default.set(e,r,i)),l[i]={item:e,itemIndex:t,items:a,parent:n,nodes:d,level:d.length,lineCount:0,treeLoaded:!1}},{children:a}),I.nodeMaps=l}},g=(e,o,n)=>{var t=I["treeExpandedMaps"],a=K.value,d=j(e);n.lineCount++,t[d]&&_xeUtils.default.arrayEach(e[a],(e,t,a)=>{(!o||t<a.length-1)&&g(e,!1,n)})},x=e=>{const a=I["nodeMaps"];e&&(e=j(e),e=a[e])&&_xeUtils.default.lastArrayEach(e.nodes,e=>{var t=j(e),t=a[t];t&&(t.lineCount=0,g(e,!0,t))})},$=(e,t)=>{var{showRadio:a,showCheckbox:o,trigger:n}=O,d=T.value,i=B.value;let r=!1,l=!1,c=!1,s=!1;m.value?(r=!0,((e,t)=>{e.preventDefault();const a=v.value,{currentMethod:o,trigger:n}=a,d=K.value,i=_xeUtils.default.get(t,d),r=i&&i.length;let l=!!o;if(n==="child"){if(r)return}else if(n==="parent")if(!r)return;if(o)l=!o({node:t});var c;l||(c=!0,I.currentNode=t,F("current-change",{node:t,checked:!0},e))})(e,t)):I.currentNode&&(I.currentNode=null),"node"===n&&(s=!0,z(e,t)),a&&"node"===d.trigger&&(l=!0,q(e,t)),o&&"node"===i.trigger&&(c=!0,A(e,t)),F("node-click",{node:t,triggerCurrent:r,triggerRadio:l,triggerCheckbox:c,triggerExpand:s},e)},_=i=>{var e=B.value;const a=O["loadMethod"],r=e["checkStrictly"];return new Promise(e=>{if(a){const o=I["treeExpandLazyLoadedMaps"];var t=I["nodeMaps"];const n=j(i),d=t[n];o[n]=!0,Promise.resolve(a({$tree:p,node:i})).then(a=>{if(d.treeLoaded=!0,o[n]&&delete o[n],a=_xeUtils.default.isArray(a)?a:[])return c.loadChildrenNode(i,a).then(e=>{var t=I["treeExpandedMaps"];return e.length&&!t[n]&&(t[n]=!0),!r&&c.isCheckedByCheckboxNodeId(n)&&l(e.map(e=>j(e)),!0),x(i),F("load-success",{node:i,data:a},new Event("load-success")),(0,_vue.nextTick)()});x(i),F("load-success",{node:i,data:a},new Event("load-success"))}).catch(e=>{var t=I["treeExpandLazyLoadedMaps"];d.treeLoaded=!1,t[n]&&delete t[n],x(i),F("load-error",{node:i,data:e},new Event("load-error"))}).finally(()=>(0,_vue.nextTick)())}else e()})},X=(e,t)=>{const{lazy:o,accordion:a,toggleMethod:n}=O,{nodeMaps:d,treeExpandLazyLoadedMaps:i}=I,r=Object.assign({},I.treeExpandedMaps),l=K.value,c=R.value,s=[];let u=n?e.filter(e=>n({$tree:p,expanded:t,node:e})):e;a&&(u=u.length?[u[u.length-1]]:[],e=j(u[0]),e=d[e])&&e.items.forEach(e=>{e=j(e);r[e]&&delete r[e]});const h=[];return t?u.forEach(e=>{var t,a=j(e);r[a]||(t=d[a],o&&e[c]&&!t.treeLoaded&&!i[a]?s.push(_(e)):e[l]&&e[l].length&&(r[a]=!0,h.push(e)))}):u.forEach(e=>{var t=j(e);r[t]&&(delete r[t],h.push(e))}),I.treeExpandedMaps=r,h.forEach(x),Promise.all(s)},z=(e,t)=>{var a=O["lazy"],{treeExpandedMaps:o,treeExpandLazyLoadedMaps:n}=I,d=j(t),o=!o[d];e.stopPropagation(),a&&n[d]||X([t],o)},f=(e,n,d)=>{var t=K.value,t=_xeUtils.default.get(e,t),e=j(e);if(t&&t.length){let a=!1,o=0;t.forEach(e=>{var e=j(e),t=n[e];(t||d[e])&&(t&&o++,a=!0)}),o===t.length?(n[e]||(n[e]=!0),d[e]&&delete d[e]):(n[e]&&delete n[e],d[e]=a)}else d[e]&&delete d[e]},G=()=>{var e=I["treeList"];const l=K.value;var t=B.value["checkStrictly"];if(!t){const c=Object.assign({},I.selectCheckboxMaps),s={};_xeUtils.default.eachTree(e,(e,t,a,o,n,d)=>{var i=_xeUtils.default.get(e,l);if(i&&i.length||f(e,c,s),t===a.length-1)for(let e=d.length-2;0<=e;e--){var r=d[e];f(r,c,s)}}),I.selectCheckboxMaps=c,I.indeterminateCheckboxMaps=s}},A=(e,a)=>{e.preventDefault(),e.stopPropagation();var{checkStrictly:o,checkMethod:n}=B.value;let t=!!n;if(!(t=n?!n({node:a}):t)){const i=Object.assign({},I.selectCheckboxMaps);var n=K.value,d=j(a);let t=!1;i[d]?delete i[d]:(t=!0,i[d]=t),o||_xeUtils.default.eachTree(_xeUtils.default.get(a,n),e=>{e=j(e);t?i[e]||(i[e]=!0):i[e]&&delete i[e]},{children:n}),I.selectCheckboxMaps=i,G();d=Object.keys(I.selectCheckboxMaps);L(d),F("checkbox-change",{node:a,value:d,checked:t},e)}},q=(e,t)=>{e.preventDefault(),e.stopPropagation();var a=T.value["checkMethod"];let o=!!a;(o=a?!a({node:t}):o)||(a=j(t),I.selectRadioKey=a,P(a),F("radio-change",{node:t,value:a,checked:!0},e))};Object.assign(p,c,{});const H=a=>{var{lazy:e,showRadio:t,showCheckbox:o,showLine:n,indent:d,iconOpen:i,iconClose:r,iconLoaded:l,showIcon:c}=O,{nodeMaps:s,treeExpandedMaps:u,currentNode:h,selectRadioKey:v,treeExpandLazyLoadedMaps:p}=I,g=K.value,x=V.value,_=R.value,g=_xeUtils.default.get(a,g),f=g&&g.length,C=w.title,k=w.extra,y=j(a),E=u[y],s=s[y],x=_xeUtils.default.get(a,x);const m=[];f&&u[y]&&(n&&m.push((0,_vue.h)("div",{key:"line",class:"vxe-tree--node-child-line",style:{height:`calc(${s.lineCount} * var(--vxe-ui-tree-node-height) - var(--vxe-ui-tree-node-height) / 2)`,left:(s.level+1)*(d||1)+"px"}})),g.forEach(e=>{m.push(H(e))}));let b=!1,N=(t&&(b=y==v),!1),M=(o&&(N=D(y)),!1),U=!1,L=!1;return e&&(U=!!p[y],M=a[_],L=!!s.treeLoaded),(0,_vue.h)("div",{class:["vxe-tree--node-wrapper","node--level-"+s.level],nodeid:y},[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":h&&y===j(h),"is-radio--checked":b,"is-checkbox--checked":N}],style:{paddingLeft:(s.level-1)*(d||1)+"px"},onClick(e){$(e,a)},onDblclick(e){var t;e=e,t=a,F("node-dblclick",{node:t},e)}},[c||n?(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},c&&(!e||L?f:M)?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){z(e,a)}},[(0,_vue.h)("i",{class:U?l||(0,_ui.getIcon)().TREE_NODE_LOADED:E?i||(0,_ui.getIcon)().TREE_NODE_OPEN:r||(0,_ui.getIcon)().TREE_NODE_CLOSE})])]:[]):(0,_vue.createCommentVNode)(),((t,e)=>{var a=O["showRadio"],{showIcon:o,checkMethod:n,visibleMethod:d}=T.value,d=!d||d({node:t});let i=!!n;return a&&o&&d?(n&&(i=!n({node:t})),(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":e,"is--disabled":i}],onClick:e=>{i||q(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])):(0,_vue.createCommentVNode)()})(a,b),((t,e,a)=>{var o=O["showCheckbox"],{showIcon:n,checkMethod:d,visibleMethod:i}=B.value,e=S(e),i=!i||i({node:t});let r=!!d;return o&&n&&i?(d&&(r=!d({node:t})),(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":a,"is--indeterminate":e,"is--disabled":r}],onClick:e=>{r||A(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:a?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])):(0,_vue.createCommentVNode)()})(a,y,N),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-title"},C?(0,_vn.getSlotVNs)(C({node:a})):""+x),k?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(k({node:a}))):(0,_vue.createCommentVNode)()])]),f&&u[y]?(0,_vue.h)("div",{class:"vxe-tree--node-child-wrapper"},m):(0,_vue.createCommentVNode)()])};const C=(0,_vue.ref)(0),k=((0,_vue.watch)(()=>O.data?O.data.length:0,()=>{C.value++}),(0,_vue.watch)(()=>O.data,()=>{C.value++}),(0,_vue.watch)(C,()=>{r(O.data||[])}),(0,_vue.watch)(()=>O.checkNodeKey,e=>{I.selectRadioKey=e}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>O.checkNodeKeys?O.checkNodeKeys.length:0,()=>{k.value++}),(0,_vue.watch)(()=>O.checkNodeKeys,()=>{k.value++}),(0,_vue.watch)(k,()=>{n(O.checkNodeKeys||[])}),(0,_vue.onUnmounted)(()=>{I.treeList=[],I.treeExpandedMaps={},I.nodeMaps={}}),r(O.data||[]),n(O.checkNodeKeys||[]),p.renderVN=()=>{var{loading:e,trigger:t,showLine:a}=O,o=s.value,n=T.value,d=B.value,i=M.value,r=N.value,l=b.value;const c=w.loading;return(0,_vue.h)("div",{ref:u,class:["vxe-tree",{["size--"+o]:o,"show--line":a,"checkbox--highlight":d.highlight,"radio--highlight":n.highlight,"node--hover":l,"node--trigger":"node"===t,"is--loading":e}],style:i},[(o=I.treeList,(0,_vue.h)("div",{class:"vxe-tree--node-list-wrapper"},o.map(e=>H(e)))),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:r.icon,text:r.text},c?{default:()=>c({$tree:p})}:{})])},p},render(){return this.renderVN()}});
@@ -84,6 +84,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
84
84
  visibleAnimate: false,
85
85
  isActivated: false
86
86
  });
87
+ const internalData = {
88
+ hpTimeout: undefined
89
+ };
87
90
  const refMaps = {
88
91
  refElem
89
92
  };
@@ -181,9 +184,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
181
184
  const {
182
185
  fullNodeMaps
183
186
  } = reactData;
187
+ const labelField = computeLabelField.value;
184
188
  return (_xeUtils.default.isArray(modelValue) ? modelValue : [modelValue]).map(value => {
185
189
  const cacheItem = fullNodeMaps[value];
186
- const labelField = computeLabelField.value;
187
190
  return cacheItem ? cacheItem.item[labelField] : value;
188
191
  }).join(', ');
189
192
  });
@@ -193,6 +196,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
193
196
  props,
194
197
  context,
195
198
  reactData,
199
+ internalData,
196
200
  getRefMaps: () => refMaps,
197
201
  getComputeMaps: () => computeMaps
198
202
  };
@@ -221,7 +225,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
221
225
  const valueField = computeValueField.value;
222
226
  const childrenField = computeChildrenField.value;
223
227
  const nodeMaps = {};
224
- _xeUtils.default.eachTree(options, (item, index, items, parent, nodes) => {
228
+ _xeUtils.default.eachTree(options, (item, index, items, path, parent, nodes) => {
225
229
  let nodeid = getOptid(item);
226
230
  if (!nodeid) {
227
231
  nodeid = getOptUniqueId();
@@ -325,14 +329,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
325
329
  }
326
330
  });
327
331
  };
328
- let hidePanelTimeout;
329
332
  const showOptionPanel = () => {
330
333
  const {
331
334
  loading
332
335
  } = props;
333
336
  const isDisabled = computeIsDisabled.value;
334
337
  if (!loading && !isDisabled) {
335
- clearTimeout(hidePanelTimeout);
338
+ clearTimeout(internalData.hpTimeout);
336
339
  if (!reactData.initialized) {
337
340
  reactData.initialized = true;
338
341
  }
@@ -347,7 +350,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
347
350
  };
348
351
  const hideOptionPanel = () => {
349
352
  reactData.visiblePanel = false;
350
- hidePanelTimeout = window.setTimeout(() => {
353
+ internalData.hpTimeout = window.setTimeout(() => {
351
354
  reactData.visibleAnimate = false;
352
355
  }, 350);
353
356
  };
@@ -355,9 +358,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
355
358
  const {
356
359
  fullNodeMaps
357
360
  } = reactData;
361
+ emit('update:modelValue', selectValue);
358
362
  if (selectValue !== props.modelValue) {
359
363
  const cacheItem = fullNodeMaps[selectValue];
360
- emit('update:modelValue', selectValue);
361
364
  treeSelectMethods.dispatchEvent('change', {
362
365
  value: selectValue,
363
366
  option: cacheItem ? cacheItem.item : null
@@ -600,7 +603,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
600
603
  class: 'vxe-tree-select--panel-footer'
601
604
  }, footerSlot({})) : (0, _vue.createCommentVNode)()])] : [])])]);
602
605
  };
603
- $xeTreeSelect.renderVN = renderVN;
604
606
  (0, _vue.watch)(() => props.options, () => {
605
607
  cacheItemMap();
606
608
  });
@@ -615,6 +617,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
615
617
  _ui.globalEvents.off($xeTreeSelect, 'mousedown');
616
618
  _ui.globalEvents.off($xeTreeSelect, 'blur');
617
619
  });
620
+ (0, _vue.provide)('$xeTreeSelect', $xeTreeSelect);
621
+ $xeTreeSelect.renderVN = renderVN;
618
622
  return $xeTreeSelect;
619
623
  },
620
624
  render() {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_input=_interopRequireDefault(require("../../input/src/input")),_tree=_interopRequireDefault(require("../../tree/src/tree"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getOptUniqueId(){return _xeUtils.default.uniqueId("node_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTreeSelect",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().select.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().select.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,className:[String,Function],popupClassName:[String,Function],prefixIcon:String,placement:String,options:Array,optionProps:Object,size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},remote:Boolean,remoteMethod:Function,treeConfig:Object,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","blur","focus","click","node-click"],setup(N,e){const{emit:i,slots:P}=e,l=(0,_vue.inject)("$xeModal",null),n=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null),u=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const T=(0,_ui.useSize)(N)["computeSize"],w=(0,_vue.ref)(),O=(0,_vue.ref)(),k=(0,_vue.ref)(),q=(0,_vue.ref)(),j=(0,_vue.reactive)({initialized:!1,fullOptionList:[],fullNodeMaps:{},visibleOptionList:[],panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,visibleAnimate:!1,isActivated:!1}),r={refElem:w},A=(0,_vue.computed)(()=>{var e=N["readonly"];return null===e?!!o&&o.props.readonly:e}),M=(0,_vue.computed)(()=>{var e=N["disabled"];return null===e?!!o&&o.props.disabled:e}),z=(0,_vue.computed)(()=>{var e=N["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(a||l||n||o)return!0}return e}),L=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.treeConfig,N.treeConfig)),U=(0,_vue.computed)(()=>{var e=L.value;return Object.assign({isHover:!0},e.nodeConfig)}),R=(0,_vue.computed)(()=>{var e=L.value;return Object.assign({showIcon:!!e.showCheckbox},e.checkboxConfig,{trigger:"node"})}),W=(0,_vue.computed)(()=>{var e=L.value;return Object.assign({showIcon:!!e.showRadio},e.radioConfig,{trigger:"node"})}),s=(0,_vue.computed)(()=>N.optionProps||{}),V=(0,_vue.computed)(()=>{return s.value.label||"label"}),$=(0,_vue.computed)(()=>{return s.value.value||"value"}),D=(0,_vue.computed)(()=>{return s.value.children||"children"}),K=(0,_vue.computed)(()=>{return s.value.parent||"parentField"}),Z=(0,_vue.computed)(()=>{return s.value.hasChild||"hasChild"}),G=(0,_vue.computed)(()=>{var e=N["modelValue"];const i=j["fullNodeMaps"];return(_xeUtils.default.isArray(e)?e:[e]).map(e=>{var t=i[e],l=V.value;return t?t.item[l]:e}).join(", ")}),m={},B={xID:t,props:N,context:e,reactData:j,getRefMaps:()=>r,getComputeMaps:()=>m},d={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$treeSelect:B},t))}},v=()=>{var e=N["options"];const o=$.value;var t=D.value;const u={};_xeUtils.default.eachTree(e,(e,t,l,i,n)=>{let a=(e=>{e=e[$.value];return e?encodeURIComponent(e):""})(e);a||(a=getOptUniqueId(),e[o]=a),u[a]={item:e,index:t,items:l,parent:i,nodes:n}},{children:t}),j.fullOptionList=e||[],j.fullNodeMaps=u,(0,_vue.nextTick)()},c=()=>(0,_vue.nextTick)().then(()=>{var i=N["placement"],n=j["panelIndex"],a=w.value,o=q.value,e=z.value;if(o&&a){var u=a.offsetHeight,r=a.offsetWidth,s=o.offsetHeight,o=o.offsetWidth,n={zIndex:n},{boundingTop:a,boundingLeft:d,visibleHeight:v,visibleWidth:c}=(0,_dom.getAbsolutePos)(a);let l="bottom";if(e){let e=d,t=a+u;"top"===i?(l="top",t=a-s):i||(t+s+5>v&&(l="top",t=a-s),t<5&&(l="bottom",t=a+u)),e+o+5>c&&(e-=e+o+5-c),e<5&&(e=5),Object.assign(n,{left:e+"px",top:t+"px",minWidth:r+"px"})}else"top"===i?(l="top",n.bottom=u+"px"):i||v<a+u+s&&5<a-u-s&&(l="top",n.bottom=u+"px");return j.panelStyle=n,j.panelPlacement=l,(0,_vue.nextTick)()}});let p;const f=()=>{var e=N["loading"],t=M.value;e||t||(clearTimeout(p),j.initialized||(j.initialized=!0),j.isActivated=!0,j.visibleAnimate=!0,setTimeout(()=>{j.visiblePanel=!0},10),j.panelIndex<(0,_utils.getLastZIndex)()&&(j.panelIndex=(0,_utils.nextZIndex)()),c())},_=()=>{j.visiblePanel=!1,p=window.setTimeout(()=>{j.visibleAnimate=!1},350)},g=(e,t)=>{var l=j["fullNodeMaps"];t!==N.modelValue&&(l=l[t],i("update:modelValue",t),d.dispatchEvent("change",{value:t,option:l?l.item:null},e),o)&&u&&o.triggerItemEvent(e,u.itemConfig.field,t)},h=(e,t)=>{g(e,t),d.dispatchEvent("clear",{value:t},e)},J=(e,t)=>{h(t,null),_()},b=e=>{var t=j["visiblePanel"];M.value||t&&(t=q.value,((0,_dom.getEventTargetNode)(e,t).flag?c:_)())},x=e=>{var t,l,i=j["visiblePanel"];M.value||(t=w.value,l=q.value,j.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!j.isActivated&&_())},C=()=>{_()},Q=e=>{M.value||j.visiblePanel||(j.triggerFocusPanel=!0,f(),setTimeout(()=>{j.triggerFocusPanel=!1},150)),d.dispatchEvent("focus",{},e)},X=e=>{H(e),d.dispatchEvent("click",{},e)},Y=e=>{j.isActivated=!1,d.dispatchEvent("blur",{},e)},H=e=>{e=e.$event;e.preventDefault(),j.triggerFocusPanel?j.triggerFocusPanel=!1:(j.visiblePanel?_:f)()},ee=e=>{var t=e["$event"];d.dispatchEvent("node-click",e,t)},te=e=>{var{value:e,$event:t}=e;g(t,e),_()},le=e=>{var{value:e,$event:t}=e;g(t,e)};Object.assign(B,d,{});return B.renderVN=()=>{var{className:e,modelValue:t,multiple:l,options:i,popupClassName:n,loading:a}=N,{initialized:o,isActivated:u,visiblePanel:r}=j,s=T.value,d=M.value,v=G.value,c=z.value,p=A.value,f=P.default,_=P.header,g=P.footer;const m=P.prefix;var h=L.value,b=U.value,x=R.value,C=W.value,E=V.value,I=$.value,y=D.value,F=K.value,S=Z.value;return p?(0,_vue.h)("div",{ref:w,class:["vxe-tree-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-tree-select-slots",ref:"hideOption"},f?f({}):[]),(0,_vue.h)("span",{class:"vxe-tree-select-label"},v)]):(0,_vue.h)("div",{ref:w,class:["vxe-tree-select",e?_xeUtils.default.isFunction(e)?e({$treeSelect:B}):e:"",{["size--"+s]:s,"is--visible":r,"is--disabled":d,"is--loading":a,"is--active":u}]},[(0,_vue.h)(_input.default,{ref:O,clearable:N.clearable,placeholder:N.placeholder,readonly:!0,disabled:d,type:"text",prefixIcon:N.prefixIcon,suffixIcon:a?(0,_ui.getIcon)().TREE_SELECT_LOADED:r?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:v,onClear:J,onClick:X,onFocus:Q,onBlur:Y,onSuffixClick:H},m?{prefix:()=>m({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!c||!o},[(0,_vue.h)("div",{ref:q,class:["vxe-table--ignore-clear vxe-tree-select--panel",n?_xeUtils.default.isFunction(n)?n({$treeSelect:B}):n:"",{["size--"+s]:s,"is--transfer":c,"ani--leave":!a&&j.visibleAnimate,"ani--enter":!a&&r}],placement:j.panelPlacement,style:j.panelStyle},o?[(0,_vue.h)("div",{class:"vxe-tree-select--panel-wrapper"},[_?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},_({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-tree-select--panel-body"},[(0,_vue.h)("div",{ref:k,class:"vxe-tree-select-option--wrapper"},[(0,_vue.h)(_tree.default,{class:"vxe-tree-select--tree",data:i,indent:h.indent,showRadio:!l,radioConfig:C,checkNodeKey:l?null:t,showCheckbox:!!l,checkNodeKeys:l?t:null,checkboxConfig:x,titleField:E,valueField:I,keyField:h.keyField,childrenField:h.childrenField||y,parentField:h.parentField||F,hasChildField:h.hasChildField||S,accordion:h.accordion,nodeConfig:b,lazy:h.lazy,loadMethod:h.loadMethod,toggleMethod:h.toggleMethod,transform:h.transform,trigger:h.trigger,showIcon:h.showIcon,showLine:h.showLine,iconOpen:h.iconOpen,iconLoaded:h.iconLoaded,iconClose:h.iconClose,onNodeClick:ee,onRadioChange:te,onCheckboxChange:le})])]),g?(0,_vue.h)("div",{class:"vxe-tree-select--panel-footer"},g({})):(0,_vue.createCommentVNode)()])]:[])])])},(0,_vue.watch)(()=>N.options,()=>{v()}),v(),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(B,"mousewheel",b),_ui.globalEvents.on(B,"mousedown",x),_ui.globalEvents.on(B,"blur",C)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(B,"mousewheel"),_ui.globalEvents.off(B,"mousedown"),_ui.globalEvents.off(B,"blur")}),B},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_input=_interopRequireDefault(require("../../input/src/input")),_tree=_interopRequireDefault(require("../../tree/src/tree"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getOptUniqueId(){return _xeUtils.default.uniqueId("node_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTreeSelect",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().select.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().select.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,className:[String,Function],popupClassName:[String,Function],prefixIcon:String,placement:String,options:Array,optionProps:Object,size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},remote:Boolean,remoteMethod:Function,treeConfig:Object,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","blur","focus","click","node-click"],setup(S,e){const{emit:i,slots:N}=e,l=(0,_vue.inject)("$xeModal",null),n=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null),u=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const P=(0,_ui.useSize)(S)["computeSize"],w=(0,_vue.ref)(),O=(0,_vue.ref)(),k=(0,_vue.ref)(),q=(0,_vue.ref)(),j=(0,_vue.reactive)({initialized:!1,fullOptionList:[],fullNodeMaps:{},visibleOptionList:[],panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,visibleAnimate:!1,isActivated:!1}),r={hpTimeout:void 0},s={refElem:w},A=(0,_vue.computed)(()=>{var e=S["readonly"];return null===e?!!o&&o.props.readonly:e}),M=(0,_vue.computed)(()=>{var e=S["disabled"];return null===e?!!o&&o.props.disabled:e}),z=(0,_vue.computed)(()=>{var e=S["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(a||l||n||o)return!0}return e}),L=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.treeConfig,S.treeConfig)),U=(0,_vue.computed)(()=>{var e=L.value;return Object.assign({isHover:!0},e.nodeConfig)}),R=(0,_vue.computed)(()=>{var e=L.value;return Object.assign({showIcon:!!e.showCheckbox},e.checkboxConfig,{trigger:"node"})}),W=(0,_vue.computed)(()=>{var e=L.value;return Object.assign({showIcon:!!e.showRadio},e.radioConfig,{trigger:"node"})}),d=(0,_vue.computed)(()=>S.optionProps||{}),V=(0,_vue.computed)(()=>{return d.value.label||"label"}),$=(0,_vue.computed)(()=>{return d.value.value||"value"}),D=(0,_vue.computed)(()=>{return d.value.children||"children"}),K=(0,_vue.computed)(()=>{return d.value.parent||"parentField"}),Z=(0,_vue.computed)(()=>{return d.value.hasChild||"hasChild"}),G=(0,_vue.computed)(()=>{var e=S["modelValue"];const l=j["fullNodeMaps"],i=V.value;return(_xeUtils.default.isArray(e)?e:[e]).map(e=>{var t=l[e];return t?t.item[i]:e}).join(", ")}),m={},B={xID:t,props:S,context:e,reactData:j,internalData:r,getRefMaps:()=>s,getComputeMaps:()=>m},v={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$treeSelect:B},t))}},c=()=>{var e=S["options"];const u=$.value;var t=D.value;const r={};_xeUtils.default.eachTree(e,(e,t,l,i,n,a)=>{let o=(e=>{e=e[$.value];return e?encodeURIComponent(e):""})(e);o||(o=getOptUniqueId(),e[u]=o),r[o]={item:e,index:t,items:l,parent:n,nodes:a}},{children:t}),j.fullOptionList=e||[],j.fullNodeMaps=r,(0,_vue.nextTick)()},p=()=>(0,_vue.nextTick)().then(()=>{var i=S["placement"],n=j["panelIndex"],a=w.value,o=q.value,e=z.value;if(o&&a){var u=a.offsetHeight,r=a.offsetWidth,s=o.offsetHeight,o=o.offsetWidth,n={zIndex:n},{boundingTop:a,boundingLeft:d,visibleHeight:v,visibleWidth:c}=(0,_dom.getAbsolutePos)(a);let l="bottom";if(e){let e=d,t=a+u;"top"===i?(l="top",t=a-s):i||(t+s+5>v&&(l="top",t=a-s),t<5&&(l="bottom",t=a+u)),e+o+5>c&&(e-=e+o+5-c),e<5&&(e=5),Object.assign(n,{left:e+"px",top:t+"px",minWidth:r+"px"})}else"top"===i?(l="top",n.bottom=u+"px"):i||v<a+u+s&&5<a-u-s&&(l="top",n.bottom=u+"px");return j.panelStyle=n,j.panelPlacement=l,(0,_vue.nextTick)()}}),f=()=>{var e=S["loading"],t=M.value;e||t||(clearTimeout(r.hpTimeout),j.initialized||(j.initialized=!0),j.isActivated=!0,j.visibleAnimate=!0,setTimeout(()=>{j.visiblePanel=!0},10),j.panelIndex<(0,_utils.getLastZIndex)()&&(j.panelIndex=(0,_utils.nextZIndex)()),p())},_=()=>{j.visiblePanel=!1,r.hpTimeout=window.setTimeout(()=>{j.visibleAnimate=!1},350)},g=(e,t)=>{var l=j["fullNodeMaps"];i("update:modelValue",t),t!==S.modelValue&&(l=l[t],v.dispatchEvent("change",{value:t,option:l?l.item:null},e),o)&&u&&o.triggerItemEvent(e,u.itemConfig.field,t)},h=(e,t)=>{g(e,t),v.dispatchEvent("clear",{value:t},e)},J=(e,t)=>{h(t,null),_()},b=e=>{var t=j["visiblePanel"];M.value||t&&(t=q.value,((0,_dom.getEventTargetNode)(e,t).flag?p:_)())},x=e=>{var t,l,i=j["visiblePanel"];M.value||(t=w.value,l=q.value,j.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!j.isActivated&&_())},C=()=>{_()},Q=e=>{M.value||j.visiblePanel||(j.triggerFocusPanel=!0,f(),setTimeout(()=>{j.triggerFocusPanel=!1},150)),v.dispatchEvent("focus",{},e)},X=e=>{H(e),v.dispatchEvent("click",{},e)},Y=e=>{j.isActivated=!1,v.dispatchEvent("blur",{},e)},H=e=>{e=e.$event;e.preventDefault(),j.triggerFocusPanel?j.triggerFocusPanel=!1:(j.visiblePanel?_:f)()},ee=e=>{var t=e["$event"];v.dispatchEvent("node-click",e,t)},te=e=>{var{value:e,$event:t}=e;g(t,e),_()},le=e=>{var{value:e,$event:t}=e;g(t,e)};Object.assign(B,v,{});return(0,_vue.watch)(()=>S.options,()=>{c()}),c(),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(B,"mousewheel",b),_ui.globalEvents.on(B,"mousedown",x),_ui.globalEvents.on(B,"blur",C)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(B,"mousewheel"),_ui.globalEvents.off(B,"mousedown"),_ui.globalEvents.off(B,"blur")}),(0,_vue.provide)("$xeTreeSelect",B),B.renderVN=()=>{var{className:e,modelValue:t,multiple:l,options:i,popupClassName:n,loading:a}=S,{initialized:o,isActivated:u,visiblePanel:r}=j,s=P.value,d=M.value,v=G.value,c=z.value,p=A.value,f=N.default,_=N.header,g=N.footer;const m=N.prefix;var h=L.value,b=U.value,x=R.value,C=W.value,E=V.value,I=$.value,y=D.value,T=K.value,F=Z.value;return p?(0,_vue.h)("div",{ref:w,class:["vxe-tree-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-tree-select-slots",ref:"hideOption"},f?f({}):[]),(0,_vue.h)("span",{class:"vxe-tree-select-label"},v)]):(0,_vue.h)("div",{ref:w,class:["vxe-tree-select",e?_xeUtils.default.isFunction(e)?e({$treeSelect:B}):e:"",{["size--"+s]:s,"is--visible":r,"is--disabled":d,"is--loading":a,"is--active":u}]},[(0,_vue.h)(_input.default,{ref:O,clearable:S.clearable,placeholder:S.placeholder,readonly:!0,disabled:d,type:"text",prefixIcon:S.prefixIcon,suffixIcon:a?(0,_ui.getIcon)().TREE_SELECT_LOADED:r?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:v,onClear:J,onClick:X,onFocus:Q,onBlur:Y,onSuffixClick:H},m?{prefix:()=>m({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!c||!o},[(0,_vue.h)("div",{ref:q,class:["vxe-table--ignore-clear vxe-tree-select--panel",n?_xeUtils.default.isFunction(n)?n({$treeSelect:B}):n:"",{["size--"+s]:s,"is--transfer":c,"ani--leave":!a&&j.visibleAnimate,"ani--enter":!a&&r}],placement:j.panelPlacement,style:j.panelStyle},o?[(0,_vue.h)("div",{class:"vxe-tree-select--panel-wrapper"},[_?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},_({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-tree-select--panel-body"},[(0,_vue.h)("div",{ref:k,class:"vxe-tree-select-option--wrapper"},[(0,_vue.h)(_tree.default,{class:"vxe-tree-select--tree",data:i,indent:h.indent,showRadio:!l,radioConfig:C,checkNodeKey:l?null:t,showCheckbox:!!l,checkNodeKeys:l?t:null,checkboxConfig:x,titleField:E,valueField:I,keyField:h.keyField,childrenField:h.childrenField||y,parentField:h.parentField||T,hasChildField:h.hasChildField||F,accordion:h.accordion,nodeConfig:b,lazy:h.lazy,loadMethod:h.loadMethod,toggleMethod:h.toggleMethod,transform:h.transform,trigger:h.trigger,showIcon:h.showIcon,showLine:h.showLine,iconOpen:h.iconOpen,iconLoaded:h.iconLoaded,iconClose:h.iconClose,onNodeClick:ee,onRadioChange:te,onCheckboxChange:le})])]),g?(0,_vue.h)("div",{class:"vxe-tree-select--panel-footer"},g({})):(0,_vue.createCommentVNode)()])]:[])])])},B},render(){return this.renderVN()}});