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,387 +1,470 @@
1
- import { h, VNode } from 'vue'
2
- import { getIcon, getI18n, formats, renderer, renderEmptyElement } from '../../ui'
3
- import { eqEmptyValue, getFuncText, isEnableConf } from '../../ui/src/utils'
4
- import { toCssUnit } from '../../ui/src/dom'
5
- import { getSlotVNs } from '../../ui/src/vn'
6
- import { isActiveItem } from './util'
7
- import VxeTooltipComponent from '../../tooltip'
8
- import VxeIconComponent from '../../icon'
9
- import XEUtils from 'xe-utils'
10
-
11
- import type { VxeFormConstructor, VxeFormDefines, VxeFormItemPropTypes, VxeFormPrivateMethods, VxeComponentSlotType, VxeComponentStyleType } from '../../../types'
12
-
13
- function renderPrefixIcon (titlePrefix: VxeFormItemPropTypes.TitlePrefix) {
14
- return h('span', {
15
- class: 'vxe-form--item-title-tip-prefix'
16
- }, [
17
- h(VxeIconComponent, {
18
- class: titlePrefix.icon || getIcon().FORM_PREFIX,
19
- status: titlePrefix.iconStatus
20
- })
21
- ])
22
- }
23
-
24
- function renderSuffixIcon (titleSuffix: VxeFormItemPropTypes.TitleSuffix) {
25
- return h('span', {
26
- class: 'vxe-form--item-title-tip-suffix'
27
- }, [
28
- h(VxeIconComponent, {
29
- class: titleSuffix.icon || getIcon().FORM_SUFFIX,
30
- status: titleSuffix.iconStatus
31
- })
32
- ])
33
- }
34
-
35
- export function getItemClass ($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo, isGroup?: boolean) {
36
- const formProps = $xeForm.props
37
- const formReactData = $xeForm.reactData
38
- const $xeGrid = $xeForm.xeGrid
39
-
40
- const { computeSize, computeValidOpts } = $xeForm.getComputeMaps()
41
- const { data, rules, readonly, disabled, span: allSpan, titleBackground: allTitleBackground, titleBold: allTitleBold, titleColon: allTitleColon, titleAsterisk: allTitleAsterisk, vertical: allVertical, padding: allPadding } = formProps
42
- const { collapseAll } = formReactData
43
- const { folding, field, itemRender, showError, className, vertical, padding, children, showContent } = item
44
- const vSize = computeSize.value
45
- const validOpts = computeValidOpts.value
46
- const { showErrorMessage, showMessage, showErrorBackground, showErrorIcon } = validOpts
47
- const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
48
- const itemClassName = compConf ? (compConf.formItemClassName || compConf.itemClassName) : ''
49
- const span = item.span || allSpan
50
- const itemPadding = XEUtils.eqNull(padding) ? allPadding : padding
51
- const itemVertical = XEUtils.eqNull(vertical) ? allVertical : vertical
52
- const titleBackground = XEUtils.eqNull(item.titleBackground) ? allTitleBackground : item.titleBackground
53
- const titleBold = XEUtils.eqNull(item.titleBold) ? allTitleBold : item.titleBold
54
- const titleColon = XEUtils.eqNull(item.titleColon) ? allTitleColon : item.titleColon
55
- const titleAsterisk = XEUtils.eqNull(item.titleAsterisk) ? allTitleAsterisk : item.titleAsterisk
56
- const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeGrid }
57
- const hasGroup = children && children.length > 0
58
- let isRequired = false
59
- let isValid = false
60
- if (!readonly && rules) {
61
- const itemRules = item.rules ? item.rules : rules[field]
62
- if (itemRules && itemRules.length) {
63
- isValid = true
64
- isRequired = itemRules.some((rule) => rule.required)
65
- }
66
- }
67
- const showErrMsg = XEUtils.isBoolean(showErrorMessage) ? showErrorMessage : showMessage
68
- return [
69
- isGroup || hasGroup ? 'vxe-form--group' : '',
70
- 'vxe-form--item',
71
- item.id,
72
- span ? `vxe-form--item-col_${span} is--span` : '',
73
- `${showErrMsg ? 'show' : 'hide'}--err-msg`,
74
- className ? (XEUtils.isFunction(className) ? className(params) : className) : '',
75
- itemClassName ? (XEUtils.isFunction(itemClassName) ? itemClassName(params) : itemClassName) : '',
76
- {
77
- [`size--${vSize}`]: vSize,
78
- 'is--colon': titleColon,
79
- 'is--tbg': titleBackground,
80
- 'is--bold': titleBold,
81
- 'is--padding': itemPadding,
82
- 'is--vertical': itemVertical,
83
- 'is--asterisk': titleAsterisk,
84
- 'hide--content': showContent === false,
85
- 'is--valid': isValid,
86
- 'is--required': isRequired,
87
- 'is--hidden': folding && collapseAll,
88
- 'is--active': isActiveItem($xeForm, item),
89
- 'err--icon': showErrorIcon,
90
- 'err--bg': showErrorBackground,
91
- 'is--error': showError
92
- }
93
- ]
94
- }
95
-
96
- export function getItemContentClass ($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo, isGroup?: boolean) {
97
- const formProps = $xeForm.props
98
- const $xeGrid = $xeForm.xeGrid
99
-
100
- const { data, readonly, disabled, align: allAlign, verticalAlign: allVerticalAlign } = formProps
101
- const { field, itemRender, contentClassName, children } = item
102
- const hasGroup = children && children.length > 0
103
- const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
104
- const itemContentClassName = compConf ? (compConf.formItemContentClassName || compConf.itemContentClassName) : ''
105
- const align = hasGroup ? item.align : (XEUtils.eqNull(item.align) ? allAlign : item.align)
106
- const verticalAlign = hasGroup ? item.verticalAlign : (XEUtils.eqNull(item.verticalAlign) ? allVerticalAlign : item.verticalAlign)
107
- const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeGrid }
108
-
109
- return [
110
- isGroup || hasGroup ? 'vxe-form--group-content vxe-form--item-row' : '',
111
- 'vxe-form--item-content',
112
- align ? `align--${align}` : '',
113
- verticalAlign ? `vertical-align--${verticalAlign}` : '',
114
- itemContentClassName ? (XEUtils.isFunction(itemContentClassName) ? itemContentClassName(params) : itemContentClassName) : '',
115
- contentClassName ? (XEUtils.isFunction(contentClassName) ? contentClassName(params) : contentClassName) : ''
116
- ]
117
- }
118
-
119
- export function renderTitle ($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo, isGroup?: boolean) {
120
- const formProps = $xeForm.props
121
- const $xeGrid = $xeForm.xeGrid
122
-
123
- const { data, readonly, disabled, titleAlign: allTitleAlign, titleWidth: allTitleWidth, titleOverflow: allTitleOverflow, vertical: allVertical } = formProps
124
- const { slots, title, field, itemRender, titleOverflow, vertical, showTitle, titleClassName, titleStyle, titlePrefix, titleSuffix, children, showContent } = item
125
- const { computeTooltipOpts } = $xeForm.getComputeMaps()
126
- const tooltipOpts = computeTooltipOpts.value
127
- const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
128
- const itemTitleClassName = compConf ? (compConf.formItemTitleClassName || compConf.itemTitleClassName) : ''
129
- const itemTitleStyle = compConf ? (compConf.formItemTitleStyle || compConf.itemTitleStyle) : null
130
- const itemVertical = XEUtils.eqNull(vertical) ? allVertical : vertical
131
- const titleAlign = XEUtils.eqNull(item.titleAlign) ? allTitleAlign : item.titleAlign
132
- const titleWidth = itemVertical ? null : (XEUtils.eqNull(item.titleWidth) ? allTitleWidth : item.titleWidth)
133
- const itemOverflow = XEUtils.eqNull(titleOverflow) ? allTitleOverflow : titleOverflow
134
- const ovEllipsis = itemOverflow === 'ellipsis'
135
- const ovTitle = itemOverflow === 'title'
136
- const ovTooltip = itemOverflow === true || itemOverflow === 'tooltip'
137
- const hasEllipsis = ovTitle || ovTooltip || ovEllipsis
138
- const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeGrid }
139
- const titleSlot = slots ? slots.title : null
140
- const prefixSlot = slots ? slots.prefix : null
141
- const suffixSlot = slots ? slots.suffix || slots.extra : null
142
- const isTitle = (showTitle !== false) && (title || titleSlot)
143
- const hasGroup = children && children.length > 0
144
- const titVNs: VNode[] = []
145
- if (prefixSlot) {
146
- titVNs.push(
147
- h('span', {
148
- key: 'pt',
149
- class: 'vxe-form--item-title-prefix'
150
- }, $xeForm.callSlot(prefixSlot, params))
151
- )
152
- }
153
- if (titlePrefix) {
154
- titVNs.push(
155
- (titlePrefix.content || titlePrefix.message)
156
- ? h(VxeTooltipComponent, {
157
- key: 'pm',
158
- ...tooltipOpts,
159
- ...titlePrefix,
160
- content: getFuncText(titlePrefix.content || titlePrefix.message)
161
- }, {
162
- default: () => renderPrefixIcon(titlePrefix)
163
- })
164
- : renderPrefixIcon(titlePrefix)
165
- )
166
- }
167
- const rftTitle = compConf ? (compConf.renderFormItemTitle || compConf.renderItemTitle) : null
168
- titVNs.push(
169
- h('span', {
170
- key: 'pl',
171
- class: 'vxe-form--item-title-label'
172
- }, titleSlot ? $xeForm.callSlot(titleSlot, params) : (rftTitle ? getSlotVNs(rftTitle(itemRender, params)) : getFuncText(item.title)))
173
- )
174
- const fixVNs: VNode[] = []
175
- if (titleSuffix) {
176
- fixVNs.push(
177
- (titleSuffix.content || titleSuffix.message)
178
- ? h(VxeTooltipComponent, {
179
- key: 'sm',
180
- ...tooltipOpts,
181
- ...titleSuffix,
182
- content: getFuncText(titleSuffix.content || titleSuffix.message)
183
- }, {
184
- default: () => renderSuffixIcon(titleSuffix)
185
- })
186
- : renderSuffixIcon(titleSuffix)
187
- )
188
- }
189
- if (suffixSlot) {
190
- fixVNs.push(
191
- h('span', {
192
- key: 'st',
193
- class: 'vxe-form--item-title-suffix'
194
- }, $xeForm.callSlot(suffixSlot, params))
195
- )
196
- }
197
- const ons = ovTooltip
198
- ? {
199
- onMouseenter (evnt: MouseEvent) {
200
- $xeForm.triggerTitleTipEvent(evnt, params)
201
- },
202
- onMouseleave: $xeForm.handleTitleTipLeaveEvent
203
- }
204
- : {}
205
- const itStyle: VxeComponentStyleType = Object.assign(
206
- {},
207
- XEUtils.isFunction(itemTitleStyle) ? itemTitleStyle(params) : itemTitleStyle,
208
- XEUtils.isFunction(titleStyle) ? titleStyle(params) : titleStyle
209
- )
210
- if (titleWidth && titleWidth !== 'auto' && showContent !== false) {
211
- itStyle.width = toCssUnit(titleWidth)
212
- }
213
-
214
- return isTitle
215
- ? h('div', {
216
- class: [
217
- isGroup || hasGroup ? 'vxe-form--group-title' : '',
218
- 'vxe-form--item-title',
219
- titleAlign ? `align--${titleAlign}` : '',
220
- hasEllipsis ? 'is--ellipsis' : '',
221
- itemTitleClassName ? (XEUtils.isFunction(itemTitleClassName) ? itemTitleClassName(params) : itemTitleClassName) : '',
222
- titleClassName ? (XEUtils.isFunction(titleClassName) ? titleClassName(params) : titleClassName) : ''
223
- ],
224
- style: itStyle,
225
- itemid: item.id,
226
- title: ovTitle ? getFuncText(title) : null,
227
- ...ons
228
- }, [
229
- h('div', {
230
- class: 'vxe-form--item-title-content'
231
- }, titVNs),
232
- h('div', {
233
- class: 'vxe-form--item-title-postfix'
234
- }, fixVNs)
235
- ])
236
- : renderEmptyElement($xeForm)
237
- }
238
-
239
- export function renderItemErrorIcon ($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo) {
240
- const { computeValidOpts } = $xeForm.getComputeMaps()
241
- const validOpts = computeValidOpts.value
242
- const { showErrorIcon, errorIcon } = validOpts
243
- const { errRule, showIconMsg } = item
244
- if (!showErrorIcon) {
245
- return renderEmptyElement($xeForm)
246
- }
247
- return h('div', {
248
- key: 'emi',
249
- class: ['vxe-form-item--valid-error-icon-wrapper', {
250
- 'is--show': showIconMsg,
251
- 'is--hide': !showIconMsg
252
- }]
253
- }, [
254
- h('span', {
255
- class: 'vxe-form-item--valid-error-icon-btn',
256
- onClick (evnt) {
257
- $xeForm.handleValidIconEvent(evnt, { item })
258
- }
259
- }, [
260
- h('i', {
261
- class: errorIcon || getIcon().FORM_VALID_ERROR_ICON
262
- })
263
- ]),
264
- h('div', {
265
- class: 'vxe-form-item--valid-error-icon-msg-tip'
266
- }, errRule
267
- ? [
268
- h('div', {
269
- class: `vxe-form-item--valid-error-icon-msg vxe-form-item--valid-error-icon-theme-${validOpts.theme || 'normal'}`
270
- }, errRule.content || errRule.message)
271
- ]
272
- : [])
273
- ])
274
- }
275
-
276
- export function renderItemContent ($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo) {
277
- const formProps = $xeForm.props
278
- const formReactData = $xeForm.reactData
279
- const formInternalData = $xeForm.internalData
280
- const $xeGrid = $xeForm.xeGrid
281
-
282
- const { computeCollapseOpts, computeValidOpts } = $xeForm.getComputeMaps()
283
- const { itemFormatCache } = formInternalData
284
- const { data, readonly, disabled } = formProps
285
- const { collapseAll } = formReactData
286
- const { slots, field, itemRender, collapseNode, errRule, formatter } = item
287
- const defaultSlot = slots ? slots.default : null
288
- const validSlot = slots ? slots.valid : null
289
- const collapseOpts = computeCollapseOpts.value
290
- const validOpts = computeValidOpts.value
291
- const { showErrorMessage, showMessage } = validOpts
292
- const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
293
-
294
- const itemValue = XEUtils.get(data, field)
295
- const params = { data, disabled, readonly, field, property: field, item, itemValue, $form: $xeForm, $grid: $xeGrid }
296
-
297
- let contentVNs: VxeComponentSlotType[] = []
298
- const rftContent = compConf ? (compConf.renderFormItemContent || compConf.renderItemContent) : null
299
- if (defaultSlot) {
300
- contentVNs = $xeForm.callSlot(defaultSlot, params)
301
- } else if (rftContent) {
302
- contentVNs = getSlotVNs(rftContent(itemRender, params))
303
- } else if (field) {
304
- let itemLabel = itemValue
305
- if (formatter) {
306
- let formatData: {
307
- value?: any
308
- label?: any
309
- } | undefined
310
- if (field) {
311
- const itemRest = itemFormatCache[field]
312
- if (itemRest) {
313
- formatData = itemRest.formatData
314
- if (formatData) {
315
- if (formatData.value === itemValue) {
316
- return formatData.label
317
- }
318
- } else {
319
- formatData = itemRest.formatData = {}
320
- }
321
- } else {
322
- itemFormatCache[field] = { field }
323
- }
324
- }
325
- if (XEUtils.isString(formatter)) {
326
- const gFormatOpts = formats.get(formatter)
327
- const fiFormatMethod = gFormatOpts ? gFormatOpts.formItemFormatMethod : null
328
- itemLabel = fiFormatMethod ? fiFormatMethod(params) : ''
329
- } else if (XEUtils.isArray(formatter)) {
330
- const gFormatOpts = formats.get(formatter[0])
331
- const fiFormatMethod = gFormatOpts ? gFormatOpts.formItemFormatMethod : null
332
- itemLabel = fiFormatMethod ? fiFormatMethod(params, ...formatter.slice(1)) : ''
333
- } else {
334
- itemLabel = formatter(params)
335
- }
336
- if (formatData) {
337
- formatData.value = itemValue
338
- formatData.label = itemLabel
339
- }
340
- }
341
- contentVNs = [eqEmptyValue(itemLabel) ? '' : `${itemLabel}`]
342
- }
343
- if (collapseNode) {
344
- contentVNs.push(
345
- h('div', {
346
- class: 'vxe-form--item-trigger-node',
347
- onClick: $xeForm.toggleCollapseEvent
348
- }, [
349
- h('span', {
350
- class: 'vxe-form--item-trigger-text'
351
- }, collapseAll ? (collapseOpts.unfoldButtonText || getI18n('vxe.form.unfolding')) : (collapseOpts.foldButtonText || getI18n('vxe.form.folding'))),
352
- h('i', {
353
- class: ['vxe-form--item-trigger-icon', collapseAll ? (collapseOpts.foldIcon || getIcon().FORM_FOLDING) : (collapseOpts.unfoldIcon || getIcon().FORM_UNFOLDING)]
354
- })
355
- ])
356
- )
357
- }
358
- if (errRule && (XEUtils.isBoolean(showErrorMessage) ? showErrorMessage : showMessage)) {
359
- const validParams = { ...params, rule: errRule }
360
- contentVNs.push(
361
- h('div', {
362
- class: 'vxe-form-item--valid-error-tip',
363
- style: errRule.maxWidth
364
- ? {
365
- width: toCssUnit(errRule.maxWidth)
366
- }
367
- : null
368
- }, [
369
- h('div', {
370
- class: `vxe-form-item--valid-error-wrapper vxe-form-item--valid-error-theme-${validOpts.theme || 'normal'}`
371
- }, [
372
- validSlot
373
- ? $xeForm.callSlot(validSlot, validParams)
374
- : [
375
- h('span', {
376
- class: 'vxe-form--item--valid-error-msg'
377
- }, errRule.content || errRule.message)
378
- ]
379
- ])
380
- ])
381
- )
382
- }
383
- return h('div', {
384
- key: 'ct',
385
- class: 'vxe-form--item-inner'
386
- }, contentVNs)
387
- }
1
+ import { h, VNode } from 'vue'
2
+ import { VxeUI } from '@vxe-ui/core'
3
+ import { eqEmptyValue, getFuncText, isEnableConf } from '../../ui/src/utils'
4
+ import { toCssUnit } from '../../ui/src/dom'
5
+ import { getSlotVNs } from '../../ui/src/vn'
6
+ import { isActiveItem } from './util'
7
+ import VxeTooltipComponent from '../../tooltip'
8
+ import VxeIconComponent from '../../icon'
9
+ import XEUtils from 'xe-utils'
10
+
11
+ import type { VxeFormConstructor, VxeFormDefines, VxeFormItemPropTypes, VxeFormPrivateMethods, VxeComponentSlotType, VxeComponentStyleType } from '../../../types'
12
+
13
+ const { getIcon, getI18n, formats, renderer, renderEmptyElement } = VxeUI
14
+
15
+ function renderPrefixIcon(titlePrefix: VxeFormItemPropTypes.TitlePrefix) {
16
+ return h(
17
+ 'span',
18
+ {
19
+ class: 'vxe-form--item-title-tip-prefix'
20
+ },
21
+ [
22
+ h(VxeIconComponent, {
23
+ class: titlePrefix.icon || getIcon().FORM_PREFIX,
24
+ status: titlePrefix.iconStatus
25
+ })
26
+ ]
27
+ )
28
+ }
29
+
30
+ function renderSuffixIcon(titleSuffix: VxeFormItemPropTypes.TitleSuffix) {
31
+ return h(
32
+ 'span',
33
+ {
34
+ class: 'vxe-form--item-title-tip-suffix'
35
+ },
36
+ [
37
+ h(VxeIconComponent, {
38
+ class: titleSuffix.icon || getIcon().FORM_SUFFIX,
39
+ status: titleSuffix.iconStatus
40
+ })
41
+ ]
42
+ )
43
+ }
44
+
45
+ export function getItemClass($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo, isGroup?: boolean) {
46
+ const formProps = $xeForm.props
47
+ const formReactData = $xeForm.reactData
48
+ const $xeGrid = $xeForm.xeGrid
49
+
50
+ const { computeSize, computeValidOpts } = $xeForm.getComputeMaps()
51
+ const { data, rules, readonly, disabled, span: allSpan, titleBackground: allTitleBackground, titleBold: allTitleBold, titleColon: allTitleColon, titleAsterisk: allTitleAsterisk, vertical: allVertical, padding: allPadding } = formProps
52
+ const { collapseAll } = formReactData
53
+ const { folding, field, itemRender, showError, className, vertical, padding, children, showContent } = item
54
+ const vSize = computeSize.value
55
+ const validOpts = computeValidOpts.value
56
+ const { showErrorMessage, showMessage, showErrorBackground, showErrorIcon } = validOpts
57
+ const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
58
+ const itemClassName = compConf ? compConf.formItemClassName || compConf.itemClassName : ''
59
+ const span = item.span || allSpan
60
+ const itemPadding = XEUtils.eqNull(padding) ? allPadding : padding
61
+ const itemVertical = XEUtils.eqNull(vertical) ? allVertical : vertical
62
+ const titleBackground = XEUtils.eqNull(item.titleBackground) ? allTitleBackground : item.titleBackground
63
+ const titleBold = XEUtils.eqNull(item.titleBold) ? allTitleBold : item.titleBold
64
+ const titleColon = XEUtils.eqNull(item.titleColon) ? allTitleColon : item.titleColon
65
+ const titleAsterisk = XEUtils.eqNull(item.titleAsterisk) ? allTitleAsterisk : item.titleAsterisk
66
+ const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeGrid }
67
+ const hasGroup = children && children.length > 0
68
+ let isRequired = false
69
+ let isValid = false
70
+ if (!readonly && rules) {
71
+ const itemRules = item.rules ? item.rules : rules[field]
72
+ if (itemRules && itemRules.length) {
73
+ isValid = true
74
+ isRequired = itemRules.some((rule) => rule.required)
75
+ }
76
+ }
77
+ const showErrMsg = XEUtils.isBoolean(showErrorMessage) ? showErrorMessage : showMessage
78
+ return [
79
+ isGroup || hasGroup ? 'vxe-form--group' : '',
80
+ 'vxe-form--item',
81
+ item.id,
82
+ span ? `vxe-form--item-col_${span} is--span` : '',
83
+ `${showErrMsg ? 'show' : 'hide'}--err-msg`,
84
+ className ? (XEUtils.isFunction(className) ? className(params) : className) : '',
85
+ itemClassName ? (XEUtils.isFunction(itemClassName) ? itemClassName(params) : itemClassName) : '',
86
+ {
87
+ [`size--${vSize}`]: vSize,
88
+ 'is--colon': titleColon,
89
+ 'is--tbg': titleBackground,
90
+ 'is--bold': titleBold,
91
+ 'is--padding': itemPadding,
92
+ 'is--vertical': itemVertical,
93
+ 'is--asterisk': titleAsterisk,
94
+ 'hide--content': showContent === false,
95
+ 'is--valid': isValid,
96
+ 'is--required': isRequired,
97
+ 'is--hidden': folding && collapseAll,
98
+ 'is--active': isActiveItem($xeForm, item),
99
+ 'err--icon': showErrorIcon,
100
+ 'err--bg': showErrorBackground,
101
+ 'is--error': showError
102
+ }
103
+ ]
104
+ }
105
+
106
+ export function getItemContentClass($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo, isGroup?: boolean) {
107
+ const formProps = $xeForm.props
108
+ const $xeGrid = $xeForm.xeGrid
109
+
110
+ const { data, readonly, disabled, align: allAlign, verticalAlign: allVerticalAlign } = formProps
111
+ const { field, itemRender, contentClassName, children } = item
112
+ const hasGroup = children && children.length > 0
113
+ const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
114
+ const itemContentClassName = compConf ? compConf.formItemContentClassName || compConf.itemContentClassName : ''
115
+ const align = hasGroup ? item.align : XEUtils.eqNull(item.align) ? allAlign : item.align
116
+ const verticalAlign = hasGroup ? item.verticalAlign : XEUtils.eqNull(item.verticalAlign) ? allVerticalAlign : item.verticalAlign
117
+ const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeGrid }
118
+
119
+ return [
120
+ isGroup || hasGroup ? 'vxe-form--group-content vxe-form--item-row' : '',
121
+ 'vxe-form--item-content',
122
+ align ? `align--${align}` : '',
123
+ verticalAlign ? `vertical-align--${verticalAlign}` : '',
124
+ itemContentClassName ? (XEUtils.isFunction(itemContentClassName) ? itemContentClassName(params) : itemContentClassName) : '',
125
+ contentClassName ? (XEUtils.isFunction(contentClassName) ? contentClassName(params) : contentClassName) : ''
126
+ ]
127
+ }
128
+
129
+ export function renderTitle($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo, isGroup?: boolean) {
130
+ const formProps = $xeForm.props
131
+ const $xeGrid = $xeForm.xeGrid
132
+
133
+ const { data, readonly, disabled, titleAlign: allTitleAlign, titleWidth: allTitleWidth, titleOverflow: allTitleOverflow, vertical: allVertical } = formProps
134
+ const { slots, title, field, itemRender, titleOverflow, vertical, showTitle, titleClassName, titleStyle, titlePrefix, titleSuffix, children, showContent } = item
135
+ const { computeTooltipOpts } = $xeForm.getComputeMaps()
136
+ const tooltipOpts = computeTooltipOpts.value
137
+ const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
138
+ const itemTitleClassName = compConf ? compConf.formItemTitleClassName || compConf.itemTitleClassName : ''
139
+ const itemTitleStyle = compConf ? compConf.formItemTitleStyle || compConf.itemTitleStyle : null
140
+ const itemVertical = XEUtils.eqNull(vertical) ? allVertical : vertical
141
+ const titleAlign = XEUtils.eqNull(item.titleAlign) ? allTitleAlign : item.titleAlign
142
+ const titleWidth = itemVertical ? null : XEUtils.eqNull(item.titleWidth) ? allTitleWidth : item.titleWidth
143
+ const itemOverflow = XEUtils.eqNull(titleOverflow) ? allTitleOverflow : titleOverflow
144
+ const ovEllipsis = itemOverflow === 'ellipsis'
145
+ const ovTitle = itemOverflow === 'title'
146
+ const ovTooltip = itemOverflow === true || itemOverflow === 'tooltip'
147
+ const hasEllipsis = ovTitle || ovTooltip || ovEllipsis
148
+ const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeGrid }
149
+ const titleSlot = slots ? slots.title : null
150
+ const prefixSlot = slots ? slots.prefix : null
151
+ const suffixSlot = slots ? slots.suffix || slots.extra : null
152
+ const isTitle = showTitle !== false && (title || titleSlot)
153
+ const hasGroup = children && children.length > 0
154
+ const titVNs: VNode[] = []
155
+ if (prefixSlot) {
156
+ titVNs.push(
157
+ h(
158
+ 'span',
159
+ {
160
+ key: 'pt',
161
+ class: 'vxe-form--item-title-prefix'
162
+ },
163
+ $xeForm.callSlot(prefixSlot, params)
164
+ )
165
+ )
166
+ }
167
+ if (titlePrefix) {
168
+ titVNs.push(
169
+ titlePrefix.content || titlePrefix.message
170
+ ? h(
171
+ VxeTooltipComponent,
172
+ {
173
+ key: 'pm',
174
+ ...tooltipOpts,
175
+ ...titlePrefix,
176
+ content: getFuncText(titlePrefix.content || titlePrefix.message)
177
+ },
178
+ {
179
+ default: () => renderPrefixIcon(titlePrefix)
180
+ }
181
+ )
182
+ : renderPrefixIcon(titlePrefix)
183
+ )
184
+ }
185
+ const rftTitle = compConf ? compConf.renderFormItemTitle || compConf.renderItemTitle : null
186
+ titVNs.push(
187
+ h(
188
+ 'span',
189
+ {
190
+ key: 'pl',
191
+ class: 'vxe-form--item-title-label'
192
+ },
193
+ titleSlot ? $xeForm.callSlot(titleSlot, params) : rftTitle ? getSlotVNs(rftTitle(itemRender, params)) : getFuncText(item.title)
194
+ )
195
+ )
196
+ const fixVNs: VNode[] = []
197
+ if (titleSuffix) {
198
+ fixVNs.push(
199
+ titleSuffix.content || titleSuffix.message
200
+ ? h(
201
+ VxeTooltipComponent,
202
+ {
203
+ key: 'sm',
204
+ ...tooltipOpts,
205
+ ...titleSuffix,
206
+ content: getFuncText(titleSuffix.content || titleSuffix.message)
207
+ },
208
+ {
209
+ default: () => renderSuffixIcon(titleSuffix)
210
+ }
211
+ )
212
+ : renderSuffixIcon(titleSuffix)
213
+ )
214
+ }
215
+ if (suffixSlot) {
216
+ fixVNs.push(
217
+ h(
218
+ 'span',
219
+ {
220
+ key: 'st',
221
+ class: 'vxe-form--item-title-suffix'
222
+ },
223
+ $xeForm.callSlot(suffixSlot, params)
224
+ )
225
+ )
226
+ }
227
+ const ons = ovTooltip
228
+ ? {
229
+ onMouseenter(evnt: MouseEvent) {
230
+ $xeForm.triggerTitleTipEvent(evnt, params)
231
+ },
232
+ onMouseleave: $xeForm.handleTitleTipLeaveEvent
233
+ }
234
+ : {}
235
+ const itStyle: VxeComponentStyleType = Object.assign({}, XEUtils.isFunction(itemTitleStyle) ? itemTitleStyle(params) : itemTitleStyle, XEUtils.isFunction(titleStyle) ? titleStyle(params) : titleStyle)
236
+ if (titleWidth && titleWidth !== 'auto' && showContent !== false) {
237
+ itStyle.width = toCssUnit(titleWidth)
238
+ }
239
+
240
+ return isTitle
241
+ ? h(
242
+ 'div',
243
+ {
244
+ class: [
245
+ isGroup || hasGroup ? 'vxe-form--group-title' : '',
246
+ 'vxe-form--item-title',
247
+ titleAlign ? `align--${titleAlign}` : '',
248
+ hasEllipsis ? 'is--ellipsis' : '',
249
+ itemTitleClassName ? (XEUtils.isFunction(itemTitleClassName) ? itemTitleClassName(params) : itemTitleClassName) : '',
250
+ titleClassName ? (XEUtils.isFunction(titleClassName) ? titleClassName(params) : titleClassName) : ''
251
+ ],
252
+ style: itStyle,
253
+ itemid: item.id,
254
+ title: ovTitle ? getFuncText(title) : null,
255
+ ...ons
256
+ },
257
+ [
258
+ h(
259
+ 'div',
260
+ {
261
+ class: 'vxe-form--item-title-content'
262
+ },
263
+ titVNs
264
+ ),
265
+ h(
266
+ 'div',
267
+ {
268
+ class: 'vxe-form--item-title-postfix'
269
+ },
270
+ fixVNs
271
+ )
272
+ ]
273
+ )
274
+ : renderEmptyElement($xeForm)
275
+ }
276
+
277
+ export function renderItemErrorIcon($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo) {
278
+ const { computeValidOpts } = $xeForm.getComputeMaps()
279
+ const validOpts = computeValidOpts.value
280
+ const { showErrorIcon, errorIcon } = validOpts
281
+ const { errRule, showIconMsg } = item
282
+ if (!showErrorIcon) {
283
+ return renderEmptyElement($xeForm)
284
+ }
285
+ return h(
286
+ 'div',
287
+ {
288
+ key: 'emi',
289
+ class: [
290
+ 'vxe-form-item--valid-error-icon-wrapper',
291
+ {
292
+ 'is--show': showIconMsg,
293
+ 'is--hide': !showIconMsg
294
+ }
295
+ ]
296
+ },
297
+ [
298
+ h(
299
+ 'span',
300
+ {
301
+ class: 'vxe-form-item--valid-error-icon-btn',
302
+ onClick(evnt) {
303
+ $xeForm.handleValidIconEvent(evnt, { item })
304
+ }
305
+ },
306
+ [
307
+ h('i', {
308
+ class: errorIcon || getIcon().FORM_VALID_ERROR_ICON
309
+ })
310
+ ]
311
+ ),
312
+ h(
313
+ 'div',
314
+ {
315
+ class: 'vxe-form-item--valid-error-icon-msg-tip'
316
+ },
317
+ errRule
318
+ ? [
319
+ h(
320
+ 'div',
321
+ {
322
+ class: `vxe-form-item--valid-error-icon-msg vxe-form-item--valid-error-icon-theme-${validOpts.theme || 'normal'}`
323
+ },
324
+ errRule.content || errRule.message
325
+ )
326
+ ]
327
+ : []
328
+ )
329
+ ]
330
+ )
331
+ }
332
+
333
+ export function renderItemContent($xeForm: VxeFormConstructor & VxeFormPrivateMethods, item: VxeFormDefines.ItemInfo) {
334
+ const formProps = $xeForm.props
335
+ const formReactData = $xeForm.reactData
336
+ const formInternalData = $xeForm.internalData
337
+ const $xeGrid = $xeForm.xeGrid
338
+
339
+ const { computeCollapseOpts, computeValidOpts } = $xeForm.getComputeMaps()
340
+ const { itemFormatCache } = formInternalData
341
+ const { data, readonly, disabled } = formProps
342
+ const { collapseAll } = formReactData
343
+ const { slots, field, itemRender, collapseNode, errRule, formatter } = item
344
+ const defaultSlot = slots ? slots.default : null
345
+ const validSlot = slots ? slots.valid : null
346
+ const collapseOpts = computeCollapseOpts.value
347
+ const validOpts = computeValidOpts.value
348
+ const { showErrorMessage, showMessage } = validOpts
349
+ const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
350
+
351
+ const itemValue = XEUtils.get(data, field)
352
+ const params = { data, disabled, readonly, field, property: field, item, itemValue, $form: $xeForm, $grid: $xeGrid }
353
+
354
+ let contentVNs: VxeComponentSlotType[] = []
355
+ const rftContent = compConf ? compConf.renderFormItemContent || compConf.renderItemContent : null
356
+ if (defaultSlot) {
357
+ contentVNs = $xeForm.callSlot(defaultSlot, params)
358
+ } else if (rftContent) {
359
+ contentVNs = getSlotVNs(rftContent(itemRender, params))
360
+ } else if (field) {
361
+ let itemLabel = itemValue
362
+ if (formatter) {
363
+ let formatData:
364
+ | {
365
+ value?: any
366
+ label?: any
367
+ }
368
+ | undefined
369
+ if (field) {
370
+ const itemRest = itemFormatCache[field]
371
+ if (itemRest) {
372
+ formatData = itemRest.formatData
373
+ if (formatData) {
374
+ if (formatData.value === itemValue) {
375
+ return formatData.label
376
+ }
377
+ } else {
378
+ formatData = itemRest.formatData = {}
379
+ }
380
+ } else {
381
+ itemFormatCache[field] = { field }
382
+ }
383
+ }
384
+ if (XEUtils.isString(formatter)) {
385
+ const gFormatOpts = formats.get(formatter)
386
+ const fiFormatMethod = gFormatOpts ? gFormatOpts.formItemFormatMethod : null
387
+ itemLabel = fiFormatMethod ? fiFormatMethod(params) : ''
388
+ } else if (XEUtils.isArray(formatter)) {
389
+ const gFormatOpts = formats.get(formatter[0])
390
+ const fiFormatMethod = gFormatOpts ? gFormatOpts.formItemFormatMethod : null
391
+ itemLabel = fiFormatMethod ? fiFormatMethod(params, ...formatter.slice(1)) : ''
392
+ } else {
393
+ itemLabel = formatter(params)
394
+ }
395
+ if (formatData) {
396
+ formatData.value = itemValue
397
+ formatData.label = itemLabel
398
+ }
399
+ }
400
+ contentVNs = [eqEmptyValue(itemLabel) ? '' : `${itemLabel}`]
401
+ }
402
+ if (collapseNode) {
403
+ contentVNs.push(
404
+ h(
405
+ 'div',
406
+ {
407
+ class: 'vxe-form--item-trigger-node',
408
+ onClick: $xeForm.toggleCollapseEvent
409
+ },
410
+ [
411
+ h(
412
+ 'span',
413
+ {
414
+ class: 'vxe-form--item-trigger-text'
415
+ },
416
+ collapseAll ? collapseOpts.unfoldButtonText || getI18n('vxe.form.unfolding') : collapseOpts.foldButtonText || getI18n('vxe.form.folding')
417
+ ),
418
+ h('i', {
419
+ class: ['vxe-form--item-trigger-icon', collapseAll ? collapseOpts.foldIcon || getIcon().FORM_FOLDING : collapseOpts.unfoldIcon || getIcon().FORM_UNFOLDING]
420
+ })
421
+ ]
422
+ )
423
+ )
424
+ }
425
+ if (errRule && (XEUtils.isBoolean(showErrorMessage) ? showErrorMessage : showMessage)) {
426
+ const validParams = { ...params, rule: errRule }
427
+ contentVNs.push(
428
+ h(
429
+ 'div',
430
+ {
431
+ class: 'vxe-form-item--valid-error-tip',
432
+ style: errRule.maxWidth
433
+ ? {
434
+ width: toCssUnit(errRule.maxWidth)
435
+ }
436
+ : null
437
+ },
438
+ [
439
+ h(
440
+ 'div',
441
+ {
442
+ class: `vxe-form-item--valid-error-wrapper vxe-form-item--valid-error-theme-${validOpts.theme || 'normal'}`
443
+ },
444
+ [
445
+ validSlot
446
+ ? $xeForm.callSlot(validSlot, validParams)
447
+ : [
448
+ h(
449
+ 'span',
450
+ {
451
+ class: 'vxe-form--item--valid-error-msg'
452
+ },
453
+ errRule.content || errRule.message
454
+ )
455
+ ]
456
+ ]
457
+ )
458
+ ]
459
+ )
460
+ )
461
+ }
462
+ return h(
463
+ 'div',
464
+ {
465
+ key: 'ct',
466
+ class: 'vxe-form--item-inner'
467
+ },
468
+ contentVNs
469
+ )
470
+ }