vxe-table 4.23.4 → 4.23.6

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 (483) hide show
  1. package/dist/all.esm.js +32459 -33908
  2. package/dist/style.css +4501 -1
  3. package/dist/style.mini.css +1 -0
  4. package/es/colgroup/index.d.ts +760 -0
  5. package/es/colgroup/index.js +16 -13
  6. package/es/column/index.d.ts +760 -0
  7. package/es/column/index.js +16 -13
  8. package/es/components.d.ts +9 -0
  9. package/es/components.js +29 -29
  10. package/es/grid/index.d.ts +2824 -0
  11. package/es/grid/index.js +14 -9
  12. package/es/grid/src/emits.d.ts +2 -0
  13. package/es/grid/src/emits.js +18 -15
  14. package/es/grid/src/grid.d.ts +556 -0
  15. package/es/grid/src/grid.js +1695 -1758
  16. package/es/grid/src/props.d.ts +200 -0
  17. package/es/grid/src/props.js +19 -6
  18. package/es/{vxe-grid/style.min.css → grid/style.mini.css} +1 -1
  19. package/es/index.d.ts +3 -0
  20. package/es/index.esm.js +6 -3
  21. package/es/index.js +6 -0
  22. package/es/locale/lang/ar-EG.d.ts +908 -2
  23. package/es/locale/lang/ar-EG.js +906 -903
  24. package/es/locale/lang/de-DE.d.ts +908 -2
  25. package/es/locale/lang/de-DE.js +906 -903
  26. package/es/locale/lang/en-US.d.ts +908 -2
  27. package/es/locale/lang/en-US.js +906 -903
  28. package/es/locale/lang/es-ES.d.ts +908 -2
  29. package/es/locale/lang/es-ES.js +906 -903
  30. package/es/locale/lang/fr-FR.d.ts +908 -2
  31. package/es/locale/lang/fr-FR.js +906 -903
  32. package/es/locale/lang/hu-HU.d.ts +908 -2
  33. package/es/locale/lang/hu-HU.js +906 -903
  34. package/es/locale/lang/hy-AM.d.ts +908 -2
  35. package/es/locale/lang/hy-AM.js +906 -903
  36. package/es/locale/lang/id-ID.d.ts +908 -2
  37. package/es/locale/lang/id-ID.js +906 -903
  38. package/es/locale/lang/it-IT.d.ts +908 -2
  39. package/es/locale/lang/it-IT.js +906 -903
  40. package/es/locale/lang/ja-JP.d.ts +908 -2
  41. package/es/locale/lang/ja-JP.js +906 -903
  42. package/es/locale/lang/ko-KR.d.ts +908 -2
  43. package/es/locale/lang/ko-KR.js +906 -903
  44. package/es/locale/lang/ms-MY.d.ts +908 -2
  45. package/es/locale/lang/ms-MY.js +906 -903
  46. package/es/locale/lang/nb-NO.d.ts +908 -2
  47. package/es/locale/lang/nb-NO.js +906 -903
  48. package/es/locale/lang/pt-BR.d.ts +908 -2
  49. package/es/locale/lang/pt-BR.js +906 -903
  50. package/es/locale/lang/ru-RU.d.ts +908 -2
  51. package/es/locale/lang/ru-RU.js +906 -903
  52. package/es/locale/lang/th-TH.d.ts +908 -2
  53. package/es/locale/lang/th-TH.js +906 -903
  54. package/es/locale/lang/ug-CN.d.ts +908 -2
  55. package/es/locale/lang/ug-CN.js +906 -903
  56. package/es/locale/lang/uk-UA.d.ts +908 -2
  57. package/es/locale/lang/uk-UA.js +906 -903
  58. package/es/locale/lang/uz-UZ.d.ts +908 -2
  59. package/es/locale/lang/uz-UZ.js +906 -903
  60. package/es/locale/lang/vi-VN.d.ts +908 -2
  61. package/es/locale/lang/vi-VN.js +906 -903
  62. package/es/locale/lang/zh-CHT.d.ts +908 -2
  63. package/es/locale/lang/zh-CHT.js +906 -903
  64. package/es/locale/lang/zh-CN.d.ts +908 -2
  65. package/es/locale/lang/zh-CN.js +906 -903
  66. package/es/locale/lang/zh-HK.d.ts +908 -2
  67. package/es/locale/lang/zh-HK.js +910 -2
  68. package/es/locale/lang/zh-MO.d.ts +908 -2
  69. package/es/locale/lang/zh-MO.js +910 -2
  70. package/es/locale/lang/zh-TC.d.ts +908 -0
  71. package/es/locale/lang/zh-TC.js +910 -2
  72. package/es/locale/lang/zh-TW.d.ts +908 -2
  73. package/es/locale/lang/zh-TW.js +910 -2
  74. package/es/table/index.d.ts +2672 -0
  75. package/es/table/index.js +16 -11
  76. package/es/table/module/custom/hook.d.ts +1 -0
  77. package/es/table/module/custom/hook.js +462 -483
  78. package/es/table/module/custom/panel.d.ts +17 -0
  79. package/es/table/module/custom/panel.js +1482 -1559
  80. package/es/table/module/edit/hook.d.ts +1 -0
  81. package/es/table/module/edit/hook.js +1008 -1078
  82. package/es/table/module/export/export-panel.d.ts +27 -0
  83. package/es/table/module/export/export-panel.js +523 -575
  84. package/es/table/module/export/hook.d.ts +1 -0
  85. package/es/table/module/export/hook.js +1805 -1884
  86. package/es/table/module/export/import-panel.d.ts +27 -0
  87. package/es/table/module/export/import-panel.js +244 -252
  88. package/es/table/module/export/util.d.ts +5 -0
  89. package/es/table/module/export/util.js +20 -17
  90. package/es/table/module/filter/hook.d.ts +1 -0
  91. package/es/table/module/filter/hook.js +472 -487
  92. package/es/table/module/filter/panel.d.ts +16 -0
  93. package/es/table/module/filter/panel.js +251 -275
  94. package/es/table/module/keyboard/hook.d.ts +1 -0
  95. package/es/table/module/keyboard/hook.js +445 -497
  96. package/es/table/module/menu/hook.d.ts +1 -0
  97. package/es/table/module/menu/hook.js +295 -315
  98. package/es/table/module/menu/panel.d.ts +2 -0
  99. package/es/table/module/menu/panel.js +164 -183
  100. package/es/table/module/validator/hook.d.ts +1 -0
  101. package/es/table/module/validator/hook.js +522 -571
  102. package/es/table/render/index.d.ts +1 -0
  103. package/es/table/render/index.js +1402 -1362
  104. package/es/table/src/body.d.ts +24 -0
  105. package/es/table/src/body.js +850 -865
  106. package/es/table/src/cell.d.ts +192 -0
  107. package/es/table/src/cell.js +1209 -1207
  108. package/es/table/src/column.d.ts +263 -0
  109. package/es/table/src/column.js +178 -174
  110. package/es/table/src/columnInfo.d.ts +13 -0
  111. package/es/table/src/columnInfo.js +202 -196
  112. package/es/table/src/emits.d.ts +2 -0
  113. package/es/table/src/emits.js +126 -119
  114. package/es/table/src/footer.d.ts +45 -0
  115. package/es/table/src/footer.js +336 -340
  116. package/es/table/src/group.d.ts +178 -0
  117. package/es/table/src/group.js +49 -46
  118. package/es/table/src/header.d.ts +26 -0
  119. package/es/table/src/header.js +517 -519
  120. package/es/table/src/props.d.ts +238 -0
  121. package/es/table/src/props.js +331 -328
  122. package/es/table/src/store.d.ts +6 -0
  123. package/es/table/src/store.js +9 -6
  124. package/es/table/src/table.d.ts +539 -0
  125. package/es/table/src/table.js +14064 -15041
  126. package/es/table/src/use/cell-view.d.ts +10 -0
  127. package/es/table/src/use/cell-view.js +36 -33
  128. package/es/table/src/use/index.d.ts +1 -0
  129. package/es/table/src/use/index.js +1 -1
  130. package/es/table/src/util.d.ts +74 -0
  131. package/es/table/src/util.js +1038 -1026
  132. package/es/table/style.css +1 -1
  133. package/es/table/style.mini.css +1 -0
  134. package/es/toolbar/index.d.ts +340 -0
  135. package/es/toolbar/index.js +14 -9
  136. package/es/toolbar/src/toolbar.d.ts +75 -0
  137. package/es/toolbar/src/toolbar.js +605 -613
  138. package/es/toolbar/{style.min.css → style.mini.css} +1 -1
  139. package/es/ui/index.d.ts +86 -0
  140. package/es/ui/index.js +457 -501
  141. package/es/ui/src/anime.d.ts +10 -0
  142. package/es/ui/src/anime.js +40 -40
  143. package/es/ui/src/comp.d.ts +2 -0
  144. package/es/ui/src/comp.js +5 -2
  145. package/es/ui/src/dom.d.ts +80 -0
  146. package/es/ui/src/dom.js +377 -380
  147. package/es/ui/src/log.d.ts +6 -0
  148. package/es/ui/src/log.js +18 -13
  149. package/es/ui/src/utils.d.ts +23 -0
  150. package/es/ui/src/utils.js +57 -53
  151. package/es/ui/src/vn.d.ts +7 -0
  152. package/es/ui/src/vn.js +49 -42
  153. package/es/v-x-e-table/index.d.ts +3 -0
  154. package/es/v-x-e-table/index.js +6 -3
  155. package/es/vxe-colgroup/index.d.ts +3 -0
  156. package/es/vxe-colgroup/index.js +6 -3
  157. package/es/vxe-column/index.d.ts +3 -0
  158. package/es/vxe-column/index.js +6 -3
  159. package/es/vxe-grid/index.d.ts +3 -0
  160. package/es/vxe-grid/index.js +6 -3
  161. package/{lib/grid/style/style.min.css → es/vxe-grid/style.mini.css} +1 -1
  162. package/es/vxe-table/index.d.ts +3 -0
  163. package/es/vxe-table/index.js +6 -3
  164. package/es/vxe-table/style.css +1 -1
  165. package/es/vxe-table/style.mini.css +1 -0
  166. package/es/vxe-toolbar/index.d.ts +3 -0
  167. package/es/vxe-toolbar/index.js +6 -3
  168. package/es/vxe-toolbar/{style.min.css → style.mini.css} +1 -1
  169. package/es/vxe-ui/index.d.ts +3 -0
  170. package/es/vxe-ui/index.js +6 -3
  171. package/lib/colgroup/index.js +44 -18
  172. package/lib/colgroup/style/index.js +1 -1
  173. package/lib/column/index.js +44 -18
  174. package/lib/column/style/index.js +1 -1
  175. package/lib/components.js +58 -92
  176. package/lib/grid/index.js +42 -14
  177. package/lib/grid/src/emits.js +37 -6
  178. package/lib/grid/src/grid.js +850 -1195
  179. package/lib/grid/src/props.js +27 -11
  180. package/lib/grid/style/index.js +1 -1
  181. package/lib/{vxe-grid/style/style.min.css → grid/style/style.mini.css} +1 -1
  182. package/lib/iconfont.1792977622800.ttf +0 -0
  183. package/lib/iconfont.1792977622800.woff +0 -0
  184. package/lib/iconfont.1792977622800.woff2 +0 -0
  185. package/lib/index.common.js +35 -19
  186. package/lib/index.js +37 -0
  187. package/lib/index.umd.js +30586 -24322
  188. package/lib/index.umd.min.js +3 -1
  189. package/lib/locale/ar-EG.umd.js +948 -0
  190. package/lib/locale/de-DE.umd.js +948 -0
  191. package/lib/locale/en-US.umd.js +948 -0
  192. package/lib/locale/es-ES.umd.js +948 -0
  193. package/lib/locale/fr-FR.umd.js +948 -0
  194. package/lib/locale/hu-HU.umd.js +948 -0
  195. package/lib/locale/hy-AM.umd.js +948 -0
  196. package/lib/locale/id-ID.umd.js +948 -0
  197. package/lib/locale/it-IT.umd.js +948 -0
  198. package/lib/locale/ja-JP.umd.js +948 -0
  199. package/lib/locale/ko-KR.umd.js +948 -0
  200. package/lib/locale/lang/ar-EG.js +681 -664
  201. package/lib/locale/lang/ar-EG.umd.js +913 -892
  202. package/lib/locale/lang/de-DE.js +681 -664
  203. package/lib/locale/lang/de-DE.umd.js +913 -892
  204. package/lib/locale/lang/en-US.js +678 -661
  205. package/lib/locale/lang/en-US.umd.js +913 -892
  206. package/lib/locale/lang/es-ES.js +681 -664
  207. package/lib/locale/lang/es-ES.umd.js +913 -892
  208. package/lib/locale/lang/fr-FR.js +654 -637
  209. package/lib/locale/lang/fr-FR.umd.js +913 -892
  210. package/lib/locale/lang/hu-HU.js +681 -664
  211. package/lib/locale/lang/hu-HU.umd.js +913 -892
  212. package/lib/locale/lang/hy-AM.js +681 -664
  213. package/lib/locale/lang/hy-AM.umd.js +913 -892
  214. package/lib/locale/lang/id-ID.js +681 -664
  215. package/lib/locale/lang/id-ID.umd.js +913 -892
  216. package/lib/locale/lang/it-IT.js +661 -644
  217. package/lib/locale/lang/it-IT.umd.js +912 -891
  218. package/lib/locale/lang/ja-JP.js +710 -693
  219. package/lib/locale/lang/ja-JP.umd.js +913 -892
  220. package/lib/locale/lang/ko-KR.js +681 -664
  221. package/lib/locale/lang/ko-KR.umd.js +913 -892
  222. package/lib/locale/lang/ms-MY.js +681 -664
  223. package/lib/locale/lang/ms-MY.umd.js +913 -892
  224. package/lib/locale/lang/nb-NO.js +681 -664
  225. package/lib/locale/lang/nb-NO.umd.js +913 -892
  226. package/lib/locale/lang/pt-BR.js +681 -664
  227. package/lib/locale/lang/pt-BR.umd.js +913 -892
  228. package/lib/locale/lang/ru-RU.js +690 -673
  229. package/lib/locale/lang/ru-RU.umd.js +913 -892
  230. package/lib/locale/lang/th-TH.js +681 -664
  231. package/lib/locale/lang/th-TH.umd.js +913 -892
  232. package/lib/locale/lang/ug-CN.js +681 -664
  233. package/lib/locale/lang/ug-CN.umd.js +913 -892
  234. package/lib/locale/lang/uk-UA.js +674 -657
  235. package/lib/locale/lang/uk-UA.umd.js +913 -892
  236. package/lib/locale/lang/uz-UZ.js +583 -566
  237. package/lib/locale/lang/uz-UZ.umd.js +908 -887
  238. package/lib/locale/lang/vi-VN.js +681 -664
  239. package/lib/locale/lang/vi-VN.umd.js +913 -892
  240. package/lib/locale/lang/zh-CHT.js +681 -664
  241. package/lib/locale/lang/zh-CHT.umd.js +913 -892
  242. package/lib/locale/lang/zh-CN.js +681 -664
  243. package/lib/locale/lang/zh-CN.umd.js +913 -892
  244. package/lib/locale/lang/zh-HK.js +928 -7
  245. package/lib/locale/lang/zh-HK.umd.js +945 -20
  246. package/lib/locale/lang/zh-MO.js +928 -7
  247. package/lib/locale/lang/zh-MO.umd.js +945 -20
  248. package/lib/locale/lang/zh-TC.js +928 -7
  249. package/lib/locale/lang/zh-TC.umd.js +948 -0
  250. package/lib/locale/lang/zh-TW.js +928 -7
  251. package/lib/locale/lang/zh-TW.umd.js +945 -20
  252. package/lib/locale/ms-MY.umd.js +948 -0
  253. package/lib/locale/nb-NO.umd.js +948 -0
  254. package/lib/locale/pt-BR.umd.js +948 -0
  255. package/lib/locale/ru-RU.umd.js +948 -0
  256. package/lib/locale/th-TH.umd.js +948 -0
  257. package/lib/locale/ug-CN.umd.js +948 -0
  258. package/lib/locale/uk-UA.umd.js +948 -0
  259. package/lib/locale/uz-UZ.umd.js +948 -0
  260. package/lib/locale/vi-VN.umd.js +948 -0
  261. package/lib/locale/zh-CHT.umd.js +948 -0
  262. package/lib/locale/zh-CN.umd.js +948 -0
  263. package/lib/locale/zh-HK.umd.js +948 -0
  264. package/lib/locale/zh-MO.umd.js +948 -0
  265. package/lib/locale/zh-TC.umd.js +948 -0
  266. package/lib/locale/zh-TW.umd.js +948 -0
  267. package/lib/style.css +4501 -1
  268. package/lib/style.mini.css +1 -0
  269. package/lib/table/index.js +45 -17
  270. package/lib/table/module/custom/hook.js +132 -252
  271. package/lib/table/module/custom/panel.js +919 -970
  272. package/lib/table/module/edit/hook.js +250 -620
  273. package/lib/table/module/export/export-panel.js +390 -347
  274. package/lib/table/module/export/hook.js +745 -1179
  275. package/lib/table/module/export/import-panel.js +170 -136
  276. package/lib/table/module/export/util.js +37 -14
  277. package/lib/table/module/filter/hook.js +127 -227
  278. package/lib/table/module/filter/panel.js +177 -208
  279. package/lib/table/module/keyboard/hook.js +93 -172
  280. package/lib/table/module/menu/hook.js +86 -165
  281. package/lib/table/module/menu/panel.js +176 -141
  282. package/lib/table/module/validator/hook.js +164 -271
  283. package/lib/table/render/index.js +700 -1147
  284. package/lib/table/src/body.js +426 -559
  285. package/lib/table/src/cell.js +619 -987
  286. package/lib/table/src/column.js +55 -30
  287. package/lib/table/src/columnInfo.js +88 -110
  288. package/lib/table/src/emits.js +145 -13
  289. package/lib/table/src/footer.js +181 -240
  290. package/lib/table/src/group.js +56 -34
  291. package/lib/table/src/header.js +292 -367
  292. package/lib/table/src/props.js +27 -12
  293. package/lib/table/src/store.js +25 -9
  294. package/lib/table/src/table.js +14179 -1019
  295. package/lib/table/src/use/cell-view.js +47 -37
  296. package/lib/table/src/use/index.js +17 -15
  297. package/lib/table/src/util.js +236 -337
  298. package/lib/table/style/index.js +1 -1
  299. package/lib/table/style/style.css +1 -1
  300. package/lib/table/style/style.mini.css +1 -0
  301. package/lib/toolbar/index.js +42 -14
  302. package/lib/toolbar/src/toolbar.js +271 -379
  303. package/lib/toolbar/style/index.js +1 -1
  304. package/lib/toolbar/style/{style.min.css → style.mini.css} +1 -1
  305. package/lib/ui/index.js +153 -195
  306. package/lib/ui/src/anime.js +49 -29
  307. package/lib/ui/src/comp.js +23 -6
  308. package/lib/ui/src/dom.js +114 -147
  309. package/lib/ui/src/log.js +34 -18
  310. package/lib/ui/src/utils.js +57 -45
  311. package/lib/ui/src/vn.js +60 -34
  312. package/lib/ui/style/index.js +1 -1
  313. package/lib/v-x-e-table/index.js +35 -19
  314. package/lib/vxe-colgroup/index.js +35 -19
  315. package/lib/vxe-colgroup/style/index.js +1 -1
  316. package/lib/vxe-column/index.js +35 -19
  317. package/lib/vxe-column/style/index.js +1 -1
  318. package/lib/vxe-grid/index.js +35 -19
  319. package/lib/vxe-grid/style/index.js +1 -1
  320. package/{es/grid/style.min.css → lib/vxe-grid/style/style.mini.css} +1 -1
  321. package/lib/vxe-table/index.js +35 -19
  322. package/lib/vxe-table/style/index.js +1 -1
  323. package/lib/vxe-table/style/style.css +1 -1
  324. package/lib/vxe-table/style/style.mini.css +1 -0
  325. package/lib/vxe-toolbar/index.js +35 -19
  326. package/lib/vxe-toolbar/style/index.js +1 -1
  327. package/lib/vxe-toolbar/style/{style.min.css → style.mini.css} +1 -1
  328. package/lib/vxe-ui/index.js +35 -19
  329. package/lib/vxe-ui/style/index.js +1 -1
  330. package/package.json +8 -4
  331. package/packages/locale/lang/zh-HK.ts +907 -3
  332. package/packages/locale/lang/zh-MO.ts +907 -3
  333. package/packages/locale/lang/zh-TC.ts +907 -3
  334. package/packages/locale/lang/zh-TW.ts +907 -3
  335. package/packages/table/module/edit/hook.ts +2 -2
  336. package/packages/table/src/table.ts +64 -28
  337. package/packages/ui/index.ts +1 -28
  338. package/dist/style.min.css +0 -1
  339. package/es/index.css +0 -1
  340. package/es/index.min.css +0 -1
  341. package/es/style.css +0 -1
  342. package/es/style.min.css +0 -1
  343. package/es/table/style.min.css +0 -1
  344. package/es/vxe-table/style.min.css +0 -1
  345. package/es/vxe-v-x-e-table/index.js +0 -3
  346. package/lib/colgroup/index.min.js +0 -1
  347. package/lib/column/index.min.js +0 -1
  348. package/lib/components.min.js +0 -1
  349. package/lib/grid/index.min.js +0 -1
  350. package/lib/grid/src/emits.min.js +0 -1
  351. package/lib/grid/src/grid.min.js +0 -1
  352. package/lib/grid/src/props.min.js +0 -1
  353. package/lib/index.css +0 -1
  354. package/lib/index.min.css +0 -1
  355. package/lib/locale/lang/ar-EG.d.ts +0 -2
  356. package/lib/locale/lang/ar-EG.min.js +0 -1
  357. package/lib/locale/lang/de-DE.d.ts +0 -2
  358. package/lib/locale/lang/de-DE.min.js +0 -1
  359. package/lib/locale/lang/en-US.d.ts +0 -2
  360. package/lib/locale/lang/en-US.min.js +0 -1
  361. package/lib/locale/lang/es-ES.d.ts +0 -2
  362. package/lib/locale/lang/es-ES.min.js +0 -1
  363. package/lib/locale/lang/fr-FR.d.ts +0 -2
  364. package/lib/locale/lang/fr-FR.min.js +0 -1
  365. package/lib/locale/lang/hu-HU.d.ts +0 -2
  366. package/lib/locale/lang/hu-HU.min.js +0 -1
  367. package/lib/locale/lang/hy-AM.d.ts +0 -2
  368. package/lib/locale/lang/hy-AM.min.js +0 -1
  369. package/lib/locale/lang/id-ID.d.ts +0 -2
  370. package/lib/locale/lang/id-ID.min.js +0 -1
  371. package/lib/locale/lang/it-IT.d.ts +0 -2
  372. package/lib/locale/lang/it-IT.min.js +0 -1
  373. package/lib/locale/lang/ja-JP.d.ts +0 -2
  374. package/lib/locale/lang/ja-JP.min.js +0 -1
  375. package/lib/locale/lang/ko-KR.d.ts +0 -2
  376. package/lib/locale/lang/ko-KR.min.js +0 -1
  377. package/lib/locale/lang/ms-MY.d.ts +0 -2
  378. package/lib/locale/lang/ms-MY.min.js +0 -1
  379. package/lib/locale/lang/nb-NO.d.ts +0 -2
  380. package/lib/locale/lang/nb-NO.min.js +0 -1
  381. package/lib/locale/lang/pt-BR.d.ts +0 -2
  382. package/lib/locale/lang/pt-BR.min.js +0 -1
  383. package/lib/locale/lang/ru-RU.d.ts +0 -2
  384. package/lib/locale/lang/ru-RU.min.js +0 -1
  385. package/lib/locale/lang/th-TH.d.ts +0 -2
  386. package/lib/locale/lang/th-TH.min.js +0 -1
  387. package/lib/locale/lang/ug-CN.d.ts +0 -2
  388. package/lib/locale/lang/ug-CN.min.js +0 -1
  389. package/lib/locale/lang/uk-UA.d.ts +0 -2
  390. package/lib/locale/lang/uk-UA.min.js +0 -1
  391. package/lib/locale/lang/uz-UZ.d.ts +0 -2
  392. package/lib/locale/lang/uz-UZ.min.js +0 -1
  393. package/lib/locale/lang/vi-VN.d.ts +0 -2
  394. package/lib/locale/lang/vi-VN.min.js +0 -1
  395. package/lib/locale/lang/zh-CHT.d.ts +0 -2
  396. package/lib/locale/lang/zh-CHT.min.js +0 -1
  397. package/lib/locale/lang/zh-CN.d.ts +0 -2
  398. package/lib/locale/lang/zh-CN.min.js +0 -1
  399. package/lib/locale/lang/zh-HK.d.ts +0 -2
  400. package/lib/locale/lang/zh-HK.min.js +0 -1
  401. package/lib/locale/lang/zh-MO.d.ts +0 -2
  402. package/lib/locale/lang/zh-MO.min.js +0 -1
  403. package/lib/locale/lang/zh-TC.min.js +0 -1
  404. package/lib/locale/lang/zh-TW.d.ts +0 -2
  405. package/lib/locale/lang/zh-TW.min.js +0 -1
  406. package/lib/style.min.css +0 -1
  407. package/lib/table/index.min.js +0 -1
  408. package/lib/table/module/custom/hook.min.js +0 -1
  409. package/lib/table/module/custom/panel.min.js +0 -1
  410. package/lib/table/module/edit/hook.min.js +0 -1
  411. package/lib/table/module/export/export-panel.min.js +0 -1
  412. package/lib/table/module/export/hook.min.js +0 -1
  413. package/lib/table/module/export/import-panel.min.js +0 -1
  414. package/lib/table/module/export/util.min.js +0 -1
  415. package/lib/table/module/filter/hook.min.js +0 -1
  416. package/lib/table/module/filter/panel.min.js +0 -1
  417. package/lib/table/module/keyboard/hook.min.js +0 -1
  418. package/lib/table/module/menu/hook.min.js +0 -1
  419. package/lib/table/module/menu/panel.min.js +0 -1
  420. package/lib/table/module/validator/hook.min.js +0 -1
  421. package/lib/table/render/index.min.js +0 -1
  422. package/lib/table/src/body.min.js +0 -1
  423. package/lib/table/src/cell.min.js +0 -1
  424. package/lib/table/src/column.min.js +0 -1
  425. package/lib/table/src/columnInfo.min.js +0 -1
  426. package/lib/table/src/emits.min.js +0 -1
  427. package/lib/table/src/footer.min.js +0 -1
  428. package/lib/table/src/group.min.js +0 -1
  429. package/lib/table/src/header.min.js +0 -1
  430. package/lib/table/src/props.min.js +0 -1
  431. package/lib/table/src/store.min.js +0 -1
  432. package/lib/table/src/table.min.js +0 -1
  433. package/lib/table/src/use/cell-view.min.js +0 -1
  434. package/lib/table/src/use/index.min.js +0 -1
  435. package/lib/table/src/util.min.js +0 -1
  436. package/lib/table/style/style.min.css +0 -1
  437. package/lib/toolbar/index.min.js +0 -1
  438. package/lib/toolbar/src/toolbar.min.js +0 -1
  439. package/lib/ui/index.min.js +0 -1
  440. package/lib/ui/src/anime.min.js +0 -1
  441. package/lib/ui/src/comp.min.js +0 -1
  442. package/lib/ui/src/dom.min.js +0 -1
  443. package/lib/ui/src/log.min.js +0 -1
  444. package/lib/ui/src/utils.min.js +0 -1
  445. package/lib/ui/src/vn.min.js +0 -1
  446. package/lib/ui/style/style.min.css +0 -0
  447. package/lib/v-x-e-table/index.min.js +0 -1
  448. package/lib/v-x-e-table/style/index.js +0 -1
  449. package/lib/v-x-e-table/style/style.css +0 -0
  450. package/lib/v-x-e-table/style/style.min.css +0 -0
  451. package/lib/vxe-colgroup/index.min.js +0 -1
  452. package/lib/vxe-colgroup/style/style.min.css +0 -0
  453. package/lib/vxe-column/index.min.js +0 -1
  454. package/lib/vxe-column/style/style.min.css +0 -0
  455. package/lib/vxe-grid/index.min.js +0 -1
  456. package/lib/vxe-table/index.min.js +0 -1
  457. package/lib/vxe-table/style/style.min.css +0 -1
  458. package/lib/vxe-toolbar/index.min.js +0 -1
  459. package/lib/vxe-ui/index.min.js +0 -1
  460. package/lib/vxe-ui/style/style.min.css +0 -0
  461. package/lib/vxe-v-x-e-table/index.js +0 -21
  462. package/lib/vxe-v-x-e-table/index.min.js +0 -1
  463. package/lib/vxe-v-x-e-table/style/index.js +0 -1
  464. package/lib/vxe-v-x-e-table/style/style.css +0 -0
  465. package/lib/vxe-v-x-e-table/style/style.min.css +0 -0
  466. /package/{es/iconfont.1792740941484.ttf → dist/iconfont.1792977622800.ttf} +0 -0
  467. /package/{es/iconfont.1792740941484.woff → dist/iconfont.1792977622800.woff} +0 -0
  468. /package/{es/iconfont.1792740941484.woff2 → dist/iconfont.1792977622800.woff2} +0 -0
  469. /package/es/colgroup/{style.min.css → style.mini.css} +0 -0
  470. /package/es/column/{style.min.css → style.mini.css} +0 -0
  471. /package/{lib/iconfont.1792740941484.ttf → es/iconfont.1792977622800.ttf} +0 -0
  472. /package/{lib/iconfont.1792740941484.woff → es/iconfont.1792977622800.woff} +0 -0
  473. /package/{lib/iconfont.1792740941484.woff2 → es/iconfont.1792977622800.woff2} +0 -0
  474. /package/es/ui/{style.min.css → style.mini.css} +0 -0
  475. /package/es/{v-x-e-table/style.css → vxe-colgroup/style.mini.css} +0 -0
  476. /package/es/{v-x-e-table/style.min.css → vxe-column/style.mini.css} +0 -0
  477. /package/es/{vxe-colgroup/style.min.css → vxe-ui/style.mini.css} +0 -0
  478. /package/{es/vxe-column/style.min.css → lib/colgroup/style/style.mini.css} +0 -0
  479. /package/{es/vxe-ui/style.min.css → lib/column/style/style.mini.css} +0 -0
  480. /package/{es/vxe-v-x-e-table/style.css → lib/ui/style/style.mini.css} +0 -0
  481. /package/{es/vxe-v-x-e-table/style.min.css → lib/vxe-colgroup/style/style.mini.css} +0 -0
  482. /package/lib/{colgroup/style/style.min.css → vxe-column/style/style.mini.css} +0 -0
  483. /package/lib/{column/style/style.min.css → vxe-ui/style/style.mini.css} +0 -0
@@ -1,496 +1,481 @@
1
- import { nextTick } from 'vue';
2
- import XEUtils from 'xe-utils';
3
- import { VxeUI } from '../../../ui';
4
- import { toFilters, handleFieldOrColumn, getRefElem } from '../../src/util';
5
- import { toCssUnit, triggerEvent, updatePanelPlacement } from '../../../ui/src/dom';
6
- import { hasEnableConf, isEnableConf } from '../../../ui/src/utils';
1
+ import { nextTick } from "vue";
2
+ import XEUtils from "xe-utils";
3
+ import { VxeUI } from "../../../ui";
4
+ import { toFilters, handleFieldOrColumn, getRefElem } from "../../src/util";
5
+ import { toCssUnit, triggerEvent, updatePanelPlacement } from "../../../ui/src/dom";
6
+ import { hasEnableConf, isEnableConf } from "../../../ui/src/utils";
7
7
  const { renderer, hooks } = VxeUI;
8
- const tableFilterMethodKeys = ['openFilter', 'setFilter', 'clearFilter', 'saveFilter', 'saveFilterByEvent', 'saveFilterPanel', 'saveFilterPanelByEvent', 'resetFilter', 'resetFilterByEvent', 'resetFilterPanel', 'resetFilterPanelByEvent', 'getCheckedFilters', 'updateFilterOptionStatus'];
9
- const sourceType = 'table';
10
- hooks.add('tableFilterModule', {
11
- setupTable($xeTable) {
12
- const $xeGrid = $xeTable.xeGrid;
13
- const $xeGantt = $xeTable.xeGantt;
14
- const $xeGGWrapper = $xeGrid || $xeGantt;
15
- const { props, reactData, internalData } = $xeTable;
16
- const { refElem, refTableFilter } = $xeTable.getRefMaps();
17
- const { computeFilterOpts, computeMouseOpts, computeRendererOpts } = $xeTable.getComputeMaps();
18
- const updatePopupStyle = () => {
19
- const { filterStore, scrollbarHeight } = reactData;
20
- const { elemStore } = internalData;
21
- const { column, targetEl } = filterStore;
22
- if (!column) {
23
- return nextTick();
8
+ const tableFilterMethodKeys = ["openFilter", "setFilter", "clearFilter", "saveFilter", "saveFilterByEvent", "saveFilterPanel", "saveFilterPanelByEvent", "resetFilter", "resetFilterByEvent", "resetFilterPanel", "resetFilterPanelByEvent", "getCheckedFilters", "updateFilterOptionStatus"];
9
+ const sourceType = "table";
10
+ hooks.add("tableFilterModule", {
11
+ setupTable($xeTable) {
12
+ const $xeGrid = $xeTable.xeGrid;
13
+ const $xeGantt = $xeTable.xeGantt;
14
+ const $xeGGWrapper = $xeGrid || $xeGantt;
15
+ const { props, reactData, internalData } = $xeTable;
16
+ const { refElem, refTableFilter } = $xeTable.getRefMaps();
17
+ const { computeFilterOpts, computeMouseOpts, computeRendererOpts } = $xeTable.getComputeMaps();
18
+ const updatePopupStyle = () => {
19
+ const { filterStore, scrollbarHeight } = reactData;
20
+ const { elemStore } = internalData;
21
+ const { column, targetEl } = filterStore;
22
+ if (!column) {
23
+ return nextTick();
24
+ }
25
+ const tableEl = refElem.value;
26
+ const filterOpts = computeFilterOpts.value;
27
+ const rendererOpts = computeRendererOpts.value;
28
+ const { maxHeight: customMaxHeight, transfer, zIndex } = filterOpts;
29
+ const filterRender = column ? column.filterRender : null;
30
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? rendererOpts[filterRender.name] || renderer.get(filterRender.name) : null;
31
+ const headerScrollElem = getRefElem(elemStore["main-header-scroll"]);
32
+ if (!headerScrollElem) {
33
+ return nextTick();
34
+ }
35
+ const tableFilter = refTableFilter.value;
36
+ const filterWrapperElem = tableFilter ? tableFilter.getRefMaps().refElem.value : null;
37
+ if (!filterWrapperElem) {
38
+ return nextTick();
39
+ }
40
+ const handleStyle = () => {
41
+ let currEl = targetEl;
42
+ if (!targetEl) {
43
+ const headerWrapperElem = getRefElem(elemStore[`${column.fixed || "main"}-header-wrapper`] || elemStore["main-header-wrapper"]);
44
+ const colEl = headerWrapperElem ? headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`) : null;
45
+ if (colEl) {
46
+ currEl = colEl;
47
+ }
48
+ }
49
+ if (!currEl) {
50
+ return nextTick();
51
+ }
52
+ const btnRect = currEl.getBoundingClientRect();
53
+ const tableRect = tableEl.getBoundingClientRect();
54
+ let left = 0;
55
+ let top = 0;
56
+ let maxHeight = 0;
57
+ let panelStyle = {};
58
+ if (transfer) {
59
+ const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
60
+ defaultPlacement: "bottom",
61
+ appendTo: "",
62
+ isMinWidth: false,
63
+ teleportTo: transfer
64
+ });
65
+ panelStyle = ppObj.style;
66
+ } else {
67
+ const filterWidth = filterWrapperElem.offsetWidth;
68
+ const centerWidth = targetEl ? filterWidth / 2 : (filterWidth - column.renderWidth) / 2;
69
+ left = btnRect.left - tableRect.left - centerWidth;
70
+ top = btnRect.top - tableRect.top + currEl.clientHeight;
71
+ maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
72
+ if (left < 1) {
73
+ left = 1;
74
+ } else if (left > tableEl.clientWidth - filterWidth - 1) {
75
+ left = tableEl.clientWidth - filterWidth - 1;
76
+ }
77
+ if ($xeGGWrapper) {
78
+ const wrapperEl = $xeGGWrapper.getRefMaps().refElem.value;
79
+ if (wrapperEl) {
80
+ const wrapperRect = wrapperEl.getBoundingClientRect();
81
+ top += tableRect.top - wrapperRect.top;
24
82
  }
25
- const tableEl = refElem.value;
26
- const filterOpts = computeFilterOpts.value;
83
+ }
84
+ panelStyle = {
85
+ top: toCssUnit(top),
86
+ left: toCssUnit(left)
87
+ };
88
+ }
89
+ if (zIndex) {
90
+ panelStyle.zIndex = zIndex;
91
+ }
92
+ if (compConf ? !compConf.tableFilterAutoHeight : false) {
93
+ maxHeight = 0;
94
+ } else {
95
+ if (customMaxHeight) {
96
+ maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
97
+ }
98
+ }
99
+ panelStyle["--vxe-ui-vxe-table-filter-default-max-height"] = maxHeight ? toCssUnit(maxHeight) : "none";
100
+ filterStore.style = panelStyle;
101
+ };
102
+ handleStyle();
103
+ return nextTick().then(() => {
104
+ handleStyle();
105
+ });
106
+ };
107
+ const filterPrivateMethods = {
108
+ checkFilterOptions() {
109
+ const { filterStore } = reactData;
110
+ const { column } = filterStore;
111
+ if (column) {
112
+ const filterOptions = column.filters || [];
113
+ filterStore.isAllSelected = filterOptions.every((item) => item._checked);
114
+ filterStore.isIndeterminate = !filterStore.isAllSelected && filterOptions.some((item) => item._checked);
115
+ }
116
+ },
117
+ handleOpenFilterColumn(evnt, btnEl, colEl, column, params) {
118
+ const { initStore, filterStore } = reactData;
119
+ if (filterStore.column === column && filterStore.visible) {
120
+ filterStore.visible = false;
121
+ } else {
122
+ $xeTable.handleFilterOptions(column);
123
+ internalData._currFilterParams = params;
124
+ filterStore.targetEl = btnEl;
125
+ filterStore.style = null;
126
+ filterStore.visible = true;
127
+ initStore.filter = true;
128
+ }
129
+ nextTick().then(() => {
130
+ updatePopupStyle();
131
+ });
132
+ $xeTable.dispatchEvent("filter-visible", { column, field: column.field, property: column.field, filterList: $xeTable.getCheckedFilters(), visible: filterStore.visible }, evnt);
133
+ },
134
+ /**
135
+ * 点击筛选事件
136
+ * 当筛选图标被点击时触发
137
+ * 更新选项是否全部状态
138
+ * 打开筛选面板
139
+ * @param {Event} evnt 事件
140
+ * @param {ColumnInfo} column 列配置
141
+ * @param {Object} params 参数
142
+ */
143
+ triggerFilterEvent(evnt, column, params) {
144
+ const { elemStore } = internalData;
145
+ const { fixed } = column;
146
+ const headerWrapperElem = getRefElem(elemStore[`${fixed || "main"}-header-wrapper`] || elemStore["main-header-wrapper"]);
147
+ const btnElem = evnt.currentTarget;
148
+ const colEl = headerWrapperElem ? headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`) : null;
149
+ $xeTable.handleOpenFilterColumn(evnt, btnElem, colEl || btnElem, column, params);
150
+ },
151
+ handleClearFilter(column) {
152
+ if (column) {
153
+ const { filters, filterRender } = column;
154
+ if (filters) {
27
155
  const rendererOpts = computeRendererOpts.value;
28
- const { maxHeight: customMaxHeight, transfer, zIndex } = filterOpts;
29
- const filterRender = column ? column.filterRender : null;
30
- const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
31
- const headerScrollElem = getRefElem(elemStore['main-header-scroll']);
32
- if (!headerScrollElem) {
33
- return nextTick();
156
+ const compConf = isEnableConf(filterRender) && filterRender.name ? rendererOpts[filterRender.name] || renderer.get(filterRender.name) : null;
157
+ const frMethod = column.filterResetMethod || (compConf ? compConf.tableFilterResetMethod || compConf.filterResetMethod : null);
158
+ filters.forEach((item) => {
159
+ item._checked = false;
160
+ item.checked = false;
161
+ if (!frMethod) {
162
+ item.data = XEUtils.clone(item.resetValue, true);
163
+ }
164
+ });
165
+ if (frMethod) {
166
+ frMethod({ options: filters, column, $table: $xeTable });
34
167
  }
35
- const tableFilter = refTableFilter.value;
36
- const filterWrapperElem = tableFilter ? tableFilter.getRefMaps().refElem.value : null;
37
- if (!filterWrapperElem) {
38
- return nextTick();
168
+ }
169
+ }
170
+ },
171
+ handleColumnConfirmFilter(column, evnt) {
172
+ const { mouseConfig } = props;
173
+ const { scrollXLoad: oldScrollXLoad, scrollYLoad: oldScrollYLoad } = reactData;
174
+ const filterOpts = computeFilterOpts.value;
175
+ const mouseOpts = computeMouseOpts.value;
176
+ const { field, filters } = column;
177
+ const filterOptions = filters || [];
178
+ const values = [];
179
+ const datas = [];
180
+ filterOptions.forEach((item) => {
181
+ if (item.checked) {
182
+ values.push(item.value);
183
+ datas.push(item.data);
184
+ }
185
+ });
186
+ const filterList = $xeTable.getCheckedFilters();
187
+ const params = { $table: $xeTable, $event: evnt, column, field, property: field, values, datas, filters: filterList, filterList };
188
+ if (!filterOpts.remote) {
189
+ $xeTable.handleTableData(true);
190
+ $xeTable.checkSelectionStatus();
191
+ }
192
+ if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area && $xeTable.handleFilterEvent) {
193
+ $xeTable.handleFilterEvent(evnt, params);
194
+ }
195
+ if (evnt) {
196
+ $xeTable.dispatchEvent("filter-change", params, evnt);
197
+ }
198
+ $xeTable.closeFilter();
199
+ return $xeTable.updateFooter().then(() => {
200
+ const { scrollXLoad, scrollYLoad } = reactData;
201
+ if (oldScrollXLoad || scrollXLoad || (oldScrollYLoad || scrollYLoad)) {
202
+ if (oldScrollXLoad || scrollXLoad) {
203
+ $xeTable.updateScrollXSpace();
39
204
  }
40
- /**
41
- * 是否显示筛选按钮图标
42
- * 如果不存在图标,则相对单元格居中显示
43
- */
44
- const handleStyle = () => {
45
- let currEl = targetEl;
46
- if (!targetEl) {
47
- const headerWrapperElem = getRefElem(elemStore[`${column.fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
48
- const colEl = headerWrapperElem ? headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`) : null;
49
- if (colEl) {
50
- currEl = colEl;
51
- }
52
- }
53
- if (!currEl) {
54
- return nextTick();
55
- }
56
- const btnRect = currEl.getBoundingClientRect();
57
- const tableRect = tableEl.getBoundingClientRect();
58
- let left = 0;
59
- let top = 0;
60
- let maxHeight = 0;
61
- let panelStyle = {};
62
- if (transfer) {
63
- const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
64
- defaultPlacement: 'bottom',
65
- appendTo: '',
66
- isMinWidth: false,
67
- teleportTo: transfer
68
- });
69
- panelStyle = ppObj.style;
70
- }
71
- else {
72
- const filterWidth = filterWrapperElem.offsetWidth;
73
- const centerWidth = targetEl ? filterWidth / 2 : ((filterWidth - column.renderWidth) / 2);
74
- left = btnRect.left - tableRect.left - centerWidth;
75
- top = btnRect.top - tableRect.top + currEl.clientHeight;
76
- maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
77
- if (left < 1) {
78
- left = 1;
79
- }
80
- else if (left > (tableEl.clientWidth - filterWidth - 1)) {
81
- left = tableEl.clientWidth - filterWidth - 1;
82
- }
83
- if ($xeGGWrapper) {
84
- const wrapperEl = $xeGGWrapper.getRefMaps().refElem.value;
85
- if (wrapperEl) {
86
- const wrapperRect = wrapperEl.getBoundingClientRect();
87
- top += tableRect.top - wrapperRect.top;
88
- }
89
- }
90
- panelStyle = {
91
- top: toCssUnit(top),
92
- left: toCssUnit(left)
93
- };
94
- }
95
- if (zIndex) {
96
- panelStyle.zIndex = zIndex;
97
- }
98
- // 筛选面板是自适应表格高度
99
- if (compConf ? !compConf.tableFilterAutoHeight : false) {
100
- maxHeight = 0;
101
- }
102
- else {
103
- if (customMaxHeight) {
104
- maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
105
- }
106
- }
107
- panelStyle['--vxe-ui-vxe-table-filter-default-max-height'] = maxHeight ? toCssUnit(maxHeight) : 'none';
108
- filterStore.style = panelStyle;
109
- };
110
- handleStyle();
111
- return nextTick().then(() => {
112
- handleStyle();
113
- });
114
- };
115
- const filterPrivateMethods = {
116
- checkFilterOptions() {
117
- const { filterStore } = reactData;
118
- const { column } = filterStore;
119
- if (column) {
120
- const filterOptions = (column.filters || []);
121
- filterStore.isAllSelected = filterOptions.every((item) => item._checked);
122
- filterStore.isIndeterminate = !filterStore.isAllSelected && filterOptions.some((item) => item._checked);
123
- }
124
- },
125
- handleOpenFilterColumn(evnt, btnEl, colEl, column, params) {
126
- const { initStore, filterStore } = reactData;
127
- if (filterStore.column === column && filterStore.visible) {
128
- filterStore.visible = false;
129
- }
130
- else {
131
- $xeTable.handleFilterOptions(column);
132
- internalData._currFilterParams = params;
133
- filterStore.targetEl = btnEl;
134
- filterStore.style = null;
135
- filterStore.visible = true;
136
- initStore.filter = true;
137
- }
138
- nextTick().then(() => {
139
- updatePopupStyle();
140
- });
141
- $xeTable.dispatchEvent('filter-visible', { column, field: column.field, property: column.field, filterList: $xeTable.getCheckedFilters(), visible: filterStore.visible }, evnt);
142
- },
143
- /**
144
- * 点击筛选事件
145
- * 当筛选图标被点击时触发
146
- * 更新选项是否全部状态
147
- * 打开筛选面板
148
- * @param {Event} evnt 事件
149
- * @param {ColumnInfo} column 列配置
150
- * @param {Object} params 参数
151
- */
152
- triggerFilterEvent(evnt, column, params) {
153
- const { elemStore } = internalData;
154
- const { fixed } = column;
155
- const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
156
- const btnElem = evnt.currentTarget;
157
- const colEl = headerWrapperElem ? headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`) : null;
158
- $xeTable.handleOpenFilterColumn(evnt, btnElem, colEl || btnElem, column, params);
159
- },
160
- handleClearFilter(column) {
161
- if (column) {
162
- const { filters, filterRender } = column;
163
- if (filters) {
164
- const rendererOpts = computeRendererOpts.value;
165
- const compConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
166
- const frMethod = column.filterResetMethod || (compConf ? (compConf.tableFilterResetMethod || compConf.filterResetMethod) : null);
167
- filters.forEach((item) => {
168
- item._checked = false;
169
- item.checked = false;
170
- if (!frMethod) {
171
- item.data = XEUtils.clone(item.resetValue, true);
172
- }
173
- });
174
- if (frMethod) {
175
- frMethod({ options: filters, column, $table: $xeTable });
176
- }
177
- }
178
- }
179
- },
180
- handleColumnConfirmFilter(column, evnt) {
181
- const { mouseConfig } = props;
182
- const { scrollXLoad: oldScrollXLoad, scrollYLoad: oldScrollYLoad } = reactData;
183
- const filterOpts = computeFilterOpts.value;
184
- const mouseOpts = computeMouseOpts.value;
185
- const { field, filters } = column;
186
- const filterOptions = filters || [];
187
- const values = [];
188
- const datas = [];
189
- filterOptions.forEach((item) => {
190
- if (item.checked) {
191
- values.push(item.value);
192
- datas.push(item.data);
193
- }
194
- });
195
- const filterList = $xeTable.getCheckedFilters();
196
- const params = { $table: $xeTable, $event: evnt, column, field, property: field, values, datas, filters: filterList, filterList };
197
- // 如果是服务端筛选,则跳过本地筛选处理
198
- if (!filterOpts.remote) {
199
- $xeTable.handleTableData(true);
200
- $xeTable.checkSelectionStatus();
201
- }
202
- if (hasEnableConf(mouseConfig, mouseOpts) && mouseOpts.area && $xeTable.handleFilterEvent) {
203
- $xeTable.handleFilterEvent(evnt, params);
204
- }
205
- if (evnt) {
206
- $xeTable.dispatchEvent('filter-change', params, evnt);
207
- }
208
- $xeTable.closeFilter();
209
- return $xeTable.updateFooter().then(() => {
210
- const { scrollXLoad, scrollYLoad } = reactData;
211
- if ((oldScrollXLoad || scrollXLoad) || (oldScrollYLoad || scrollYLoad)) {
212
- if (oldScrollXLoad || scrollXLoad) {
213
- $xeTable.updateScrollXSpace();
214
- }
215
- if (oldScrollYLoad || scrollYLoad) {
216
- $xeTable.updateScrollYSpace();
217
- }
218
- return $xeTable.refreshScroll();
219
- }
220
- }).then(() => {
221
- $xeTable.updateCellAreas();
222
- return $xeTable.recalculate(true);
223
- }).then(() => {
224
- // 存在滚动行为未结束情况
225
- setTimeout(() => $xeTable.recalculate(), 50);
226
- });
227
- },
228
- /**
229
- * 确认筛选
230
- * 当筛选面板中的确定按钮被按下时触发
231
- */
232
- confirmFilterEvent(evnt, column) {
233
- if (column) {
234
- $xeTable.handleColumnConfirmFilter(column, evnt);
235
- }
236
- },
237
- // (单选)筛选发生改变
238
- handleFilterChangeRadioOption(evnt, checked, item) {
239
- const { filterStore } = reactData;
240
- const { column } = filterStore;
241
- if (column) {
242
- const filterOptions = (column.filters || []);
243
- filterOptions.forEach((option) => {
244
- option._checked = false;
245
- });
246
- item._checked = checked;
247
- $xeTable.checkFilterOptions();
248
- $xeTable.handleFilterConfirmFilter(evnt, column);
249
- }
250
- },
251
- // (多选)筛选发生改变
252
- handleFilterChangeMultipleOption(evnt, checked, item) {
253
- item._checked = checked;
254
- $xeTable.checkFilterOptions();
255
- },
256
- // 筛选发生改变
257
- handleFilterChangeOption(evnt, checked, item) {
258
- const { filterStore } = reactData;
259
- const { fullColumnIdData } = internalData;
260
- let column = filterStore.column;
261
- if (!column) {
262
- const colRest = fullColumnIdData[item._colId];
263
- if (colRest) {
264
- column = colRest.column;
265
- filterStore.column = column;
266
- }
267
- }
268
- if (column) {
269
- if (column.filterMultiple) {
270
- $xeTable.handleFilterChangeMultipleOption(evnt, checked, item);
271
- }
272
- else {
273
- $xeTable.handleFilterChangeRadioOption(evnt, checked, item);
274
- }
275
- }
276
- },
277
- // 确认筛选
278
- handleFilterConfirmFilter(evnt, column) {
279
- if (column) {
280
- const filterOptions = (column.filters || []);
281
- filterOptions.forEach((option) => {
282
- option.checked = option._checked;
283
- });
284
- $xeTable.confirmFilterEvent(evnt, column);
285
- }
286
- },
287
- /**
288
- * 重置筛选
289
- * 当筛选面板中的重置按钮被按下时触发
290
- */
291
- handleFilterResetFilter(evnt, column) {
292
- if (column) {
293
- $xeTable.handleClearFilter(column);
294
- $xeTable.confirmFilterEvent(evnt, column);
295
- if (evnt) {
296
- $xeTable.dispatchEvent('clear-filter', { filterList: [] }, evnt);
297
- }
298
- }
299
- },
300
- handleFilterStyle() {
301
- const { filterStore } = reactData;
302
- if (!filterStore.visible) {
303
- return nextTick();
304
- }
305
- return updatePopupStyle();
205
+ if (oldScrollYLoad || scrollYLoad) {
206
+ $xeTable.updateScrollYSpace();
306
207
  }
307
- };
308
- const filterMethods = {
309
- /**
310
- * 手动弹出筛选面板
311
- * @param column
312
- */
313
- openFilter(fieldOrColumn) {
314
- const column = handleFieldOrColumn($xeTable, fieldOrColumn);
315
- if (column && column.filters) {
316
- const { elemStore } = internalData;
317
- const { fixed, filters } = column;
318
- return $xeTable.scrollToColumn(column).then(() => {
319
- const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
320
- if (headerWrapperElem) {
321
- const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
322
- if (filterBtnElem) {
323
- triggerEvent(filterBtnElem, 'click');
324
- }
325
- else {
326
- const colEl = headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`);
327
- if (colEl) {
328
- let firstFilterOption = null;
329
- if (filters) {
330
- firstFilterOption = filters[0];
331
- }
332
- const params = {
333
- $table: $xeTable,
334
- $grid: $xeGrid,
335
- $gantt: $xeGantt,
336
- $rowIndex: -1,
337
- column,
338
- columnIndex: $xeTable.getColumnIndex(column),
339
- $columnIndex: $xeTable.getVMColumnIndex(column),
340
- _columnIndex: $xeTable.getVTColumnIndex(column),
341
- firstFilterOption: firstFilterOption,
342
- fixed,
343
- source: sourceType,
344
- type: 'header'
345
- // isHidden
346
- // hasFilter
347
- };
348
- $xeTable.handleOpenFilterColumn(new Event('click'), null, colEl, column, params);
349
- }
350
- }
351
- }
352
- });
353
- }
354
- return nextTick();
355
- },
356
- /**
357
- * 修改筛选条件列表
358
- * @param {ColumnInfo} fieldOrColumn 列或字段名
359
- * @param {Array} options 选项
360
- */
361
- setFilter(fieldOrColumn, options, isUpdate) {
362
- const { filterStore } = reactData;
363
- const column = handleFieldOrColumn($xeTable, fieldOrColumn);
364
- if (column && column.filters) {
365
- column.filters = toFilters(options || [], column.id);
366
- if (isUpdate) {
367
- return $xeTable.handleColumnConfirmFilter(column, null);
368
- }
369
- else {
370
- if (filterStore.visible) {
371
- $xeTable.handleFilterOptions(column);
372
- }
373
- }
374
- }
375
- return nextTick();
376
- },
377
- /**
378
- * 清空指定列的筛选条件
379
- * 如果为空则清空所有列的筛选条件
380
- * @param {String} fieldOrColumn 列或字段名
381
- */
382
- clearFilter(fieldOrColumn) {
383
- const { filterStore } = reactData;
384
- const { tableFullColumn } = internalData;
385
- const filterOpts = computeFilterOpts.value;
386
- let column;
387
- if (fieldOrColumn) {
388
- column = handleFieldOrColumn($xeTable, fieldOrColumn);
389
- if (column) {
390
- $xeTable.handleClearFilter(column);
391
- }
392
- }
393
- else {
394
- tableFullColumn.forEach($xeTable.handleClearFilter);
395
- }
396
- if (!fieldOrColumn || column !== filterStore.column) {
397
- Object.assign(filterStore, {
398
- isAllSelected: false,
399
- isIndeterminate: false,
400
- style: null,
401
- options: [],
402
- column: null,
403
- multiple: false,
404
- visible: false
405
- });
208
+ return $xeTable.refreshScroll();
209
+ }
210
+ }).then(() => {
211
+ $xeTable.updateCellAreas();
212
+ return $xeTable.recalculate(true);
213
+ }).then(() => {
214
+ setTimeout(() => $xeTable.recalculate(), 50);
215
+ });
216
+ },
217
+ /**
218
+ * 确认筛选
219
+ * 当筛选面板中的确定按钮被按下时触发
220
+ */
221
+ confirmFilterEvent(evnt, column) {
222
+ if (column) {
223
+ $xeTable.handleColumnConfirmFilter(column, evnt);
224
+ }
225
+ },
226
+ // (单选)筛选发生改变
227
+ handleFilterChangeRadioOption(evnt, checked, item) {
228
+ const { filterStore } = reactData;
229
+ const { column } = filterStore;
230
+ if (column) {
231
+ const filterOptions = column.filters || [];
232
+ filterOptions.forEach((option) => {
233
+ option._checked = false;
234
+ });
235
+ item._checked = checked;
236
+ $xeTable.checkFilterOptions();
237
+ $xeTable.handleFilterConfirmFilter(evnt, column);
238
+ }
239
+ },
240
+ // (多选)筛选发生改变
241
+ handleFilterChangeMultipleOption(evnt, checked, item) {
242
+ item._checked = checked;
243
+ $xeTable.checkFilterOptions();
244
+ },
245
+ // 筛选发生改变
246
+ handleFilterChangeOption(evnt, checked, item) {
247
+ const { filterStore } = reactData;
248
+ const { fullColumnIdData } = internalData;
249
+ let column = filterStore.column;
250
+ if (!column) {
251
+ const colRest = fullColumnIdData[item._colId];
252
+ if (colRest) {
253
+ column = colRest.column;
254
+ filterStore.column = column;
255
+ }
256
+ }
257
+ if (column) {
258
+ if (column.filterMultiple) {
259
+ $xeTable.handleFilterChangeMultipleOption(evnt, checked, item);
260
+ } else {
261
+ $xeTable.handleFilterChangeRadioOption(evnt, checked, item);
262
+ }
263
+ }
264
+ },
265
+ // 确认筛选
266
+ handleFilterConfirmFilter(evnt, column) {
267
+ if (column) {
268
+ const filterOptions = column.filters || [];
269
+ filterOptions.forEach((option) => {
270
+ option.checked = option._checked;
271
+ });
272
+ $xeTable.confirmFilterEvent(evnt, column);
273
+ }
274
+ },
275
+ /**
276
+ * 重置筛选
277
+ * 当筛选面板中的重置按钮被按下时触发
278
+ */
279
+ handleFilterResetFilter(evnt, column) {
280
+ if (column) {
281
+ $xeTable.handleClearFilter(column);
282
+ $xeTable.confirmFilterEvent(evnt, column);
283
+ if (evnt) {
284
+ $xeTable.dispatchEvent("clear-filter", { filterList: [] }, evnt);
285
+ }
286
+ }
287
+ },
288
+ handleFilterStyle() {
289
+ const { filterStore } = reactData;
290
+ if (!filterStore.visible) {
291
+ return nextTick();
292
+ }
293
+ return updatePopupStyle();
294
+ }
295
+ };
296
+ const filterMethods = {
297
+ /**
298
+ * 手动弹出筛选面板
299
+ * @param column
300
+ */
301
+ openFilter(fieldOrColumn) {
302
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
303
+ if (column && column.filters) {
304
+ const { elemStore } = internalData;
305
+ const { fixed, filters } = column;
306
+ return $xeTable.scrollToColumn(column).then(() => {
307
+ const headerWrapperElem = getRefElem(elemStore[`${fixed || "main"}-header-wrapper`] || elemStore["main-header-wrapper"]);
308
+ if (headerWrapperElem) {
309
+ const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
310
+ if (filterBtnElem) {
311
+ triggerEvent(filterBtnElem, "click");
312
+ } else {
313
+ const colEl = headerWrapperElem.querySelector(`.vxe-header--column.${column.id}`);
314
+ if (colEl) {
315
+ let firstFilterOption = null;
316
+ if (filters) {
317
+ firstFilterOption = filters[0];
318
+ }
319
+ const params = {
320
+ $table: $xeTable,
321
+ $grid: $xeGrid,
322
+ $gantt: $xeGantt,
323
+ $rowIndex: -1,
324
+ column,
325
+ columnIndex: $xeTable.getColumnIndex(column),
326
+ $columnIndex: $xeTable.getVMColumnIndex(column),
327
+ _columnIndex: $xeTable.getVTColumnIndex(column),
328
+ firstFilterOption,
329
+ fixed,
330
+ source: sourceType,
331
+ type: "header"
332
+ // isHidden
333
+ // hasFilter
334
+ };
335
+ $xeTable.handleOpenFilterColumn(new Event("click"), null, colEl, column, params);
406
336
  }
407
- if (!filterOpts.remote) {
408
- return $xeTable.updateData();
409
- }
410
- return nextTick();
411
- },
412
- saveFilter(fieldOrColumn) {
413
- if (fieldOrColumn) {
414
- const column = handleFieldOrColumn($xeTable, fieldOrColumn);
415
- $xeTable.handleFilterConfirmFilter(null, column);
416
- }
417
- return nextTick();
418
- },
419
- saveFilterByEvent(evnt, fieldOrColumn) {
420
- if (fieldOrColumn) {
421
- const column = handleFieldOrColumn($xeTable, fieldOrColumn);
422
- $xeTable.handleFilterConfirmFilter(evnt, column);
423
- }
424
- return nextTick();
425
- },
426
- resetFilter(fieldOrColumn) {
427
- if (fieldOrColumn) {
428
- const column = handleFieldOrColumn($xeTable, fieldOrColumn);
429
- $xeTable.handleFilterResetFilter(null, column);
430
- }
431
- return nextTick();
432
- },
433
- resetFilterByEvent(evnt, fieldOrColumn) {
434
- if (fieldOrColumn) {
435
- const column = handleFieldOrColumn($xeTable, fieldOrColumn);
436
- $xeTable.handleFilterResetFilter(evnt, column);
437
- }
438
- return nextTick();
439
- },
440
- saveFilterPanel() {
441
- const { filterStore } = reactData;
442
- $xeTable.handleFilterConfirmFilter(null, filterStore.column || null);
443
- return nextTick();
444
- },
445
- saveFilterPanelByEvent(evnt) {
446
- const { filterStore } = reactData;
447
- $xeTable.handleFilterConfirmFilter(evnt, filterStore.column || null);
448
- return nextTick();
449
- },
450
- resetFilterPanel() {
451
- const { filterStore } = reactData;
452
- $xeTable.handleFilterResetFilter(null, filterStore.column || null);
453
- return nextTick();
454
- },
455
- resetFilterPanelByEvent(evnt) {
456
- const { filterStore } = reactData;
457
- $xeTable.handleFilterResetFilter(evnt, filterStore.column || null);
458
- return nextTick();
459
- },
460
- getCheckedFilters() {
461
- const { tableFullColumn } = internalData;
462
- const filterList = [];
463
- tableFullColumn.forEach((column) => {
464
- const { field, filters } = column;
465
- const filterOptions = filters || [];
466
- const valueList = [];
467
- const dataList = [];
468
- if (filterOptions) {
469
- filterOptions.forEach((item) => {
470
- if (item.checked) {
471
- valueList.push(item.value);
472
- dataList.push(item.data);
473
- }
474
- });
475
- if (valueList.length) {
476
- filterList.push({ column, field, property: field, values: valueList, datas: dataList });
477
- }
478
- }
479
- });
480
- return filterList;
481
- },
482
- updateFilterOptionStatus(item, checked) {
483
- item._checked = checked;
484
- item.checked = checked;
485
- return nextTick();
337
+ }
338
+ }
339
+ });
340
+ }
341
+ return nextTick();
342
+ },
343
+ /**
344
+ * 修改筛选条件列表
345
+ * @param {ColumnInfo} fieldOrColumn 列或字段名
346
+ * @param {Array} options 选项
347
+ */
348
+ setFilter(fieldOrColumn, options, isUpdate) {
349
+ const { filterStore } = reactData;
350
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
351
+ if (column && column.filters) {
352
+ column.filters = toFilters(options || [], column.id);
353
+ if (isUpdate) {
354
+ return $xeTable.handleColumnConfirmFilter(column, null);
355
+ } else {
356
+ if (filterStore.visible) {
357
+ $xeTable.handleFilterOptions(column);
358
+ }
359
+ }
360
+ }
361
+ return nextTick();
362
+ },
363
+ /**
364
+ * 清空指定列的筛选条件
365
+ * 如果为空则清空所有列的筛选条件
366
+ * @param {String} fieldOrColumn 列或字段名
367
+ */
368
+ clearFilter(fieldOrColumn) {
369
+ const { filterStore } = reactData;
370
+ const { tableFullColumn } = internalData;
371
+ const filterOpts = computeFilterOpts.value;
372
+ let column;
373
+ if (fieldOrColumn) {
374
+ column = handleFieldOrColumn($xeTable, fieldOrColumn);
375
+ if (column) {
376
+ $xeTable.handleClearFilter(column);
377
+ }
378
+ } else {
379
+ tableFullColumn.forEach($xeTable.handleClearFilter);
380
+ }
381
+ if (!fieldOrColumn || column !== filterStore.column) {
382
+ Object.assign(filterStore, {
383
+ isAllSelected: false,
384
+ isIndeterminate: false,
385
+ style: null,
386
+ options: [],
387
+ column: null,
388
+ multiple: false,
389
+ visible: false
390
+ });
391
+ }
392
+ if (!filterOpts.remote) {
393
+ return $xeTable.updateData();
394
+ }
395
+ return nextTick();
396
+ },
397
+ saveFilter(fieldOrColumn) {
398
+ if (fieldOrColumn) {
399
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
400
+ $xeTable.handleFilterConfirmFilter(null, column);
401
+ }
402
+ return nextTick();
403
+ },
404
+ saveFilterByEvent(evnt, fieldOrColumn) {
405
+ if (fieldOrColumn) {
406
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
407
+ $xeTable.handleFilterConfirmFilter(evnt, column);
408
+ }
409
+ return nextTick();
410
+ },
411
+ resetFilter(fieldOrColumn) {
412
+ if (fieldOrColumn) {
413
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
414
+ $xeTable.handleFilterResetFilter(null, column);
415
+ }
416
+ return nextTick();
417
+ },
418
+ resetFilterByEvent(evnt, fieldOrColumn) {
419
+ if (fieldOrColumn) {
420
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
421
+ $xeTable.handleFilterResetFilter(evnt, column);
422
+ }
423
+ return nextTick();
424
+ },
425
+ saveFilterPanel() {
426
+ const { filterStore } = reactData;
427
+ $xeTable.handleFilterConfirmFilter(null, filterStore.column || null);
428
+ return nextTick();
429
+ },
430
+ saveFilterPanelByEvent(evnt) {
431
+ const { filterStore } = reactData;
432
+ $xeTable.handleFilterConfirmFilter(evnt, filterStore.column || null);
433
+ return nextTick();
434
+ },
435
+ resetFilterPanel() {
436
+ const { filterStore } = reactData;
437
+ $xeTable.handleFilterResetFilter(null, filterStore.column || null);
438
+ return nextTick();
439
+ },
440
+ resetFilterPanelByEvent(evnt) {
441
+ const { filterStore } = reactData;
442
+ $xeTable.handleFilterResetFilter(evnt, filterStore.column || null);
443
+ return nextTick();
444
+ },
445
+ getCheckedFilters() {
446
+ const { tableFullColumn } = internalData;
447
+ const filterList = [];
448
+ tableFullColumn.forEach((column) => {
449
+ const { field, filters } = column;
450
+ const filterOptions = filters || [];
451
+ const valueList = [];
452
+ const dataList = [];
453
+ if (filterOptions) {
454
+ filterOptions.forEach((item) => {
455
+ if (item.checked) {
456
+ valueList.push(item.value);
457
+ dataList.push(item.data);
458
+ }
459
+ });
460
+ if (valueList.length) {
461
+ filterList.push({ column, field, property: field, values: valueList, datas: dataList });
486
462
  }
487
- };
488
- return Object.assign(Object.assign({}, filterMethods), filterPrivateMethods);
489
- },
490
- setupGrid($xeGrid) {
491
- return $xeGrid.extendTableMethods(tableFilterMethodKeys);
492
- },
493
- setupGantt($xeGantt) {
494
- return $xeGantt.extendTableMethods(tableFilterMethodKeys);
495
- }
463
+ }
464
+ });
465
+ return filterList;
466
+ },
467
+ updateFilterOptionStatus(item, checked) {
468
+ item._checked = checked;
469
+ item.checked = checked;
470
+ return nextTick();
471
+ }
472
+ };
473
+ return { ...filterMethods, ...filterPrivateMethods };
474
+ },
475
+ setupGrid($xeGrid) {
476
+ return $xeGrid.extendTableMethods(tableFilterMethodKeys);
477
+ },
478
+ setupGantt($xeGantt) {
479
+ return $xeGantt.extendTableMethods(tableFilterMethodKeys);
480
+ }
496
481
  });