vxe-pc-ui 4.20.25 → 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 (626) hide show
  1. package/dist/all.esm.js +15059 -10308
  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.esm.js +9 -8
  53. package/es/index.js +9 -8
  54. package/es/input/src/input.js +820 -507
  55. package/es/layout-aside/src/layout-aside.js +54 -38
  56. package/es/layout-body/src/layout-body.js +39 -27
  57. package/es/layout-container/src/layout-container.js +16 -9
  58. package/es/layout-footer/src/layout-footer.js +16 -7
  59. package/es/layout-header/src/layout-header.js +15 -7
  60. package/es/link/src/link.js +65 -44
  61. package/es/list/src/list.js +453 -333
  62. package/es/loading/index.js +8 -5
  63. package/es/loading/src/loading.js +60 -33
  64. package/es/mention/src/mention.js +2 -1
  65. package/es/menu/src/menu.js +341 -210
  66. package/es/modal/index.js +60 -37
  67. package/es/modal/src/modal.js +303 -205
  68. package/es/notice-bar/src/notice-bar.js +64 -37
  69. package/es/number-input/src/number-input.js +249 -172
  70. package/es/pager/src/pager.js +346 -202
  71. package/es/password-input/src/password-input.js +145 -105
  72. package/es/print/src/page-break.js +2 -1
  73. package/es/print/src/print.js +184 -99
  74. package/es/pulldown/src/pulldown.js +113 -71
  75. package/es/radio/src/button.js +92 -57
  76. package/es/radio/src/group.js +33 -25
  77. package/es/radio/src/radio.js +61 -41
  78. package/es/rate/src/rate.js +48 -36
  79. package/es/result/src/result.js +67 -35
  80. package/es/row/src/col.js +30 -16
  81. package/es/row/src/row.js +21 -14
  82. package/es/scrollbar/src/scrollbar.js +177 -145
  83. package/es/segmented/src/segmented.js +93 -60
  84. package/es/select/src/optgroup.js +7 -3
  85. package/es/select/src/select.js +483 -340
  86. package/es/select/src/util.js +6 -3
  87. package/es/slider/src/slider.js +108 -80
  88. package/es/space/src/space.js +40 -23
  89. package/es/splitter/src/splitter-panel.js +50 -25
  90. package/es/splitter/src/splitter.js +219 -144
  91. package/es/steps/src/steps.js +10 -5
  92. package/es/style.css +1 -1
  93. package/es/style.mini.css +1 -1
  94. package/es/switch/src/switch.js +85 -57
  95. package/es/table-select/src/table-select.js +232 -153
  96. package/es/table-transfer/src/table-transfer.js +10 -5
  97. package/es/tabs/src/tab-pane.js +33 -16
  98. package/es/tabs/src/tabs.js +363 -230
  99. package/es/tag/src/tag.js +61 -43
  100. package/es/text/src/text.js +89 -65
  101. package/es/text-ellipsis/src/text-ellipsis.js +82 -51
  102. package/es/textarea/src/textarea.js +116 -86
  103. package/es/timeline/src/timeline-item.js +2 -1
  104. package/es/timeline/src/timeline.js +2 -1
  105. package/es/tip/src/tip.js +53 -29
  106. package/es/tooltip/src/tooltip.js +114 -74
  107. package/es/tour/src/tour.js +2 -1
  108. package/es/transfer/src/transfer.js +42 -25
  109. package/es/tree/src/tree.js +709 -492
  110. package/es/tree-select/src/tree-select.js +320 -225
  111. package/es/ui/index.d.ts +0 -1
  112. package/es/ui/index.js +46 -3
  113. package/es/ui/src/dom.js +9 -6
  114. package/es/ui/src/log.js +1 -1
  115. package/es/ui/src/utils.d.ts +1 -1
  116. package/es/upload/src/upload.js +614 -398
  117. package/es/vxe-icon/style.css +1 -1
  118. package/es/vxe-icon/style.mini.css +1 -1
  119. package/es/watermark/src/util.js +15 -12
  120. package/es/watermark/src/watermark.js +55 -25
  121. package/lib/alert/src/alert.js +62 -37
  122. package/lib/anchor/src/anchor-link.js +39 -20
  123. package/lib/anchor/src/anchor.js +75 -46
  124. package/lib/avatar/src/avatar.js +52 -32
  125. package/lib/backtop/src/backtop.js +81 -56
  126. package/lib/badge/src/badge.js +35 -19
  127. package/lib/breadcrumb/src/breadcrumb-item.js +52 -27
  128. package/lib/breadcrumb/src/breadcrumb.js +13 -10
  129. package/lib/button/src/button-group.js +27 -21
  130. package/lib/button/src/button.js +306 -207
  131. package/lib/calendar/src/calendar.js +575 -362
  132. package/lib/card/src/card.js +133 -78
  133. package/lib/carousel/src/carousel-item.js +15 -8
  134. package/lib/carousel/src/carousel.js +182 -120
  135. package/lib/cascader/src/cascader.js +555 -409
  136. package/lib/checkbox/src/button.js +93 -58
  137. package/lib/checkbox/src/checkbox.js +63 -43
  138. package/lib/checkbox/src/group.js +37 -29
  139. package/lib/collapse/src/collapse-pane.js +34 -17
  140. package/lib/collapse/src/collapse.js +139 -85
  141. package/lib/color-picker/src/color-picker.js +516 -377
  142. package/lib/components.js +3 -2
  143. package/lib/context-menu/src/context-menu.js +212 -132
  144. package/lib/countdown/src/countdown.js +95 -63
  145. package/lib/date-panel/src/date-panel.js +776 -466
  146. package/lib/date-picker/src/date-picker.js +377 -274
  147. package/lib/date-range-picker/src/date-range-picker.js +401 -300
  148. package/lib/divider/src/divider.js +31 -17
  149. package/lib/drawer/src/drawer.js +255 -155
  150. package/lib/dynamics/index.js +38 -25
  151. package/lib/empty/src/empty.js +55 -31
  152. package/lib/form/render/index.js +68 -43
  153. package/lib/form/src/form-config-item.js +24 -18
  154. package/lib/form/src/form-group.js +25 -16
  155. package/lib/form/src/form-item.js +25 -19
  156. package/lib/form/src/form.js +140 -96
  157. package/lib/form/src/itemInfo.js +4 -3
  158. package/lib/form/src/render.js +214 -134
  159. package/lib/form/src/util.js +9 -5
  160. package/lib/icon/src/icon.js +17 -13
  161. package/lib/icon/style/style.css +1 -1
  162. package/lib/icon/style/style.mini.css +1 -1
  163. package/lib/icon-picker/src/icon-picker.js +251 -158
  164. package/lib/image/src/group.js +26 -20
  165. package/lib/image/src/image.js +41 -40
  166. package/lib/image/src/preview.js +206 -146
  167. package/lib/image/src/util.js +6 -3
  168. package/lib/index.common.js +9 -8
  169. package/lib/index.js +9 -8
  170. package/lib/index.umd.js +15131 -10364
  171. package/lib/index.umd.min.js +3 -3
  172. package/lib/input/src/input.js +878 -565
  173. package/lib/layout-aside/src/layout-aside.js +61 -45
  174. package/lib/layout-body/src/layout-body.js +47 -35
  175. package/lib/layout-container/src/layout-container.js +18 -11
  176. package/lib/layout-footer/src/layout-footer.js +17 -8
  177. package/lib/layout-header/src/layout-header.js +16 -8
  178. package/lib/link/src/link.js +69 -48
  179. package/lib/list/src/list.js +456 -336
  180. package/lib/loading/index.js +8 -5
  181. package/lib/loading/src/loading.js +69 -42
  182. package/lib/mention/src/mention.js +4 -3
  183. package/lib/menu/src/menu.js +351 -220
  184. package/lib/modal/index.js +60 -37
  185. package/lib/modal/src/modal.js +306 -208
  186. package/lib/notice-bar/src/notice-bar.js +70 -43
  187. package/lib/number-input/src/number-input.js +290 -213
  188. package/lib/pager/src/pager.js +347 -203
  189. package/lib/password-input/src/password-input.js +155 -115
  190. package/lib/print/src/page-break.js +3 -2
  191. package/lib/print/src/print.js +193 -108
  192. package/lib/pulldown/src/pulldown.js +128 -86
  193. package/lib/radio/src/button.js +96 -61
  194. package/lib/radio/src/group.js +37 -29
  195. package/lib/radio/src/radio.js +65 -45
  196. package/lib/rate/src/rate.js +50 -38
  197. package/lib/result/src/result.js +68 -36
  198. package/lib/row/src/col.js +32 -18
  199. package/lib/row/src/row.js +25 -18
  200. package/lib/scrollbar/src/scrollbar.js +178 -146
  201. package/lib/segmented/src/segmented.js +97 -64
  202. package/lib/select/src/optgroup.js +7 -3
  203. package/lib/select/src/select.js +486 -343
  204. package/lib/select/src/util.js +6 -3
  205. package/lib/slider/src/slider.js +122 -94
  206. package/lib/space/src/space.js +54 -37
  207. package/lib/splitter/src/splitter-panel.js +51 -26
  208. package/lib/splitter/src/splitter.js +233 -158
  209. package/lib/steps/src/steps.js +11 -6
  210. package/lib/style.css +1 -1
  211. package/lib/style.mini.css +1 -1
  212. package/lib/switch/src/switch.js +87 -59
  213. package/lib/table-select/src/table-select.js +234 -155
  214. package/lib/table-transfer/src/table-transfer.js +12 -7
  215. package/lib/tabs/src/tab-pane.js +34 -17
  216. package/lib/tabs/src/tabs.js +365 -232
  217. package/lib/tag/src/tag.js +67 -49
  218. package/lib/text/src/text.js +100 -76
  219. package/lib/text-ellipsis/src/text-ellipsis.js +86 -55
  220. package/lib/textarea/src/textarea.js +127 -97
  221. package/lib/timeline/src/timeline-item.js +3 -2
  222. package/lib/timeline/src/timeline.js +4 -3
  223. package/lib/tip/src/tip.js +58 -34
  224. package/lib/tooltip/src/tooltip.js +116 -76
  225. package/lib/tour/src/tour.js +4 -3
  226. package/lib/transfer/src/transfer.js +44 -27
  227. package/lib/tree/src/tree.js +717 -500
  228. package/lib/tree-select/src/tree-select.js +351 -256
  229. package/lib/ui/index.js +46 -4
  230. package/lib/ui/src/dom.js +9 -6
  231. package/lib/ui/src/log.js +1 -1
  232. package/lib/upload/src/upload.js +708 -492
  233. package/lib/vxe-icon/style/style.css +1 -1
  234. package/lib/vxe-icon/style/style.mini.css +1 -1
  235. package/lib/watermark/src/util.js +15 -12
  236. package/lib/watermark/src/watermark.js +60 -30
  237. package/package.json +10 -4
  238. package/packages/alert/index.ts +16 -16
  239. package/packages/alert/src/alert.ts +148 -126
  240. package/packages/anchor/index.ts +16 -16
  241. package/packages/anchor/src/anchor-link.ts +139 -121
  242. package/packages/anchor/src/anchor.ts +266 -237
  243. package/packages/anchor/src/util.ts +23 -23
  244. package/packages/anchor-link/index.ts +16 -16
  245. package/packages/avatar/index.ts +16 -16
  246. package/packages/avatar/src/avatar.ts +166 -149
  247. package/packages/backtop/index.ts +16 -16
  248. package/packages/backtop/src/backtop.ts +337 -313
  249. package/packages/badge/index.ts +16 -16
  250. package/packages/badge/src/badge.ts +131 -118
  251. package/packages/breadcrumb/index.ts +16 -16
  252. package/packages/breadcrumb/src/breadcrumb-item.ts +129 -106
  253. package/packages/breadcrumb/src/breadcrumb.ts +94 -92
  254. package/packages/breadcrumb-item/index.ts +16 -16
  255. package/packages/button/index.ts +16 -16
  256. package/packages/button/src/button-group.ts +116 -110
  257. package/packages/button/src/button.ts +975 -855
  258. package/packages/button-group/index.ts +16 -16
  259. package/packages/calendar/index.ts +16 -16
  260. package/packages/calendar/src/calendar.ts +1566 -1352
  261. package/packages/card/index.ts +16 -16
  262. package/packages/card/src/card.ts +285 -236
  263. package/packages/carousel/index.ts +16 -16
  264. package/packages/carousel/src/carousel-item.ts +120 -102
  265. package/packages/carousel/src/carousel.ts +475 -414
  266. package/packages/carousel/src/util.ts +21 -21
  267. package/packages/carousel-item/index.ts +16 -16
  268. package/packages/cascader/index.ts +16 -16
  269. package/packages/cascader/src/cascader.ts +2074 -1896
  270. package/packages/cascader/src/util.ts +9 -9
  271. package/packages/checkbox/index.ts +16 -16
  272. package/packages/checkbox/src/button.ts +267 -221
  273. package/packages/checkbox/src/checkbox.ts +219 -199
  274. package/packages/checkbox/src/group.ts +292 -269
  275. package/packages/checkbox-button/index.ts +16 -16
  276. package/packages/checkbox-group/index.ts +16 -16
  277. package/packages/col/index.ts +16 -16
  278. package/packages/collapse/index.ts +16 -16
  279. package/packages/collapse/src/collapse-pane.ts +142 -114
  280. package/packages/collapse/src/collapse.ts +453 -384
  281. package/packages/collapse/src/util.ts +21 -21
  282. package/packages/collapse-pane/index.ts +16 -16
  283. package/packages/color-picker/index.ts +31 -31
  284. package/packages/color-picker/src/color-picker.ts +1310 -1147
  285. package/packages/color-picker/src/util.ts +436 -423
  286. package/packages/components.ts +350 -349
  287. package/packages/context-menu/index.ts +54 -54
  288. package/packages/context-menu/src/context-menu.ts +773 -681
  289. package/packages/countdown/index.ts +16 -16
  290. package/packages/countdown/src/countdown.ts +295 -262
  291. package/packages/date-panel/index.ts +16 -16
  292. package/packages/date-panel/src/date-panel.ts +2214 -1900
  293. package/packages/date-panel/src/util.ts +354 -326
  294. package/packages/date-picker/index.ts +16 -16
  295. package/packages/date-picker/src/date-picker.ts +1884 -1752
  296. package/packages/date-range-picker/index.ts +16 -16
  297. package/packages/date-range-picker/src/date-range-picker.ts +1728 -1604
  298. package/packages/divider/index.ts +16 -16
  299. package/packages/divider/src/divider.ts +105 -93
  300. package/packages/drawer/index.ts +78 -78
  301. package/packages/drawer/src/drawer.ts +920 -802
  302. package/packages/drawer/src/store.ts +3 -3
  303. package/packages/dynamics/index.ts +124 -117
  304. package/packages/empty/index.ts +16 -16
  305. package/packages/empty/src/empty.ts +124 -103
  306. package/packages/form/index.ts +16 -16
  307. package/packages/form/render/index.ts +646 -614
  308. package/packages/form/src/form-config-item.ts +85 -80
  309. package/packages/form/src/form-group.ts +96 -86
  310. package/packages/form/src/form-item.ts +181 -174
  311. package/packages/form/src/form.ts +1122 -1069
  312. package/packages/form/src/itemInfo.ts +84 -82
  313. package/packages/form/src/render.ts +470 -387
  314. package/packages/form/src/util.ts +98 -93
  315. package/packages/form-gather/index.ts +26 -26
  316. package/packages/form-group/index.ts +16 -16
  317. package/packages/form-item/index.ts +16 -16
  318. package/packages/icon/index.ts +16 -16
  319. package/packages/icon/src/icon.ts +78 -75
  320. package/packages/icon-picker/index.ts +16 -16
  321. package/packages/icon-picker/src/icon-picker.ts +922 -809
  322. package/packages/image/index.ts +16 -16
  323. package/packages/image/src/group.ts +159 -153
  324. package/packages/image/src/image.ts +298 -298
  325. package/packages/image/src/preview.ts +749 -672
  326. package/packages/image/src/util.ts +62 -59
  327. package/packages/image-group/index.ts +16 -16
  328. package/packages/image-preview/index.ts +19 -19
  329. package/packages/index.ts +20 -21
  330. package/packages/input/index.ts +16 -16
  331. package/packages/input/src/input.ts +3201 -2863
  332. package/packages/language/fr-FR.ts +15 -15
  333. package/packages/language/it-IT.ts +4 -4
  334. package/packages/language/uk-UA.ts +1 -1
  335. package/packages/language/uz-UZ.ts +13 -13
  336. package/packages/language/zh-CN.ts +907 -907
  337. package/packages/layout-aside/index.ts +16 -16
  338. package/packages/layout-aside/src/layout-aside.ts +172 -156
  339. package/packages/layout-body/index.ts +16 -16
  340. package/packages/layout-body/src/layout-body.ts +191 -181
  341. package/packages/layout-container/index.ts +16 -16
  342. package/packages/layout-container/src/layout-container.ts +108 -92
  343. package/packages/layout-footer/index.ts +16 -16
  344. package/packages/layout-footer/src/layout-footer.ts +81 -74
  345. package/packages/layout-header/index.ts +16 -16
  346. package/packages/layout-header/src/layout-header.ts +79 -73
  347. package/packages/link/index.ts +16 -16
  348. package/packages/link/src/link.ts +180 -161
  349. package/packages/list/index.ts +16 -16
  350. package/packages/list/src/list.ts +2690 -2564
  351. package/packages/list/src/store.ts +10 -10
  352. package/packages/list/src/util.ts +10 -11
  353. package/packages/loading/index.ts +39 -36
  354. package/packages/loading/src/loading.ts +179 -152
  355. package/packages/mention/index.ts +16 -16
  356. package/packages/mention/src/mention.ts +69 -71
  357. package/packages/menu/index.ts +16 -16
  358. package/packages/menu/src/menu.ts +1000 -857
  359. package/packages/modal/index.ts +164 -141
  360. package/packages/modal/src/modal.ts +1803 -1681
  361. package/packages/modal/src/store.ts +3 -3
  362. package/packages/notice-bar/index.ts +16 -16
  363. package/packages/notice-bar/src/notice-bar.ts +207 -181
  364. package/packages/number-input/index.ts +16 -16
  365. package/packages/number-input/src/number-input.ts +1322 -1242
  366. package/packages/number-input/src/util.ts +25 -25
  367. package/packages/optgroup/index.ts +16 -16
  368. package/packages/option/index.ts +16 -16
  369. package/packages/pager/index.ts +16 -16
  370. package/packages/pager/src/pager.ts +919 -775
  371. package/packages/password-input/index.ts +16 -16
  372. package/packages/password-input/src/password-input.ts +523 -482
  373. package/packages/print/index.ts +18 -18
  374. package/packages/print/src/page-break.ts +104 -92
  375. package/packages/print/src/print.ts +366 -281
  376. package/packages/print/src/util.ts +299 -304
  377. package/packages/print-page-break/index.ts +16 -16
  378. package/packages/pulldown/index.ts +16 -16
  379. package/packages/pulldown/src/pulldown.ts +505 -445
  380. package/packages/radio/index.ts +16 -16
  381. package/packages/radio/src/button.ts +290 -243
  382. package/packages/radio/src/group.ts +275 -252
  383. package/packages/radio/src/radio.ts +237 -218
  384. package/packages/radio-button/index.ts +16 -16
  385. package/packages/radio-group/index.ts +16 -16
  386. package/packages/rate/index.ts +16 -16
  387. package/packages/rate/src/rate.ts +203 -192
  388. package/packages/result/index.ts +16 -16
  389. package/packages/result/src/result.ts +141 -112
  390. package/packages/row/index.ts +16 -16
  391. package/packages/row/src/col.ts +171 -159
  392. package/packages/row/src/row.ts +143 -138
  393. package/packages/scrollbar/index.ts +16 -16
  394. package/packages/scrollbar/src/scrollbar.ts +626 -595
  395. package/packages/segmented/index.ts +16 -16
  396. package/packages/segmented/src/segmented.ts +297 -264
  397. package/packages/select/index.ts +16 -16
  398. package/packages/select/src/optgroup.ts +53 -49
  399. package/packages/select/src/option-info.ts +20 -20
  400. package/packages/select/src/option.ts +47 -47
  401. package/packages/select/src/select.ts +2390 -2214
  402. package/packages/select/src/util.ts +50 -47
  403. package/packages/slider/index.ts +16 -16
  404. package/packages/slider/src/slider.ts +547 -506
  405. package/packages/space/index.ts +16 -16
  406. package/packages/space/src/space.ts +225 -209
  407. package/packages/split/index.ts +16 -16
  408. package/packages/split-pane/index.ts +17 -17
  409. package/packages/splitter/index.ts +16 -16
  410. package/packages/splitter/src/splitter-panel.ts +199 -163
  411. package/packages/splitter/src/splitter.ts +1110 -1020
  412. package/packages/splitter/src/util.ts +21 -21
  413. package/packages/splitter-panel/index.ts +16 -16
  414. package/packages/steps/index.ts +16 -16
  415. package/packages/steps/src/steps.ts +69 -68
  416. package/packages/switch/index.ts +16 -16
  417. package/packages/switch/src/switch.ts +300 -271
  418. package/packages/tab-pane/index.ts +16 -16
  419. package/packages/table-select/index.ts +16 -16
  420. package/packages/table-select/src/table-select.ts +1103 -999
  421. package/packages/table-transfer/index.ts +16 -16
  422. package/packages/table-transfer/src/table-transfer.ts +104 -91
  423. package/packages/tabs/index.ts +16 -16
  424. package/packages/tabs/src/tab-pane.ts +132 -117
  425. package/packages/tabs/src/tabs.ts +1137 -997
  426. package/packages/tabs/src/util.ts +21 -21
  427. package/packages/tag/index.ts +16 -16
  428. package/packages/tag/src/tag.ts +204 -187
  429. package/packages/text/index.ts +16 -16
  430. package/packages/text/src/text.ts +282 -260
  431. package/packages/text-ellipsis/index.ts +16 -16
  432. package/packages/text-ellipsis/src/text-ellipsis.ts +312 -282
  433. package/packages/textarea/index.ts +16 -16
  434. package/packages/textarea/src/textarea.ts +526 -495
  435. package/packages/timeline/index.ts +16 -16
  436. package/packages/timeline/src/timeline-item.ts +65 -67
  437. package/packages/timeline/src/timeline.ts +70 -71
  438. package/packages/timeline-item/index.ts +16 -16
  439. package/packages/tip/index.ts +19 -19
  440. package/packages/tip/src/tip.ts +150 -129
  441. package/packages/tooltip/index.ts +72 -72
  442. package/packages/tooltip/src/tooltip.ts +669 -627
  443. package/packages/tour/index.ts +16 -16
  444. package/packages/tour/src/tour.ts +70 -71
  445. package/packages/transfer/index.ts +16 -16
  446. package/packages/transfer/src/transfer.ts +130 -117
  447. package/packages/tree/index.ts +16 -16
  448. package/packages/tree/src/store.ts +10 -10
  449. package/packages/tree/src/tree.ts +4077 -3852
  450. package/packages/tree/src/util.ts +51 -51
  451. package/packages/tree-select/index.ts +16 -16
  452. package/packages/tree-select/src/tree-select.ts +1217 -1094
  453. package/packages/ui/index.ts +836 -793
  454. package/packages/ui/src/anime.ts +51 -52
  455. package/packages/ui/src/comp.ts +3 -3
  456. package/packages/ui/src/dom.ts +357 -354
  457. package/packages/ui/src/log.ts +19 -19
  458. package/packages/ui/src/utils.ts +79 -79
  459. package/packages/ui/src/vn.ts +39 -39
  460. package/packages/upload/index.ts +20 -20
  461. package/packages/upload/src/upload.ts +2271 -2021
  462. package/packages/upload/src/util.ts +109 -109
  463. package/packages/watermark/index.ts +33 -33
  464. package/packages/watermark/src/util.ts +186 -180
  465. package/packages/watermark/src/watermark.ts +196 -168
  466. package/types/all.d.ts +552 -552
  467. package/types/components/alert.d.ts +83 -87
  468. package/types/components/anchor-link.d.ts +88 -91
  469. package/types/components/anchor.d.ts +97 -104
  470. package/types/components/avatar.d.ts +85 -88
  471. package/types/components/backtop.d.ts +119 -122
  472. package/types/components/badge.d.ts +77 -80
  473. package/types/components/breadcrumb-item.d.ts +77 -80
  474. package/types/components/breadcrumb.d.ts +83 -87
  475. package/types/components/button-group.d.ts +118 -120
  476. package/types/components/button.d.ts +331 -339
  477. package/types/components/calendar.d.ts +247 -264
  478. package/types/components/card.d.ts +111 -113
  479. package/types/components/carousel-item.d.ts +73 -75
  480. package/types/components/carousel.d.ts +130 -134
  481. package/types/components/cascader.d.ts +336 -386
  482. package/types/components/checkbox-button.d.ts +109 -114
  483. package/types/components/checkbox-group.d.ts +152 -154
  484. package/types/components/checkbox.d.ts +123 -128
  485. package/types/components/col.d.ts +77 -80
  486. package/types/components/colgroup.d.ts +64 -69
  487. package/types/components/collapse-pane.d.ts +86 -89
  488. package/types/components/collapse.d.ts +123 -133
  489. package/types/components/color-picker.d.ts +275 -280
  490. package/types/components/column.d.ts +834 -851
  491. package/types/components/context-menu.d.ts +282 -289
  492. package/types/components/countdown.d.ts +108 -112
  493. package/types/components/date-panel.d.ts +319 -331
  494. package/types/components/date-picker.d.ts +361 -384
  495. package/types/components/date-range-picker.d.ts +351 -371
  496. package/types/components/divider.d.ts +72 -75
  497. package/types/components/drawer.d.ts +333 -344
  498. package/types/components/empty.d.ts +75 -78
  499. package/types/components/flow-design.d.ts +73 -85
  500. package/types/components/flow-view.d.ts +73 -85
  501. package/types/components/form-design.d.ts +370 -376
  502. package/types/components/form-gather.d.ts +120 -124
  503. package/types/components/form-group.d.ts +73 -77
  504. package/types/components/form-item.d.ts +395 -413
  505. package/types/components/form-view.d.ts +179 -183
  506. package/types/components/form.d.ts +499 -495
  507. package/types/components/gantt-module/gantt-view.d.ts +195 -200
  508. package/types/components/gantt-module/index.d.ts +1 -1
  509. package/types/components/gantt-plugins/extend-gantt-chart.d.ts +137 -131
  510. package/types/components/gantt-plugins/index.d.ts +1 -1
  511. package/types/components/gantt.d.ts +1248 -1399
  512. package/types/components/grid.d.ts +1289 -1317
  513. package/types/components/icon-picker.d.ts +242 -253
  514. package/types/components/icon.d.ts +332 -87
  515. package/types/components/image-group.d.ts +124 -127
  516. package/types/components/image-preview.d.ts +167 -167
  517. package/types/components/image.d.ts +166 -173
  518. package/types/components/input.d.ts +429 -453
  519. package/types/components/layout-aside.d.ts +123 -123
  520. package/types/components/layout-body.d.ts +110 -113
  521. package/types/components/layout-container.d.ts +73 -75
  522. package/types/components/layout-footer.d.ts +71 -73
  523. package/types/components/layout-header.d.ts +67 -69
  524. package/types/components/link.d.ts +107 -111
  525. package/types/components/list-design.d.ts +189 -190
  526. package/types/components/list-view.d.ts +193 -199
  527. package/types/components/list.d.ts +678 -715
  528. package/types/components/loading.d.ts +98 -103
  529. package/types/components/mention.d.ts +70 -77
  530. package/types/components/menu.d.ts +284 -295
  531. package/types/components/modal.d.ts +567 -584
  532. package/types/components/notice-bar.d.ts +102 -106
  533. package/types/components/number-input.d.ts +359 -365
  534. package/types/components/optgroup.d.ts +85 -88
  535. package/types/components/option.d.ts +94 -103
  536. package/types/components/pager.d.ts +330 -335
  537. package/types/components/password-input.d.ts +143 -156
  538. package/types/components/print-page-break.d.ts +65 -69
  539. package/types/components/print.d.ts +243 -245
  540. package/types/components/pulldown.d.ts +231 -239
  541. package/types/components/radio-button.d.ts +113 -118
  542. package/types/components/radio-group.d.ts +151 -153
  543. package/types/components/radio.d.ts +129 -134
  544. package/types/components/rate.d.ts +83 -88
  545. package/types/components/result.d.ts +81 -84
  546. package/types/components/row.d.ts +77 -81
  547. package/types/components/scrollbar.d.ts +299 -305
  548. package/types/components/segmented.d.ts +119 -123
  549. package/types/components/select.d.ts +598 -616
  550. package/types/components/slider.d.ts +137 -151
  551. package/types/components/space.d.ts +120 -127
  552. package/types/components/split-pane.d.ts +126 -133
  553. package/types/components/split.d.ts +301 -312
  554. package/types/components/splitter-panel.d.ts +123 -130
  555. package/types/components/splitter.d.ts +290 -301
  556. package/types/components/steps.d.ts +63 -68
  557. package/types/components/switch.d.ts +127 -133
  558. package/types/components/tab-pane.d.ts +111 -114
  559. package/types/components/table-module/custom.d.ts +123 -123
  560. package/types/components/table-module/edit.d.ts +297 -276
  561. package/types/components/table-module/export.d.ts +88 -96
  562. package/types/components/table-module/filter.d.ts +144 -144
  563. package/types/components/table-module/index.d.ts +7 -7
  564. package/types/components/table-module/keyboard.d.ts +26 -26
  565. package/types/components/table-module/menu.d.ts +46 -46
  566. package/types/components/table-module/validator.d.ts +53 -53
  567. package/types/components/table-plugins/extend-cell-area.d.ts +781 -781
  568. package/types/components/table-plugins/extend-pivot-table.d.ts +59 -58
  569. package/types/components/table-plugins/filters-combination.d.ts +15 -15
  570. package/types/components/table-plugins/filters-complex-input.d.ts +9 -9
  571. package/types/components/table-plugins/index.d.ts +4 -4
  572. package/types/components/table-select.d.ts +268 -276
  573. package/types/components/table-transfer.d.ts +80 -84
  574. package/types/components/table.d.ts +7530 -8000
  575. package/types/components/tabs.d.ts +314 -352
  576. package/types/components/tag.d.ts +108 -114
  577. package/types/components/text-ellipsis.d.ts +107 -112
  578. package/types/components/text.d.ts +112 -122
  579. package/types/components/textarea.d.ts +261 -275
  580. package/types/components/timeline-item.d.ts +66 -75
  581. package/types/components/timeline.d.ts +70 -77
  582. package/types/components/tip.d.ts +81 -83
  583. package/types/components/toolbar.d.ts +327 -336
  584. package/types/components/tooltip.d.ts +250 -255
  585. package/types/components/tour.d.ts +70 -77
  586. package/types/components/transfer.d.ts +80 -84
  587. package/types/components/tree-select.d.ts +361 -376
  588. package/types/components/tree.d.ts +994 -1036
  589. package/types/components/upload.d.ts +477 -518
  590. package/types/components/watermark.d.ts +116 -120
  591. package/types/handles/form-design.d.ts +50 -50
  592. package/types/handles/index.d.ts +3 -3
  593. package/types/handles/list-design.d.ts +1 -2
  594. package/types/handles/table.d.ts +15 -15
  595. package/types/index.d.ts +8 -8
  596. package/types/ui/commands.d.ts +57 -57
  597. package/types/ui/formats.d.ts +62 -62
  598. package/types/ui/global-config.d.ts +269 -269
  599. package/types/ui/global-icon.d.ts +315 -315
  600. package/types/ui/hooks.d.ts +13 -13
  601. package/types/ui/index.d.ts +100 -100
  602. package/types/ui/interceptor.d.ts +52 -52
  603. package/types/ui/menus.d.ts +89 -89
  604. package/types/ui/renderer.d.ts +1033 -1047
  605. package/types/ui/validators.d.ts +37 -38
  606. /package/dist/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  607. /package/dist/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  608. /package/dist/{iconfont.1792992046297.woff2 → iconfont.1793007755017.woff2} +0 -0
  609. /package/es/icon/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  610. /package/es/icon/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  611. /package/es/icon/{iconfont.1792992046297.woff2 → iconfont.1793007755017.woff2} +0 -0
  612. /package/es/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  613. /package/es/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  614. /package/es/{iconfont.1792992046297.woff2 → iconfont.1793007755017.woff2} +0 -0
  615. /package/es/vxe-icon/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  616. /package/es/vxe-icon/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  617. /package/es/vxe-icon/{iconfont.1792992046297.woff2 → iconfont.1793007755017.woff2} +0 -0
  618. /package/lib/icon/style/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  619. /package/lib/icon/style/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  620. /package/lib/icon/style/{iconfont.1792992046297.woff2 → iconfont.1793007755017.woff2} +0 -0
  621. /package/lib/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  622. /package/lib/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  623. /package/lib/{iconfont.1792992046297.woff2 → iconfont.1793007755017.woff2} +0 -0
  624. /package/lib/vxe-icon/style/{iconfont.1792992046297.ttf → iconfont.1793007755017.ttf} +0 -0
  625. /package/lib/vxe-icon/style/{iconfont.1792992046297.woff → iconfont.1793007755017.woff} +0 -0
  626. /package/lib/vxe-icon/style/{iconfont.1792992046297.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
+ }