vxe-pc-ui 4.20.24 → 4.20.26

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 (627) hide show
  1. package/dist/all.esm.js +15151 -10366
  2. package/dist/style.css +1 -1
  3. package/dist/style.mini.css +1 -1
  4. package/es/alert/src/alert.js +61 -36
  5. package/es/anchor/src/anchor-link.js +39 -20
  6. package/es/anchor/src/anchor.js +74 -45
  7. package/es/avatar/src/avatar.js +47 -27
  8. package/es/backtop/src/backtop.js +65 -40
  9. package/es/badge/src/badge.js +32 -16
  10. package/es/breadcrumb/src/breadcrumb-item.js +52 -27
  11. package/es/breadcrumb/src/breadcrumb.js +11 -8
  12. package/es/button/src/button-group.js +24 -18
  13. package/es/button/src/button.js +284 -185
  14. package/es/calendar/src/calendar.js +571 -358
  15. package/es/card/src/card.js +123 -68
  16. package/es/carousel/src/carousel-item.js +14 -7
  17. package/es/carousel/src/carousel.js +174 -112
  18. package/es/cascader/src/cascader.js +526 -380
  19. package/es/checkbox/src/button.js +90 -55
  20. package/es/checkbox/src/checkbox.js +60 -40
  21. package/es/checkbox/src/group.js +34 -26
  22. package/es/collapse/src/collapse-pane.js +33 -16
  23. package/es/collapse/src/collapse.js +133 -79
  24. package/es/color-picker/src/color-picker.js +489 -350
  25. package/es/components.d.ts +3 -1
  26. package/es/components.js +3 -2
  27. package/es/context-menu/src/context-menu.js +190 -110
  28. package/es/countdown/src/countdown.js +91 -59
  29. package/es/date-panel/src/date-panel.js +760 -450
  30. package/es/date-picker/src/date-picker.js +331 -228
  31. package/es/date-range-picker/src/date-range-picker.js +366 -265
  32. package/es/divider/src/divider.js +26 -12
  33. package/es/drawer/src/drawer.js +254 -154
  34. package/es/dynamics/index.js +38 -25
  35. package/es/empty/src/empty.js +53 -29
  36. package/es/form/render/index.js +66 -41
  37. package/es/form/src/form-config-item.js +22 -16
  38. package/es/form/src/form-group.js +23 -14
  39. package/es/form/src/form-item.js +23 -17
  40. package/es/form/src/form.js +139 -95
  41. package/es/form/src/itemInfo.js +2 -1
  42. package/es/form/src/render.js +207 -127
  43. package/es/form/src/util.js +8 -4
  44. package/es/icon/src/icon.js +14 -10
  45. package/es/icon/style.css +1 -1
  46. package/es/icon/style.mini.css +1 -1
  47. package/es/icon-picker/src/icon-picker.js +250 -157
  48. package/es/image/src/group.js +26 -20
  49. package/es/image/src/image.js +33 -32
  50. package/es/image/src/preview.js +182 -122
  51. package/es/image/src/util.js +6 -3
  52. package/es/index.d.ts +3 -0
  53. package/es/index.esm.js +12 -0
  54. package/es/index.js +12 -0
  55. package/es/input/src/input.js +820 -507
  56. package/es/layout-aside/src/layout-aside.js +54 -38
  57. package/es/layout-body/src/layout-body.js +39 -27
  58. package/es/layout-container/src/layout-container.js +16 -9
  59. package/es/layout-footer/src/layout-footer.js +16 -7
  60. package/es/layout-header/src/layout-header.js +15 -7
  61. package/es/link/src/link.js +65 -44
  62. package/es/list/src/list.js +453 -333
  63. package/es/loading/index.js +8 -5
  64. package/es/loading/src/loading.js +60 -33
  65. package/es/mention/src/mention.js +2 -1
  66. package/es/menu/src/menu.js +341 -210
  67. package/es/modal/index.js +60 -37
  68. package/es/modal/src/modal.js +303 -205
  69. package/es/notice-bar/src/notice-bar.js +64 -37
  70. package/es/number-input/src/number-input.js +249 -172
  71. package/es/pager/src/pager.js +346 -202
  72. package/es/password-input/src/password-input.js +145 -105
  73. package/es/print/src/page-break.js +2 -1
  74. package/es/print/src/print.js +184 -99
  75. package/es/pulldown/src/pulldown.js +113 -71
  76. package/es/radio/src/button.js +92 -57
  77. package/es/radio/src/group.js +33 -25
  78. package/es/radio/src/radio.js +61 -41
  79. package/es/rate/src/rate.js +48 -36
  80. package/es/result/src/result.js +67 -35
  81. package/es/row/src/col.js +30 -16
  82. package/es/row/src/row.js +21 -14
  83. package/es/scrollbar/src/scrollbar.js +177 -145
  84. package/es/segmented/src/segmented.js +93 -60
  85. package/es/select/src/optgroup.js +7 -3
  86. package/es/select/src/select.js +483 -340
  87. package/es/select/src/util.js +6 -3
  88. package/es/slider/src/slider.js +108 -80
  89. package/es/space/src/space.js +43 -26
  90. package/es/splitter/src/splitter-panel.js +50 -25
  91. package/es/splitter/src/splitter.js +219 -144
  92. package/es/steps/src/steps.js +10 -5
  93. package/es/style.css +1 -1
  94. package/es/style.mini.css +1 -1
  95. package/es/switch/src/switch.js +115 -64
  96. package/es/table-select/src/table-select.js +232 -153
  97. package/es/table-transfer/src/table-transfer.js +10 -5
  98. package/es/tabs/src/tab-pane.js +33 -16
  99. package/es/tabs/src/tabs.js +363 -230
  100. package/es/tag/src/tag.js +61 -43
  101. package/es/text/src/text.js +89 -65
  102. package/es/text-ellipsis/src/text-ellipsis.js +82 -51
  103. package/es/textarea/src/textarea.js +116 -86
  104. package/es/timeline/src/timeline-item.js +2 -1
  105. package/es/timeline/src/timeline.js +2 -1
  106. package/es/tip/src/tip.js +53 -29
  107. package/es/tooltip/src/tooltip.js +114 -74
  108. package/es/tour/src/tour.js +2 -1
  109. package/es/transfer/src/transfer.js +42 -25
  110. package/es/tree/src/tree.js +709 -492
  111. package/es/tree-select/src/tree-select.js +320 -225
  112. package/es/ui/index.d.ts +0 -1
  113. package/es/ui/index.js +46 -3
  114. package/es/ui/src/dom.js +9 -6
  115. package/es/ui/src/log.js +1 -1
  116. package/es/ui/src/utils.d.ts +1 -1
  117. package/es/upload/src/upload.js +614 -398
  118. package/es/vxe-icon/style.css +1 -1
  119. package/es/vxe-icon/style.mini.css +1 -1
  120. package/es/watermark/src/util.js +15 -12
  121. package/es/watermark/src/watermark.js +55 -25
  122. package/lib/alert/src/alert.js +62 -37
  123. package/lib/anchor/src/anchor-link.js +39 -20
  124. package/lib/anchor/src/anchor.js +75 -46
  125. package/lib/avatar/src/avatar.js +52 -32
  126. package/lib/backtop/src/backtop.js +81 -56
  127. package/lib/badge/src/badge.js +35 -19
  128. package/lib/breadcrumb/src/breadcrumb-item.js +52 -27
  129. package/lib/breadcrumb/src/breadcrumb.js +13 -10
  130. package/lib/button/src/button-group.js +27 -21
  131. package/lib/button/src/button.js +306 -207
  132. package/lib/calendar/src/calendar.js +575 -362
  133. package/lib/card/src/card.js +133 -78
  134. package/lib/carousel/src/carousel-item.js +15 -8
  135. package/lib/carousel/src/carousel.js +182 -120
  136. package/lib/cascader/src/cascader.js +555 -409
  137. package/lib/checkbox/src/button.js +93 -58
  138. package/lib/checkbox/src/checkbox.js +63 -43
  139. package/lib/checkbox/src/group.js +37 -29
  140. package/lib/collapse/src/collapse-pane.js +34 -17
  141. package/lib/collapse/src/collapse.js +139 -85
  142. package/lib/color-picker/src/color-picker.js +516 -377
  143. package/lib/components.js +3 -2
  144. package/lib/context-menu/src/context-menu.js +212 -132
  145. package/lib/countdown/src/countdown.js +95 -63
  146. package/lib/date-panel/src/date-panel.js +776 -466
  147. package/lib/date-picker/src/date-picker.js +377 -274
  148. package/lib/date-range-picker/src/date-range-picker.js +401 -300
  149. package/lib/divider/src/divider.js +31 -17
  150. package/lib/drawer/src/drawer.js +255 -155
  151. package/lib/dynamics/index.js +38 -25
  152. package/lib/empty/src/empty.js +55 -31
  153. package/lib/form/render/index.js +68 -43
  154. package/lib/form/src/form-config-item.js +24 -18
  155. package/lib/form/src/form-group.js +25 -16
  156. package/lib/form/src/form-item.js +25 -19
  157. package/lib/form/src/form.js +140 -96
  158. package/lib/form/src/itemInfo.js +4 -3
  159. package/lib/form/src/render.js +214 -134
  160. package/lib/form/src/util.js +9 -5
  161. package/lib/icon/src/icon.js +17 -13
  162. package/lib/icon/style/style.css +1 -1
  163. package/lib/icon/style/style.mini.css +1 -1
  164. package/lib/icon-picker/src/icon-picker.js +251 -158
  165. package/lib/image/src/group.js +26 -20
  166. package/lib/image/src/image.js +41 -40
  167. package/lib/image/src/preview.js +206 -146
  168. package/lib/image/src/util.js +6 -3
  169. package/lib/index.common.js +12 -0
  170. package/lib/index.js +12 -0
  171. package/lib/index.umd.js +15359 -10558
  172. package/lib/index.umd.min.js +3 -3
  173. package/lib/input/src/input.js +878 -565
  174. package/lib/layout-aside/src/layout-aside.js +61 -45
  175. package/lib/layout-body/src/layout-body.js +47 -35
  176. package/lib/layout-container/src/layout-container.js +18 -11
  177. package/lib/layout-footer/src/layout-footer.js +17 -8
  178. package/lib/layout-header/src/layout-header.js +16 -8
  179. package/lib/link/src/link.js +69 -48
  180. package/lib/list/src/list.js +456 -336
  181. package/lib/loading/index.js +8 -5
  182. package/lib/loading/src/loading.js +69 -42
  183. package/lib/mention/src/mention.js +4 -3
  184. package/lib/menu/src/menu.js +351 -220
  185. package/lib/modal/index.js +60 -37
  186. package/lib/modal/src/modal.js +306 -208
  187. package/lib/notice-bar/src/notice-bar.js +70 -43
  188. package/lib/number-input/src/number-input.js +290 -213
  189. package/lib/pager/src/pager.js +347 -203
  190. package/lib/password-input/src/password-input.js +155 -115
  191. package/lib/print/src/page-break.js +3 -2
  192. package/lib/print/src/print.js +193 -108
  193. package/lib/pulldown/src/pulldown.js +128 -86
  194. package/lib/radio/src/button.js +96 -61
  195. package/lib/radio/src/group.js +37 -29
  196. package/lib/radio/src/radio.js +65 -45
  197. package/lib/rate/src/rate.js +50 -38
  198. package/lib/result/src/result.js +68 -36
  199. package/lib/row/src/col.js +32 -18
  200. package/lib/row/src/row.js +25 -18
  201. package/lib/scrollbar/src/scrollbar.js +178 -146
  202. package/lib/segmented/src/segmented.js +97 -64
  203. package/lib/select/src/optgroup.js +7 -3
  204. package/lib/select/src/select.js +486 -343
  205. package/lib/select/src/util.js +6 -3
  206. package/lib/slider/src/slider.js +122 -94
  207. package/lib/space/src/space.js +57 -40
  208. package/lib/splitter/src/splitter-panel.js +51 -26
  209. package/lib/splitter/src/splitter.js +233 -158
  210. package/lib/steps/src/steps.js +11 -6
  211. package/lib/style.css +1 -1
  212. package/lib/style.mini.css +1 -1
  213. package/lib/switch/src/switch.js +116 -65
  214. package/lib/table-select/src/table-select.js +234 -155
  215. package/lib/table-transfer/src/table-transfer.js +12 -7
  216. package/lib/tabs/src/tab-pane.js +34 -17
  217. package/lib/tabs/src/tabs.js +365 -232
  218. package/lib/tag/src/tag.js +67 -49
  219. package/lib/text/src/text.js +100 -76
  220. package/lib/text-ellipsis/src/text-ellipsis.js +86 -55
  221. package/lib/textarea/src/textarea.js +127 -97
  222. package/lib/timeline/src/timeline-item.js +3 -2
  223. package/lib/timeline/src/timeline.js +4 -3
  224. package/lib/tip/src/tip.js +58 -34
  225. package/lib/tooltip/src/tooltip.js +116 -76
  226. package/lib/tour/src/tour.js +4 -3
  227. package/lib/transfer/src/transfer.js +44 -27
  228. package/lib/tree/src/tree.js +717 -500
  229. package/lib/tree-select/src/tree-select.js +351 -256
  230. package/lib/ui/index.js +46 -4
  231. package/lib/ui/src/dom.js +9 -6
  232. package/lib/ui/src/log.js +1 -1
  233. package/lib/upload/src/upload.js +708 -492
  234. package/lib/vxe-icon/style/style.css +1 -1
  235. package/lib/vxe-icon/style/style.mini.css +1 -1
  236. package/lib/watermark/src/util.js +15 -12
  237. package/lib/watermark/src/watermark.js +60 -30
  238. package/package.json +10 -4
  239. package/packages/alert/index.ts +16 -16
  240. package/packages/alert/src/alert.ts +148 -126
  241. package/packages/anchor/index.ts +16 -16
  242. package/packages/anchor/src/anchor-link.ts +139 -121
  243. package/packages/anchor/src/anchor.ts +266 -237
  244. package/packages/anchor/src/util.ts +23 -23
  245. package/packages/anchor-link/index.ts +16 -16
  246. package/packages/avatar/index.ts +16 -16
  247. package/packages/avatar/src/avatar.ts +166 -149
  248. package/packages/backtop/index.ts +16 -16
  249. package/packages/backtop/src/backtop.ts +337 -313
  250. package/packages/badge/index.ts +16 -16
  251. package/packages/badge/src/badge.ts +131 -118
  252. package/packages/breadcrumb/index.ts +16 -16
  253. package/packages/breadcrumb/src/breadcrumb-item.ts +129 -106
  254. package/packages/breadcrumb/src/breadcrumb.ts +94 -92
  255. package/packages/breadcrumb-item/index.ts +16 -16
  256. package/packages/button/index.ts +16 -16
  257. package/packages/button/src/button-group.ts +116 -110
  258. package/packages/button/src/button.ts +975 -855
  259. package/packages/button-group/index.ts +16 -16
  260. package/packages/calendar/index.ts +16 -16
  261. package/packages/calendar/src/calendar.ts +1566 -1352
  262. package/packages/card/index.ts +16 -16
  263. package/packages/card/src/card.ts +285 -236
  264. package/packages/carousel/index.ts +16 -16
  265. package/packages/carousel/src/carousel-item.ts +120 -102
  266. package/packages/carousel/src/carousel.ts +475 -414
  267. package/packages/carousel/src/util.ts +21 -21
  268. package/packages/carousel-item/index.ts +16 -16
  269. package/packages/cascader/index.ts +16 -16
  270. package/packages/cascader/src/cascader.ts +2074 -1896
  271. package/packages/cascader/src/util.ts +9 -9
  272. package/packages/checkbox/index.ts +16 -16
  273. package/packages/checkbox/src/button.ts +267 -221
  274. package/packages/checkbox/src/checkbox.ts +219 -199
  275. package/packages/checkbox/src/group.ts +292 -269
  276. package/packages/checkbox-button/index.ts +16 -16
  277. package/packages/checkbox-group/index.ts +16 -16
  278. package/packages/col/index.ts +16 -16
  279. package/packages/collapse/index.ts +16 -16
  280. package/packages/collapse/src/collapse-pane.ts +142 -114
  281. package/packages/collapse/src/collapse.ts +453 -384
  282. package/packages/collapse/src/util.ts +21 -21
  283. package/packages/collapse-pane/index.ts +16 -16
  284. package/packages/color-picker/index.ts +31 -31
  285. package/packages/color-picker/src/color-picker.ts +1310 -1147
  286. package/packages/color-picker/src/util.ts +436 -423
  287. package/packages/components.ts +350 -349
  288. package/packages/context-menu/index.ts +54 -54
  289. package/packages/context-menu/src/context-menu.ts +773 -681
  290. package/packages/countdown/index.ts +16 -16
  291. package/packages/countdown/src/countdown.ts +295 -262
  292. package/packages/date-panel/index.ts +16 -16
  293. package/packages/date-panel/src/date-panel.ts +2214 -1900
  294. package/packages/date-panel/src/util.ts +354 -326
  295. package/packages/date-picker/index.ts +16 -16
  296. package/packages/date-picker/src/date-picker.ts +1884 -1752
  297. package/packages/date-range-picker/index.ts +16 -16
  298. package/packages/date-range-picker/src/date-range-picker.ts +1728 -1604
  299. package/packages/divider/index.ts +16 -16
  300. package/packages/divider/src/divider.ts +105 -93
  301. package/packages/drawer/index.ts +78 -78
  302. package/packages/drawer/src/drawer.ts +920 -802
  303. package/packages/drawer/src/store.ts +3 -3
  304. package/packages/dynamics/index.ts +124 -117
  305. package/packages/empty/index.ts +16 -16
  306. package/packages/empty/src/empty.ts +124 -103
  307. package/packages/form/index.ts +16 -16
  308. package/packages/form/render/index.ts +646 -614
  309. package/packages/form/src/form-config-item.ts +85 -80
  310. package/packages/form/src/form-group.ts +96 -86
  311. package/packages/form/src/form-item.ts +181 -174
  312. package/packages/form/src/form.ts +1122 -1069
  313. package/packages/form/src/itemInfo.ts +84 -82
  314. package/packages/form/src/render.ts +470 -387
  315. package/packages/form/src/util.ts +98 -93
  316. package/packages/form-gather/index.ts +26 -26
  317. package/packages/form-group/index.ts +16 -16
  318. package/packages/form-item/index.ts +16 -16
  319. package/packages/icon/index.ts +16 -16
  320. package/packages/icon/src/icon.ts +78 -75
  321. package/packages/icon-picker/index.ts +16 -16
  322. package/packages/icon-picker/src/icon-picker.ts +922 -809
  323. package/packages/image/index.ts +16 -16
  324. package/packages/image/src/group.ts +159 -153
  325. package/packages/image/src/image.ts +298 -298
  326. package/packages/image/src/preview.ts +749 -672
  327. package/packages/image/src/util.ts +62 -59
  328. package/packages/image-group/index.ts +16 -16
  329. package/packages/image-preview/index.ts +19 -19
  330. package/packages/index.ts +20 -4
  331. package/packages/input/index.ts +16 -16
  332. package/packages/input/src/input.ts +3201 -2863
  333. package/packages/language/fr-FR.ts +15 -15
  334. package/packages/language/it-IT.ts +4 -4
  335. package/packages/language/uk-UA.ts +1 -1
  336. package/packages/language/uz-UZ.ts +13 -13
  337. package/packages/language/zh-CN.ts +907 -907
  338. package/packages/layout-aside/index.ts +16 -16
  339. package/packages/layout-aside/src/layout-aside.ts +172 -156
  340. package/packages/layout-body/index.ts +16 -16
  341. package/packages/layout-body/src/layout-body.ts +191 -181
  342. package/packages/layout-container/index.ts +16 -16
  343. package/packages/layout-container/src/layout-container.ts +108 -92
  344. package/packages/layout-footer/index.ts +16 -16
  345. package/packages/layout-footer/src/layout-footer.ts +81 -74
  346. package/packages/layout-header/index.ts +16 -16
  347. package/packages/layout-header/src/layout-header.ts +79 -73
  348. package/packages/link/index.ts +16 -16
  349. package/packages/link/src/link.ts +180 -161
  350. package/packages/list/index.ts +16 -16
  351. package/packages/list/src/list.ts +2690 -2564
  352. package/packages/list/src/store.ts +10 -10
  353. package/packages/list/src/util.ts +10 -11
  354. package/packages/loading/index.ts +39 -36
  355. package/packages/loading/src/loading.ts +179 -152
  356. package/packages/mention/index.ts +16 -16
  357. package/packages/mention/src/mention.ts +69 -71
  358. package/packages/menu/index.ts +16 -16
  359. package/packages/menu/src/menu.ts +1000 -857
  360. package/packages/modal/index.ts +164 -141
  361. package/packages/modal/src/modal.ts +1803 -1681
  362. package/packages/modal/src/store.ts +3 -3
  363. package/packages/notice-bar/index.ts +16 -16
  364. package/packages/notice-bar/src/notice-bar.ts +207 -181
  365. package/packages/number-input/index.ts +16 -16
  366. package/packages/number-input/src/number-input.ts +1322 -1242
  367. package/packages/number-input/src/util.ts +25 -25
  368. package/packages/optgroup/index.ts +16 -16
  369. package/packages/option/index.ts +16 -16
  370. package/packages/pager/index.ts +16 -16
  371. package/packages/pager/src/pager.ts +919 -775
  372. package/packages/password-input/index.ts +16 -16
  373. package/packages/password-input/src/password-input.ts +523 -482
  374. package/packages/print/index.ts +18 -18
  375. package/packages/print/src/page-break.ts +104 -92
  376. package/packages/print/src/print.ts +366 -281
  377. package/packages/print/src/util.ts +299 -304
  378. package/packages/print-page-break/index.ts +16 -16
  379. package/packages/pulldown/index.ts +16 -16
  380. package/packages/pulldown/src/pulldown.ts +505 -445
  381. package/packages/radio/index.ts +16 -16
  382. package/packages/radio/src/button.ts +290 -243
  383. package/packages/radio/src/group.ts +275 -252
  384. package/packages/radio/src/radio.ts +237 -218
  385. package/packages/radio-button/index.ts +16 -16
  386. package/packages/radio-group/index.ts +16 -16
  387. package/packages/rate/index.ts +16 -16
  388. package/packages/rate/src/rate.ts +203 -192
  389. package/packages/result/index.ts +16 -16
  390. package/packages/result/src/result.ts +141 -112
  391. package/packages/row/index.ts +16 -16
  392. package/packages/row/src/col.ts +171 -159
  393. package/packages/row/src/row.ts +143 -138
  394. package/packages/scrollbar/index.ts +16 -16
  395. package/packages/scrollbar/src/scrollbar.ts +626 -595
  396. package/packages/segmented/index.ts +16 -16
  397. package/packages/segmented/src/segmented.ts +297 -264
  398. package/packages/select/index.ts +16 -16
  399. package/packages/select/src/optgroup.ts +53 -49
  400. package/packages/select/src/option-info.ts +20 -20
  401. package/packages/select/src/option.ts +47 -47
  402. package/packages/select/src/select.ts +2390 -2214
  403. package/packages/select/src/util.ts +50 -47
  404. package/packages/slider/index.ts +16 -16
  405. package/packages/slider/src/slider.ts +547 -506
  406. package/packages/space/index.ts +16 -16
  407. package/packages/space/src/space.ts +225 -209
  408. package/packages/split/index.ts +16 -16
  409. package/packages/split-pane/index.ts +17 -17
  410. package/packages/splitter/index.ts +16 -16
  411. package/packages/splitter/src/splitter-panel.ts +199 -163
  412. package/packages/splitter/src/splitter.ts +1110 -1020
  413. package/packages/splitter/src/util.ts +21 -21
  414. package/packages/splitter-panel/index.ts +16 -16
  415. package/packages/steps/index.ts +16 -16
  416. package/packages/steps/src/steps.ts +69 -68
  417. package/packages/switch/index.ts +16 -16
  418. package/packages/switch/src/switch.ts +300 -245
  419. package/packages/tab-pane/index.ts +16 -16
  420. package/packages/table-select/index.ts +16 -16
  421. package/packages/table-select/src/table-select.ts +1103 -999
  422. package/packages/table-transfer/index.ts +16 -16
  423. package/packages/table-transfer/src/table-transfer.ts +104 -91
  424. package/packages/tabs/index.ts +16 -16
  425. package/packages/tabs/src/tab-pane.ts +132 -117
  426. package/packages/tabs/src/tabs.ts +1137 -997
  427. package/packages/tabs/src/util.ts +21 -21
  428. package/packages/tag/index.ts +16 -16
  429. package/packages/tag/src/tag.ts +204 -187
  430. package/packages/text/index.ts +16 -16
  431. package/packages/text/src/text.ts +282 -260
  432. package/packages/text-ellipsis/index.ts +16 -16
  433. package/packages/text-ellipsis/src/text-ellipsis.ts +312 -282
  434. package/packages/textarea/index.ts +16 -16
  435. package/packages/textarea/src/textarea.ts +526 -495
  436. package/packages/timeline/index.ts +16 -16
  437. package/packages/timeline/src/timeline-item.ts +65 -67
  438. package/packages/timeline/src/timeline.ts +70 -71
  439. package/packages/timeline-item/index.ts +16 -16
  440. package/packages/tip/index.ts +19 -19
  441. package/packages/tip/src/tip.ts +150 -129
  442. package/packages/tooltip/index.ts +72 -72
  443. package/packages/tooltip/src/tooltip.ts +669 -627
  444. package/packages/tour/index.ts +16 -16
  445. package/packages/tour/src/tour.ts +70 -71
  446. package/packages/transfer/index.ts +16 -16
  447. package/packages/transfer/src/transfer.ts +130 -117
  448. package/packages/tree/index.ts +16 -16
  449. package/packages/tree/src/store.ts +10 -10
  450. package/packages/tree/src/tree.ts +4077 -3852
  451. package/packages/tree/src/util.ts +51 -51
  452. package/packages/tree-select/index.ts +16 -16
  453. package/packages/tree-select/src/tree-select.ts +1217 -1094
  454. package/packages/ui/index.ts +836 -793
  455. package/packages/ui/src/anime.ts +51 -52
  456. package/packages/ui/src/comp.ts +3 -3
  457. package/packages/ui/src/dom.ts +357 -354
  458. package/packages/ui/src/log.ts +19 -19
  459. package/packages/ui/src/utils.ts +79 -79
  460. package/packages/ui/src/vn.ts +39 -39
  461. package/packages/upload/index.ts +20 -20
  462. package/packages/upload/src/upload.ts +2271 -2021
  463. package/packages/upload/src/util.ts +109 -109
  464. package/packages/watermark/index.ts +33 -33
  465. package/packages/watermark/src/util.ts +186 -180
  466. package/packages/watermark/src/watermark.ts +196 -168
  467. package/types/all.d.ts +552 -552
  468. package/types/components/alert.d.ts +83 -87
  469. package/types/components/anchor-link.d.ts +88 -91
  470. package/types/components/anchor.d.ts +97 -104
  471. package/types/components/avatar.d.ts +85 -88
  472. package/types/components/backtop.d.ts +119 -122
  473. package/types/components/badge.d.ts +77 -80
  474. package/types/components/breadcrumb-item.d.ts +77 -80
  475. package/types/components/breadcrumb.d.ts +83 -87
  476. package/types/components/button-group.d.ts +118 -120
  477. package/types/components/button.d.ts +331 -339
  478. package/types/components/calendar.d.ts +247 -264
  479. package/types/components/card.d.ts +111 -113
  480. package/types/components/carousel-item.d.ts +73 -75
  481. package/types/components/carousel.d.ts +130 -134
  482. package/types/components/cascader.d.ts +336 -386
  483. package/types/components/checkbox-button.d.ts +109 -114
  484. package/types/components/checkbox-group.d.ts +152 -154
  485. package/types/components/checkbox.d.ts +123 -128
  486. package/types/components/col.d.ts +77 -80
  487. package/types/components/colgroup.d.ts +64 -69
  488. package/types/components/collapse-pane.d.ts +86 -89
  489. package/types/components/collapse.d.ts +123 -133
  490. package/types/components/color-picker.d.ts +275 -280
  491. package/types/components/column.d.ts +834 -851
  492. package/types/components/context-menu.d.ts +282 -289
  493. package/types/components/countdown.d.ts +108 -112
  494. package/types/components/date-panel.d.ts +319 -331
  495. package/types/components/date-picker.d.ts +361 -384
  496. package/types/components/date-range-picker.d.ts +351 -371
  497. package/types/components/divider.d.ts +72 -75
  498. package/types/components/drawer.d.ts +333 -344
  499. package/types/components/empty.d.ts +75 -78
  500. package/types/components/flow-design.d.ts +73 -85
  501. package/types/components/flow-view.d.ts +73 -85
  502. package/types/components/form-design.d.ts +370 -376
  503. package/types/components/form-gather.d.ts +120 -124
  504. package/types/components/form-group.d.ts +73 -77
  505. package/types/components/form-item.d.ts +395 -413
  506. package/types/components/form-view.d.ts +179 -183
  507. package/types/components/form.d.ts +499 -495
  508. package/types/components/gantt-module/gantt-view.d.ts +195 -200
  509. package/types/components/gantt-module/index.d.ts +1 -1
  510. package/types/components/gantt-plugins/extend-gantt-chart.d.ts +137 -131
  511. package/types/components/gantt-plugins/index.d.ts +1 -1
  512. package/types/components/gantt.d.ts +1248 -1399
  513. package/types/components/grid.d.ts +1289 -1317
  514. package/types/components/icon-picker.d.ts +242 -253
  515. package/types/components/icon.d.ts +332 -87
  516. package/types/components/image-group.d.ts +124 -127
  517. package/types/components/image-preview.d.ts +167 -167
  518. package/types/components/image.d.ts +166 -173
  519. package/types/components/input.d.ts +429 -453
  520. package/types/components/layout-aside.d.ts +123 -123
  521. package/types/components/layout-body.d.ts +110 -113
  522. package/types/components/layout-container.d.ts +73 -75
  523. package/types/components/layout-footer.d.ts +71 -73
  524. package/types/components/layout-header.d.ts +67 -69
  525. package/types/components/link.d.ts +107 -111
  526. package/types/components/list-design.d.ts +189 -190
  527. package/types/components/list-view.d.ts +193 -199
  528. package/types/components/list.d.ts +678 -715
  529. package/types/components/loading.d.ts +98 -103
  530. package/types/components/mention.d.ts +70 -77
  531. package/types/components/menu.d.ts +284 -295
  532. package/types/components/modal.d.ts +567 -584
  533. package/types/components/notice-bar.d.ts +102 -106
  534. package/types/components/number-input.d.ts +359 -365
  535. package/types/components/optgroup.d.ts +85 -88
  536. package/types/components/option.d.ts +94 -103
  537. package/types/components/pager.d.ts +330 -335
  538. package/types/components/password-input.d.ts +143 -156
  539. package/types/components/print-page-break.d.ts +65 -69
  540. package/types/components/print.d.ts +243 -245
  541. package/types/components/pulldown.d.ts +231 -239
  542. package/types/components/radio-button.d.ts +113 -118
  543. package/types/components/radio-group.d.ts +151 -153
  544. package/types/components/radio.d.ts +129 -134
  545. package/types/components/rate.d.ts +83 -88
  546. package/types/components/result.d.ts +81 -84
  547. package/types/components/row.d.ts +77 -81
  548. package/types/components/scrollbar.d.ts +299 -305
  549. package/types/components/segmented.d.ts +119 -123
  550. package/types/components/select.d.ts +598 -616
  551. package/types/components/slider.d.ts +137 -151
  552. package/types/components/space.d.ts +120 -127
  553. package/types/components/split-pane.d.ts +126 -133
  554. package/types/components/split.d.ts +301 -312
  555. package/types/components/splitter-panel.d.ts +123 -130
  556. package/types/components/splitter.d.ts +290 -301
  557. package/types/components/steps.d.ts +63 -68
  558. package/types/components/switch.d.ts +127 -133
  559. package/types/components/tab-pane.d.ts +111 -114
  560. package/types/components/table-module/custom.d.ts +123 -123
  561. package/types/components/table-module/edit.d.ts +297 -276
  562. package/types/components/table-module/export.d.ts +88 -96
  563. package/types/components/table-module/filter.d.ts +144 -144
  564. package/types/components/table-module/index.d.ts +7 -7
  565. package/types/components/table-module/keyboard.d.ts +26 -26
  566. package/types/components/table-module/menu.d.ts +46 -46
  567. package/types/components/table-module/validator.d.ts +53 -53
  568. package/types/components/table-plugins/extend-cell-area.d.ts +781 -781
  569. package/types/components/table-plugins/extend-pivot-table.d.ts +59 -58
  570. package/types/components/table-plugins/filters-combination.d.ts +15 -15
  571. package/types/components/table-plugins/filters-complex-input.d.ts +9 -9
  572. package/types/components/table-plugins/index.d.ts +4 -4
  573. package/types/components/table-select.d.ts +268 -276
  574. package/types/components/table-transfer.d.ts +80 -84
  575. package/types/components/table.d.ts +7530 -8000
  576. package/types/components/tabs.d.ts +314 -352
  577. package/types/components/tag.d.ts +108 -114
  578. package/types/components/text-ellipsis.d.ts +107 -112
  579. package/types/components/text.d.ts +112 -122
  580. package/types/components/textarea.d.ts +261 -275
  581. package/types/components/timeline-item.d.ts +66 -75
  582. package/types/components/timeline.d.ts +70 -77
  583. package/types/components/tip.d.ts +81 -83
  584. package/types/components/toolbar.d.ts +327 -336
  585. package/types/components/tooltip.d.ts +250 -255
  586. package/types/components/tour.d.ts +70 -77
  587. package/types/components/transfer.d.ts +80 -84
  588. package/types/components/tree-select.d.ts +361 -376
  589. package/types/components/tree.d.ts +994 -1036
  590. package/types/components/upload.d.ts +477 -518
  591. package/types/components/watermark.d.ts +116 -120
  592. package/types/handles/form-design.d.ts +50 -50
  593. package/types/handles/index.d.ts +3 -3
  594. package/types/handles/list-design.d.ts +1 -2
  595. package/types/handles/table.d.ts +15 -15
  596. package/types/index.d.ts +8 -8
  597. package/types/ui/commands.d.ts +57 -57
  598. package/types/ui/formats.d.ts +62 -62
  599. package/types/ui/global-config.d.ts +269 -269
  600. package/types/ui/global-icon.d.ts +315 -315
  601. package/types/ui/hooks.d.ts +13 -13
  602. package/types/ui/index.d.ts +100 -100
  603. package/types/ui/interceptor.d.ts +52 -52
  604. package/types/ui/menus.d.ts +89 -89
  605. package/types/ui/renderer.d.ts +1033 -1047
  606. package/types/ui/validators.d.ts +37 -38
  607. /package/dist/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  608. /package/dist/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  609. /package/dist/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
  610. /package/es/icon/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  611. /package/es/icon/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  612. /package/es/icon/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
  613. /package/es/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  614. /package/es/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  615. /package/es/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
  616. /package/es/vxe-icon/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  617. /package/es/vxe-icon/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  618. /package/es/vxe-icon/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
  619. /package/lib/icon/style/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  620. /package/lib/icon/style/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  621. /package/lib/icon/style/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
  622. /package/lib/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  623. /package/lib/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  624. /package/lib/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
  625. /package/lib/vxe-icon/style/{iconfont.1792979107495.ttf → iconfont.1793007755017.ttf} +0 -0
  626. /package/lib/vxe-icon/style/{iconfont.1792979107495.woff → iconfont.1793007755017.woff} +0 -0
  627. /package/lib/vxe-icon/style/{iconfont.1792979107495.woff2 → iconfont.1793007755017.woff2} +0 -0
@@ -1,506 +1,547 @@
1
- import { ref, h, reactive, PropType, watch, computed, inject, onMounted, onBeforeUnmount } from 'vue'
2
- import { defineVxeComponent } from '../../ui/src/comp'
3
- import XEUtils from 'xe-utils'
4
- import { VxeUI, getConfig, createEvent, renderEmptyElement, useSize } from '../../ui'
5
- import { getText } from '../../ui/src/utils'
6
-
7
- import type { SliderReactData, SliderInternalData, VxeSliderEmits, VxeSliderPropTypes, SliderMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, SliderPrivateMethods, ValueOf, SliderPrivateRef, VxeSliderPrivateComputed, VxeSliderConstructor, VxeSliderPrivateMethods } from '../../../types'
8
-
9
- function createInternalData (): SliderInternalData {
10
- return {
11
- // _isUp: false,
12
- isDragStatus: false,
13
- isBtnActive: false,
14
- currValue: 0,
15
- startValue: 0,
16
- endValue: 0
17
- }
18
- }
19
-
20
- function createReactData (): SliderReactData {
21
- return {
22
- }
23
- }
24
-
25
- export default defineVxeComponent({
26
- name: 'VxeSlider',
27
- props: {
28
- modelValue: [String, Number, Array] as PropType<VxeSliderPropTypes.ModelValue>,
29
- startValue: [String, Number] as PropType<VxeSliderPropTypes.StartValue>,
30
- endValue: [String, Number] as PropType<VxeSliderPropTypes.EndValue>,
31
- vertical: Boolean as PropType<VxeSliderPropTypes.Vertical>,
32
- max: {
33
- type: [String, Number] as PropType<VxeSliderPropTypes.Max>,
34
- default: () => getConfig().slider.max
35
- },
36
- min: {
37
- type: [String, Number] as PropType<VxeSliderPropTypes.Min>,
38
- default: () => getConfig().slider.min
39
- },
40
- step: {
41
- type: [String, Number] as PropType<VxeSliderPropTypes.Step>,
42
- default: () => getConfig().slider.step
43
- },
44
- size: {
45
- type: String as PropType<VxeSliderPropTypes.Size>,
46
- default: () => getConfig().slider.size || getConfig().size
47
- },
48
- range: {
49
- type: Boolean as PropType<VxeSliderPropTypes.Range>,
50
- default: () => getConfig().slider.range
51
- },
52
- readonly: {
53
- type: Boolean as PropType<VxeSliderPropTypes.Readonly>,
54
- default: null
55
- },
56
- disabled: {
57
- type: Boolean as PropType<VxeSliderPropTypes.Disabled>,
58
- default: null
59
- },
60
- status: {
61
- type: String as PropType<VxeSliderPropTypes.Status>,
62
- default: () => getConfig().slider.status
63
- },
64
- immediate: {
65
- type: Boolean as PropType<VxeSliderPropTypes.Immediate>,
66
- default: () => getConfig().slider.immediate
67
- },
68
- showTooltip: {
69
- type: Boolean as PropType<VxeSliderPropTypes.ShowTooltip>,
70
- default: () => getConfig().slider.showTooltip
71
- },
72
- tooltipConfig: Object as PropType<VxeSliderPropTypes.TooltipConfig>
73
- },
74
- emits: [
75
- 'update:modelValue',
76
- 'update:startValue',
77
- 'update:endValue',
78
- 'change',
79
- 'track-dragstart',
80
- 'track-dragover',
81
- 'track-dragend'
82
- ] as VxeSliderEmits,
83
- setup (props, context) {
84
- const { emit } = context
85
-
86
- const $xeForm = inject<VxeFormConstructor & VxeFormPrivateMethods | null>('$xeForm', null)
87
- const formItemInfo = inject<VxeFormDefines.ProvideItemInfo | null>('xeFormItemInfo', null)
88
-
89
- const xID = XEUtils.uniqueId()
90
-
91
- const { computeSize } = useSize(props)
92
-
93
- const refElem = ref<HTMLDivElement>()
94
- const refBarElem = ref<HTMLDivElement>()
95
- const refTrackElem = ref<HTMLDivElement>()
96
- const refStartBtnElem = ref<HTMLDivElement>()
97
- const refEndBtnElem = ref<HTMLDivElement>()
98
-
99
- const reactData = reactive(createReactData())
100
- const internalData = createInternalData()
101
-
102
- const refMaps: SliderPrivateRef = {
103
- refElem
104
- }
105
-
106
- const computeFormReadonly = computed(() => {
107
- const { readonly } = props
108
- if (readonly === null) {
109
- if ($xeForm) {
110
- return $xeForm.props.readonly
111
- }
112
- return false
113
- }
114
- return readonly
115
- })
116
-
117
- const computeIsDisabled = computed(() => {
118
- const { disabled } = props
119
- if (disabled === null) {
120
- if ($xeForm) {
121
- return $xeForm.props.disabled
122
- }
123
- return false
124
- }
125
- return disabled
126
- })
127
-
128
- const computeMaxNum = computed(() => {
129
- return XEUtils.toNumber(props.max || 0)
130
- })
131
-
132
- const computeMinNum = computed(() => {
133
- return XEUtils.toNumber(props.min || 0)
134
- })
135
-
136
- const computeMVal = computed(() => {
137
- const { range, startValue, endValue } = props
138
- return range ? `${startValue || ''}${endValue || ''}` : ''
139
- })
140
-
141
- const computeTooltipOpts = computed(() => {
142
- return Object.assign({}, getConfig().slider.tooltipConfig, props.tooltipConfig)
143
- })
144
-
145
- const computeMaps: VxeSliderPrivateComputed = {
146
- }
147
-
148
- const $xeSlider = {
149
- xID,
150
- props,
151
- context,
152
- reactData,
153
-
154
- getRefMaps: () => refMaps,
155
- getComputeMaps: () => computeMaps
156
- } as unknown as VxeSliderConstructor & VxeSliderPrivateMethods
157
-
158
- const emitModel = (value: any) => {
159
- internalData._isUp = true
160
- emit('update:modelValue', value)
161
- }
162
-
163
- const dispatchEvent = (type: ValueOf<VxeSliderEmits>, params: Record<string, any>, evnt: Event | null) => {
164
- emit(type, createEvent(evnt, { $slider: $xeSlider }, params))
165
- }
166
-
167
- const collapsePaneMethods: SliderMethods = {
168
- dispatchEvent
169
- }
170
-
171
- const getBarPercent = (currValue: number) => {
172
- const maxNum = computeMaxNum.value
173
- const minNum = computeMinNum.value
174
- if (maxNum === minNum) {
175
- return 0
176
- }
177
- if (currValue < minNum) {
178
- currValue = minNum
179
- }
180
- if (currValue > maxNum) {
181
- currValue = maxNum
182
- }
183
- return ((currValue - minNum) / (maxNum - minNum)) * 100
184
- }
185
-
186
- const parseFields = (startValue?: VxeSliderPropTypes.StartValue, endValue?: VxeSliderPropTypes.EndValue) => {
187
- const [sVal, eVal] = XEUtils.orderBy([XEUtils.toNumber(startValue), XEUtils.toNumber(endValue)])
188
- const currValue = XEUtils.floor(XEUtils.toNumber(sVal || 0))
189
- internalData.currValue = currValue
190
- internalData.startValue = currValue
191
- internalData.endValue = XEUtils.floor(XEUtils.toNumber(eVal || 0))
192
- }
193
-
194
- const parseArrs = (arrVals: number[]) => {
195
- const [sVal, eVal] = XEUtils.orderBy(arrVals)
196
- const currValue = XEUtils.floor(XEUtils.toNumber(sVal || 0))
197
- internalData.currValue = currValue
198
- internalData.startValue = currValue
199
- internalData.endValue = XEUtils.floor(XEUtils.toNumber(eVal || 0))
200
- }
201
-
202
- const parseNum = (val: VxeSliderPropTypes.ModelValue | undefined) => {
203
- const currValue = XEUtils.floor(XEUtils.toNumber(val || 0))
204
- internalData.currValue = currValue
205
- internalData.startValue = 0
206
- internalData.endValue = currValue
207
- }
208
-
209
- const updateModelValue = (umType?: 1 | 2) => {
210
- const { range, modelValue, startValue, endValue } = props
211
- if (!umType) {
212
- if (range) {
213
- if (XEUtils.eqNull(modelValue)) {
214
- if (startValue || endValue) {
215
- parseFields(startValue, endValue)
216
- }
217
- } else {
218
- if (XEUtils.isArray(modelValue)) {
219
- parseArrs(modelValue.map(num => XEUtils.toNumber(num)))
220
- } else {
221
- parseNum(modelValue)
222
- }
223
- }
224
- } else {
225
- parseNum(modelValue)
226
- }
227
- } else if (range && umType === 2) {
228
- parseFields(startValue, endValue)
229
- } else {
230
- if (XEUtils.isArray(modelValue)) {
231
- parseArrs(modelValue.map(num => XEUtils.toNumber(num)))
232
- } else {
233
- parseNum(modelValue)
234
- }
235
- }
236
- updateBarStyle()
237
- updateTrackStyle()
238
- }
239
-
240
- const updateBarStyle = () => {
241
- const { range } = props
242
- const { currValue, startValue, endValue } = internalData
243
- const startBtnElem = refStartBtnElem.value
244
- const endBtnElem = refEndBtnElem.value
245
- if (range) {
246
- const [sVal, eVal] = XEUtils.orderBy([startValue, endValue])
247
- if (startBtnElem) {
248
- startBtnElem.style.left = getBarPercent(sVal) + '%'
249
- }
250
- if (endBtnElem) {
251
- endBtnElem.style.left = getBarPercent(eVal) + '%'
252
- }
253
- } else {
254
- if (endBtnElem) {
255
- endBtnElem.style.left = getBarPercent(currValue) + '%'
256
- }
257
- }
258
- }
259
-
260
- const updateTrackStyle = () => {
261
- const { range } = props
262
- const { currValue, startValue, endValue } = internalData
263
- const trackElem = refTrackElem.value
264
- if (trackElem) {
265
- if (range) {
266
- const [sVal, eVal] = XEUtils.orderBy([startValue, endValue])
267
- trackElem.style.left = getBarPercent(sVal) + '%'
268
- trackElem.style.width = getBarPercent(eVal - sVal) + '%'
269
- } else {
270
- trackElem.style.left = '0'
271
- trackElem.style.width = getBarPercent(currValue) + '%'
272
- }
273
- }
274
- }
275
-
276
- const changeEvent = (evnt: MouseEvent) => {
277
- const { range } = props
278
- const { currValue, startValue, endValue } = internalData
279
- const vals = range ? XEUtils.orderBy([startValue, endValue]) : []
280
- const value = range ? vals : currValue
281
- emitModel(value)
282
- if (range) {
283
- emit('update:startValue', vals[0] || 0)
284
- emit('update:endValue', vals[1] || 0)
285
- }
286
- dispatchEvent('change', { value }, evnt)
287
- // 自动更新校验状态
288
- if ($xeForm && formItemInfo) {
289
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value)
290
- }
291
- }
292
-
293
- const getValueByLeft = (offsetLeft: number, barWidth: number) => {
294
- const maxNum = computeMaxNum.value
295
- const minNum = computeMinNum.value
296
- if (barWidth === 0) {
297
- return minNum
298
- }
299
- const clamped = Math.max(0, Math.min(barWidth, offsetLeft))
300
- const ratio = clamped / barWidth
301
- const raw = minNum + ratio * (maxNum - minNum)
302
- return Math.floor(raw)
303
- }
304
-
305
- const handleShowTip = (btnElem: HTMLDivElement) => {
306
- const { showTooltip } = props
307
- if (showTooltip) {
308
- if (VxeUI.tooltip) {
309
- const { currValue } = internalData
310
- const tooltipOpts = computeTooltipOpts.value
311
- const { contentMethod } = tooltipOpts
312
- const content = getText(contentMethod
313
- ? contentMethod({
314
- $slider: $xeSlider,
315
- value: currValue
316
- })
317
- : '' + currValue)
318
- if (content) {
319
- VxeUI.tooltip.open(btnElem, Object.assign({}, {
320
- ...tooltipOpts,
321
- content
322
- }, {
323
- contentMethod: undefined
324
- }))
325
- } else {
326
- VxeUI.tooltip.close()
327
- }
328
- }
329
- }
330
- }
331
-
332
- const handleHideTip = () => {
333
- const { showTooltip } = props
334
- if (showTooltip) {
335
- if (VxeUI.tooltip) {
336
- VxeUI.tooltip.close()
337
- }
338
- }
339
- }
340
-
341
- const handleBtnMousedownEvent = (evnt: MouseEvent) => {
342
- const { range, immediate } = props
343
- const btnElem = evnt.currentTarget as HTMLDivElement
344
- const formReadonly = computeFormReadonly.value
345
- const isDisabled = computeIsDisabled.value
346
- if (!(formReadonly || isDisabled)) {
347
- evnt.preventDefault()
348
- document.onmousemove = evnt => {
349
- evnt.preventDefault()
350
- const el = refElem.value
351
- const barElem = refBarElem.value
352
- internalData.isDragStatus = true
353
- if (el && barElem) {
354
- const btnType = btnElem.getAttribute('data-type')
355
- const barRect = barElem.getBoundingClientRect()
356
- const barWidth = barRect.width
357
- const offsetLeft = Math.min(barWidth, Math.max(0, evnt.clientX - barRect.left))
358
- const currValue = getValueByLeft(offsetLeft, barWidth)
359
- if (range) {
360
- if (btnType === '1') {
361
- internalData.startValue = currValue
362
- } else {
363
- internalData.endValue = currValue
364
- }
365
- }
366
- internalData.currValue = currValue
367
- btnElem.style.left = getBarPercent(currValue) + '%'
368
- dispatchEvent('track-dragover', {
369
- currentValue: internalData.currValue,
370
- startValue: internalData.startValue,
371
- endValue: internalData.endValue
372
- }, evnt)
373
- }
374
- if (immediate) {
375
- changeEvent(evnt)
376
- }
377
- updateTrackStyle()
378
- handleShowTip(btnElem)
379
- }
380
- document.onmouseup = (evnt: MouseEvent) => {
381
- document.onmousemove = null
382
- document.onmouseup = null
383
- internalData.isDragStatus = false
384
- dispatchEvent('track-dragend', {
385
- currentValue: internalData.currValue,
386
- startValue: internalData.startValue,
387
- endValue: internalData.endValue
388
- }, evnt)
389
- changeEvent(evnt)
390
- updateTrackStyle()
391
- if (!internalData.isBtnActive) {
392
- handleHideTip()
393
- }
394
- }
395
- dispatchEvent('track-dragstart', {
396
- currentValue: internalData.currValue,
397
- startValue: internalData.startValue,
398
- endValue: internalData.endValue
399
- }, evnt)
400
- internalData.isDragStatus = false
401
- }
402
- }
403
-
404
- const handleBtnMouseenterEvent = (evnt: MouseEvent) => {
405
- const { startValue, endValue } = internalData
406
- const btnElem = evnt.currentTarget as HTMLDivElement
407
- const btnType = btnElem.getAttribute('data-type')
408
- internalData.currValue = btnType === '1' ? startValue : endValue
409
- internalData.isBtnActive = true
410
- handleShowTip(btnElem)
411
- }
412
-
413
- const handleBtnMouseleaveEvent = () => {
414
- const { isDragStatus } = internalData
415
- internalData.isBtnActive = false
416
- if (!isDragStatus) {
417
- handleHideTip()
418
- }
419
- }
420
-
421
- const collapsePanePrivateMethods: SliderPrivateMethods = {
422
- }
423
-
424
- Object.assign($xeSlider, collapsePaneMethods, collapsePanePrivateMethods)
425
-
426
- const renderVN = () => {
427
- const { status, vertical, range } = props
428
- const vSize = computeSize.value
429
- const formReadonly = computeFormReadonly.value
430
- const isDisabled = computeIsDisabled.value
431
- return h('div', {
432
- ref: refElem,
433
- class: ['vxe-slider', {
434
- [`size--${vSize}`]: vSize,
435
- [`theme--${status}`]: status,
436
- 'is--vertical': vertical,
437
- 'is--readonly': formReadonly,
438
- 'is--disabled': isDisabled
439
- }]
440
- }, [
441
- h('div', {
442
- class: 'vxe-slider--inner'
443
- }, [
444
- h('div', {
445
- ref: refBarElem,
446
- class: 'vxe-slider--bar-wrapper'
447
- }),
448
- h('div', {
449
- ref: refTrackElem,
450
- class: 'vxe-slider--bar-track'
451
- }),
452
- formReadonly || !range
453
- ? renderEmptyElement($xeSlider)
454
- : h('div', {
455
- ref: refStartBtnElem,
456
- class: 'vxe-slider--bar-btn',
457
- 'data-type': '1',
458
- onMouseenter: handleBtnMouseenterEvent,
459
- onMouseleave: handleBtnMouseleaveEvent,
460
- onMousedown: handleBtnMousedownEvent
461
- }),
462
- formReadonly
463
- ? renderEmptyElement($xeSlider)
464
- : h('div', {
465
- ref: refEndBtnElem,
466
- class: 'vxe-slider--bar-btn',
467
- 'data-type': '2',
468
- onMouseenter: handleBtnMouseenterEvent,
469
- onMouseleave: handleBtnMouseleaveEvent,
470
- onMousedown: handleBtnMousedownEvent
471
- })
472
- ])
473
- ])
474
- }
475
-
476
- watch(() => props.modelValue, () => {
477
- if (!internalData._isUp) {
478
- updateModelValue(1)
479
- }
480
- internalData._isUp = false
481
- })
482
-
483
- watch(computeMVal, () => {
484
- if (!internalData._isUp) {
485
- updateModelValue(2)
486
- }
487
- internalData._isUp = false
488
- })
489
-
490
- onMounted(() => {
491
- updateModelValue()
492
- })
493
-
494
- onBeforeUnmount(() => {
495
- XEUtils.assign(reactData, createReactData())
496
- XEUtils.assign(internalData, createInternalData())
497
- })
498
-
499
- $xeSlider.renderVN = renderVN
500
-
501
- return $xeSlider
502
- },
503
- render () {
504
- return this.renderVN()
505
- }
506
- })
1
+ import { ref, h, reactive, PropType, watch, computed, inject, onMounted, onBeforeUnmount } from 'vue'
2
+ import { defineVxeComponent } from '../../ui/src/comp'
3
+ import XEUtils from 'xe-utils'
4
+ import { VxeUI } from '@vxe-ui/core'
5
+ import { getText } from '../../ui/src/utils'
6
+
7
+ import type {
8
+ SliderReactData,
9
+ SliderInternalData,
10
+ VxeSliderEmits,
11
+ VxeSliderPropTypes,
12
+ SliderMethods,
13
+ VxeFormDefines,
14
+ VxeFormConstructor,
15
+ VxeFormPrivateMethods,
16
+ SliderPrivateMethods,
17
+ ValueOf,
18
+ SliderPrivateRef,
19
+ VxeSliderPrivateComputed,
20
+ VxeSliderConstructor,
21
+ VxeSliderPrivateMethods
22
+ } from '../../../types'
23
+
24
+ const { getConfig, createEvent, renderEmptyElement, useFns } = VxeUI
25
+
26
+ function createInternalData(): SliderInternalData {
27
+ return {
28
+ // _isUp: false,
29
+ isDragStatus: false,
30
+ isBtnActive: false,
31
+ currValue: 0,
32
+ startValue: 0,
33
+ endValue: 0
34
+ }
35
+ }
36
+
37
+ function createReactData(): SliderReactData {
38
+ return {}
39
+ }
40
+
41
+ export default defineVxeComponent({
42
+ name: 'VxeSlider',
43
+ props: {
44
+ modelValue: [String, Number, Array] as PropType<VxeSliderPropTypes.ModelValue>,
45
+ startValue: [String, Number] as PropType<VxeSliderPropTypes.StartValue>,
46
+ endValue: [String, Number] as PropType<VxeSliderPropTypes.EndValue>,
47
+ vertical: Boolean as PropType<VxeSliderPropTypes.Vertical>,
48
+ max: {
49
+ type: [String, Number] as PropType<VxeSliderPropTypes.Max>,
50
+ default: () => getConfig().slider.max
51
+ },
52
+ min: {
53
+ type: [String, Number] as PropType<VxeSliderPropTypes.Min>,
54
+ default: () => getConfig().slider.min
55
+ },
56
+ step: {
57
+ type: [String, Number] as PropType<VxeSliderPropTypes.Step>,
58
+ default: () => getConfig().slider.step
59
+ },
60
+ size: {
61
+ type: String as PropType<VxeSliderPropTypes.Size>,
62
+ default: () => getConfig().slider.size || getConfig().size
63
+ },
64
+ range: {
65
+ type: Boolean as PropType<VxeSliderPropTypes.Range>,
66
+ default: () => getConfig().slider.range
67
+ },
68
+ readonly: {
69
+ type: Boolean as PropType<VxeSliderPropTypes.Readonly>,
70
+ default: null
71
+ },
72
+ disabled: {
73
+ type: Boolean as PropType<VxeSliderPropTypes.Disabled>,
74
+ default: null
75
+ },
76
+ status: {
77
+ type: String as PropType<VxeSliderPropTypes.Status>,
78
+ default: () => getConfig().slider.status
79
+ },
80
+ immediate: {
81
+ type: Boolean as PropType<VxeSliderPropTypes.Immediate>,
82
+ default: () => getConfig().slider.immediate
83
+ },
84
+ showTooltip: {
85
+ type: Boolean as PropType<VxeSliderPropTypes.ShowTooltip>,
86
+ default: () => getConfig().slider.showTooltip
87
+ },
88
+ tooltipConfig: Object as PropType<VxeSliderPropTypes.TooltipConfig>
89
+ },
90
+ emits: ['update:modelValue', 'update:startValue', 'update:endValue', 'change', 'track-dragstart', 'track-dragover', 'track-dragend'] as VxeSliderEmits,
91
+ setup(props, context) {
92
+ const { emit } = context
93
+
94
+ const $xeForm = inject<(VxeFormConstructor & VxeFormPrivateMethods) | null>('$xeForm', null)
95
+ const formItemInfo = inject<VxeFormDefines.ProvideItemInfo | null>('xeFormItemInfo', null)
96
+
97
+ const xID = XEUtils.uniqueId()
98
+
99
+ const { computeSize } = useFns.useSize(props)
100
+
101
+ const refElem = ref<HTMLDivElement>()
102
+ const refBarElem = ref<HTMLDivElement>()
103
+ const refTrackElem = ref<HTMLDivElement>()
104
+ const refStartBtnElem = ref<HTMLDivElement>()
105
+ const refEndBtnElem = ref<HTMLDivElement>()
106
+
107
+ const reactData = reactive(createReactData())
108
+ const internalData = createInternalData()
109
+
110
+ const refMaps: SliderPrivateRef = {
111
+ refElem
112
+ }
113
+
114
+ const computeFormReadonly = computed(() => {
115
+ const { readonly } = props
116
+ if (readonly === null) {
117
+ if ($xeForm) {
118
+ return $xeForm.props.readonly
119
+ }
120
+ return false
121
+ }
122
+ return readonly
123
+ })
124
+
125
+ const computeIsDisabled = computed(() => {
126
+ const { disabled } = props
127
+ if (disabled === null) {
128
+ if ($xeForm) {
129
+ return $xeForm.props.disabled
130
+ }
131
+ return false
132
+ }
133
+ return disabled
134
+ })
135
+
136
+ const computeMaxNum = computed(() => {
137
+ return XEUtils.toNumber(props.max || 0)
138
+ })
139
+
140
+ const computeMinNum = computed(() => {
141
+ return XEUtils.toNumber(props.min || 0)
142
+ })
143
+
144
+ const computeMVal = computed(() => {
145
+ const { range, startValue, endValue } = props
146
+ return range ? `${startValue || ''}${endValue || ''}` : ''
147
+ })
148
+
149
+ const computeTooltipOpts = computed(() => {
150
+ return Object.assign({}, getConfig().slider.tooltipConfig, props.tooltipConfig)
151
+ })
152
+
153
+ const computeMaps: VxeSliderPrivateComputed = {}
154
+
155
+ const $xeSlider = {
156
+ xID,
157
+ props,
158
+ context,
159
+ reactData,
160
+
161
+ getRefMaps: () => refMaps,
162
+ getComputeMaps: () => computeMaps
163
+ } as unknown as VxeSliderConstructor & VxeSliderPrivateMethods
164
+
165
+ const emitModel = (value: any) => {
166
+ internalData._isUp = true
167
+ emit('update:modelValue', value)
168
+ }
169
+
170
+ const dispatchEvent = (type: ValueOf<VxeSliderEmits>, params: Record<string, any>, evnt: Event | null) => {
171
+ emit(type, createEvent(evnt, { $slider: $xeSlider }, params))
172
+ }
173
+
174
+ const collapsePaneMethods: SliderMethods = {
175
+ dispatchEvent
176
+ }
177
+
178
+ const getBarPercent = (currValue: number) => {
179
+ const maxNum = computeMaxNum.value
180
+ const minNum = computeMinNum.value
181
+ if (maxNum === minNum) {
182
+ return 0
183
+ }
184
+ if (currValue < minNum) {
185
+ currValue = minNum
186
+ }
187
+ if (currValue > maxNum) {
188
+ currValue = maxNum
189
+ }
190
+ return ((currValue - minNum) / (maxNum - minNum)) * 100
191
+ }
192
+
193
+ const parseFields = (startValue?: VxeSliderPropTypes.StartValue, endValue?: VxeSliderPropTypes.EndValue) => {
194
+ const [sVal, eVal] = XEUtils.orderBy([XEUtils.toNumber(startValue), XEUtils.toNumber(endValue)])
195
+ const currValue = XEUtils.floor(XEUtils.toNumber(sVal || 0))
196
+ internalData.currValue = currValue
197
+ internalData.startValue = currValue
198
+ internalData.endValue = XEUtils.floor(XEUtils.toNumber(eVal || 0))
199
+ }
200
+
201
+ const parseArrs = (arrVals: number[]) => {
202
+ const [sVal, eVal] = XEUtils.orderBy(arrVals)
203
+ const currValue = XEUtils.floor(XEUtils.toNumber(sVal || 0))
204
+ internalData.currValue = currValue
205
+ internalData.startValue = currValue
206
+ internalData.endValue = XEUtils.floor(XEUtils.toNumber(eVal || 0))
207
+ }
208
+
209
+ const parseNum = (val: VxeSliderPropTypes.ModelValue | undefined) => {
210
+ const currValue = XEUtils.floor(XEUtils.toNumber(val || 0))
211
+ internalData.currValue = currValue
212
+ internalData.startValue = 0
213
+ internalData.endValue = currValue
214
+ }
215
+
216
+ const updateModelValue = (umType?: 1 | 2) => {
217
+ const { range, modelValue, startValue, endValue } = props
218
+ if (!umType) {
219
+ if (range) {
220
+ if (XEUtils.eqNull(modelValue)) {
221
+ if (startValue || endValue) {
222
+ parseFields(startValue, endValue)
223
+ }
224
+ } else {
225
+ if (XEUtils.isArray(modelValue)) {
226
+ parseArrs(modelValue.map((num) => XEUtils.toNumber(num)))
227
+ } else {
228
+ parseNum(modelValue)
229
+ }
230
+ }
231
+ } else {
232
+ parseNum(modelValue)
233
+ }
234
+ } else if (range && umType === 2) {
235
+ parseFields(startValue, endValue)
236
+ } else {
237
+ if (XEUtils.isArray(modelValue)) {
238
+ parseArrs(modelValue.map((num) => XEUtils.toNumber(num)))
239
+ } else {
240
+ parseNum(modelValue)
241
+ }
242
+ }
243
+ updateBarStyle()
244
+ updateTrackStyle()
245
+ }
246
+
247
+ const updateBarStyle = () => {
248
+ const { range } = props
249
+ const { currValue, startValue, endValue } = internalData
250
+ const startBtnElem = refStartBtnElem.value
251
+ const endBtnElem = refEndBtnElem.value
252
+ if (range) {
253
+ const [sVal, eVal] = XEUtils.orderBy([startValue, endValue])
254
+ if (startBtnElem) {
255
+ startBtnElem.style.left = getBarPercent(sVal) + '%'
256
+ }
257
+ if (endBtnElem) {
258
+ endBtnElem.style.left = getBarPercent(eVal) + '%'
259
+ }
260
+ } else {
261
+ if (endBtnElem) {
262
+ endBtnElem.style.left = getBarPercent(currValue) + '%'
263
+ }
264
+ }
265
+ }
266
+
267
+ const updateTrackStyle = () => {
268
+ const { range } = props
269
+ const { currValue, startValue, endValue } = internalData
270
+ const trackElem = refTrackElem.value
271
+ if (trackElem) {
272
+ if (range) {
273
+ const [sVal, eVal] = XEUtils.orderBy([startValue, endValue])
274
+ trackElem.style.left = getBarPercent(sVal) + '%'
275
+ trackElem.style.width = getBarPercent(eVal - sVal) + '%'
276
+ } else {
277
+ trackElem.style.left = '0'
278
+ trackElem.style.width = getBarPercent(currValue) + '%'
279
+ }
280
+ }
281
+ }
282
+
283
+ const changeEvent = (evnt: MouseEvent) => {
284
+ const { range } = props
285
+ const { currValue, startValue, endValue } = internalData
286
+ const vals = range ? XEUtils.orderBy([startValue, endValue]) : []
287
+ const value = range ? vals : currValue
288
+ emitModel(value)
289
+ if (range) {
290
+ emit('update:startValue', vals[0] || 0)
291
+ emit('update:endValue', vals[1] || 0)
292
+ }
293
+ dispatchEvent('change', { value }, evnt)
294
+ // 自动更新校验状态
295
+ if ($xeForm && formItemInfo) {
296
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value)
297
+ }
298
+ }
299
+
300
+ const getValueByLeft = (offsetLeft: number, barWidth: number) => {
301
+ const maxNum = computeMaxNum.value
302
+ const minNum = computeMinNum.value
303
+ if (barWidth === 0) {
304
+ return minNum
305
+ }
306
+ const clamped = Math.max(0, Math.min(barWidth, offsetLeft))
307
+ const ratio = clamped / barWidth
308
+ const raw = minNum + ratio * (maxNum - minNum)
309
+ return Math.floor(raw)
310
+ }
311
+
312
+ const handleShowTip = (btnElem: HTMLDivElement) => {
313
+ const { showTooltip } = props
314
+ if (showTooltip) {
315
+ if (VxeUI.tooltip) {
316
+ const { currValue } = internalData
317
+ const tooltipOpts = computeTooltipOpts.value
318
+ const { contentMethod } = tooltipOpts
319
+ const content = getText(
320
+ contentMethod
321
+ ? contentMethod({
322
+ $slider: $xeSlider,
323
+ value: currValue
324
+ })
325
+ : '' + currValue
326
+ )
327
+ if (content) {
328
+ VxeUI.tooltip.open(
329
+ btnElem,
330
+ Object.assign(
331
+ {},
332
+ {
333
+ ...tooltipOpts,
334
+ content
335
+ },
336
+ {
337
+ contentMethod: undefined
338
+ }
339
+ )
340
+ )
341
+ } else {
342
+ VxeUI.tooltip.close()
343
+ }
344
+ }
345
+ }
346
+ }
347
+
348
+ const handleHideTip = () => {
349
+ const { showTooltip } = props
350
+ if (showTooltip) {
351
+ if (VxeUI.tooltip) {
352
+ VxeUI.tooltip.close()
353
+ }
354
+ }
355
+ }
356
+
357
+ const handleBtnMousedownEvent = (evnt: MouseEvent) => {
358
+ const { range, immediate } = props
359
+ const btnElem = evnt.currentTarget as HTMLDivElement
360
+ const formReadonly = computeFormReadonly.value
361
+ const isDisabled = computeIsDisabled.value
362
+ if (!(formReadonly || isDisabled)) {
363
+ evnt.preventDefault()
364
+ document.onmousemove = (evnt) => {
365
+ evnt.preventDefault()
366
+ const el = refElem.value
367
+ const barElem = refBarElem.value
368
+ internalData.isDragStatus = true
369
+ if (el && barElem) {
370
+ const btnType = btnElem.getAttribute('data-type')
371
+ const barRect = barElem.getBoundingClientRect()
372
+ const barWidth = barRect.width
373
+ const offsetLeft = Math.min(barWidth, Math.max(0, evnt.clientX - barRect.left))
374
+ const currValue = getValueByLeft(offsetLeft, barWidth)
375
+ if (range) {
376
+ if (btnType === '1') {
377
+ internalData.startValue = currValue
378
+ } else {
379
+ internalData.endValue = currValue
380
+ }
381
+ }
382
+ internalData.currValue = currValue
383
+ btnElem.style.left = getBarPercent(currValue) + '%'
384
+ dispatchEvent(
385
+ 'track-dragover',
386
+ {
387
+ currentValue: internalData.currValue,
388
+ startValue: internalData.startValue,
389
+ endValue: internalData.endValue
390
+ },
391
+ evnt
392
+ )
393
+ }
394
+ if (immediate) {
395
+ changeEvent(evnt)
396
+ }
397
+ updateTrackStyle()
398
+ handleShowTip(btnElem)
399
+ }
400
+ document.onmouseup = (evnt: MouseEvent) => {
401
+ document.onmousemove = null
402
+ document.onmouseup = null
403
+ internalData.isDragStatus = false
404
+ dispatchEvent(
405
+ 'track-dragend',
406
+ {
407
+ currentValue: internalData.currValue,
408
+ startValue: internalData.startValue,
409
+ endValue: internalData.endValue
410
+ },
411
+ evnt
412
+ )
413
+ changeEvent(evnt)
414
+ updateTrackStyle()
415
+ if (!internalData.isBtnActive) {
416
+ handleHideTip()
417
+ }
418
+ }
419
+ dispatchEvent(
420
+ 'track-dragstart',
421
+ {
422
+ currentValue: internalData.currValue,
423
+ startValue: internalData.startValue,
424
+ endValue: internalData.endValue
425
+ },
426
+ evnt
427
+ )
428
+ internalData.isDragStatus = false
429
+ }
430
+ }
431
+
432
+ const handleBtnMouseenterEvent = (evnt: MouseEvent) => {
433
+ const { startValue, endValue } = internalData
434
+ const btnElem = evnt.currentTarget as HTMLDivElement
435
+ const btnType = btnElem.getAttribute('data-type')
436
+ internalData.currValue = btnType === '1' ? startValue : endValue
437
+ internalData.isBtnActive = true
438
+ handleShowTip(btnElem)
439
+ }
440
+
441
+ const handleBtnMouseleaveEvent = () => {
442
+ const { isDragStatus } = internalData
443
+ internalData.isBtnActive = false
444
+ if (!isDragStatus) {
445
+ handleHideTip()
446
+ }
447
+ }
448
+
449
+ const collapsePanePrivateMethods: SliderPrivateMethods = {}
450
+
451
+ Object.assign($xeSlider, collapsePaneMethods, collapsePanePrivateMethods)
452
+
453
+ const renderVN = () => {
454
+ const { status, vertical, range } = props
455
+ const vSize = computeSize.value
456
+ const formReadonly = computeFormReadonly.value
457
+ const isDisabled = computeIsDisabled.value
458
+ return h(
459
+ 'div',
460
+ {
461
+ ref: refElem,
462
+ class: [
463
+ 'vxe-slider',
464
+ {
465
+ [`size--${vSize}`]: vSize,
466
+ [`theme--${status}`]: status,
467
+ 'is--vertical': vertical,
468
+ 'is--readonly': formReadonly,
469
+ 'is--disabled': isDisabled
470
+ }
471
+ ]
472
+ },
473
+ [
474
+ h(
475
+ 'div',
476
+ {
477
+ class: 'vxe-slider--inner'
478
+ },
479
+ [
480
+ h('div', {
481
+ ref: refBarElem,
482
+ class: 'vxe-slider--bar-wrapper'
483
+ }),
484
+ h('div', {
485
+ ref: refTrackElem,
486
+ class: 'vxe-slider--bar-track'
487
+ }),
488
+ formReadonly || !range
489
+ ? renderEmptyElement($xeSlider)
490
+ : h('div', {
491
+ ref: refStartBtnElem,
492
+ class: 'vxe-slider--bar-btn',
493
+ 'data-type': '1',
494
+ onMouseenter: handleBtnMouseenterEvent,
495
+ onMouseleave: handleBtnMouseleaveEvent,
496
+ onMousedown: handleBtnMousedownEvent
497
+ }),
498
+ formReadonly
499
+ ? renderEmptyElement($xeSlider)
500
+ : h('div', {
501
+ ref: refEndBtnElem,
502
+ class: 'vxe-slider--bar-btn',
503
+ 'data-type': '2',
504
+ onMouseenter: handleBtnMouseenterEvent,
505
+ onMouseleave: handleBtnMouseleaveEvent,
506
+ onMousedown: handleBtnMousedownEvent
507
+ })
508
+ ]
509
+ )
510
+ ]
511
+ )
512
+ }
513
+
514
+ watch(
515
+ () => props.modelValue,
516
+ () => {
517
+ if (!internalData._isUp) {
518
+ updateModelValue(1)
519
+ }
520
+ internalData._isUp = false
521
+ }
522
+ )
523
+
524
+ watch(computeMVal, () => {
525
+ if (!internalData._isUp) {
526
+ updateModelValue(2)
527
+ }
528
+ internalData._isUp = false
529
+ })
530
+
531
+ onMounted(() => {
532
+ updateModelValue()
533
+ })
534
+
535
+ onBeforeUnmount(() => {
536
+ XEUtils.assign(reactData, createReactData())
537
+ XEUtils.assign(internalData, createInternalData())
538
+ })
539
+
540
+ $xeSlider.renderVN = renderVN
541
+
542
+ return $xeSlider
543
+ },
544
+ render() {
545
+ return this.renderVN()
546
+ }
547
+ })