vxe-pc-ui 3.0.0 → 3.0.2

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/README.md +23 -25
  2. package/es/button/src/button.js +3 -0
  3. package/es/calendar/index.js +12 -0
  4. package/es/calendar/src/calendar.js +1227 -0
  5. package/es/calendar/style.css +247 -0
  6. package/es/calendar/style.min.css +1 -0
  7. package/es/carousel/index.js +12 -0
  8. package/es/carousel/src/carousel-item.js +100 -0
  9. package/es/carousel/src/carousel.js +418 -0
  10. package/es/carousel/src/util.js +17 -0
  11. package/es/carousel/style.css +185 -0
  12. package/es/carousel/style.min.css +1 -0
  13. package/es/carousel-item/index.js +12 -0
  14. package/es/carousel-item/style.css +0 -0
  15. package/es/carousel-item/style.min.css +0 -0
  16. package/es/checkbox/index.js +12 -0
  17. package/es/checkbox/src/checkbox.js +164 -0
  18. package/es/checkbox/src/group.js +159 -0
  19. package/es/checkbox/style.css +117 -0
  20. package/es/checkbox/style.min.css +1 -0
  21. package/es/checkbox-group/index.js +12 -0
  22. package/es/checkbox-group/style.css +0 -0
  23. package/es/checkbox-group/style.min.css +0 -0
  24. package/es/collapse/index.js +12 -0
  25. package/es/collapse/src/collapse-pane.js +39 -0
  26. package/es/collapse/src/collapse.js +39 -0
  27. package/es/collapse/style.css +0 -0
  28. package/es/collapse/style.min.css +0 -0
  29. package/es/collapse-pane/index.js +12 -0
  30. package/es/collapse-pane/style.css +0 -0
  31. package/es/collapse-pane/style.min.css +0 -0
  32. package/es/components.js +66 -66
  33. package/es/date-picker/src/date-picker.js +20 -13
  34. package/es/drawer/src/drawer.js +17 -12
  35. package/es/form/index.js +13 -0
  36. package/es/form/render/index.js +461 -0
  37. package/es/form/src/form-config-item.js +201 -0
  38. package/es/form/src/form-gather.js +87 -0
  39. package/es/form/src/form-item.js +291 -0
  40. package/es/form/src/form.js +762 -0
  41. package/es/form/src/itemInfo.js +43 -0
  42. package/es/form/src/render.js +78 -0
  43. package/es/form/src/util.js +66 -0
  44. package/es/form/style.css +470 -0
  45. package/es/form/style.min.css +1 -0
  46. package/es/form-gather/index.js +12 -0
  47. package/es/form-gather/style.css +0 -0
  48. package/es/form-gather/style.min.css +0 -0
  49. package/es/form-item/index.js +12 -0
  50. package/es/form-item/style.css +0 -0
  51. package/es/form-item/style.min.css +0 -0
  52. package/es/icon/style.css +1 -1
  53. package/es/icon-picker/index.js +12 -0
  54. package/es/icon-picker/src/icon-picker.js +672 -0
  55. package/es/icon-picker/style.css +207 -0
  56. package/es/icon-picker/style.min.css +1 -0
  57. package/es/image/src/preview.js +1 -2
  58. package/es/input/index.js +12 -0
  59. package/es/input/src/input.js +2896 -0
  60. package/es/input/style.css +941 -0
  61. package/es/input/style.min.css +1 -0
  62. package/es/layout-footer/src/layout-footer.js +2 -1
  63. package/es/layout-header/src/layout-header.js +2 -1
  64. package/es/list/index.js +12 -0
  65. package/es/list/src/list.js +373 -0
  66. package/es/list/style.css +28 -0
  67. package/es/list/style.min.css +1 -0
  68. package/es/loading/src/loading.js +5 -0
  69. package/es/menu/src/menu.js +6 -2
  70. package/es/modal/src/modal.js +7 -4
  71. package/es/number-input/src/number-input.js +11 -7
  72. package/es/optgroup/index.js +12 -0
  73. package/es/optgroup/style.css +0 -0
  74. package/es/optgroup/style.min.css +0 -0
  75. package/es/option/index.js +12 -0
  76. package/es/option/style.css +0 -0
  77. package/es/option/style.min.css +0 -0
  78. package/es/pager/index.js +12 -0
  79. package/es/pager/src/pager.js +687 -0
  80. package/es/pager/style.css +303 -0
  81. package/es/pager/style.min.css +1 -0
  82. package/es/password-input/index.js +12 -0
  83. package/es/password-input/src/password-input.js +392 -0
  84. package/es/password-input/style.css +604 -0
  85. package/es/password-input/style.min.css +1 -0
  86. package/es/pulldown/src/pulldown.js +11 -3
  87. package/es/radio/src/button.js +6 -2
  88. package/es/radio/src/group.js +6 -2
  89. package/es/radio/src/radio.js +6 -2
  90. package/es/select/index.js +12 -0
  91. package/es/select/src/optgroup.js +90 -0
  92. package/es/select/src/option-info.js +16 -0
  93. package/es/select/src/option.js +86 -0
  94. package/es/select/src/select.js +1284 -0
  95. package/es/select/src/util.js +36 -0
  96. package/es/select/style.css +207 -0
  97. package/es/select/style.min.css +1 -0
  98. package/es/style.css +1 -1
  99. package/es/style.min.css +1 -1
  100. package/es/switch/src/switch.js +6 -2
  101. package/es/tab-pane/index.js +12 -0
  102. package/es/tab-pane/style.css +0 -0
  103. package/es/tab-pane/style.min.css +0 -0
  104. package/es/tabs/index.js +12 -0
  105. package/es/tabs/src/tab-pane.js +119 -0
  106. package/es/tabs/src/tabs.js +598 -0
  107. package/es/tabs/src/util.js +17 -0
  108. package/es/tabs/style.css +342 -0
  109. package/es/tabs/style.min.css +1 -0
  110. package/es/textarea/src/textarea.js +9 -5
  111. package/es/tooltip/src/tooltip.js +6 -1
  112. package/es/tree/index.js +12 -0
  113. package/es/tree/src/tree.js +1216 -0
  114. package/es/tree/style.css +219 -0
  115. package/es/tree/style.min.css +1 -0
  116. package/es/tree-select/index.js +12 -0
  117. package/es/tree-select/src/tree-select.js +685 -0
  118. package/es/tree-select/style.css +129 -0
  119. package/es/tree-select/style.min.css +1 -0
  120. package/es/ui/index.js +1 -1
  121. package/es/ui/src/log.js +1 -1
  122. package/es/ui/src/vn.js +1 -1
  123. package/es/upload/src/upload.js +9 -5
  124. package/es/vxe-calendar/index.js +3 -0
  125. package/es/vxe-calendar/style.css +247 -0
  126. package/es/vxe-calendar/style.min.css +1 -0
  127. package/es/vxe-carousel/index.js +3 -0
  128. package/es/vxe-carousel/style.css +185 -0
  129. package/es/vxe-carousel/style.min.css +1 -0
  130. package/es/vxe-carousel-item/index.js +3 -0
  131. package/es/vxe-carousel-item/style.css +0 -0
  132. package/es/vxe-carousel-item/style.min.css +0 -0
  133. package/es/vxe-checkbox/index.js +3 -0
  134. package/es/vxe-checkbox/style.css +117 -0
  135. package/es/vxe-checkbox/style.min.css +1 -0
  136. package/es/vxe-checkbox-group/index.js +3 -0
  137. package/es/vxe-checkbox-group/style.css +0 -0
  138. package/es/vxe-checkbox-group/style.min.css +0 -0
  139. package/es/vxe-collapse/index.js +3 -0
  140. package/es/vxe-collapse/style.css +0 -0
  141. package/es/vxe-collapse/style.min.css +0 -0
  142. package/es/vxe-collapse-pane/index.js +3 -0
  143. package/es/vxe-collapse-pane/style.css +0 -0
  144. package/es/vxe-collapse-pane/style.min.css +0 -0
  145. package/es/vxe-form/index.js +3 -0
  146. package/es/vxe-form/style.css +470 -0
  147. package/es/vxe-form/style.min.css +1 -0
  148. package/es/vxe-form-gather/index.js +3 -0
  149. package/es/vxe-form-gather/style.css +0 -0
  150. package/es/vxe-form-gather/style.min.css +0 -0
  151. package/es/vxe-form-item/index.js +3 -0
  152. package/es/vxe-form-item/style.css +0 -0
  153. package/es/vxe-form-item/style.min.css +0 -0
  154. package/es/vxe-icon-picker/index.js +3 -0
  155. package/es/vxe-icon-picker/style.css +207 -0
  156. package/es/vxe-icon-picker/style.min.css +1 -0
  157. package/es/vxe-input/index.js +3 -0
  158. package/es/vxe-input/style.css +941 -0
  159. package/es/vxe-input/style.min.css +1 -0
  160. package/es/vxe-list/index.js +3 -0
  161. package/es/vxe-list/style.css +28 -0
  162. package/es/vxe-list/style.min.css +1 -0
  163. package/es/vxe-optgroup/index.js +3 -0
  164. package/es/vxe-optgroup/style.css +0 -0
  165. package/es/vxe-optgroup/style.min.css +0 -0
  166. package/es/vxe-option/index.js +3 -0
  167. package/es/vxe-option/style.css +0 -0
  168. package/es/vxe-option/style.min.css +0 -0
  169. package/es/vxe-pager/index.js +3 -0
  170. package/es/vxe-pager/style.css +303 -0
  171. package/es/vxe-pager/style.min.css +1 -0
  172. package/es/vxe-password-input/index.js +3 -0
  173. package/es/vxe-password-input/style.css +604 -0
  174. package/es/vxe-password-input/style.min.css +1 -0
  175. package/es/vxe-select/index.js +3 -0
  176. package/es/vxe-select/style.css +207 -0
  177. package/es/vxe-select/style.min.css +1 -0
  178. package/es/vxe-tab-pane/index.js +3 -0
  179. package/es/vxe-tab-pane/style.css +0 -0
  180. package/es/vxe-tab-pane/style.min.css +0 -0
  181. package/es/vxe-tabs/index.js +3 -0
  182. package/es/vxe-tabs/style.css +342 -0
  183. package/es/vxe-tabs/style.min.css +1 -0
  184. package/es/vxe-tree/index.js +3 -0
  185. package/es/vxe-tree/style.css +219 -0
  186. package/es/vxe-tree/style.min.css +1 -0
  187. package/es/vxe-tree-select/index.js +3 -0
  188. package/es/vxe-tree-select/style.css +129 -0
  189. package/es/vxe-tree-select/style.min.css +1 -0
  190. package/lib/button/src/button.js +3 -0
  191. package/lib/button/src/button.min.js +1 -1
  192. package/lib/calendar/index.js +19 -0
  193. package/lib/calendar/index.min.js +1 -0
  194. package/lib/calendar/src/calendar.js +1286 -0
  195. package/lib/calendar/src/calendar.min.js +1 -0
  196. package/lib/calendar/style/index.js +1 -0
  197. package/lib/calendar/style/style.css +247 -0
  198. package/lib/calendar/style/style.min.css +1 -0
  199. package/lib/carousel/index.js +19 -0
  200. package/lib/carousel/index.min.js +1 -0
  201. package/lib/carousel/src/carousel-item.js +107 -0
  202. package/lib/carousel/src/carousel-item.min.js +1 -0
  203. package/lib/carousel/src/carousel.js +437 -0
  204. package/lib/carousel/src/carousel.min.js +1 -0
  205. package/lib/carousel/src/util.js +27 -0
  206. package/lib/carousel/src/util.min.js +1 -0
  207. package/lib/carousel/style/index.js +1 -0
  208. package/lib/carousel/style/style.css +185 -0
  209. package/lib/carousel/style/style.min.css +1 -0
  210. package/lib/carousel-item/index.js +19 -0
  211. package/lib/carousel-item/index.min.js +1 -0
  212. package/lib/carousel-item/style/index.js +1 -0
  213. package/lib/carousel-item/style/style.css +0 -0
  214. package/lib/carousel-item/style/style.min.css +0 -0
  215. package/lib/checkbox/index.js +19 -0
  216. package/lib/checkbox/index.min.js +1 -0
  217. package/lib/checkbox/src/checkbox.js +174 -0
  218. package/lib/checkbox/src/checkbox.min.js +1 -0
  219. package/lib/checkbox/src/group.js +169 -0
  220. package/lib/checkbox/src/group.min.js +1 -0
  221. package/lib/checkbox/style/index.js +1 -0
  222. package/lib/checkbox/style/style.css +117 -0
  223. package/lib/checkbox/style/style.min.css +1 -0
  224. package/lib/checkbox-group/index.js +19 -0
  225. package/lib/checkbox-group/index.min.js +1 -0
  226. package/lib/checkbox-group/style/index.js +1 -0
  227. package/lib/checkbox-group/style/style.css +0 -0
  228. package/lib/checkbox-group/style/style.min.css +0 -0
  229. package/lib/collapse/index.js +19 -0
  230. package/lib/collapse/index.min.js +1 -0
  231. package/lib/collapse/src/collapse-pane.js +48 -0
  232. package/lib/collapse/src/collapse-pane.min.js +1 -0
  233. package/lib/collapse/src/collapse.js +48 -0
  234. package/lib/collapse/src/collapse.min.js +1 -0
  235. package/lib/collapse/style/index.js +1 -0
  236. package/lib/collapse/style/style.css +0 -0
  237. package/lib/collapse/style/style.min.css +0 -0
  238. package/lib/collapse-pane/index.js +19 -0
  239. package/lib/collapse-pane/index.min.js +1 -0
  240. package/lib/collapse-pane/style/index.js +1 -0
  241. package/lib/collapse-pane/style/style.css +0 -0
  242. package/lib/collapse-pane/style/style.min.css +0 -0
  243. package/lib/components.js +271 -97
  244. package/lib/components.min.js +1 -1
  245. package/lib/date-picker/src/date-picker.js +20 -13
  246. package/lib/date-picker/src/date-picker.min.js +1 -1
  247. package/lib/drawer/src/drawer.js +17 -12
  248. package/lib/drawer/src/drawer.min.js +1 -1
  249. package/lib/form/index.js +20 -0
  250. package/lib/form/index.min.js +1 -0
  251. package/lib/form/render/index.js +509 -0
  252. package/lib/form/render/index.min.js +1 -0
  253. package/lib/form/src/form-config-item.js +210 -0
  254. package/lib/form/src/form-config-item.min.js +1 -0
  255. package/lib/form/src/form-gather.js +99 -0
  256. package/lib/form/src/form-gather.min.js +1 -0
  257. package/lib/form/src/form-item.js +299 -0
  258. package/lib/form/src/form-item.min.js +1 -0
  259. package/lib/form/src/form.js +856 -0
  260. package/lib/form/src/form.min.js +1 -0
  261. package/lib/form/src/itemInfo.js +60 -0
  262. package/lib/form/src/itemInfo.min.js +1 -0
  263. package/lib/form/src/render.js +94 -0
  264. package/lib/form/src/render.min.js +1 -0
  265. package/lib/form/src/util.js +93 -0
  266. package/lib/form/src/util.min.js +1 -0
  267. package/lib/form/style/index.js +1 -0
  268. package/lib/form/style/style.css +470 -0
  269. package/lib/form/style/style.min.css +1 -0
  270. package/lib/form-gather/index.js +19 -0
  271. package/lib/form-gather/index.min.js +1 -0
  272. package/lib/form-gather/style/index.js +1 -0
  273. package/lib/form-gather/style/style.css +0 -0
  274. package/lib/form-gather/style/style.min.css +0 -0
  275. package/lib/form-item/index.js +19 -0
  276. package/lib/form-item/index.min.js +1 -0
  277. package/lib/form-item/style/index.js +1 -0
  278. package/lib/form-item/style/style.css +0 -0
  279. package/lib/form-item/style/style.min.css +0 -0
  280. package/lib/icon/style/style.css +1 -1
  281. package/lib/icon/style/style.min.css +1 -1
  282. package/lib/icon-picker/index.js +19 -0
  283. package/lib/icon-picker/index.min.js +1 -0
  284. package/lib/icon-picker/src/icon-picker.js +650 -0
  285. package/lib/icon-picker/src/icon-picker.min.js +1 -0
  286. package/lib/icon-picker/style/index.js +1 -0
  287. package/lib/icon-picker/style/style.css +207 -0
  288. package/lib/icon-picker/style/style.min.css +1 -0
  289. package/lib/image/src/preview.js +1 -2
  290. package/lib/image/src/preview.min.js +1 -1
  291. package/lib/index.umd.js +23171 -8764
  292. package/lib/index.umd.min.js +1 -1
  293. package/lib/input/index.js +19 -0
  294. package/lib/input/index.min.js +1 -0
  295. package/lib/input/src/input.js +2901 -0
  296. package/lib/input/src/input.min.js +1 -0
  297. package/lib/input/style/index.js +1 -0
  298. package/lib/input/style/style.css +941 -0
  299. package/lib/input/style/style.min.css +1 -0
  300. package/lib/layout-footer/src/layout-footer.js +2 -1
  301. package/lib/layout-header/src/layout-header.js +2 -1
  302. package/lib/list/index.js +19 -0
  303. package/lib/list/index.min.js +1 -0
  304. package/lib/list/src/list.js +415 -0
  305. package/lib/list/src/list.min.js +1 -0
  306. package/lib/list/style/index.js +1 -0
  307. package/lib/list/style/style.css +28 -0
  308. package/lib/list/style/style.min.css +1 -0
  309. package/lib/loading/src/loading.js +5 -0
  310. package/lib/loading/src/loading.min.js +1 -1
  311. package/lib/menu/src/menu.js +6 -2
  312. package/lib/menu/src/menu.min.js +1 -1
  313. package/lib/modal/src/modal.js +7 -4
  314. package/lib/modal/src/modal.min.js +1 -1
  315. package/lib/number-input/src/number-input.js +11 -7
  316. package/lib/number-input/src/number-input.min.js +1 -1
  317. package/lib/optgroup/index.js +19 -0
  318. package/lib/optgroup/index.min.js +1 -0
  319. package/lib/optgroup/style/index.js +1 -0
  320. package/lib/optgroup/style/style.css +0 -0
  321. package/lib/optgroup/style/style.min.css +0 -0
  322. package/lib/option/index.js +19 -0
  323. package/lib/option/index.min.js +1 -0
  324. package/lib/option/style/index.js +1 -0
  325. package/lib/option/style/style.css +0 -0
  326. package/lib/option/style/style.min.css +0 -0
  327. package/lib/pager/index.js +19 -0
  328. package/lib/pager/index.min.js +1 -0
  329. package/lib/pager/src/pager.js +714 -0
  330. package/lib/pager/src/pager.min.js +1 -0
  331. package/lib/pager/style/index.js +1 -0
  332. package/lib/pager/style/style.css +303 -0
  333. package/lib/pager/style/style.min.css +1 -0
  334. package/lib/password-input/index.js +19 -0
  335. package/lib/password-input/index.min.js +1 -0
  336. package/lib/password-input/src/password-input.js +402 -0
  337. package/lib/password-input/src/password-input.min.js +1 -0
  338. package/lib/password-input/style/index.js +1 -0
  339. package/lib/password-input/style/style.css +604 -0
  340. package/lib/password-input/style/style.min.css +1 -0
  341. package/lib/pulldown/src/pulldown.js +11 -3
  342. package/lib/pulldown/src/pulldown.min.js +1 -1
  343. package/lib/radio/src/button.js +6 -2
  344. package/lib/radio/src/button.min.js +1 -1
  345. package/lib/radio/src/group.js +6 -2
  346. package/lib/radio/src/group.min.js +1 -1
  347. package/lib/radio/src/radio.js +6 -2
  348. package/lib/radio/src/radio.min.js +1 -1
  349. package/lib/select/index.js +19 -0
  350. package/lib/select/index.min.js +1 -0
  351. package/lib/select/src/optgroup.js +97 -0
  352. package/lib/select/src/optgroup.min.js +1 -0
  353. package/lib/select/src/option-info.js +33 -0
  354. package/lib/select/src/option-info.min.js +1 -0
  355. package/lib/select/src/option.js +93 -0
  356. package/lib/select/src/option.min.js +1 -0
  357. package/lib/select/src/select.js +1330 -0
  358. package/lib/select/src/select.min.js +1 -0
  359. package/lib/select/src/util.js +51 -0
  360. package/lib/select/src/util.min.js +1 -0
  361. package/lib/select/style/index.js +1 -0
  362. package/lib/select/style/style.css +207 -0
  363. package/lib/select/style/style.min.css +1 -0
  364. package/lib/style.css +1 -1
  365. package/lib/style.min.css +1 -1
  366. package/lib/switch/src/switch.js +6 -2
  367. package/lib/switch/src/switch.min.js +1 -1
  368. package/lib/tab-pane/index.js +19 -0
  369. package/lib/tab-pane/index.min.js +1 -0
  370. package/lib/tab-pane/style/index.js +1 -0
  371. package/lib/tab-pane/style/style.css +0 -0
  372. package/lib/tab-pane/style/style.min.css +0 -0
  373. package/lib/tabs/index.js +19 -0
  374. package/lib/tabs/index.min.js +1 -0
  375. package/lib/tabs/src/tab-pane.js +128 -0
  376. package/lib/tabs/src/tab-pane.min.js +1 -0
  377. package/lib/tabs/src/tabs.js +635 -0
  378. package/lib/tabs/src/tabs.min.js +1 -0
  379. package/lib/tabs/src/util.js +29 -0
  380. package/lib/tabs/src/util.min.js +1 -0
  381. package/lib/tabs/style/index.js +1 -0
  382. package/lib/tabs/style/style.css +342 -0
  383. package/lib/tabs/style/style.min.css +1 -0
  384. package/lib/textarea/src/textarea.js +9 -5
  385. package/lib/textarea/src/textarea.min.js +1 -1
  386. package/lib/tooltip/src/tooltip.js +6 -1
  387. package/lib/tooltip/src/tooltip.min.js +1 -1
  388. package/lib/tree/index.js +19 -0
  389. package/lib/tree/index.min.js +1 -0
  390. package/lib/tree/src/tree.js +1324 -0
  391. package/lib/tree/src/tree.min.js +1 -0
  392. package/lib/tree/style/index.js +1 -0
  393. package/lib/tree/style/style.css +219 -0
  394. package/lib/tree/style/style.min.css +1 -0
  395. package/lib/tree-select/index.js +19 -0
  396. package/lib/tree-select/index.min.js +1 -0
  397. package/lib/tree-select/src/tree-select.js +695 -0
  398. package/lib/tree-select/src/tree-select.min.js +1 -0
  399. package/lib/tree-select/style/index.js +1 -0
  400. package/lib/tree-select/style/style.css +129 -0
  401. package/lib/tree-select/style/style.min.css +1 -0
  402. package/lib/ui/index.js +1 -1
  403. package/lib/ui/index.min.js +1 -1
  404. package/lib/ui/src/log.js +1 -1
  405. package/lib/ui/src/log.min.js +1 -1
  406. package/lib/ui/src/vn.js +1 -1
  407. package/lib/ui/src/vn.min.js +1 -1
  408. package/lib/upload/src/upload.js +9 -5
  409. package/lib/upload/src/upload.min.js +1 -1
  410. package/lib/vxe-calendar/index.js +23 -0
  411. package/lib/vxe-calendar/index.min.js +1 -0
  412. package/lib/vxe-calendar/style/index.js +1 -0
  413. package/lib/vxe-calendar/style/style.css +247 -0
  414. package/lib/vxe-calendar/style/style.min.css +1 -0
  415. package/lib/vxe-carousel/index.js +23 -0
  416. package/lib/vxe-carousel/index.min.js +1 -0
  417. package/lib/vxe-carousel/style/index.js +1 -0
  418. package/lib/vxe-carousel/style/style.css +185 -0
  419. package/lib/vxe-carousel/style/style.min.css +1 -0
  420. package/lib/vxe-carousel-item/index.js +23 -0
  421. package/lib/vxe-carousel-item/index.min.js +1 -0
  422. package/lib/vxe-carousel-item/style/index.js +1 -0
  423. package/lib/vxe-carousel-item/style/style.css +0 -0
  424. package/lib/vxe-carousel-item/style/style.min.css +0 -0
  425. package/lib/vxe-checkbox/index.js +23 -0
  426. package/lib/vxe-checkbox/index.min.js +1 -0
  427. package/lib/vxe-checkbox/style/index.js +1 -0
  428. package/lib/vxe-checkbox/style/style.css +117 -0
  429. package/lib/vxe-checkbox/style/style.min.css +1 -0
  430. package/lib/vxe-checkbox-group/index.js +23 -0
  431. package/lib/vxe-checkbox-group/index.min.js +1 -0
  432. package/lib/vxe-checkbox-group/style/index.js +1 -0
  433. package/lib/vxe-checkbox-group/style/style.css +0 -0
  434. package/lib/vxe-checkbox-group/style/style.min.css +0 -0
  435. package/lib/vxe-collapse/index.js +23 -0
  436. package/lib/vxe-collapse/index.min.js +1 -0
  437. package/lib/vxe-collapse/style/index.js +1 -0
  438. package/lib/vxe-collapse/style/style.css +0 -0
  439. package/lib/vxe-collapse/style/style.min.css +0 -0
  440. package/lib/vxe-collapse-pane/index.js +23 -0
  441. package/lib/vxe-collapse-pane/index.min.js +1 -0
  442. package/lib/vxe-collapse-pane/style/index.js +1 -0
  443. package/lib/vxe-collapse-pane/style/style.css +0 -0
  444. package/lib/vxe-collapse-pane/style/style.min.css +0 -0
  445. package/lib/vxe-form/index.js +23 -0
  446. package/lib/vxe-form/index.min.js +1 -0
  447. package/lib/vxe-form/style/index.js +1 -0
  448. package/lib/vxe-form/style/style.css +470 -0
  449. package/lib/vxe-form/style/style.min.css +1 -0
  450. package/lib/vxe-form-gather/index.js +23 -0
  451. package/lib/vxe-form-gather/index.min.js +1 -0
  452. package/lib/vxe-form-gather/style/index.js +1 -0
  453. package/lib/vxe-form-gather/style/style.css +0 -0
  454. package/lib/vxe-form-gather/style/style.min.css +0 -0
  455. package/lib/vxe-form-item/index.js +23 -0
  456. package/lib/vxe-form-item/index.min.js +1 -0
  457. package/lib/vxe-form-item/style/index.js +1 -0
  458. package/lib/vxe-form-item/style/style.css +0 -0
  459. package/lib/vxe-form-item/style/style.min.css +0 -0
  460. package/lib/vxe-icon-picker/index.js +23 -0
  461. package/lib/vxe-icon-picker/index.min.js +1 -0
  462. package/lib/vxe-icon-picker/style/index.js +1 -0
  463. package/lib/vxe-icon-picker/style/style.css +207 -0
  464. package/lib/vxe-icon-picker/style/style.min.css +1 -0
  465. package/lib/vxe-input/index.js +23 -0
  466. package/lib/vxe-input/index.min.js +1 -0
  467. package/lib/vxe-input/style/index.js +1 -0
  468. package/lib/vxe-input/style/style.css +941 -0
  469. package/lib/vxe-input/style/style.min.css +1 -0
  470. package/lib/vxe-list/index.js +23 -0
  471. package/lib/vxe-list/index.min.js +1 -0
  472. package/lib/vxe-list/style/index.js +1 -0
  473. package/lib/vxe-list/style/style.css +28 -0
  474. package/lib/vxe-list/style/style.min.css +1 -0
  475. package/lib/vxe-optgroup/index.js +23 -0
  476. package/lib/vxe-optgroup/index.min.js +1 -0
  477. package/lib/vxe-optgroup/style/index.js +1 -0
  478. package/lib/vxe-optgroup/style/style.css +0 -0
  479. package/lib/vxe-optgroup/style/style.min.css +0 -0
  480. package/lib/vxe-option/index.js +23 -0
  481. package/lib/vxe-option/index.min.js +1 -0
  482. package/lib/vxe-option/style/index.js +1 -0
  483. package/lib/vxe-option/style/style.css +0 -0
  484. package/lib/vxe-option/style/style.min.css +0 -0
  485. package/lib/vxe-pager/index.js +23 -0
  486. package/lib/vxe-pager/index.min.js +1 -0
  487. package/lib/vxe-pager/style/index.js +1 -0
  488. package/lib/vxe-pager/style/style.css +303 -0
  489. package/lib/vxe-pager/style/style.min.css +1 -0
  490. package/lib/vxe-password-input/index.js +23 -0
  491. package/lib/vxe-password-input/index.min.js +1 -0
  492. package/lib/vxe-password-input/style/index.js +1 -0
  493. package/lib/vxe-password-input/style/style.css +604 -0
  494. package/lib/vxe-password-input/style/style.min.css +1 -0
  495. package/lib/vxe-select/index.js +23 -0
  496. package/lib/vxe-select/index.min.js +1 -0
  497. package/lib/vxe-select/style/index.js +1 -0
  498. package/lib/vxe-select/style/style.css +207 -0
  499. package/lib/vxe-select/style/style.min.css +1 -0
  500. package/lib/vxe-tab-pane/index.js +23 -0
  501. package/lib/vxe-tab-pane/index.min.js +1 -0
  502. package/lib/vxe-tab-pane/style/index.js +1 -0
  503. package/lib/vxe-tab-pane/style/style.css +0 -0
  504. package/lib/vxe-tab-pane/style/style.min.css +0 -0
  505. package/lib/vxe-tabs/index.js +23 -0
  506. package/lib/vxe-tabs/index.min.js +1 -0
  507. package/lib/vxe-tabs/style/index.js +1 -0
  508. package/lib/vxe-tabs/style/style.css +342 -0
  509. package/lib/vxe-tabs/style/style.min.css +1 -0
  510. package/lib/vxe-tree/index.js +23 -0
  511. package/lib/vxe-tree/index.min.js +1 -0
  512. package/lib/vxe-tree/style/index.js +1 -0
  513. package/lib/vxe-tree/style/style.css +219 -0
  514. package/lib/vxe-tree/style/style.min.css +1 -0
  515. package/lib/vxe-tree-select/index.js +23 -0
  516. package/lib/vxe-tree-select/index.min.js +1 -0
  517. package/lib/vxe-tree-select/style/index.js +1 -0
  518. package/lib/vxe-tree-select/style/style.css +129 -0
  519. package/lib/vxe-tree-select/style/style.min.css +1 -0
  520. package/package.json +1 -1
  521. package/packages/button/src/button.ts +3 -0
  522. package/packages/calendar/index.ts +16 -0
  523. package/packages/calendar/src/calendar.ts +1281 -0
  524. package/packages/carousel/index.ts +16 -0
  525. package/packages/carousel/src/carousel-item.ts +114 -0
  526. package/packages/carousel/src/carousel.ts +449 -0
  527. package/packages/carousel/src/util.ts +21 -0
  528. package/packages/carousel-item/index.ts +16 -0
  529. package/packages/checkbox/index.ts +16 -0
  530. package/packages/checkbox/src/checkbox.ts +182 -0
  531. package/packages/checkbox/src/group.ts +184 -0
  532. package/packages/checkbox-group/index.ts +16 -0
  533. package/packages/collapse/index.ts +16 -0
  534. package/packages/collapse/src/collapse-pane.ts +47 -0
  535. package/packages/collapse/src/collapse.ts +47 -0
  536. package/packages/collapse-pane/index.ts +16 -0
  537. package/packages/components.ts +66 -66
  538. package/packages/date-picker/src/date-picker.ts +21 -13
  539. package/packages/drawer/src/drawer.ts +18 -12
  540. package/packages/form/index.ts +17 -0
  541. package/packages/form/render/index.ts +499 -0
  542. package/packages/form/src/form-config-item.ts +219 -0
  543. package/packages/form/src/form-gather.ts +104 -0
  544. package/packages/form/src/form-item.ts +322 -0
  545. package/packages/form/src/form.ts +809 -0
  546. package/packages/form/src/itemInfo.ts +47 -0
  547. package/packages/form/src/render.ts +98 -0
  548. package/packages/form/src/util.ts +80 -0
  549. package/packages/form-gather/index.ts +16 -0
  550. package/packages/form-item/index.ts +16 -0
  551. package/packages/icon-picker/index.ts +16 -0
  552. package/packages/icon-picker/src/icon-picker.ts +716 -0
  553. package/packages/image/src/preview.ts +1 -2
  554. package/packages/input/index.ts +16 -0
  555. package/packages/input/src/input.ts +3000 -0
  556. package/packages/layout-footer/src/layout-footer.ts +5 -3
  557. package/packages/layout-header/src/layout-header.ts +2 -1
  558. package/packages/list/index.ts +16 -0
  559. package/packages/list/src/list.ts +403 -0
  560. package/packages/loading/src/loading.ts +6 -0
  561. package/packages/menu/src/menu.ts +7 -2
  562. package/packages/modal/src/modal.ts +8 -4
  563. package/packages/number-input/src/number-input.ts +12 -7
  564. package/packages/optgroup/index.ts +16 -0
  565. package/packages/option/index.ts +16 -0
  566. package/packages/pager/index.ts +16 -0
  567. package/packages/pager/src/pager.ts +743 -0
  568. package/packages/password-input/index.ts +16 -0
  569. package/packages/password-input/src/password-input.ts +432 -0
  570. package/packages/pulldown/src/pulldown.ts +12 -3
  571. package/packages/radio/src/button.ts +7 -2
  572. package/packages/radio/src/group.ts +7 -2
  573. package/packages/radio/src/radio.ts +7 -2
  574. package/packages/select/index.ts +16 -0
  575. package/packages/select/src/optgroup.ts +107 -0
  576. package/packages/select/src/option-info.ts +20 -0
  577. package/packages/select/src/option.ts +103 -0
  578. package/packages/select/src/select.ts +1341 -0
  579. package/packages/select/src/util.ts +47 -0
  580. package/packages/switch/src/switch.ts +7 -2
  581. package/packages/tab-pane/index.ts +16 -0
  582. package/packages/tabs/index.ts +16 -0
  583. package/packages/tabs/src/tab-pane.ts +136 -0
  584. package/packages/tabs/src/tabs.ts +636 -0
  585. package/packages/tabs/src/util.ts +21 -0
  586. package/packages/textarea/src/textarea.ts +10 -5
  587. package/packages/tooltip/src/tooltip.ts +7 -1
  588. package/packages/tree/index.ts +16 -0
  589. package/packages/tree/src/tree.ts +1292 -0
  590. package/packages/tree-select/index.ts +16 -0
  591. package/packages/tree-select/src/tree-select.ts +743 -0
  592. package/packages/ui/src/vn.ts +1 -1
  593. package/packages/upload/src/upload.ts +10 -5
  594. package/types/components/calendar.d.ts +6 -0
  595. package/types/components/carousel.d.ts +5 -0
  596. package/types/components/colgroup.d.ts +1 -0
  597. package/types/components/column.d.ts +1 -0
  598. package/types/components/drawer.d.ts +11 -10
  599. package/types/components/form-item.d.ts +1 -1
  600. package/types/components/form.d.ts +8 -1
  601. package/types/components/icon-picker.d.ts +4 -0
  602. package/types/components/input.d.ts +9 -1
  603. package/types/components/list.d.ts +1 -0
  604. package/types/components/optgroup.d.ts +10 -4
  605. package/types/components/table.d.ts +43 -4
  606. package/types/components/tabs.d.ts +4 -0
  607. package/types/components/toolbar.d.ts +5 -0
  608. package/types/components/tree-select.d.ts +4 -0
  609. package/types/ui/index.d.ts +0 -5
  610. package/types/ui/renderer.d.ts +37 -36
  611. package/types/handles/form-design.d.ts +0 -4
  612. package/types/handles/index.d.ts +0 -3
  613. package/types/handles/list-design.d.ts +0 -4
  614. package/types/handles/table.d.ts +0 -4
  615. /package/es/icon/style/{iconfont.1725630285930.ttf → iconfont.1725869586078.ttf} +0 -0
  616. /package/es/icon/style/{iconfont.1725630285930.woff → iconfont.1725869586078.woff} +0 -0
  617. /package/es/icon/style/{iconfont.1725630285930.woff2 → iconfont.1725869586078.woff2} +0 -0
  618. /package/es/{iconfont.1725630285930.ttf → iconfont.1725869586078.ttf} +0 -0
  619. /package/es/{iconfont.1725630285930.woff → iconfont.1725869586078.woff} +0 -0
  620. /package/es/{iconfont.1725630285930.woff2 → iconfont.1725869586078.woff2} +0 -0
  621. /package/lib/icon/style/{iconfont.1725630285930.ttf → iconfont.1725869586078.ttf} +0 -0
  622. /package/lib/icon/style/{iconfont.1725630285930.woff → iconfont.1725869586078.woff} +0 -0
  623. /package/lib/icon/style/{iconfont.1725630285930.woff2 → iconfont.1725869586078.woff2} +0 -0
  624. /package/lib/{iconfont.1725630285930.ttf → iconfont.1725869586078.ttf} +0 -0
  625. /package/lib/{iconfont.1725630285930.woff → iconfont.1725869586078.woff} +0 -0
  626. /package/lib/{iconfont.1725630285930.woff2 → iconfont.1725869586078.woff2} +0 -0
@@ -0,0 +1,598 @@
1
+ import { defineVxeComponent } from '../../ui/src/comp';
2
+ import XEUtils from 'xe-utils';
3
+ import { createEvent, getConfig, getIcon, globalEvents, permission, renderEmptyElement } from '../../ui';
4
+ import { getSlotVNs } from '../../ui/src/vn';
5
+ import { toCssUnit } from '../..//ui/src/dom';
6
+ import { warnLog } from '../../ui/src/log';
7
+ export default defineVxeComponent({
8
+ name: 'VxeTabs',
9
+ props: {
10
+ value: [String, Number, Boolean],
11
+ options: Array,
12
+ height: [String, Number],
13
+ destroyOnClose: Boolean,
14
+ titleWidth: [String, Number],
15
+ titleAlign: [String, Number],
16
+ type: String,
17
+ showClose: Boolean,
18
+ padding: {
19
+ type: Boolean,
20
+ default: () => getConfig().tabs.padding
21
+ },
22
+ trigger: String,
23
+ beforeChangeMethod: Function,
24
+ beforeCloseMethod: Function
25
+ },
26
+ inject: {
27
+ $xeParentTabs: {
28
+ from: '$xeTabs',
29
+ default: null
30
+ }
31
+ },
32
+ provide() {
33
+ const $xeTabs = this;
34
+ return {
35
+ $xeTabs
36
+ };
37
+ },
38
+ data() {
39
+ const xID = XEUtils.uniqueId();
40
+ const reactData = {
41
+ staticTabs: [],
42
+ activeName: null,
43
+ initNames: [],
44
+ lintLeft: 0,
45
+ lintWidth: 0,
46
+ isTabOver: false,
47
+ resizeFlag: 1
48
+ };
49
+ const internalData = {
50
+ slTimeout: undefined
51
+ };
52
+ return {
53
+ xID,
54
+ reactData,
55
+ internalData
56
+ };
57
+ },
58
+ computed: Object.assign(Object.assign({}, {}), { computeParentResizeFlag() {
59
+ const $xeTabs = this;
60
+ const $xeParentTabs = $xeTabs.$xeParentTabs;
61
+ return $xeParentTabs ? $xeParentTabs.reactData.resizeFlag : null;
62
+ },
63
+ computeTabOptions() {
64
+ const $xeTabs = this;
65
+ const props = $xeTabs;
66
+ const options = props.options;
67
+ return (options || []).filter((item) => $xeTabs.handleFilterTab(item));
68
+ },
69
+ computeTabStaticOptions() {
70
+ const $xeTabs = this;
71
+ const reactData = $xeTabs.reactData;
72
+ const staticTabs = reactData.staticTabs;
73
+ return staticTabs.filter((item) => $xeTabs.handleFilterTab(item));
74
+ } }),
75
+ methods: {
76
+ //
77
+ // Method
78
+ //
79
+ dispatchEvent(type, params, evnt) {
80
+ const $xeTabs = this;
81
+ $xeTabs.$emit(type, createEvent(evnt, { $tabs: $xeTabs }, params));
82
+ },
83
+ emitModel(value) {
84
+ const $xeTabs = this;
85
+ $xeTabs.$emit('input', value);
86
+ $xeTabs.$emit('modelValue', value);
87
+ },
88
+ prev() {
89
+ const $xeTabs = this;
90
+ return $xeTabs.handlePrevNext(false);
91
+ },
92
+ next() {
93
+ const $xeTabs = this;
94
+ return $xeTabs.handlePrevNext(true);
95
+ },
96
+ prevTab() {
97
+ const $xeTabs = this;
98
+ if (process.env.NODE_ENV === 'development') {
99
+ warnLog('vxe.error.delFunc', ['prevTab', 'prev']);
100
+ }
101
+ return $xeTabs.prev();
102
+ },
103
+ nextTab() {
104
+ const $xeTabs = this;
105
+ if (process.env.NODE_ENV === 'development') {
106
+ warnLog('vxe.error.delFunc', ['nextTab', 'next']);
107
+ }
108
+ return $xeTabs.next();
109
+ },
110
+ handleFilterTab(item) {
111
+ const { permissionCode } = item;
112
+ if (permissionCode) {
113
+ if (!permission.checkVisible(permissionCode)) {
114
+ return false;
115
+ }
116
+ }
117
+ return true;
118
+ },
119
+ callSlot(slotFunc, params) {
120
+ const $xeTabs = this;
121
+ const slots = $xeTabs.$scopedSlots;
122
+ if (slotFunc) {
123
+ if (XEUtils.isString(slotFunc)) {
124
+ slotFunc = slots[slotFunc] || null;
125
+ }
126
+ if (XEUtils.isFunction(slotFunc)) {
127
+ return getSlotVNs(slotFunc(params));
128
+ }
129
+ }
130
+ return [];
131
+ },
132
+ updateTabStyle() {
133
+ const $xeTabs = this;
134
+ const props = $xeTabs;
135
+ const reactData = $xeTabs.reactData;
136
+ $xeTabs.$nextTick(() => {
137
+ const { type } = props;
138
+ const { activeName } = reactData;
139
+ const tabOptions = $xeTabs.computeTabOptions;
140
+ const tabStaticOptions = $xeTabs.computeTabStaticOptions;
141
+ const headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
142
+ let lintWidth = 0;
143
+ let lintLeft = 0;
144
+ let isOver = false;
145
+ if (headerWrapperEl) {
146
+ const index = XEUtils.findIndexOf(tabStaticOptions.length ? tabStaticOptions : tabOptions, item => item.name === activeName);
147
+ const { children, scrollWidth, clientWidth } = headerWrapperEl;
148
+ isOver = scrollWidth !== clientWidth;
149
+ if (index > -1) {
150
+ const tabEl = children[index];
151
+ const tabWidth = tabEl.clientWidth;
152
+ if (type) {
153
+ if (type === 'card') {
154
+ lintWidth = tabWidth + 2;
155
+ lintLeft = tabEl.offsetLeft;
156
+ }
157
+ else if (type === 'border-card') {
158
+ lintWidth = tabWidth + 2;
159
+ lintLeft = tabEl.offsetLeft - 1;
160
+ }
161
+ }
162
+ else {
163
+ lintWidth = Math.max(4, Math.floor(tabWidth * 0.6));
164
+ lintLeft = tabEl.offsetLeft + Math.floor((tabWidth - lintWidth) / 2);
165
+ }
166
+ }
167
+ }
168
+ reactData.lintLeft = lintLeft;
169
+ reactData.lintWidth = lintWidth;
170
+ reactData.isTabOver = isOver;
171
+ });
172
+ },
173
+ addInitName(name, evnt) {
174
+ const $xeTabs = this;
175
+ const reactData = $xeTabs.reactData;
176
+ const { initNames } = reactData;
177
+ if (name && !initNames.includes(name)) {
178
+ $xeTabs.dispatchEvent('tab-load', { name }, evnt);
179
+ initNames.push(name);
180
+ return true;
181
+ }
182
+ return false;
183
+ },
184
+ initDefaultName(list) {
185
+ const $xeTabs = this;
186
+ const props = $xeTabs;
187
+ const reactData = $xeTabs.reactData;
188
+ let activeName = null;
189
+ if (list && list.length) {
190
+ let validVal = false;
191
+ activeName = props.value;
192
+ list.forEach((item) => {
193
+ if (activeName === item.name) {
194
+ validVal = true;
195
+ }
196
+ if (item && item.preload) {
197
+ $xeTabs.addInitName(item.name, null);
198
+ }
199
+ });
200
+ if (!validVal) {
201
+ activeName = list[0].name;
202
+ $xeTabs.addInitName(activeName, null);
203
+ $xeTabs.emitModel(activeName);
204
+ }
205
+ }
206
+ reactData.activeName = activeName;
207
+ },
208
+ clickEvent(evnt, item) {
209
+ const $xeTabs = this;
210
+ const props = $xeTabs;
211
+ const reactData = $xeTabs.reactData;
212
+ const { trigger } = props;
213
+ const beforeMethod = props.beforeChangeMethod || getConfig().tabs.beforeChangeMethod;
214
+ const { activeName } = reactData;
215
+ const { name } = item;
216
+ if (trigger === 'manual') {
217
+ $xeTabs.dispatchEvent('tab-click', { name }, evnt);
218
+ return;
219
+ }
220
+ const value = name;
221
+ reactData.activeName = name;
222
+ $xeTabs.emitModel(value);
223
+ $xeTabs.dispatchEvent('tab-click', { name }, evnt);
224
+ $xeTabs.addInitName(name, evnt);
225
+ if (name !== activeName) {
226
+ if (!beforeMethod || beforeMethod({ $tabs: $xeTabs, name, oldName: activeName, newName: name })) {
227
+ $xeTabs.dispatchEvent('change', { value, name, oldName: activeName, newName: name }, evnt);
228
+ }
229
+ else {
230
+ $xeTabs.dispatchEvent('tab-change-fail', { value, name, oldName: activeName, newName: name }, evnt);
231
+ }
232
+ }
233
+ },
234
+ handleCloseTabEvent(evnt, item, index, list) {
235
+ const $xeTabs = this;
236
+ const props = $xeTabs;
237
+ const reactData = $xeTabs.reactData;
238
+ evnt.stopPropagation();
239
+ const { activeName } = reactData;
240
+ const beforeMethod = props.beforeCloseMethod || getConfig().tabs.beforeCloseMethod;
241
+ const { name } = item;
242
+ const value = activeName;
243
+ let nextName = value;
244
+ if (activeName === name) {
245
+ const nextItem = index < list.length - 1 ? list[index + 1] : list[index - 1];
246
+ nextName = nextItem ? nextItem.name : null;
247
+ }
248
+ if (!beforeMethod || beforeMethod({ $tabs: $xeTabs, value, name, nextName })) {
249
+ $xeTabs.dispatchEvent('tab-close', { value, name, nextName }, evnt);
250
+ }
251
+ else {
252
+ $xeTabs.dispatchEvent('tab-close-fail', { value, name, nextName }, evnt);
253
+ }
254
+ },
255
+ startScrollAnimation(offsetPos, offsetSize) {
256
+ const $xeTabs = this;
257
+ const internalData = $xeTabs.internalData;
258
+ const { slTimeout } = internalData;
259
+ let offsetLeft = offsetSize;
260
+ let scrollCount = 6;
261
+ let delayNum = 35;
262
+ if (slTimeout) {
263
+ clearTimeout(slTimeout);
264
+ internalData.slTimeout = undefined;
265
+ }
266
+ const scrollAnimate = () => {
267
+ const headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
268
+ if (scrollCount > 0) {
269
+ scrollCount--;
270
+ if (headerWrapperEl) {
271
+ const { clientWidth, scrollWidth, scrollLeft } = headerWrapperEl;
272
+ offsetLeft = Math.floor(offsetLeft / 2);
273
+ if (offsetPos > 0) {
274
+ if (clientWidth + scrollLeft < scrollWidth) {
275
+ headerWrapperEl.scrollLeft += offsetLeft;
276
+ delayNum -= 4;
277
+ internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
278
+ }
279
+ }
280
+ else {
281
+ if (scrollLeft > 0) {
282
+ headerWrapperEl.scrollLeft -= offsetLeft;
283
+ delayNum -= 4;
284
+ internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
285
+ }
286
+ }
287
+ $xeTabs.updateTabStyle();
288
+ }
289
+ }
290
+ };
291
+ scrollAnimate();
292
+ },
293
+ handleScrollToLeft(offsetPos) {
294
+ const $xeTabs = this;
295
+ const headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
296
+ if (headerWrapperEl) {
297
+ const offsetSize = Math.floor(headerWrapperEl.clientWidth * 0.75);
298
+ $xeTabs.startScrollAnimation(offsetPos, offsetSize);
299
+ }
300
+ },
301
+ scrollLeftEvent() {
302
+ const $xeTabs = this;
303
+ $xeTabs.handleScrollToLeft(-1);
304
+ },
305
+ scrollRightEvent() {
306
+ const $xeTabs = this;
307
+ $xeTabs.handleScrollToLeft(1);
308
+ },
309
+ scrollToTab(name) {
310
+ const $xeTabs = this;
311
+ const tabOptions = $xeTabs.computeTabOptions;
312
+ const tabStaticOptions = $xeTabs.computeTabStaticOptions;
313
+ return $xeTabs.$nextTick().then(() => {
314
+ const headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
315
+ if (headerWrapperEl) {
316
+ const index = XEUtils.findIndexOf(tabStaticOptions.length ? tabStaticOptions : tabOptions, item => item.name === name);
317
+ if (index > -1) {
318
+ const { scrollLeft, clientWidth, children } = headerWrapperEl;
319
+ const tabEl = children[index];
320
+ if (tabEl) {
321
+ const tabOffsetLeft = tabEl.offsetLeft;
322
+ const tabClientWidth = tabEl.clientWidth;
323
+ // 如果右侧被挡
324
+ const overSize = (tabOffsetLeft + tabClientWidth) - (scrollLeft + clientWidth);
325
+ if (overSize > 0) {
326
+ headerWrapperEl.scrollLeft += overSize;
327
+ }
328
+ // 如果左侧被挡,优先
329
+ if (tabOffsetLeft < scrollLeft) {
330
+ headerWrapperEl.scrollLeft = tabOffsetLeft;
331
+ }
332
+ }
333
+ }
334
+ $xeTabs.updateTabStyle();
335
+ }
336
+ });
337
+ },
338
+ handlePrevNext(isNext) {
339
+ const $xeTabs = this;
340
+ const reactData = $xeTabs.reactData;
341
+ const { activeName } = reactData;
342
+ const tabOptions = $xeTabs.computeTabOptions;
343
+ const tabStaticOptions = $xeTabs.computeTabStaticOptions;
344
+ const list = tabStaticOptions.length ? tabStaticOptions : tabOptions;
345
+ const index = XEUtils.findIndexOf(list, item => item.name === activeName);
346
+ if (index > -1) {
347
+ let item = null;
348
+ if (isNext) {
349
+ if (index < list.length - 1) {
350
+ item = list[index + 1];
351
+ }
352
+ }
353
+ else {
354
+ if (index > 0) {
355
+ item = list[index - 1];
356
+ }
357
+ }
358
+ if (item) {
359
+ const name = item.name;
360
+ const value = name;
361
+ reactData.activeName = name;
362
+ $xeTabs.emitModel(value);
363
+ $xeTabs.addInitName(name, null);
364
+ }
365
+ }
366
+ return $xeTabs.$nextTick();
367
+ },
368
+ //
369
+ // Render
370
+ //
371
+ renderTabHeader(h, tabList) {
372
+ const $xeTabs = this;
373
+ const props = $xeTabs;
374
+ const slots = $xeTabs.$scopedSlots;
375
+ const reactData = $xeTabs.reactData;
376
+ const { type, titleWidth: allTitleWidth, titleAlign: allTitleAlign, showClose } = props;
377
+ const { activeName, lintLeft, lintWidth, isTabOver } = reactData;
378
+ const extraSlot = slots.extra;
379
+ return h('div', {
380
+ class: 'vxe-tabs-header'
381
+ }, [
382
+ isTabOver
383
+ ? h('div', {
384
+ class: 'vxe-tabs-header--bar vxe-tabs-header--left-bar',
385
+ on: {
386
+ click: $xeTabs.scrollLeftEvent
387
+ }
388
+ }, [
389
+ h('span', {
390
+ class: getIcon().TABS_TAB_BUTTON_LEFT
391
+ })
392
+ ])
393
+ : renderEmptyElement($xeTabs),
394
+ h('div', {
395
+ class: 'vxe-tabs-header--wrapper'
396
+ }, [
397
+ h('div', {
398
+ ref: 'refHeadWrapperElem',
399
+ class: 'vxe-tabs-header--item-wrapper'
400
+ }, tabList.map((item, index) => {
401
+ const { title, titleWidth, titleAlign, icon, name, slots } = item;
402
+ const tabSlot = slots ? slots.tab : null;
403
+ const itemWidth = titleWidth || allTitleWidth;
404
+ const itemAlign = titleAlign || allTitleAlign;
405
+ return h('div', {
406
+ key: `${name}`,
407
+ class: ['vxe-tabs-header--item', itemAlign ? `align--${itemAlign}` : '', {
408
+ 'is--active': activeName === name
409
+ }],
410
+ style: itemWidth
411
+ ? {
412
+ width: toCssUnit(itemWidth)
413
+ }
414
+ : {},
415
+ on: {
416
+ click(evnt) {
417
+ $xeTabs.clickEvent(evnt, item);
418
+ }
419
+ }
420
+ }, [
421
+ h('div', {
422
+ class: 'vxe-tabs-header--item-inner'
423
+ }, [
424
+ h('div', {
425
+ class: 'vxe-tabs-header--item-content'
426
+ }, [
427
+ icon
428
+ ? h('span', {
429
+ class: 'vxe-tabs-header--item-icon'
430
+ }, [
431
+ h('i', {
432
+ class: icon
433
+ })
434
+ ])
435
+ : renderEmptyElement($xeTabs),
436
+ h('span', {
437
+ class: 'vxe-tabs-header--item-name'
438
+ }, tabSlot ? $xeTabs.callSlot(tabSlot, { name, title }) : `${title}`)
439
+ ]),
440
+ showClose
441
+ ? h('div', {
442
+ class: 'vxe-tabs-header--close-btn',
443
+ on: {
444
+ click(evnt) {
445
+ $xeTabs.handleCloseTabEvent(evnt, item, index, tabList);
446
+ }
447
+ }
448
+ }, [
449
+ h('i', {
450
+ class: getIcon().TABS_TAB_CLOSE
451
+ })
452
+ ])
453
+ : renderEmptyElement($xeTabs)
454
+ ])
455
+ ]);
456
+ }).concat([
457
+ h('span', {
458
+ key: 'line',
459
+ class: `vxe-tabs-header--active-line type--${type || 'default'}`,
460
+ style: {
461
+ left: `${lintLeft}px`,
462
+ width: `${lintWidth}px`
463
+ }
464
+ })
465
+ ]))
466
+ ]),
467
+ isTabOver
468
+ ? h('div', {
469
+ class: 'vxe-tabs-header--bar vxe-tabs-header--right-bar',
470
+ on: {
471
+ click: $xeTabs.scrollRightEvent
472
+ }
473
+ }, [
474
+ h('span', {
475
+ class: getIcon().TABS_TAB_BUTTON_RIGHT
476
+ })
477
+ ])
478
+ : renderEmptyElement($xeTabs),
479
+ extraSlot
480
+ ? h('div', {
481
+ class: 'vxe-tabs-header--extra'
482
+ }, getSlotVNs(extraSlot({})))
483
+ : renderEmptyElement($xeTabs)
484
+ ]);
485
+ },
486
+ renderTabPane(h, item) {
487
+ const $xeTabs = this;
488
+ const reactData = $xeTabs.reactData;
489
+ const { initNames, activeName } = reactData;
490
+ const { name, slots } = item;
491
+ const defaultSlot = slots ? slots.default : null;
492
+ return name && initNames.includes(name)
493
+ ? h('div', {
494
+ key: name,
495
+ class: ['vxe-tabs-pane--item', {
496
+ 'is--visible': activeName === name,
497
+ 'has--content': !!defaultSlot
498
+ }]
499
+ }, defaultSlot ? $xeTabs.callSlot(defaultSlot, { name }) : [])
500
+ : renderEmptyElement($xeTabs);
501
+ },
502
+ renderTabContent(h, tabList) {
503
+ const $xeTabs = this;
504
+ const props = $xeTabs;
505
+ const reactData = $xeTabs.reactData;
506
+ const { destroyOnClose } = props;
507
+ const { activeName } = reactData;
508
+ const activeDefaultTab = tabList.find(item => item.name === activeName);
509
+ if (destroyOnClose) {
510
+ return [activeDefaultTab ? $xeTabs.renderTabPane(h, activeDefaultTab) : renderEmptyElement($xeTabs)];
511
+ }
512
+ return tabList.map((item) => $xeTabs.renderTabPane(h, item));
513
+ },
514
+ renderVN(h) {
515
+ const $xeTabs = this;
516
+ const props = $xeTabs;
517
+ const slots = $xeTabs.$scopedSlots;
518
+ const { type, height, padding, trigger } = props;
519
+ const tabOptions = $xeTabs.computeTabOptions;
520
+ const tabStaticOptions = $xeTabs.computeTabStaticOptions;
521
+ const defaultSlot = slots.default;
522
+ const tabList = defaultSlot ? tabStaticOptions : tabOptions;
523
+ return h('div', {
524
+ ref: 'refElem',
525
+ class: ['vxe-tabs', `vxe-tabs--${type || 'default'}`, `trigger--${trigger === 'manual' ? 'trigger' : 'default'}`, {
526
+ 'is--padding': padding,
527
+ 'is--height': height
528
+ }],
529
+ style: height
530
+ ? {
531
+ height: toCssUnit(height)
532
+ }
533
+ : {}
534
+ }, [
535
+ h('div', {
536
+ class: 'vxe-tabs-slots'
537
+ }, defaultSlot ? defaultSlot({}) : []),
538
+ $xeTabs.renderTabHeader(h, tabList),
539
+ h('div', {
540
+ class: 'vxe-tabs-pane'
541
+ }, $xeTabs.renderTabContent(h, tabList))
542
+ ]);
543
+ }
544
+ },
545
+ watch: {
546
+ value(val) {
547
+ const $xeTabs = this;
548
+ const reactData = $xeTabs.reactData;
549
+ $xeTabs.addInitName(val, null);
550
+ reactData.activeName = val;
551
+ },
552
+ 'reactData.activeName'(val) {
553
+ const $xeTabs = this;
554
+ const reactData = $xeTabs.reactData;
555
+ $xeTabs.scrollToTab(val);
556
+ $xeTabs.$nextTick(() => {
557
+ reactData.resizeFlag++;
558
+ });
559
+ },
560
+ options() {
561
+ const $xeTabs = this;
562
+ const props = $xeTabs;
563
+ $xeTabs.initDefaultName(props.options);
564
+ $xeTabs.updateTabStyle();
565
+ },
566
+ 'reactData.staticTabs'() {
567
+ const $xeTabs = this;
568
+ const reactData = $xeTabs.reactData;
569
+ $xeTabs.initDefaultName(reactData.staticTabs);
570
+ $xeTabs.updateTabStyle();
571
+ },
572
+ computeParentResizeFlag() {
573
+ const $xeTabs = this;
574
+ $xeTabs.$nextTick(() => {
575
+ $xeTabs.updateTabStyle();
576
+ });
577
+ }
578
+ },
579
+ created() {
580
+ const $xeTabs = this;
581
+ const props = $xeTabs;
582
+ const reactData = $xeTabs.reactData;
583
+ $xeTabs.addInitName(props.value, null);
584
+ $xeTabs.initDefaultName(reactData.staticTabs.length ? reactData.staticTabs : props.options);
585
+ },
586
+ mounted() {
587
+ const $xeTabs = this;
588
+ $xeTabs.updateTabStyle();
589
+ globalEvents.on($xeTabs, 'resize', $xeTabs.updateTabStyle);
590
+ },
591
+ beforeDestroy() {
592
+ const $xeTabs = this;
593
+ globalEvents.off($xeTabs, 'resize');
594
+ },
595
+ render(h) {
596
+ return this.renderVN(h);
597
+ }
598
+ });
@@ -0,0 +1,17 @@
1
+ import XEUtils from 'xe-utils';
2
+ export function assembleAnchorTab($xeTabs, elem, tabConfig) {
3
+ const staticLinks = $xeTabs.reactData.staticTabs;
4
+ const parentElem = elem.parentNode;
5
+ if (parentElem) {
6
+ staticLinks.splice(XEUtils.arrayIndexOf(parentElem.children, elem), 0, tabConfig);
7
+ $xeTabs.reactData.staticTabs = staticLinks.slice(0);
8
+ }
9
+ }
10
+ export function destroyAnchorTab($xeTabs, tabConfig) {
11
+ const staticTabs = $xeTabs.reactData.staticTabs;
12
+ const matchObj = XEUtils.findTree(staticTabs, item => item.id === tabConfig.id, { children: 'children' });
13
+ if (matchObj) {
14
+ matchObj.items.splice(matchObj.index, 1);
15
+ }
16
+ $xeTabs.reactData.staticTabs = staticTabs.slice(0);
17
+ }