vxe-pc-ui 4.20.34 → 4.20.35

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 (367) hide show
  1. package/dist/all.esm.js +45718 -45038
  2. package/dist/all.esm.min.js +3 -3
  3. package/dist/style.css +307 -1
  4. package/dist/style.mini.css +1 -1
  5. package/es/alert/src/alert.js +117 -114
  6. package/es/anchor/src/anchor-link.js +110 -107
  7. package/es/anchor/src/anchor.js +212 -209
  8. package/es/avatar/src/avatar.js +132 -129
  9. package/es/backtop/src/backtop.js +267 -264
  10. package/es/badge/src/badge.js +102 -99
  11. package/es/breadcrumb/src/breadcrumb-item.js +104 -101
  12. package/es/breadcrumb/src/breadcrumb.js +70 -67
  13. package/es/button/src/button-group.js +88 -85
  14. package/es/calendar/src/calendar.js +1371 -1368
  15. package/es/card/src/card.js +235 -232
  16. package/es/carousel/src/carousel-item.js +78 -75
  17. package/es/carousel/src/carousel.js +392 -389
  18. package/es/cascader/src/cascader.js +1667 -1664
  19. package/es/checkbox/src/button.js +198 -195
  20. package/es/checkbox/src/checkbox.js +181 -178
  21. package/es/checkbox/src/group.js +210 -207
  22. package/es/collapse/src/collapse-pane.js +98 -95
  23. package/es/collapse/src/collapse.js +340 -337
  24. package/es/color-picker/src/color-picker.js +1116 -1113
  25. package/es/components.d.ts +1 -0
  26. package/es/components.js +3 -0
  27. package/es/context-menu/src/context-menu.js +601 -598
  28. package/es/countdown/src/countdown.js +224 -221
  29. package/es/date-panel/src/date-panel.js +1905 -1902
  30. package/es/date-picker/src/date-picker.js +1537 -1534
  31. package/es/date-range-picker/src/date-range-picker.js +1412 -1409
  32. package/es/divider/src/divider.js +80 -77
  33. package/es/drawer/src/drawer.js +778 -775
  34. package/es/empty/src/empty.js +100 -97
  35. package/es/form/src/form-group.js +74 -71
  36. package/es/form/src/form-item.js +76 -73
  37. package/es/form/src/form.js +789 -786
  38. package/es/icon/src/icon.js +59 -56
  39. package/es/icon/style.css +1 -1
  40. package/es/icon/style.mini.css +1 -1
  41. package/es/icon-picker/src/icon-picker.js +719 -716
  42. package/es/image/src/group.js +130 -127
  43. package/es/image/src/image.js +243 -240
  44. package/es/image/src/preview.js +627 -624
  45. package/es/index.esm.js +2 -0
  46. package/es/index.js +2 -0
  47. package/es/input/src/input.js +2700 -2697
  48. package/es/layout-aside/src/layout-aside.js +138 -135
  49. package/es/layout-body/src/layout-body.js +145 -142
  50. package/es/layout-container/src/layout-container.js +71 -68
  51. package/es/layout-footer/src/layout-footer.js +60 -57
  52. package/es/layout-header/src/layout-header.js +58 -55
  53. package/es/link/src/link.js +131 -128
  54. package/es/list/src/list.js +2174 -2171
  55. package/es/loading/src/loading.js +141 -138
  56. package/es/mention/src/mention.js +49 -46
  57. package/es/menu/src/menu.js +799 -796
  58. package/es/modal/src/modal.js +1519 -1527
  59. package/es/notice-bar/src/notice-bar.js +168 -165
  60. package/es/number-input/src/number-input.js +1094 -1091
  61. package/es/pager/src/pager.js +767 -764
  62. package/es/password-input/src/password-input.js +431 -428
  63. package/es/print/src/page-break.js +63 -60
  64. package/es/print/src/print.js +303 -300
  65. package/es/pulldown/src/pulldown.js +403 -400
  66. package/es/radio/src/button.js +214 -211
  67. package/es/radio/src/group.js +195 -192
  68. package/es/radio/src/radio.js +194 -191
  69. package/es/rate/src/rate.js +164 -161
  70. package/es/result/src/result.js +116 -113
  71. package/es/row/src/col.js +133 -130
  72. package/es/row/src/row.js +111 -108
  73. package/es/scrollbar/src/scrollbar.js +518 -515
  74. package/es/segmented/src/segmented.js +240 -237
  75. package/es/select/src/optgroup.js +44 -41
  76. package/es/select/src/option.js +39 -36
  77. package/es/select/src/select.js +1914 -1896
  78. package/es/slider/src/slider.js +419 -416
  79. package/es/space/src/space.js +190 -187
  80. package/es/splitter/src/splitter-panel.js +146 -143
  81. package/es/splitter/src/splitter.js +917 -914
  82. package/es/step-item/index.d.ts +76 -0
  83. package/es/step-item/index.js +17 -0
  84. package/es/steps/index.d.ts +288 -34
  85. package/es/steps/src/step-info.d.ts +6 -0
  86. package/es/steps/src/step-info.js +20 -0
  87. package/es/steps/src/step-item.d.ts +14 -0
  88. package/es/steps/src/step-item.js +39 -0
  89. package/es/steps/src/steps.d.ts +68 -8
  90. package/es/steps/src/steps.js +299 -47
  91. package/es/steps/src/util.d.ts +7 -0
  92. package/es/steps/src/util.js +44 -0
  93. package/es/steps/style.css +297 -0
  94. package/es/steps/style.mini.css +1 -0
  95. package/es/style.css +307 -1
  96. package/es/style.mini.css +1 -1
  97. package/es/switch/src/switch.js +228 -225
  98. package/es/table-select/src/table-select.js +865 -862
  99. package/es/table-transfer/src/table-transfer.js +61 -58
  100. package/es/tabs/src/tab-pane.js +102 -99
  101. package/es/tabs/src/tabs.js +936 -933
  102. package/es/tag/src/tag.js +163 -160
  103. package/es/text/src/text.js +232 -229
  104. package/es/text-ellipsis/src/text-ellipsis.js +252 -249
  105. package/es/textarea/src/textarea.js +434 -431
  106. package/es/timeline/src/timeline.js +74 -36
  107. package/es/timeline/src/util.js +7 -4
  108. package/es/tip/src/tip.js +117 -114
  109. package/es/tooltip/src/tooltip.js +552 -549
  110. package/es/tour/src/tour.js +49 -46
  111. package/es/transfer/src/transfer.js +95 -92
  112. package/es/tree/src/tree.js +3379 -3376
  113. package/es/tree-select/src/tree-select.js +969 -966
  114. package/es/ui/index.js +8 -2
  115. package/es/ui/src/log.js +1 -1
  116. package/es/upload/src/upload.js +1791 -1788
  117. package/es/vxe-icon/style.css +1 -1
  118. package/es/vxe-icon/style.mini.css +1 -1
  119. package/es/vxe-steps/style.css +297 -0
  120. package/es/vxe-steps/style.mini.css +1 -0
  121. package/es/watermark/src/watermark.js +158 -155
  122. package/lib/alert/src/alert.js +117 -114
  123. package/lib/anchor/src/anchor-link.js +110 -107
  124. package/lib/anchor/src/anchor.js +212 -209
  125. package/lib/avatar/src/avatar.js +132 -129
  126. package/lib/backtop/src/backtop.js +267 -264
  127. package/lib/badge/src/badge.js +102 -99
  128. package/lib/breadcrumb/src/breadcrumb-item.js +104 -101
  129. package/lib/breadcrumb/src/breadcrumb.js +70 -67
  130. package/lib/button/src/button-group.js +88 -85
  131. package/lib/calendar/src/calendar.js +1371 -1368
  132. package/lib/card/src/card.js +235 -232
  133. package/lib/carousel/src/carousel-item.js +78 -75
  134. package/lib/carousel/src/carousel.js +392 -389
  135. package/lib/cascader/src/cascader.js +1665 -1662
  136. package/lib/checkbox/src/button.js +198 -195
  137. package/lib/checkbox/src/checkbox.js +181 -178
  138. package/lib/checkbox/src/group.js +210 -207
  139. package/lib/collapse/src/collapse-pane.js +98 -95
  140. package/lib/collapse/src/collapse.js +340 -337
  141. package/lib/color-picker/src/color-picker.js +1116 -1113
  142. package/lib/components.js +3 -0
  143. package/lib/context-menu/src/context-menu.js +601 -598
  144. package/lib/countdown/src/countdown.js +224 -221
  145. package/lib/date-panel/src/date-panel.js +1905 -1902
  146. package/lib/date-picker/src/date-picker.js +1537 -1534
  147. package/lib/date-range-picker/src/date-range-picker.js +1412 -1409
  148. package/lib/divider/src/divider.js +80 -77
  149. package/lib/drawer/src/drawer.js +778 -775
  150. package/lib/empty/src/empty.js +100 -97
  151. package/lib/form/src/form-group.js +74 -71
  152. package/lib/form/src/form-item.js +76 -73
  153. package/lib/form/src/form.js +789 -786
  154. package/lib/icon/src/icon.js +59 -56
  155. package/lib/icon/style/style.css +1 -1
  156. package/lib/icon/style/style.mini.css +1 -1
  157. package/lib/icon-picker/src/icon-picker.js +719 -716
  158. package/lib/image/src/group.js +130 -127
  159. package/lib/image/src/image.js +243 -240
  160. package/lib/image/src/preview.js +627 -624
  161. package/lib/index.common.js +2 -0
  162. package/lib/index.js +2 -0
  163. package/lib/index.umd.js +47411 -46732
  164. package/lib/index.umd.min.js +3 -3
  165. package/lib/input/src/input.js +2700 -2697
  166. package/lib/layout-aside/src/layout-aside.js +138 -135
  167. package/lib/layout-body/src/layout-body.js +145 -142
  168. package/lib/layout-container/src/layout-container.js +71 -68
  169. package/lib/layout-footer/src/layout-footer.js +60 -57
  170. package/lib/layout-header/src/layout-header.js +58 -55
  171. package/lib/link/src/link.js +131 -128
  172. package/lib/list/src/list.js +2173 -2170
  173. package/lib/loading/src/loading.js +141 -138
  174. package/lib/mention/src/mention.js +49 -46
  175. package/lib/menu/src/menu.js +799 -796
  176. package/lib/modal/src/modal.js +1519 -1527
  177. package/lib/notice-bar/src/notice-bar.js +168 -165
  178. package/lib/number-input/src/number-input.js +1094 -1091
  179. package/lib/pager/src/pager.js +767 -764
  180. package/lib/password-input/src/password-input.js +431 -428
  181. package/lib/print/src/page-break.js +63 -60
  182. package/lib/print/src/print.js +303 -300
  183. package/lib/pulldown/src/pulldown.js +403 -400
  184. package/lib/radio/src/button.js +214 -211
  185. package/lib/radio/src/group.js +195 -192
  186. package/lib/radio/src/radio.js +194 -191
  187. package/lib/rate/src/rate.js +164 -161
  188. package/lib/result/src/result.js +116 -113
  189. package/lib/row/src/col.js +133 -130
  190. package/lib/row/src/row.js +111 -108
  191. package/lib/scrollbar/src/scrollbar.js +518 -515
  192. package/lib/segmented/src/segmented.js +240 -237
  193. package/lib/select/src/optgroup.js +44 -41
  194. package/lib/select/src/option.js +39 -36
  195. package/lib/select/src/select.js +1915 -1897
  196. package/lib/slider/src/slider.js +419 -416
  197. package/lib/space/src/space.js +190 -187
  198. package/lib/splitter/src/splitter-panel.js +146 -143
  199. package/lib/splitter/src/splitter.js +917 -914
  200. package/lib/step-item/index.js +47 -0
  201. package/lib/steps/src/step-info.js +49 -0
  202. package/lib/steps/src/step-item.js +59 -0
  203. package/lib/steps/src/steps.js +298 -46
  204. package/lib/steps/src/util.js +74 -0
  205. package/lib/steps/style/style.css +297 -0
  206. package/lib/steps/style/style.mini.css +1 -0
  207. package/lib/style.css +307 -1
  208. package/lib/style.mini.css +1 -1
  209. package/lib/switch/src/switch.js +228 -225
  210. package/lib/table-select/src/table-select.js +865 -862
  211. package/lib/table-transfer/src/table-transfer.js +61 -58
  212. package/lib/tabs/src/tab-pane.js +102 -99
  213. package/lib/tabs/src/tabs.js +936 -933
  214. package/lib/tag/src/tag.js +163 -160
  215. package/lib/text/src/text.js +232 -229
  216. package/lib/text-ellipsis/src/text-ellipsis.js +252 -249
  217. package/lib/textarea/src/textarea.js +434 -431
  218. package/lib/timeline/src/timeline.js +74 -36
  219. package/lib/timeline/src/util.js +7 -4
  220. package/lib/tip/src/tip.js +117 -114
  221. package/lib/tooltip/src/tooltip.js +552 -549
  222. package/lib/tour/src/tour.js +49 -46
  223. package/lib/transfer/src/transfer.js +95 -92
  224. package/lib/tree/src/tree.js +3379 -3376
  225. package/lib/tree-select/src/tree-select.js +969 -966
  226. package/lib/ui/index.js +8 -2
  227. package/lib/ui/src/log.js +1 -1
  228. package/lib/upload/src/upload.js +1788 -1785
  229. package/lib/vxe-icon/style/style.css +1 -1
  230. package/lib/vxe-icon/style/style.mini.css +1 -1
  231. package/lib/vxe-steps/style/style.css +297 -0
  232. package/lib/vxe-steps/style/style.mini.css +1 -0
  233. package/lib/watermark/src/watermark.js +158 -155
  234. package/package.json +1 -1
  235. package/packages/alert/src/alert.ts +2 -2
  236. package/packages/anchor/src/anchor-link.ts +2 -2
  237. package/packages/anchor/src/anchor.ts +2 -2
  238. package/packages/avatar/src/avatar.ts +2 -2
  239. package/packages/backtop/src/backtop.ts +2 -2
  240. package/packages/badge/src/badge.ts +2 -2
  241. package/packages/breadcrumb/src/breadcrumb-item.ts +2 -2
  242. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  243. package/packages/button/src/button-group.ts +2 -2
  244. package/packages/calendar/src/calendar.ts +2 -2
  245. package/packages/card/src/card.ts +2 -2
  246. package/packages/carousel/src/carousel-item.ts +2 -2
  247. package/packages/carousel/src/carousel.ts +2 -2
  248. package/packages/cascader/src/cascader.ts +2 -2
  249. package/packages/checkbox/src/button.ts +3 -15
  250. package/packages/checkbox/src/checkbox.ts +2 -2
  251. package/packages/checkbox/src/group.ts +2 -2
  252. package/packages/collapse/src/collapse-pane.ts +2 -2
  253. package/packages/collapse/src/collapse.ts +2 -2
  254. package/packages/color-picker/src/color-picker.ts +2 -2
  255. package/packages/components.ts +3 -0
  256. package/packages/context-menu/src/context-menu.ts +3 -16
  257. package/packages/countdown/src/countdown.ts +2 -2
  258. package/packages/date-panel/src/date-panel.ts +2 -2
  259. package/packages/date-picker/src/date-picker.ts +2 -2
  260. package/packages/date-range-picker/src/date-range-picker.ts +2 -2
  261. package/packages/divider/src/divider.ts +2 -2
  262. package/packages/drawer/src/drawer.ts +2 -2
  263. package/packages/empty/src/empty.ts +2 -2
  264. package/packages/form/src/form-group.ts +2 -2
  265. package/packages/form/src/form-item.ts +2 -2
  266. package/packages/form/src/form.ts +2 -2
  267. package/packages/icon/src/icon.ts +2 -2
  268. package/packages/icon-picker/src/icon-picker.ts +2 -2
  269. package/packages/image/src/group.ts +2 -2
  270. package/packages/image/src/image.ts +2 -2
  271. package/packages/image/src/preview.ts +3 -16
  272. package/packages/index.ts +2 -2
  273. package/packages/input/src/input.ts +2 -2
  274. package/packages/layout-aside/src/layout-aside.ts +2 -2
  275. package/packages/layout-body/src/layout-body.ts +2 -2
  276. package/packages/layout-container/src/layout-container.ts +3 -14
  277. package/packages/layout-footer/src/layout-footer.ts +2 -2
  278. package/packages/layout-header/src/layout-header.ts +2 -2
  279. package/packages/link/src/link.ts +2 -2
  280. package/packages/list/src/list.ts +2 -2
  281. package/packages/loading/src/loading.ts +2 -2
  282. package/packages/mention/src/mention.ts +2 -2
  283. package/packages/menu/src/menu.ts +2 -2
  284. package/packages/modal/src/modal.ts +5 -20
  285. package/packages/notice-bar/src/notice-bar.ts +2 -2
  286. package/packages/number-input/src/number-input.ts +3 -17
  287. package/packages/pager/src/pager.ts +2 -2
  288. package/packages/password-input/src/password-input.ts +2 -2
  289. package/packages/print/src/page-break.ts +2 -2
  290. package/packages/print/src/print.ts +2 -2
  291. package/packages/pulldown/src/pulldown.ts +2 -2
  292. package/packages/radio/src/button.ts +3 -16
  293. package/packages/radio/src/group.ts +3 -17
  294. package/packages/radio/src/radio.ts +2 -2
  295. package/packages/rate/src/rate.ts +2 -2
  296. package/packages/result/src/result.ts +2 -2
  297. package/packages/row/src/col.ts +2 -2
  298. package/packages/row/src/row.ts +2 -2
  299. package/packages/scrollbar/src/scrollbar.ts +3 -4
  300. package/packages/segmented/src/segmented.ts +2 -2
  301. package/packages/select/src/optgroup.ts +2 -2
  302. package/packages/select/src/option.ts +2 -2
  303. package/packages/select/src/select.ts +33 -19
  304. package/packages/slider/src/slider.ts +2 -2
  305. package/packages/space/src/space.ts +2 -2
  306. package/packages/splitter/src/splitter-panel.ts +2 -2
  307. package/packages/splitter/src/splitter.ts +2 -2
  308. package/packages/step-item/index.ts +16 -0
  309. package/packages/steps/src/step-info.ts +18 -0
  310. package/packages/steps/src/step-item.ts +41 -0
  311. package/packages/steps/src/steps.ts +273 -13
  312. package/packages/steps/src/util.ts +44 -0
  313. package/packages/switch/src/switch.ts +2 -2
  314. package/packages/table-select/src/table-select.ts +2 -2
  315. package/packages/table-transfer/src/table-transfer.ts +3 -15
  316. package/packages/tabs/src/tab-pane.ts +2 -2
  317. package/packages/tabs/src/tabs.ts +2 -2
  318. package/packages/tag/src/tag.ts +2 -2
  319. package/packages/text/src/text.ts +2 -2
  320. package/packages/text-ellipsis/src/text-ellipsis.ts +2 -2
  321. package/packages/textarea/src/textarea.ts +2 -2
  322. package/packages/timeline/src/timeline-info.ts +17 -17
  323. package/packages/timeline/src/timeline.ts +93 -49
  324. package/packages/timeline/src/util.ts +44 -41
  325. package/packages/tip/src/tip.ts +2 -2
  326. package/packages/tooltip/src/tooltip.ts +2 -2
  327. package/packages/tour/src/tour.ts +2 -2
  328. package/packages/transfer/src/transfer.ts +2 -2
  329. package/packages/tree/src/tree.ts +2 -2
  330. package/packages/tree-select/src/tree-select.ts +2 -2
  331. package/packages/ui/index.ts +8 -1
  332. package/packages/upload/src/upload.ts +2 -2
  333. package/packages/watermark/src/watermark.ts +2 -2
  334. package/styles/all.scss +1 -0
  335. package/styles/components/step-item.scss +0 -0
  336. package/styles/components/steps.scss +354 -0
  337. package/styles/theme/base.scss +9 -0
  338. package/types/all.d.ts +3 -0
  339. package/types/components/gantt.d.ts +1 -3
  340. package/types/components/select.d.ts +1 -13
  341. package/types/components/step-item.d.ts +72 -0
  342. package/types/components/steps.d.ts +67 -8
  343. package/types/components/table.d.ts +7 -66
  344. package/types/handles/form-design.d.ts +1 -4
  345. package/types/ui/global-config.d.ts +2 -0
  346. package/types/ui/global-icon.d.ts +7 -0
  347. /package/dist/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  348. /package/dist/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  349. /package/dist/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  350. /package/es/icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  351. /package/es/icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  352. /package/es/icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  353. /package/es/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  354. /package/es/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  355. /package/es/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  356. /package/es/vxe-icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  357. /package/es/vxe-icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  358. /package/es/vxe-icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  359. /package/lib/icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  360. /package/lib/icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  361. /package/lib/icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  362. /package/lib/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  363. /package/lib/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  364. /package/lib/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  365. /package/lib/vxe-icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  366. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  367. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
@@ -38,1025 +38,1028 @@ function createInternalData() {
38
38
  lazyNodeMaps: {}
39
39
  };
40
40
  }
41
- var tree_select_default = defineVxeComponent({
42
- name: "VxeTreeSelect",
43
- props: {
44
- modelValue: [String, Number, Array],
45
- clearable: {
46
- type: Boolean,
47
- default: () => getConfig().treeSelect.clearable
41
+ var tree_select_default = (
42
+ /* define-vxe-component start */
43
+ defineVxeComponent({
44
+ name: "VxeTreeSelect",
45
+ props: {
46
+ modelValue: [String, Number, Array],
47
+ clearable: {
48
+ type: Boolean,
49
+ default: () => getConfig().treeSelect.clearable
50
+ },
51
+ placeholder: {
52
+ type: String,
53
+ default: () => XEUtils.eqNull(getConfig().treeSelect.placeholder) ? getI18n("vxe.base.pleaseSelect") : getConfig().treeSelect.placeholder
54
+ },
55
+ readonly: {
56
+ type: Boolean,
57
+ default: null
58
+ },
59
+ loading: Boolean,
60
+ disabled: {
61
+ type: Boolean,
62
+ default: null
63
+ },
64
+ showFullLabel: {
65
+ type: Boolean,
66
+ default: () => getConfig().treeSelect.showFullLabel
67
+ },
68
+ separator: {
69
+ type: String,
70
+ default: () => getConfig().treeSelect.separator
71
+ },
72
+ filterable: Boolean,
73
+ filterConfig: Object,
74
+ multiple: Boolean,
75
+ className: [String, Function],
76
+ /**
77
+ * 已废弃,请使用 popupConfig.className
78
+ * @deprecated
79
+ */
80
+ popupClassName: [String, Function],
81
+ prefixIcon: String,
82
+ placement: String,
83
+ lazyOptions: Array,
84
+ options: Array,
85
+ optionProps: Object,
86
+ /**
87
+ * 已废弃,请使用 popupConfig.zIndex
88
+ * @deprecated
89
+ */
90
+ zIndex: Number,
91
+ size: {
92
+ type: String,
93
+ default: () => getConfig().treeSelect.size || getConfig().size
94
+ },
95
+ remote: Boolean,
96
+ remoteConfig: Object,
97
+ showRadio: {
98
+ type: Boolean,
99
+ default: () => getConfig().treeSelect.showRadio
100
+ },
101
+ radioConfig: Object,
102
+ showCheckbox: {
103
+ type: Boolean,
104
+ default: () => getConfig().treeSelect.showCheckbox
105
+ },
106
+ checkboxConfig: Object,
107
+ popupConfig: Object,
108
+ treeConfig: Object,
109
+ menuConfig: Object,
110
+ virtualYConfig: Object,
111
+ /**
112
+ * 已废弃,被 checked-closable, clear-closable 替换
113
+ * @deprecated
114
+ */
115
+ autoClose: {
116
+ type: Boolean,
117
+ default: () => getConfig().treeSelect.autoClose
118
+ },
119
+ checkedClosable: {
120
+ type: Boolean,
121
+ default: () => getConfig().treeSelect.checkedClosable
122
+ },
123
+ clearClosable: {
124
+ type: Boolean,
125
+ default: () => getConfig().treeSelect.clearClosable
126
+ },
127
+ showCloseButton: {
128
+ type: Boolean,
129
+ default: () => getConfig().treeSelect.showCloseButton
130
+ },
131
+ showTotalButton: {
132
+ type: Boolean,
133
+ default: () => getConfig().treeSelect.showTotalButton
134
+ },
135
+ showCheckedButton: {
136
+ type: Boolean,
137
+ default: () => getConfig().treeSelect.showCheckedButton
138
+ },
139
+ showClearButton: {
140
+ type: Boolean,
141
+ default: () => getConfig().treeSelect.showClearButton
142
+ },
143
+ showExpandButton: {
144
+ type: Boolean,
145
+ default: () => getConfig().treeSelect.showExpandButton
146
+ },
147
+ transfer: {
148
+ type: Boolean,
149
+ default: null
150
+ },
151
+ /**
152
+ * 已废弃,被 remote-config.queryMethod 替换
153
+ * @deprecated
154
+ */
155
+ remoteMethod: Function
48
156
  },
49
- placeholder: {
50
- type: String,
51
- default: () => XEUtils.eqNull(getConfig().treeSelect.placeholder) ? getI18n("vxe.base.pleaseSelect") : getConfig().treeSelect.placeholder
52
- },
53
- readonly: {
54
- type: Boolean,
55
- default: null
56
- },
57
- loading: Boolean,
58
- disabled: {
59
- type: Boolean,
60
- default: null
61
- },
62
- showFullLabel: {
63
- type: Boolean,
64
- default: () => getConfig().treeSelect.showFullLabel
65
- },
66
- separator: {
67
- type: String,
68
- default: () => getConfig().treeSelect.separator
69
- },
70
- filterable: Boolean,
71
- filterConfig: Object,
72
- multiple: Boolean,
73
- className: [String, Function],
74
- /**
75
- * 已废弃,请使用 popupConfig.className
76
- * @deprecated
77
- */
78
- popupClassName: [String, Function],
79
- prefixIcon: String,
80
- placement: String,
81
- lazyOptions: Array,
82
- options: Array,
83
- optionProps: Object,
84
- /**
85
- * 已废弃,请使用 popupConfig.zIndex
86
- * @deprecated
87
- */
88
- zIndex: Number,
89
- size: {
90
- type: String,
91
- default: () => getConfig().treeSelect.size || getConfig().size
92
- },
93
- remote: Boolean,
94
- remoteConfig: Object,
95
- showRadio: {
96
- type: Boolean,
97
- default: () => getConfig().treeSelect.showRadio
98
- },
99
- radioConfig: Object,
100
- showCheckbox: {
101
- type: Boolean,
102
- default: () => getConfig().treeSelect.showCheckbox
103
- },
104
- checkboxConfig: Object,
105
- popupConfig: Object,
106
- treeConfig: Object,
107
- menuConfig: Object,
108
- virtualYConfig: Object,
109
- /**
110
- * 已废弃,被 checked-closable, clear-closable 替换
111
- * @deprecated
112
- */
113
- autoClose: {
114
- type: Boolean,
115
- default: () => getConfig().treeSelect.autoClose
116
- },
117
- checkedClosable: {
118
- type: Boolean,
119
- default: () => getConfig().treeSelect.checkedClosable
120
- },
121
- clearClosable: {
122
- type: Boolean,
123
- default: () => getConfig().treeSelect.clearClosable
124
- },
125
- showCloseButton: {
126
- type: Boolean,
127
- default: () => getConfig().treeSelect.showCloseButton
128
- },
129
- showTotalButton: {
130
- type: Boolean,
131
- default: () => getConfig().treeSelect.showTotalButton
132
- },
133
- showCheckedButton: {
134
- type: Boolean,
135
- default: () => getConfig().treeSelect.showCheckedButton
136
- },
137
- showClearButton: {
138
- type: Boolean,
139
- default: () => getConfig().treeSelect.showClearButton
140
- },
141
- showExpandButton: {
142
- type: Boolean,
143
- default: () => getConfig().treeSelect.showExpandButton
144
- },
145
- transfer: {
146
- type: Boolean,
147
- default: null
148
- },
149
- /**
150
- * 已废弃,被 remote-config.queryMethod 替换
151
- * @deprecated
152
- */
153
- remoteMethod: Function
154
- },
155
- emits: ["update:modelValue", "change", "all-change", "clear", "blur", "focus", "click", "node-click", "visible-change"],
156
- setup(props, context) {
157
- const { emit, slots } = context;
158
- const $xeModal = inject("$xeModal", null);
159
- const $xeDrawer = inject("$xeDrawer", null);
160
- const $xeTable = inject("$xeTable", null);
161
- const $xeForm = inject("$xeForm", null);
162
- const formItemInfo = inject("xeFormItemInfo", null);
163
- const xID = XEUtils.uniqueId();
164
- const { computeSize } = useFns.useSize(props);
165
- const refElem = ref();
166
- const refInput = ref();
167
- const refInpSearch = ref();
168
- const refTreeWrapper = ref();
169
- const refOptionPanel = ref();
170
- const refTree = ref();
171
- const reactData = reactive(createReactData());
172
- const internalData = createInternalData();
173
- const refMaps = {
174
- refElem
175
- };
176
- const computeFormReadonly = computed(() => {
177
- const { readonly } = props;
178
- if (readonly === null) {
179
- if ($xeForm) {
180
- return $xeForm.props.readonly;
157
+ emits: ["update:modelValue", "change", "all-change", "clear", "blur", "focus", "click", "node-click", "visible-change"],
158
+ setup(props, context) {
159
+ const { emit, slots } = context;
160
+ const $xeModal = inject("$xeModal", null);
161
+ const $xeDrawer = inject("$xeDrawer", null);
162
+ const $xeTable = inject("$xeTable", null);
163
+ const $xeForm = inject("$xeForm", null);
164
+ const formItemInfo = inject("xeFormItemInfo", null);
165
+ const xID = XEUtils.uniqueId();
166
+ const { computeSize } = useFns.useSize(props);
167
+ const refElem = ref();
168
+ const refInput = ref();
169
+ const refInpSearch = ref();
170
+ const refTreeWrapper = ref();
171
+ const refOptionPanel = ref();
172
+ const refTree = ref();
173
+ const reactData = reactive(createReactData());
174
+ const internalData = createInternalData();
175
+ const refMaps = {
176
+ refElem
177
+ };
178
+ const computeFormReadonly = computed(() => {
179
+ const { readonly } = props;
180
+ if (readonly === null) {
181
+ if ($xeForm) {
182
+ return $xeForm.props.readonly;
183
+ }
184
+ return false;
181
185
  }
182
- return false;
183
- }
184
- return readonly;
185
- });
186
- const computeIsDisabled = computed(() => {
187
- const { disabled } = props;
188
- if (disabled === null) {
189
- if ($xeForm) {
190
- return $xeForm.props.disabled;
186
+ return readonly;
187
+ });
188
+ const computeIsDisabled = computed(() => {
189
+ const { disabled } = props;
190
+ if (disabled === null) {
191
+ if ($xeForm) {
192
+ return $xeForm.props.disabled;
193
+ }
194
+ return false;
191
195
  }
192
- return false;
193
- }
194
- return disabled;
195
- });
196
- const computeBtnTransfer = computed(() => {
197
- const popupOpts = computePopupOpts.value;
198
- const { transfer } = popupOpts;
199
- if (XEUtils.isBoolean(transfer)) {
200
- return transfer;
201
- }
202
- if (props.transfer === null) {
203
- const globalTransfer = getConfig().treeSelect.transfer;
204
- if (XEUtils.isBoolean(globalTransfer)) {
205
- return globalTransfer;
196
+ return disabled;
197
+ });
198
+ const computeBtnTransfer = computed(() => {
199
+ const popupOpts = computePopupOpts.value;
200
+ const { transfer } = popupOpts;
201
+ if (XEUtils.isBoolean(transfer)) {
202
+ return transfer;
206
203
  }
207
- if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
208
- return true;
204
+ if (props.transfer === null) {
205
+ const globalTransfer = getConfig().treeSelect.transfer;
206
+ if (XEUtils.isBoolean(globalTransfer)) {
207
+ return globalTransfer;
208
+ }
209
+ if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
210
+ return true;
211
+ }
209
212
  }
210
- }
211
- return props.transfer;
212
- });
213
- const computePopupOpts = computed(() => {
214
- return Object.assign({}, getConfig().treeSelect.popupConfig, props.popupConfig);
215
- });
216
- const computeTreeOpts = computed(() => {
217
- return Object.assign({}, getConfig().treeSelect.treeConfig, props.treeConfig, { data: void 0 });
218
- });
219
- const computeMenuOpts = computed(() => {
220
- return Object.assign({}, getConfig().treeSelect.menuConfig, props.menuConfig);
221
- });
222
- const computeTreeNodeOpts = computed(() => {
223
- const treeOpts = computeTreeOpts.value;
224
- return Object.assign({ isHover: true }, treeOpts.nodeConfig);
225
- });
226
- const computeTreeCheckboxOpts = computed(() => {
227
- const { showCheckbox, checkboxConfig } = props;
228
- const treeOpts = computeTreeOpts.value;
229
- return Object.assign(
230
- {
231
- showIcon: XEUtils.isBoolean(showCheckbox) ? showCheckbox : !!treeOpts.showCheckbox
232
- },
233
- treeOpts.checkboxConfig,
234
- checkboxConfig,
235
- {
236
- trigger: "node"
213
+ return props.transfer;
214
+ });
215
+ const computePopupOpts = computed(() => {
216
+ return Object.assign({}, getConfig().treeSelect.popupConfig, props.popupConfig);
217
+ });
218
+ const computeTreeOpts = computed(() => {
219
+ return Object.assign({}, getConfig().treeSelect.treeConfig, props.treeConfig, { data: void 0 });
220
+ });
221
+ const computeMenuOpts = computed(() => {
222
+ return Object.assign({}, getConfig().treeSelect.menuConfig, props.menuConfig);
223
+ });
224
+ const computeTreeNodeOpts = computed(() => {
225
+ const treeOpts = computeTreeOpts.value;
226
+ return Object.assign({ isHover: true }, treeOpts.nodeConfig);
227
+ });
228
+ const computeTreeCheckboxOpts = computed(() => {
229
+ const { showCheckbox, checkboxConfig } = props;
230
+ const treeOpts = computeTreeOpts.value;
231
+ return Object.assign(
232
+ {
233
+ showIcon: XEUtils.isBoolean(showCheckbox) ? showCheckbox : !!treeOpts.showCheckbox
234
+ },
235
+ treeOpts.checkboxConfig,
236
+ checkboxConfig,
237
+ {
238
+ trigger: "node"
239
+ }
240
+ );
241
+ });
242
+ const computeTreeRadioOpts = computed(() => {
243
+ const { showRadio, radioConfig } = props;
244
+ const treeOpts = computeTreeOpts.value;
245
+ return Object.assign(
246
+ {
247
+ showIcon: XEUtils.isBoolean(showRadio) ? showRadio : !!treeOpts.showRadio
248
+ },
249
+ treeOpts.radioConfig,
250
+ radioConfig,
251
+ {
252
+ trigger: "node"
253
+ }
254
+ );
255
+ });
256
+ const computePropsOpts = computed(() => {
257
+ return Object.assign({}, getConfig().treeSelect.optionProps, props.optionProps);
258
+ });
259
+ const computeNodeKeyField = computed(() => {
260
+ const treeOpts = computeTreeOpts.value;
261
+ return treeOpts.keyField || "id";
262
+ });
263
+ const computeLabelField = computed(() => {
264
+ const propsOpts = computePropsOpts.value;
265
+ return propsOpts.label || "label";
266
+ });
267
+ const computeValueField = computed(() => {
268
+ const propsOpts = computePropsOpts.value;
269
+ return propsOpts.value || "value";
270
+ });
271
+ const computeChildrenField = computed(() => {
272
+ const propsOpts = computePropsOpts.value;
273
+ return propsOpts.children || "children";
274
+ });
275
+ const computeNodeParentField = computed(() => {
276
+ const propsOpts = computePropsOpts.value;
277
+ const treeOpts = computeTreeOpts.value;
278
+ return propsOpts.parent || treeOpts.parentField || "parentId";
279
+ });
280
+ const computeHasChildField = computed(() => {
281
+ const propsOpts = computePropsOpts.value;
282
+ return propsOpts.hasChild || "hasChild";
283
+ });
284
+ const computeVirtualYOpts = computed(() => {
285
+ return Object.assign({}, getConfig().treeSelect.virtualYConfig, props.virtualYConfig);
286
+ });
287
+ const computeRemoteOpts = computed(() => {
288
+ return Object.assign({}, getConfig().treeSelect.remoteConfig, props.remoteConfig);
289
+ });
290
+ const computeFilterOpts = computed(() => {
291
+ const treeOpts = computeTreeOpts.value;
292
+ return Object.assign({}, treeOpts.filterConfig, props.filterConfig);
293
+ });
294
+ const computeSelectVals = computed(() => {
295
+ const { modelValue } = props;
296
+ return XEUtils.eqNull(modelValue) ? [] : XEUtils.isArray(modelValue) ? modelValue : [modelValue];
297
+ });
298
+ const computeSelectLabel = computed(() => {
299
+ const { showFullLabel } = props;
300
+ const { fullOptFlag, lazyOptFlag: lazyOptFlag2 } = reactData;
301
+ const { fullNodeMaps, lazyNodeMaps } = internalData;
302
+ const labelField = computeLabelField.value;
303
+ const selectVals = computeSelectVals.value;
304
+ return selectVals.map((val) => {
305
+ const cacheItem = fullNodeMaps[val];
306
+ if (fullOptFlag && cacheItem) {
307
+ return showFullLabel ? cacheItem.fullLabel : cacheItem.item[labelField];
308
+ }
309
+ if (lazyOptFlag2) {
310
+ const lazyCacheItem = lazyNodeMaps[val];
311
+ if (lazyCacheItem) {
312
+ return showFullLabel ? lazyCacheItem.fullLabel : lazyCacheItem.item[labelField];
313
+ }
314
+ }
315
+ return val;
316
+ }).join(", ");
317
+ });
318
+ const computePopupWrapperStyle = computed(() => {
319
+ const popupOpts = computePopupOpts.value;
320
+ const { height, width } = popupOpts;
321
+ const stys = {};
322
+ if (width) {
323
+ stys.width = toCssUnit(width);
237
324
  }
238
- );
239
- });
240
- const computeTreeRadioOpts = computed(() => {
241
- const { showRadio, radioConfig } = props;
242
- const treeOpts = computeTreeOpts.value;
243
- return Object.assign(
244
- {
245
- showIcon: XEUtils.isBoolean(showRadio) ? showRadio : !!treeOpts.showRadio
246
- },
247
- treeOpts.radioConfig,
248
- radioConfig,
249
- {
250
- trigger: "node"
325
+ if (height) {
326
+ stys.height = toCssUnit(height);
327
+ stys.maxHeight = toCssUnit(height);
251
328
  }
252
- );
253
- });
254
- const computePropsOpts = computed(() => {
255
- return Object.assign({}, getConfig().treeSelect.optionProps, props.optionProps);
256
- });
257
- const computeNodeKeyField = computed(() => {
258
- const treeOpts = computeTreeOpts.value;
259
- return treeOpts.keyField || "id";
260
- });
261
- const computeLabelField = computed(() => {
262
- const propsOpts = computePropsOpts.value;
263
- return propsOpts.label || "label";
264
- });
265
- const computeValueField = computed(() => {
266
- const propsOpts = computePropsOpts.value;
267
- return propsOpts.value || "value";
268
- });
269
- const computeChildrenField = computed(() => {
270
- const propsOpts = computePropsOpts.value;
271
- return propsOpts.children || "children";
272
- });
273
- const computeNodeParentField = computed(() => {
274
- const propsOpts = computePropsOpts.value;
275
- const treeOpts = computeTreeOpts.value;
276
- return propsOpts.parent || treeOpts.parentField || "parentId";
277
- });
278
- const computeHasChildField = computed(() => {
279
- const propsOpts = computePropsOpts.value;
280
- return propsOpts.hasChild || "hasChild";
281
- });
282
- const computeVirtualYOpts = computed(() => {
283
- return Object.assign({}, getConfig().treeSelect.virtualYConfig, props.virtualYConfig);
284
- });
285
- const computeRemoteOpts = computed(() => {
286
- return Object.assign({}, getConfig().treeSelect.remoteConfig, props.remoteConfig);
287
- });
288
- const computeFilterOpts = computed(() => {
289
- const treeOpts = computeTreeOpts.value;
290
- return Object.assign({}, treeOpts.filterConfig, props.filterConfig);
291
- });
292
- const computeSelectVals = computed(() => {
293
- const { modelValue } = props;
294
- return XEUtils.eqNull(modelValue) ? [] : XEUtils.isArray(modelValue) ? modelValue : [modelValue];
295
- });
296
- const computeSelectLabel = computed(() => {
297
- const { showFullLabel } = props;
298
- const { fullOptFlag, lazyOptFlag: lazyOptFlag2 } = reactData;
299
- const { fullNodeMaps, lazyNodeMaps } = internalData;
300
- const labelField = computeLabelField.value;
301
- const selectVals = computeSelectVals.value;
302
- return selectVals.map((val) => {
303
- const cacheItem = fullNodeMaps[val];
304
- if (fullOptFlag && cacheItem) {
305
- return showFullLabel ? cacheItem.fullLabel : cacheItem.item[labelField];
329
+ return stys;
330
+ });
331
+ const computeMaps = {};
332
+ const $xeTreeSelect = {
333
+ xID,
334
+ props,
335
+ context,
336
+ reactData,
337
+ internalData,
338
+ getRefMaps: () => refMaps,
339
+ getComputeMaps: () => computeMaps
340
+ };
341
+ const dispatchEvent = (type, params, evnt) => {
342
+ emit(type, createEvent(evnt, { $treeSelect: $xeTreeSelect }, params));
343
+ };
344
+ const emitModel = (value) => {
345
+ emit("update:modelValue", value);
346
+ };
347
+ const callSlot = (slotFunc, params) => {
348
+ if (slotFunc) {
349
+ if (XEUtils.isString(slotFunc)) {
350
+ slotFunc = slots[slotFunc] || null;
351
+ }
352
+ if (XEUtils.isFunction(slotFunc)) {
353
+ return getSlotVNs(slotFunc(params));
354
+ }
306
355
  }
307
- if (lazyOptFlag2) {
308
- const lazyCacheItem = lazyNodeMaps[val];
309
- if (lazyCacheItem) {
310
- return showFullLabel ? lazyCacheItem.fullLabel : lazyCacheItem.item[labelField];
356
+ return [];
357
+ };
358
+ const treeSelectMethods = {
359
+ dispatchEvent
360
+ };
361
+ const getNodeid = (option) => {
362
+ const nodeKeyField = computeNodeKeyField.value;
363
+ const nodeid = option[nodeKeyField];
364
+ return nodeid ? encodeURIComponent(nodeid) : "";
365
+ };
366
+ const handleCacheMap = (optList) => {
367
+ const { separator } = props;
368
+ const treeOpts = computeTreeOpts.value;
369
+ const nodeKeyField = computeNodeKeyField.value;
370
+ const nodeParentField = computeNodeParentField.value;
371
+ const childrenField = computeChildrenField.value;
372
+ const valueField = computeValueField.value;
373
+ const labelField = computeLabelField.value;
374
+ const { transform } = treeOpts;
375
+ const nodeMaps = {};
376
+ const keyMaps = {};
377
+ const handleOptNode = (item, index, items, path, parentItem, nodes) => {
378
+ let nodeid = getNodeid(item);
379
+ if (!nodeid) {
380
+ nodeid = getOptUniqueId();
381
+ }
382
+ if (keyMaps[nodeid]) {
383
+ errLog("vxe.error.repeatKey", [nodeKeyField, nodeid]);
384
+ }
385
+ keyMaps[nodeid] = true;
386
+ const value = item[valueField];
387
+ if (nodeMaps[value]) {
388
+ errLog("vxe.error.repeatKey", [valueField, value]);
389
+ }
390
+ nodeMaps[value] = {
391
+ item,
392
+ index,
393
+ items,
394
+ parent: parentItem,
395
+ nodes,
396
+ fullLabel: nodes.map((item2) => item2[labelField]).join(separator || " / ")
397
+ };
398
+ };
399
+ if (optList) {
400
+ if (transform) {
401
+ const treeList = XEUtils.toArrayTree(optList, {
402
+ key: nodeKeyField,
403
+ parentKey: nodeParentField,
404
+ mapChildren: childrenField,
405
+ rootParentValue: treeOpts.rootParentValue,
406
+ rootValues: treeOpts.rootValues
407
+ });
408
+ XEUtils.eachTree(treeList, handleOptNode, { children: childrenField });
409
+ } else {
410
+ XEUtils.eachTree(optList, handleOptNode, { children: childrenField });
311
411
  }
312
412
  }
313
- return val;
314
- }).join(", ");
315
- });
316
- const computePopupWrapperStyle = computed(() => {
317
- const popupOpts = computePopupOpts.value;
318
- const { height, width } = popupOpts;
319
- const stys = {};
320
- if (width) {
321
- stys.width = toCssUnit(width);
322
- }
323
- if (height) {
324
- stys.height = toCssUnit(height);
325
- stys.maxHeight = toCssUnit(height);
326
- }
327
- return stys;
328
- });
329
- const computeMaps = {};
330
- const $xeTreeSelect = {
331
- xID,
332
- props,
333
- context,
334
- reactData,
335
- internalData,
336
- getRefMaps: () => refMaps,
337
- getComputeMaps: () => computeMaps
338
- };
339
- const dispatchEvent = (type, params, evnt) => {
340
- emit(type, createEvent(evnt, { $treeSelect: $xeTreeSelect }, params));
341
- };
342
- const emitModel = (value) => {
343
- emit("update:modelValue", value);
344
- };
345
- const callSlot = (slotFunc, params) => {
346
- if (slotFunc) {
347
- if (XEUtils.isString(slotFunc)) {
348
- slotFunc = slots[slotFunc] || null;
413
+ return nodeMaps;
414
+ };
415
+ const cacheDataMap = () => {
416
+ const { options } = props;
417
+ internalData.fullNodeMaps = handleCacheMap(options || []);
418
+ internalData.fullOptionList = options || [];
419
+ reactData.fullOptFlag++;
420
+ };
421
+ const cacheLazyDataMap = () => {
422
+ const { lazyOptions } = props;
423
+ internalData.lazyNodeMaps = handleCacheMap(lazyOptions || []);
424
+ reactData.lazyOptFlag++;
425
+ };
426
+ const updateZindex = () => {
427
+ const popupOpts = computePopupOpts.value;
428
+ const customZIndex = popupOpts.zIndex || props.zIndex;
429
+ if (customZIndex) {
430
+ reactData.panelIndex = XEUtils.toNumber(customZIndex);
431
+ } else if (reactData.panelIndex < getLastZIndex()) {
432
+ reactData.panelIndex = nextZIndex();
349
433
  }
350
- if (XEUtils.isFunction(slotFunc)) {
351
- return getSlotVNs(slotFunc(params));
434
+ };
435
+ const updatePlacement = () => {
436
+ const { placement } = props;
437
+ const { panelIndex } = reactData;
438
+ const targetElem = refElem.value;
439
+ const panelElem = refOptionPanel.value;
440
+ const btnTransfer = computeBtnTransfer.value;
441
+ const popupOpts = computePopupOpts.value;
442
+ const handleStyle = () => {
443
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
444
+ isMinWidth: !popupOpts.width,
445
+ placement: popupOpts.placement || placement,
446
+ defaultPlacement: popupOpts.defaultPlacement,
447
+ appendTo: popupOpts.appendTo,
448
+ teleportTo: btnTransfer
449
+ });
450
+ const panelStyle = Object.assign(ppObj.style, {
451
+ zIndex: panelIndex
452
+ });
453
+ reactData.panelStyle = panelStyle;
454
+ reactData.panelPlacement = ppObj.placement;
455
+ };
456
+ handleStyle();
457
+ return nextTick().then(handleStyle);
458
+ };
459
+ const showOptionPanel = (evnt) => {
460
+ const { loading, remote, filterable } = props;
461
+ const { fullOptionList } = internalData;
462
+ const isDisabled = computeIsDisabled.value;
463
+ const remoteOpts = computeRemoteOpts.value;
464
+ if (!loading && !isDisabled) {
465
+ clearTimeout(internalData.hpTimeout);
466
+ if (!reactData.initialized) {
467
+ reactData.initialized = true;
468
+ }
469
+ reactData.isActivated = true;
470
+ reactData.isAniVisible = true;
471
+ if (filterable) {
472
+ if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !fullOptionList.length) {
473
+ handleSearchEvent();
474
+ }
475
+ }
476
+ setTimeout(() => {
477
+ reactData.visiblePanel = true;
478
+ handleFocusSearch();
479
+ updatePlacement();
480
+ }, 10);
481
+ updateZindex();
482
+ updatePlacement();
483
+ dispatchEvent("visible-change", { visible: true }, evnt || null);
352
484
  }
353
- }
354
- return [];
355
- };
356
- const treeSelectMethods = {
357
- dispatchEvent
358
- };
359
- const getNodeid = (option) => {
360
- const nodeKeyField = computeNodeKeyField.value;
361
- const nodeid = option[nodeKeyField];
362
- return nodeid ? encodeURIComponent(nodeid) : "";
363
- };
364
- const handleCacheMap = (optList) => {
365
- const { separator } = props;
366
- const treeOpts = computeTreeOpts.value;
367
- const nodeKeyField = computeNodeKeyField.value;
368
- const nodeParentField = computeNodeParentField.value;
369
- const childrenField = computeChildrenField.value;
370
- const valueField = computeValueField.value;
371
- const labelField = computeLabelField.value;
372
- const { transform } = treeOpts;
373
- const nodeMaps = {};
374
- const keyMaps = {};
375
- const handleOptNode = (item, index, items, path, parentItem, nodes) => {
376
- let nodeid = getNodeid(item);
377
- if (!nodeid) {
378
- nodeid = getOptUniqueId();
485
+ };
486
+ const hideOptionPanel = (evnt) => {
487
+ const { filterable } = props;
488
+ const filterOpts = computeFilterOpts.value;
489
+ if (filterable) {
490
+ if (filterOpts.clearOnClose) {
491
+ reactData.searchValue = "";
492
+ }
379
493
  }
380
- if (keyMaps[nodeid]) {
381
- errLog("vxe.error.repeatKey", [nodeKeyField, nodeid]);
494
+ reactData.visiblePanel = false;
495
+ internalData.hpTimeout = setTimeout(() => {
496
+ reactData.isAniVisible = false;
497
+ }, 350);
498
+ dispatchEvent("visible-change", { visible: false }, evnt || null);
499
+ };
500
+ const changeEvent = (evnt, selectValue, node) => {
501
+ const value = XEUtils.isArray(selectValue) ? selectValue.map(deModelValue) : deModelValue(selectValue);
502
+ emitModel(value);
503
+ if (value !== props.modelValue) {
504
+ dispatchEvent("change", { value, node, option: node }, evnt);
505
+ if ($xeForm && formItemInfo) {
506
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
507
+ }
382
508
  }
383
- keyMaps[nodeid] = true;
384
- const value = item[valueField];
385
- if (nodeMaps[value]) {
386
- errLog("vxe.error.repeatKey", [valueField, value]);
509
+ };
510
+ const clearValueEvent = (evnt, selectValue) => {
511
+ changeEvent(evnt, selectValue, null);
512
+ dispatchEvent("clear", { value: selectValue }, evnt);
513
+ };
514
+ const clearEvent = (params) => {
515
+ const { $event } = params;
516
+ clearValueEvent($event, null);
517
+ hideOptionPanel($event);
518
+ };
519
+ const allCheckedPanelEvent = (params) => {
520
+ const { $event } = params;
521
+ const { multiple, autoClose, checkedClosable } = props;
522
+ const $tree = refTree.value;
523
+ if (multiple) {
524
+ if ($tree) {
525
+ $tree.setAllCheckboxNode(true).then(({ checkNodeKeys, checkNodes }) => {
526
+ changeEvent($event, checkNodeKeys, checkNodes[0]);
527
+ dispatchEvent("all-change", { value: checkNodeKeys }, $event);
528
+ if (XEUtils.isBoolean(checkedClosable) ? checkedClosable : autoClose) {
529
+ hideOptionPanel($event);
530
+ }
531
+ });
532
+ }
387
533
  }
388
- nodeMaps[value] = {
389
- item,
390
- index,
391
- items,
392
- parent: parentItem,
393
- nodes,
394
- fullLabel: nodes.map((item2) => item2[labelField]).join(separator || " / ")
395
- };
396
534
  };
397
- if (optList) {
398
- if (transform) {
399
- const treeList = XEUtils.toArrayTree(optList, {
400
- key: nodeKeyField,
401
- parentKey: nodeParentField,
402
- mapChildren: childrenField,
403
- rootParentValue: treeOpts.rootParentValue,
404
- rootValues: treeOpts.rootValues
535
+ const clearCheckedPanelEvent = (params) => {
536
+ const { $event } = params;
537
+ const { multiple, autoClose, clearClosable } = props;
538
+ const $tree = refTree.value;
539
+ if ($tree) {
540
+ const value = multiple ? [] : null;
541
+ $tree.clearCheckboxNode().then(() => {
542
+ if (XEUtils.isBoolean(clearClosable) ? clearClosable : autoClose) {
543
+ hideOptionPanel($event);
544
+ }
405
545
  });
406
- XEUtils.eachTree(treeList, handleOptNode, { children: childrenField });
407
- } else {
408
- XEUtils.eachTree(optList, handleOptNode, { children: childrenField });
546
+ changeEvent($event, value, null);
547
+ dispatchEvent("clear", { value }, $event);
548
+ }
549
+ };
550
+ const closePanelEvent = (params) => {
551
+ const { $event } = params;
552
+ hideOptionPanel($event);
553
+ };
554
+ const allExpandPanelEvent = () => {
555
+ const $tree = refTree.value;
556
+ if ($tree) {
557
+ $tree.setAllExpandNode(true);
409
558
  }
410
- }
411
- return nodeMaps;
412
- };
413
- const cacheDataMap = () => {
414
- const { options } = props;
415
- internalData.fullNodeMaps = handleCacheMap(options || []);
416
- internalData.fullOptionList = options || [];
417
- reactData.fullOptFlag++;
418
- };
419
- const cacheLazyDataMap = () => {
420
- const { lazyOptions } = props;
421
- internalData.lazyNodeMaps = handleCacheMap(lazyOptions || []);
422
- reactData.lazyOptFlag++;
423
- };
424
- const updateZindex = () => {
425
- const popupOpts = computePopupOpts.value;
426
- const customZIndex = popupOpts.zIndex || props.zIndex;
427
- if (customZIndex) {
428
- reactData.panelIndex = XEUtils.toNumber(customZIndex);
429
- } else if (reactData.panelIndex < getLastZIndex()) {
430
- reactData.panelIndex = nextZIndex();
431
- }
432
- };
433
- const updatePlacement = () => {
434
- const { placement } = props;
435
- const { panelIndex } = reactData;
436
- const targetElem = refElem.value;
437
- const panelElem = refOptionPanel.value;
438
- const btnTransfer = computeBtnTransfer.value;
439
- const popupOpts = computePopupOpts.value;
440
- const handleStyle = () => {
441
- const ppObj = updatePanelPlacement(targetElem, panelElem, {
442
- isMinWidth: !popupOpts.width,
443
- placement: popupOpts.placement || placement,
444
- defaultPlacement: popupOpts.defaultPlacement,
445
- appendTo: popupOpts.appendTo,
446
- teleportTo: btnTransfer
447
- });
448
- const panelStyle = Object.assign(ppObj.style, {
449
- zIndex: panelIndex
450
- });
451
- reactData.panelStyle = panelStyle;
452
- reactData.panelPlacement = ppObj.placement;
453
559
  };
454
- handleStyle();
455
- return nextTick().then(handleStyle);
456
- };
457
- const showOptionPanel = (evnt) => {
458
- const { loading, remote, filterable } = props;
459
- const { fullOptionList } = internalData;
460
- const isDisabled = computeIsDisabled.value;
461
- const remoteOpts = computeRemoteOpts.value;
462
- if (!loading && !isDisabled) {
463
- clearTimeout(internalData.hpTimeout);
464
- if (!reactData.initialized) {
465
- reactData.initialized = true;
560
+ const clearExpandPanelEvent = () => {
561
+ const $tree = refTree.value;
562
+ if ($tree) {
563
+ $tree.clearAllExpandNode();
466
564
  }
467
- reactData.isActivated = true;
468
- reactData.isAniVisible = true;
469
- if (filterable) {
470
- if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !fullOptionList.length) {
471
- handleSearchEvent();
565
+ };
566
+ const handleGlobalMousedownEvent = (evnt) => {
567
+ const { visiblePanel } = reactData;
568
+ const isDisabled = computeIsDisabled.value;
569
+ if (!isDisabled) {
570
+ const el = refElem.value;
571
+ const panelElem = refOptionPanel.value;
572
+ reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelElem).flag;
573
+ if (visiblePanel && !reactData.isActivated) {
574
+ hideOptionPanel(evnt);
575
+ }
576
+ }
577
+ };
578
+ const handleGlobalBlurEvent = (evnt) => {
579
+ const { visiblePanel, isActivated } = reactData;
580
+ if (visiblePanel) {
581
+ hideOptionPanel(evnt);
582
+ }
583
+ if (isActivated) {
584
+ reactData.isActivated = false;
585
+ }
586
+ if (visiblePanel || isActivated) {
587
+ const $input = refInput.value;
588
+ if ($input) {
589
+ $input.blur();
472
590
  }
473
591
  }
474
- setTimeout(() => {
475
- reactData.visiblePanel = true;
476
- handleFocusSearch();
592
+ };
593
+ const handleGlobalResizeEvent = () => {
594
+ const { visiblePanel } = reactData;
595
+ if (visiblePanel) {
477
596
  updatePlacement();
478
- }, 10);
479
- updateZindex();
480
- updatePlacement();
481
- dispatchEvent("visible-change", { visible: true }, evnt || null);
482
- }
483
- };
484
- const hideOptionPanel = (evnt) => {
485
- const { filterable } = props;
486
- const filterOpts = computeFilterOpts.value;
487
- if (filterable) {
488
- if (filterOpts.clearOnClose) {
489
- reactData.searchValue = "";
490
597
  }
491
- }
492
- reactData.visiblePanel = false;
493
- internalData.hpTimeout = setTimeout(() => {
494
- reactData.isAniVisible = false;
495
- }, 350);
496
- dispatchEvent("visible-change", { visible: false }, evnt || null);
497
- };
498
- const changeEvent = (evnt, selectValue, node) => {
499
- const value = XEUtils.isArray(selectValue) ? selectValue.map(deModelValue) : deModelValue(selectValue);
500
- emitModel(value);
501
- if (value !== props.modelValue) {
502
- dispatchEvent("change", { value, node, option: node }, evnt);
503
- if ($xeForm && formItemInfo) {
504
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
598
+ };
599
+ const handleGlobalScrollEvent = () => {
600
+ const { visiblePanel } = reactData;
601
+ if (visiblePanel) {
602
+ updatePlacement();
505
603
  }
506
- }
507
- };
508
- const clearValueEvent = (evnt, selectValue) => {
509
- changeEvent(evnt, selectValue, null);
510
- dispatchEvent("clear", { value: selectValue }, evnt);
511
- };
512
- const clearEvent = (params) => {
513
- const { $event } = params;
514
- clearValueEvent($event, null);
515
- hideOptionPanel($event);
516
- };
517
- const allCheckedPanelEvent = (params) => {
518
- const { $event } = params;
519
- const { multiple, autoClose, checkedClosable } = props;
520
- const $tree = refTree.value;
521
- if (multiple) {
522
- if ($tree) {
523
- $tree.setAllCheckboxNode(true).then(({ checkNodeKeys, checkNodes }) => {
524
- changeEvent($event, checkNodeKeys, checkNodes[0]);
525
- dispatchEvent("all-change", { value: checkNodeKeys }, $event);
526
- if (XEUtils.isBoolean(checkedClosable) ? checkedClosable : autoClose) {
527
- hideOptionPanel($event);
604
+ };
605
+ const handleFocusSearch = () => {
606
+ if (props.filterable) {
607
+ nextTick(() => {
608
+ const inpSearch = refInpSearch.value;
609
+ if (inpSearch) {
610
+ inpSearch.focus();
528
611
  }
529
612
  });
530
613
  }
531
- }
532
- };
533
- const clearCheckedPanelEvent = (params) => {
534
- const { $event } = params;
535
- const { multiple, autoClose, clearClosable } = props;
536
- const $tree = refTree.value;
537
- if ($tree) {
538
- const value = multiple ? [] : null;
539
- $tree.clearCheckboxNode().then(() => {
540
- if (XEUtils.isBoolean(clearClosable) ? clearClosable : autoClose) {
541
- hideOptionPanel($event);
614
+ };
615
+ const focusEvent = (evnt) => {
616
+ const isDisabled = computeIsDisabled.value;
617
+ if (!isDisabled) {
618
+ if (!reactData.visiblePanel) {
619
+ reactData.triggerFocusPanel = true;
620
+ showOptionPanel(evnt);
621
+ setTimeout(() => {
622
+ reactData.triggerFocusPanel = false;
623
+ }, 150);
542
624
  }
543
- });
544
- changeEvent($event, value, null);
545
- dispatchEvent("clear", { value }, $event);
546
- }
547
- };
548
- const closePanelEvent = (params) => {
549
- const { $event } = params;
550
- hideOptionPanel($event);
551
- };
552
- const allExpandPanelEvent = () => {
553
- const $tree = refTree.value;
554
- if ($tree) {
555
- $tree.setAllExpandNode(true);
556
- }
557
- };
558
- const clearExpandPanelEvent = () => {
559
- const $tree = refTree.value;
560
- if ($tree) {
561
- $tree.clearAllExpandNode();
562
- }
563
- };
564
- const handleGlobalMousedownEvent = (evnt) => {
565
- const { visiblePanel } = reactData;
566
- const isDisabled = computeIsDisabled.value;
567
- if (!isDisabled) {
568
- const el = refElem.value;
569
- const panelElem = refOptionPanel.value;
570
- reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelElem).flag;
571
- if (visiblePanel && !reactData.isActivated) {
572
- hideOptionPanel(evnt);
573
625
  }
574
- }
575
- };
576
- const handleGlobalBlurEvent = (evnt) => {
577
- const { visiblePanel, isActivated } = reactData;
578
- if (visiblePanel) {
579
- hideOptionPanel(evnt);
580
- }
581
- if (isActivated) {
626
+ dispatchEvent("focus", {}, evnt);
627
+ };
628
+ const clickEvent = (evnt) => {
629
+ togglePanelEvent(evnt);
630
+ dispatchEvent("click", {}, evnt);
631
+ };
632
+ const blurEvent = (evnt) => {
582
633
  reactData.isActivated = false;
583
- }
584
- if (visiblePanel || isActivated) {
585
- const $input = refInput.value;
586
- if ($input) {
587
- $input.blur();
634
+ dispatchEvent("blur", {}, evnt);
635
+ };
636
+ const modelSearchEvent = (value) => {
637
+ reactData.searchValue = value;
638
+ };
639
+ const handleSearchEvent = () => {
640
+ const { modelValue, remote, remoteMethod } = props;
641
+ const { searchValue } = reactData;
642
+ const remoteOpts = computeRemoteOpts.value;
643
+ const queryMethod = remoteOpts.queryMethod || remoteMethod;
644
+ if (remote && queryMethod && remoteOpts.enabled) {
645
+ reactData.searchLoading = true;
646
+ Promise.resolve(queryMethod({ $treeSelect: $xeTreeSelect, searchValue, value: modelValue })).then(() => nextTick()).catch(() => nextTick()).finally(() => {
647
+ reactData.searchLoading = false;
648
+ });
588
649
  }
589
- }
590
- };
591
- const handleGlobalResizeEvent = () => {
592
- const { visiblePanel } = reactData;
593
- if (visiblePanel) {
594
- updatePlacement();
595
- }
596
- };
597
- const handleGlobalScrollEvent = () => {
598
- const { visiblePanel } = reactData;
599
- if (visiblePanel) {
600
- updatePlacement();
601
- }
602
- };
603
- const handleFocusSearch = () => {
604
- if (props.filterable) {
605
- nextTick(() => {
606
- const inpSearch = refInpSearch.value;
607
- if (inpSearch) {
608
- inpSearch.focus();
650
+ };
651
+ const togglePanelEvent = (params) => {
652
+ const { $event } = params;
653
+ $event.preventDefault();
654
+ if (reactData.triggerFocusPanel) {
655
+ reactData.triggerFocusPanel = false;
656
+ } else {
657
+ if (reactData.visiblePanel) {
658
+ hideOptionPanel($event);
659
+ } else {
660
+ showOptionPanel($event);
609
661
  }
610
- });
611
- }
612
- };
613
- const focusEvent = (evnt) => {
614
- const isDisabled = computeIsDisabled.value;
615
- if (!isDisabled) {
616
- if (!reactData.visiblePanel) {
617
- reactData.triggerFocusPanel = true;
618
- showOptionPanel(evnt);
619
- setTimeout(() => {
620
- reactData.triggerFocusPanel = false;
621
- }, 150);
622
662
  }
623
- }
624
- dispatchEvent("focus", {}, evnt);
625
- };
626
- const clickEvent = (evnt) => {
627
- togglePanelEvent(evnt);
628
- dispatchEvent("click", {}, evnt);
629
- };
630
- const blurEvent = (evnt) => {
631
- reactData.isActivated = false;
632
- dispatchEvent("blur", {}, evnt);
633
- };
634
- const modelSearchEvent = (value) => {
635
- reactData.searchValue = value;
636
- };
637
- const handleSearchEvent = () => {
638
- const { modelValue, remote, remoteMethod } = props;
639
- const { searchValue } = reactData;
640
- const remoteOpts = computeRemoteOpts.value;
641
- const queryMethod = remoteOpts.queryMethod || remoteMethod;
642
- if (remote && queryMethod && remoteOpts.enabled) {
643
- reactData.searchLoading = true;
644
- Promise.resolve(queryMethod({ $treeSelect: $xeTreeSelect, searchValue, value: modelValue })).then(() => nextTick()).catch(() => nextTick()).finally(() => {
645
- reactData.searchLoading = false;
646
- });
647
- }
648
- };
649
- const togglePanelEvent = (params) => {
650
- const { $event } = params;
651
- $event.preventDefault();
652
- if (reactData.triggerFocusPanel) {
653
- reactData.triggerFocusPanel = false;
654
- } else {
655
- if (reactData.visiblePanel) {
656
- hideOptionPanel($event);
657
- } else {
658
- showOptionPanel($event);
663
+ };
664
+ const nodeExpandEvent = () => {
665
+ updatePlacement();
666
+ };
667
+ const nodeClickEvent = (params) => {
668
+ const { $event } = params;
669
+ dispatchEvent("node-click", params, $event);
670
+ };
671
+ const radioChangeEvent = (params) => {
672
+ const { value, $event, node } = params;
673
+ changeEvent($event, value, node);
674
+ hideOptionPanel($event);
675
+ };
676
+ const checkboxChangeEvent = (params) => {
677
+ const { value, $event, node } = params;
678
+ changeEvent($event, value, node);
679
+ };
680
+ const loadSuccessEvent = () => {
681
+ cacheDataMap();
682
+ };
683
+ const treeSelectPrivateMethods = {};
684
+ Object.assign($xeTreeSelect, treeSelectMethods, treeSelectPrivateMethods);
685
+ const renderVN = () => {
686
+ const { className, modelValue, multiple, options, loading, menuConfig, filterable, showTotalButton, showCheckedButton, showClearButton, showExpandButton, showCloseButton } = props;
687
+ const { initialized, isActivated, isAniVisible, visiblePanel, searchValue } = reactData;
688
+ const vSize = computeSize.value;
689
+ const isDisabled = computeIsDisabled.value;
690
+ const selectLabel = computeSelectLabel.value;
691
+ const btnTransfer = computeBtnTransfer.value;
692
+ const formReadonly = computeFormReadonly.value;
693
+ const popupWrapperStyle = computePopupWrapperStyle.value;
694
+ const headerSlot = slots.header;
695
+ const footerSlot = slots.footer;
696
+ const prefixSlot = slots.prefix;
697
+ const popupOpts = computePopupOpts.value;
698
+ const { appendTo } = popupOpts;
699
+ const ppClassName = popupOpts.className || props.popupClassName;
700
+ if (formReadonly) {
701
+ return h(
702
+ "div",
703
+ {
704
+ ref: refElem,
705
+ class: ["vxe-tree-select--readonly", className]
706
+ },
707
+ [
708
+ h(
709
+ "span",
710
+ {
711
+ class: "vxe-tree-select-label"
712
+ },
713
+ selectLabel
714
+ )
715
+ ]
716
+ );
717
+ }
718
+ const treeOpts = computeTreeOpts.value;
719
+ const menuOpts = computeMenuOpts.value;
720
+ const treeNodeOpts = computeTreeNodeOpts.value;
721
+ const treeCheckboxOpts = computeTreeCheckboxOpts.value;
722
+ const treeRadioOpts = computeTreeRadioOpts.value;
723
+ const nodeKeyField = computeNodeKeyField.value;
724
+ const labelField = computeLabelField.value;
725
+ const valueField = computeValueField.value;
726
+ const childrenField = computeChildrenField.value;
727
+ const nodeParentField = computeNodeParentField.value;
728
+ const hasChildField = computeHasChildField.value;
729
+ const virtualYOpts = computeVirtualYOpts.value;
730
+ const filterOpts = computeFilterOpts.value;
731
+ const { slots: treeSlots } = treeOpts;
732
+ const selectVals = XEUtils.eqNull(modelValue) ? [] : XEUtils.isArray(modelValue) ? modelValue : [modelValue];
733
+ const treeScopedSlots = {};
734
+ if (treeSlots) {
735
+ const { icon: treeIconSlot, title: treeTitleSlot, extra: treeExtraSlot } = treeSlots;
736
+ if (treeIconSlot) {
737
+ treeScopedSlots.icon = (slotParams) => callSlot(treeIconSlot, slotParams);
738
+ }
739
+ if (treeTitleSlot) {
740
+ treeScopedSlots.title = (slotParams) => callSlot(treeTitleSlot, slotParams);
741
+ }
742
+ if (treeExtraSlot) {
743
+ treeScopedSlots.extra = (slotParams) => callSlot(treeExtraSlot, slotParams);
744
+ }
659
745
  }
660
- }
661
- };
662
- const nodeExpandEvent = () => {
663
- updatePlacement();
664
- };
665
- const nodeClickEvent = (params) => {
666
- const { $event } = params;
667
- dispatchEvent("node-click", params, $event);
668
- };
669
- const radioChangeEvent = (params) => {
670
- const { value, $event, node } = params;
671
- changeEvent($event, value, node);
672
- hideOptionPanel($event);
673
- };
674
- const checkboxChangeEvent = (params) => {
675
- const { value, $event, node } = params;
676
- changeEvent($event, value, node);
677
- };
678
- const loadSuccessEvent = () => {
679
- cacheDataMap();
680
- };
681
- const treeSelectPrivateMethods = {};
682
- Object.assign($xeTreeSelect, treeSelectMethods, treeSelectPrivateMethods);
683
- const renderVN = () => {
684
- const { className, modelValue, multiple, options, loading, menuConfig, filterable, showTotalButton, showCheckedButton, showClearButton, showExpandButton, showCloseButton } = props;
685
- const { initialized, isActivated, isAniVisible, visiblePanel, searchValue } = reactData;
686
- const vSize = computeSize.value;
687
- const isDisabled = computeIsDisabled.value;
688
- const selectLabel = computeSelectLabel.value;
689
- const btnTransfer = computeBtnTransfer.value;
690
- const formReadonly = computeFormReadonly.value;
691
- const popupWrapperStyle = computePopupWrapperStyle.value;
692
- const headerSlot = slots.header;
693
- const footerSlot = slots.footer;
694
- const prefixSlot = slots.prefix;
695
- const popupOpts = computePopupOpts.value;
696
- const { appendTo } = popupOpts;
697
- const ppClassName = popupOpts.className || props.popupClassName;
698
- if (formReadonly) {
699
746
  return h(
700
747
  "div",
701
748
  {
702
749
  ref: refElem,
703
- class: ["vxe-tree-select--readonly", className]
750
+ class: [
751
+ "vxe-tree-select",
752
+ className ? XEUtils.isFunction(className) ? className({ $treeSelect: $xeTreeSelect }) : className : "",
753
+ {
754
+ [`size--${vSize}`]: vSize,
755
+ "is--filterable": filterable,
756
+ "is--visible": visiblePanel,
757
+ "is--disabled": isDisabled,
758
+ "is--loading": loading,
759
+ "is--active": isActivated
760
+ }
761
+ ]
704
762
  },
705
763
  [
706
764
  h(
707
- "span",
765
+ VxeInputComponent,
708
766
  {
709
- class: "vxe-tree-select-label"
767
+ ref: refInput,
768
+ clearable: props.clearable,
769
+ placeholder: loading ? getI18n("vxe.select.loadingText") : props.placeholder,
770
+ editable: false,
771
+ disabled: isDisabled,
772
+ type: "text",
773
+ prefixIcon: props.prefixIcon,
774
+ suffixIcon: loading ? getIcon().TREE_SELECT_LOADED : visiblePanel ? getIcon().TREE_SELECT_OPEN : getIcon().TREE_SELECT_CLOSE,
775
+ modelValue: loading ? "" : selectLabel,
776
+ title: selectLabel,
777
+ onClear: clearEvent,
778
+ onClick: clickEvent,
779
+ onFocus: focusEvent,
780
+ onBlur: blurEvent,
781
+ onSuffixClick: togglePanelEvent
710
782
  },
711
- selectLabel
783
+ prefixSlot ? {
784
+ prefix: () => prefixSlot({})
785
+ } : {}
786
+ ),
787
+ h(
788
+ Teleport,
789
+ {
790
+ to: getPopupContainer(appendTo),
791
+ disabled: btnTransfer ? !initialized : true
792
+ },
793
+ [
794
+ h(
795
+ "div",
796
+ {
797
+ ref: refOptionPanel,
798
+ class: [
799
+ "vxe-table--ignore-clear vxe-tree-select--panel",
800
+ ppClassName ? XEUtils.isFunction(ppClassName) ? ppClassName({ $treeSelect: $xeTreeSelect }) : ppClassName : "",
801
+ {
802
+ [`size--${vSize}`]: vSize,
803
+ "is--transfer": btnTransfer,
804
+ "ani--leave": !loading && isAniVisible,
805
+ "ani--enter": !loading && visiblePanel
806
+ }
807
+ ],
808
+ placement: reactData.panelPlacement,
809
+ style: reactData.panelStyle
810
+ },
811
+ initialized ? [
812
+ h(
813
+ "div",
814
+ {
815
+ class: "vxe-tree-select--panel-wrapper"
816
+ },
817
+ [
818
+ filterable ? h(
819
+ "div",
820
+ {
821
+ class: "vxe-tree-select--panel-search"
822
+ },
823
+ [
824
+ h(VxeInputComponent, {
825
+ ref: refInpSearch,
826
+ class: "vxe-tree-select-search--input",
827
+ modelValue: searchValue,
828
+ clearable: true,
829
+ disabled: false,
830
+ readonly: false,
831
+ placeholder: getI18n("vxe.treeSelect.search"),
832
+ prefixIcon: getIcon().INPUT_SEARCH,
833
+ "onUpdate:modelValue": modelSearchEvent
834
+ })
835
+ ]
836
+ ) : renderEmptyElement($xeTreeSelect),
837
+ showCheckedButton && multiple || showClearButton || showExpandButton || headerSlot ? h(
838
+ "div",
839
+ {
840
+ class: "vxe-tree-select--panel-header"
841
+ },
842
+ headerSlot ? headerSlot({}) : [
843
+ h(
844
+ "div",
845
+ {
846
+ class: "vxe-tree-select--header-button"
847
+ },
848
+ [
849
+ showCheckedButton && multiple || showClearButton ? h(
850
+ "div",
851
+ {
852
+ class: "vxe-tree-select--selected-btns"
853
+ },
854
+ [
855
+ showCheckedButton && multiple ? h(VxeButtonComponent, {
856
+ content: getI18n("vxe.treeSelect.allChecked"),
857
+ mode: "text",
858
+ onClick: allCheckedPanelEvent
859
+ }) : renderEmptyElement($xeTreeSelect),
860
+ showClearButton ? h(VxeButtonComponent, {
861
+ content: getI18n("vxe.treeSelect.clearChecked"),
862
+ mode: "text",
863
+ onClick: clearCheckedPanelEvent
864
+ }) : renderEmptyElement($xeTreeSelect)
865
+ ]
866
+ ) : renderEmptyElement($xeTreeSelect),
867
+ showExpandButton ? h(
868
+ "div",
869
+ {
870
+ class: "vxe-tree-select--expand-btns"
871
+ },
872
+ [
873
+ h(VxeButtonComponent, {
874
+ content: getI18n("vxe.treeSelect.allExpand"),
875
+ mode: "text",
876
+ onClick: allExpandPanelEvent
877
+ }),
878
+ h(VxeButtonComponent, {
879
+ content: getI18n("vxe.treeSelect.clearExpand"),
880
+ mode: "text",
881
+ onClick: clearExpandPanelEvent
882
+ })
883
+ ]
884
+ ) : renderEmptyElement($xeTreeSelect)
885
+ ]
886
+ )
887
+ ]
888
+ ) : renderEmptyElement($xeTreeSelect),
889
+ h(
890
+ "div",
891
+ {
892
+ class: "vxe-tree-select--panel-body"
893
+ },
894
+ [
895
+ h(
896
+ "div",
897
+ {
898
+ ref: refTreeWrapper,
899
+ class: "vxe-tree-select-tree--wrapper",
900
+ style: popupWrapperStyle
901
+ },
902
+ [
903
+ h(
904
+ VxeTreeComponent,
905
+ {
906
+ ref: refTree,
907
+ class: "vxe-tree-select--tree",
908
+ height: popupOpts.height ? "100%" : treeOpts.height,
909
+ minHeight: treeOpts.minHeight,
910
+ maxHeight: popupOpts.height ? "" : treeOpts.maxHeight,
911
+ autoResize: true,
912
+ data: options,
913
+ indent: treeOpts.indent,
914
+ showRadio: !multiple,
915
+ radioConfig: treeRadioOpts,
916
+ checkNodeKey: multiple ? null : modelValue,
917
+ showCheckbox: !!multiple,
918
+ checkNodeKeys: multiple ? modelValue : null,
919
+ checkboxConfig: treeCheckboxOpts,
920
+ titleField: labelField,
921
+ valueField,
922
+ keyField: nodeKeyField,
923
+ childrenField: treeOpts.childrenField || childrenField,
924
+ parentField: nodeParentField,
925
+ hasChildField: treeOpts.hasChildField || hasChildField,
926
+ accordion: treeOpts.accordion,
927
+ expandAll: treeOpts.expandAll,
928
+ expandNodeKeys: treeOpts.expandNodeKeys,
929
+ nodeConfig: treeNodeOpts,
930
+ lazy: treeOpts.lazy,
931
+ loadMethod: treeOpts.loadMethod,
932
+ toggleMethod: treeOpts.toggleMethod,
933
+ transform: treeOpts.transform,
934
+ rootParentValue: treeOpts.rootParentValue,
935
+ rootValues: treeOpts.rootValues,
936
+ trigger: treeOpts.trigger,
937
+ showIcon: treeOpts.showIcon,
938
+ showLine: treeOpts.showLine,
939
+ iconOpen: treeOpts.iconOpen,
940
+ iconLoaded: treeOpts.iconLoaded,
941
+ iconClose: treeOpts.iconClose,
942
+ filterValue: searchValue,
943
+ filterConfig: filterOpts,
944
+ menuConfig: menuConfig ? menuOpts : void 0,
945
+ virtualYConfig: virtualYOpts,
946
+ onNodeExpand: nodeExpandEvent,
947
+ onNodeClick: nodeClickEvent,
948
+ onRadioChange: radioChangeEvent,
949
+ onCheckboxChange: checkboxChangeEvent,
950
+ onLoadSuccess: loadSuccessEvent
951
+ },
952
+ treeScopedSlots
953
+ )
954
+ ]
955
+ )
956
+ ]
957
+ ),
958
+ footerSlot || showTotalButton || showCloseButton ? h(
959
+ "div",
960
+ {
961
+ class: "vxe-tree-select--panel-footer"
962
+ },
963
+ footerSlot ? footerSlot({}) : [
964
+ h(
965
+ "div",
966
+ {
967
+ class: "vxe-tree-select--footer-button"
968
+ },
969
+ [
970
+ showTotalButton ? h(
971
+ "div",
972
+ {
973
+ class: "vxe-tree-select--total-btns"
974
+ },
975
+ getI18n("vxe.treeSelect.total", [selectVals.length])
976
+ ) : renderEmptyElement($xeTreeSelect),
977
+ showCloseButton ? h(
978
+ "div",
979
+ {
980
+ class: "vxe-tree-select--oper-btns"
981
+ },
982
+ [
983
+ h(VxeButtonComponent, {
984
+ content: getI18n("vxe.select.close"),
985
+ mode: "text",
986
+ onClick: closePanelEvent
987
+ })
988
+ ]
989
+ ) : renderEmptyElement($xeTreeSelect)
990
+ ]
991
+ )
992
+ ]
993
+ ) : renderEmptyElement($xeTreeSelect)
994
+ ]
995
+ )
996
+ ] : []
997
+ )
998
+ ]
712
999
  )
713
1000
  ]
714
1001
  );
715
- }
716
- const treeOpts = computeTreeOpts.value;
717
- const menuOpts = computeMenuOpts.value;
718
- const treeNodeOpts = computeTreeNodeOpts.value;
719
- const treeCheckboxOpts = computeTreeCheckboxOpts.value;
720
- const treeRadioOpts = computeTreeRadioOpts.value;
721
- const nodeKeyField = computeNodeKeyField.value;
722
- const labelField = computeLabelField.value;
723
- const valueField = computeValueField.value;
724
- const childrenField = computeChildrenField.value;
725
- const nodeParentField = computeNodeParentField.value;
726
- const hasChildField = computeHasChildField.value;
727
- const virtualYOpts = computeVirtualYOpts.value;
728
- const filterOpts = computeFilterOpts.value;
729
- const { slots: treeSlots } = treeOpts;
730
- const selectVals = XEUtils.eqNull(modelValue) ? [] : XEUtils.isArray(modelValue) ? modelValue : [modelValue];
731
- const treeScopedSlots = {};
732
- if (treeSlots) {
733
- const { icon: treeIconSlot, title: treeTitleSlot, extra: treeExtraSlot } = treeSlots;
734
- if (treeIconSlot) {
735
- treeScopedSlots.icon = (slotParams) => callSlot(treeIconSlot, slotParams);
1002
+ };
1003
+ const optFlag = ref(0);
1004
+ watch(
1005
+ () => props.options ? props.options.length : -1,
1006
+ () => {
1007
+ optFlag.value++;
736
1008
  }
737
- if (treeTitleSlot) {
738
- treeScopedSlots.title = (slotParams) => callSlot(treeTitleSlot, slotParams);
1009
+ );
1010
+ watch(
1011
+ () => props.options,
1012
+ () => {
1013
+ optFlag.value++;
739
1014
  }
740
- if (treeExtraSlot) {
741
- treeScopedSlots.extra = (slotParams) => callSlot(treeExtraSlot, slotParams);
1015
+ );
1016
+ watch(optFlag, () => {
1017
+ cacheDataMap();
1018
+ });
1019
+ const lazyOptFlag = ref(0);
1020
+ watch(
1021
+ () => props.lazyOptions ? props.lazyOptions.length : -1,
1022
+ () => {
1023
+ lazyOptFlag.value++;
742
1024
  }
743
- }
744
- return h(
745
- "div",
746
- {
747
- ref: refElem,
748
- class: [
749
- "vxe-tree-select",
750
- className ? XEUtils.isFunction(className) ? className({ $treeSelect: $xeTreeSelect }) : className : "",
751
- {
752
- [`size--${vSize}`]: vSize,
753
- "is--filterable": filterable,
754
- "is--visible": visiblePanel,
755
- "is--disabled": isDisabled,
756
- "is--loading": loading,
757
- "is--active": isActivated
758
- }
759
- ]
760
- },
761
- [
762
- h(
763
- VxeInputComponent,
764
- {
765
- ref: refInput,
766
- clearable: props.clearable,
767
- placeholder: loading ? getI18n("vxe.select.loadingText") : props.placeholder,
768
- editable: false,
769
- disabled: isDisabled,
770
- type: "text",
771
- prefixIcon: props.prefixIcon,
772
- suffixIcon: loading ? getIcon().TREE_SELECT_LOADED : visiblePanel ? getIcon().TREE_SELECT_OPEN : getIcon().TREE_SELECT_CLOSE,
773
- modelValue: loading ? "" : selectLabel,
774
- title: selectLabel,
775
- onClear: clearEvent,
776
- onClick: clickEvent,
777
- onFocus: focusEvent,
778
- onBlur: blurEvent,
779
- onSuffixClick: togglePanelEvent
780
- },
781
- prefixSlot ? {
782
- prefix: () => prefixSlot({})
783
- } : {}
784
- ),
785
- h(
786
- Teleport,
787
- {
788
- to: getPopupContainer(appendTo),
789
- disabled: btnTransfer ? !initialized : true
790
- },
791
- [
792
- h(
793
- "div",
794
- {
795
- ref: refOptionPanel,
796
- class: [
797
- "vxe-table--ignore-clear vxe-tree-select--panel",
798
- ppClassName ? XEUtils.isFunction(ppClassName) ? ppClassName({ $treeSelect: $xeTreeSelect }) : ppClassName : "",
799
- {
800
- [`size--${vSize}`]: vSize,
801
- "is--transfer": btnTransfer,
802
- "ani--leave": !loading && isAniVisible,
803
- "ani--enter": !loading && visiblePanel
804
- }
805
- ],
806
- placement: reactData.panelPlacement,
807
- style: reactData.panelStyle
808
- },
809
- initialized ? [
810
- h(
811
- "div",
812
- {
813
- class: "vxe-tree-select--panel-wrapper"
814
- },
815
- [
816
- filterable ? h(
817
- "div",
818
- {
819
- class: "vxe-tree-select--panel-search"
820
- },
821
- [
822
- h(VxeInputComponent, {
823
- ref: refInpSearch,
824
- class: "vxe-tree-select-search--input",
825
- modelValue: searchValue,
826
- clearable: true,
827
- disabled: false,
828
- readonly: false,
829
- placeholder: getI18n("vxe.treeSelect.search"),
830
- prefixIcon: getIcon().INPUT_SEARCH,
831
- "onUpdate:modelValue": modelSearchEvent
832
- })
833
- ]
834
- ) : renderEmptyElement($xeTreeSelect),
835
- showCheckedButton && multiple || showClearButton || showExpandButton || headerSlot ? h(
836
- "div",
837
- {
838
- class: "vxe-tree-select--panel-header"
839
- },
840
- headerSlot ? headerSlot({}) : [
841
- h(
842
- "div",
843
- {
844
- class: "vxe-tree-select--header-button"
845
- },
846
- [
847
- showCheckedButton && multiple || showClearButton ? h(
848
- "div",
849
- {
850
- class: "vxe-tree-select--selected-btns"
851
- },
852
- [
853
- showCheckedButton && multiple ? h(VxeButtonComponent, {
854
- content: getI18n("vxe.treeSelect.allChecked"),
855
- mode: "text",
856
- onClick: allCheckedPanelEvent
857
- }) : renderEmptyElement($xeTreeSelect),
858
- showClearButton ? h(VxeButtonComponent, {
859
- content: getI18n("vxe.treeSelect.clearChecked"),
860
- mode: "text",
861
- onClick: clearCheckedPanelEvent
862
- }) : renderEmptyElement($xeTreeSelect)
863
- ]
864
- ) : renderEmptyElement($xeTreeSelect),
865
- showExpandButton ? h(
866
- "div",
867
- {
868
- class: "vxe-tree-select--expand-btns"
869
- },
870
- [
871
- h(VxeButtonComponent, {
872
- content: getI18n("vxe.treeSelect.allExpand"),
873
- mode: "text",
874
- onClick: allExpandPanelEvent
875
- }),
876
- h(VxeButtonComponent, {
877
- content: getI18n("vxe.treeSelect.clearExpand"),
878
- mode: "text",
879
- onClick: clearExpandPanelEvent
880
- })
881
- ]
882
- ) : renderEmptyElement($xeTreeSelect)
883
- ]
884
- )
885
- ]
886
- ) : renderEmptyElement($xeTreeSelect),
887
- h(
888
- "div",
889
- {
890
- class: "vxe-tree-select--panel-body"
891
- },
892
- [
893
- h(
894
- "div",
895
- {
896
- ref: refTreeWrapper,
897
- class: "vxe-tree-select-tree--wrapper",
898
- style: popupWrapperStyle
899
- },
900
- [
901
- h(
902
- VxeTreeComponent,
903
- {
904
- ref: refTree,
905
- class: "vxe-tree-select--tree",
906
- height: popupOpts.height ? "100%" : treeOpts.height,
907
- minHeight: treeOpts.minHeight,
908
- maxHeight: popupOpts.height ? "" : treeOpts.maxHeight,
909
- autoResize: true,
910
- data: options,
911
- indent: treeOpts.indent,
912
- showRadio: !multiple,
913
- radioConfig: treeRadioOpts,
914
- checkNodeKey: multiple ? null : modelValue,
915
- showCheckbox: !!multiple,
916
- checkNodeKeys: multiple ? modelValue : null,
917
- checkboxConfig: treeCheckboxOpts,
918
- titleField: labelField,
919
- valueField,
920
- keyField: nodeKeyField,
921
- childrenField: treeOpts.childrenField || childrenField,
922
- parentField: nodeParentField,
923
- hasChildField: treeOpts.hasChildField || hasChildField,
924
- accordion: treeOpts.accordion,
925
- expandAll: treeOpts.expandAll,
926
- expandNodeKeys: treeOpts.expandNodeKeys,
927
- nodeConfig: treeNodeOpts,
928
- lazy: treeOpts.lazy,
929
- loadMethod: treeOpts.loadMethod,
930
- toggleMethod: treeOpts.toggleMethod,
931
- transform: treeOpts.transform,
932
- rootParentValue: treeOpts.rootParentValue,
933
- rootValues: treeOpts.rootValues,
934
- trigger: treeOpts.trigger,
935
- showIcon: treeOpts.showIcon,
936
- showLine: treeOpts.showLine,
937
- iconOpen: treeOpts.iconOpen,
938
- iconLoaded: treeOpts.iconLoaded,
939
- iconClose: treeOpts.iconClose,
940
- filterValue: searchValue,
941
- filterConfig: filterOpts,
942
- menuConfig: menuConfig ? menuOpts : void 0,
943
- virtualYConfig: virtualYOpts,
944
- onNodeExpand: nodeExpandEvent,
945
- onNodeClick: nodeClickEvent,
946
- onRadioChange: radioChangeEvent,
947
- onCheckboxChange: checkboxChangeEvent,
948
- onLoadSuccess: loadSuccessEvent
949
- },
950
- treeScopedSlots
951
- )
952
- ]
953
- )
954
- ]
955
- ),
956
- footerSlot || showTotalButton || showCloseButton ? h(
957
- "div",
958
- {
959
- class: "vxe-tree-select--panel-footer"
960
- },
961
- footerSlot ? footerSlot({}) : [
962
- h(
963
- "div",
964
- {
965
- class: "vxe-tree-select--footer-button"
966
- },
967
- [
968
- showTotalButton ? h(
969
- "div",
970
- {
971
- class: "vxe-tree-select--total-btns"
972
- },
973
- getI18n("vxe.treeSelect.total", [selectVals.length])
974
- ) : renderEmptyElement($xeTreeSelect),
975
- showCloseButton ? h(
976
- "div",
977
- {
978
- class: "vxe-tree-select--oper-btns"
979
- },
980
- [
981
- h(VxeButtonComponent, {
982
- content: getI18n("vxe.select.close"),
983
- mode: "text",
984
- onClick: closePanelEvent
985
- })
986
- ]
987
- ) : renderEmptyElement($xeTreeSelect)
988
- ]
989
- )
990
- ]
991
- ) : renderEmptyElement($xeTreeSelect)
992
- ]
993
- )
994
- ] : []
995
- )
996
- ]
997
- )
998
- ]
999
1025
  );
1000
- };
1001
- const optFlag = ref(0);
1002
- watch(
1003
- () => props.options ? props.options.length : -1,
1004
- () => {
1005
- optFlag.value++;
1006
- }
1007
- );
1008
- watch(
1009
- () => props.options,
1010
- () => {
1011
- optFlag.value++;
1012
- }
1013
- );
1014
- watch(optFlag, () => {
1026
+ watch(
1027
+ () => props.lazyOptions,
1028
+ () => {
1029
+ lazyOptFlag.value++;
1030
+ }
1031
+ );
1032
+ watch(lazyOptFlag, () => {
1033
+ cacheLazyDataMap();
1034
+ });
1015
1035
  cacheDataMap();
1016
- });
1017
- const lazyOptFlag = ref(0);
1018
- watch(
1019
- () => props.lazyOptions ? props.lazyOptions.length : -1,
1020
- () => {
1021
- lazyOptFlag.value++;
1022
- }
1023
- );
1024
- watch(
1025
- () => props.lazyOptions,
1026
- () => {
1027
- lazyOptFlag.value++;
1028
- }
1029
- );
1030
- watch(lazyOptFlag, () => {
1031
1036
  cacheLazyDataMap();
1032
- });
1033
- cacheDataMap();
1034
- cacheLazyDataMap();
1035
- onMounted(() => {
1036
- if (XEUtils.isBoolean(props.autoClose)) {
1037
- warnLog("vxe.error.delProp", ["auto-close", "checked-closable | clear-closable"]);
1038
- }
1039
- globalEvents.on($xeTreeSelect, "mousedown", handleGlobalMousedownEvent);
1040
- globalEvents.on($xeTreeSelect, "blur", handleGlobalBlurEvent);
1041
- globalEvents.on($xeTreeSelect, "resize", handleGlobalResizeEvent);
1042
- globalEvents.on($xeTreeSelect, "scroll", handleGlobalScrollEvent);
1043
- });
1044
- onBeforeUnmount(() => {
1045
- globalEvents.off($xeTreeSelect, "mousedown");
1046
- globalEvents.off($xeTreeSelect, "blur");
1047
- globalEvents.off($xeTreeSelect, "resize");
1048
- globalEvents.off($xeTreeSelect, "scroll");
1049
- XEUtils.assign(reactData, createReactData());
1050
- XEUtils.assign(internalData, createInternalData());
1051
- });
1052
- provide("$xeTreeSelect", $xeTreeSelect);
1053
- $xeTreeSelect.renderVN = renderVN;
1054
- return $xeTreeSelect;
1055
- },
1056
- render() {
1057
- return this.renderVN();
1058
- }
1059
- });
1037
+ onMounted(() => {
1038
+ if (XEUtils.isBoolean(props.autoClose)) {
1039
+ warnLog("vxe.error.delProp", ["auto-close", "checked-closable | clear-closable"]);
1040
+ }
1041
+ globalEvents.on($xeTreeSelect, "mousedown", handleGlobalMousedownEvent);
1042
+ globalEvents.on($xeTreeSelect, "blur", handleGlobalBlurEvent);
1043
+ globalEvents.on($xeTreeSelect, "resize", handleGlobalResizeEvent);
1044
+ globalEvents.on($xeTreeSelect, "scroll", handleGlobalScrollEvent);
1045
+ });
1046
+ onBeforeUnmount(() => {
1047
+ globalEvents.off($xeTreeSelect, "mousedown");
1048
+ globalEvents.off($xeTreeSelect, "blur");
1049
+ globalEvents.off($xeTreeSelect, "resize");
1050
+ globalEvents.off($xeTreeSelect, "scroll");
1051
+ XEUtils.assign(reactData, createReactData());
1052
+ XEUtils.assign(internalData, createInternalData());
1053
+ });
1054
+ provide("$xeTreeSelect", $xeTreeSelect);
1055
+ $xeTreeSelect.renderVN = renderVN;
1056
+ return $xeTreeSelect;
1057
+ },
1058
+ render() {
1059
+ return this.renderVN();
1060
+ }
1061
+ })
1062
+ );
1060
1063
  export {
1061
1064
  tree_select_default as default
1062
1065
  };