@web-utils/component 4.0.16 → 5.0.0-beta02

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 (325) hide show
  1. package/address-input/index.mjs +76 -74
  2. package/affix/index.mjs +71 -78
  3. package/aside-menu/index.mjs +20 -31
  4. package/avatar/index.mjs +94 -82
  5. package/awesome-button/index.mjs +54 -71
  6. package/capsule-tab/index.mjs +27 -32
  7. package/card/index.mjs +86 -69
  8. package/carousel/index.mjs +45 -32
  9. package/chat/index.mjs +441 -266
  10. package/chunk-file-uploader/index.mjs +2 -103
  11. package/chunks/ChunkFileUploader.C3EA0e5t.mjs +114 -0
  12. package/chunks/EditableTree.D0ByhRTi.mjs +648 -0
  13. package/chunks/ElementBaseInfo.B3pY8TkD.mjs +209 -0
  14. package/chunks/ElementDialog.DNsDHdQS.mjs +251 -0
  15. package/chunks/ElementForm.D_lXbe--.mjs +627 -0
  16. package/chunks/ElementListeners.Cufwd4bp.mjs +656 -0
  17. package/chunks/ElementMultiInstance.BhY8NY2z.mjs +290 -0
  18. package/chunks/ElementOtherConfig.DX1ZJ9w2.mjs +51 -0
  19. package/chunks/ElementProperties.BRafADXp.mjs +196 -0
  20. package/chunks/ElementTaskConfig.B6pqRir_.mjs +446 -0
  21. package/chunks/FlowCondition.Dvwji23j.mjs +194 -0
  22. package/chunks/FlowDesigner.LL-vXDIE.mjs +5100 -0
  23. package/chunks/FormBlock.Co7l6USP.mjs +117 -0
  24. package/chunks/FormCascader.DMY3uNc8.mjs +1227 -0
  25. package/chunks/FormInputTime.BC4FfWwY.mjs +1774 -0
  26. package/chunks/FormItem.BSXI2cZU.mjs +89 -0
  27. package/chunks/FormItemGroup.D2Htta7J.mjs +149 -0
  28. package/chunks/FormSelect.CY0K-izg.mjs +1473 -0
  29. package/chunks/FormSwitch.DLqFXaFF.mjs +297 -0
  30. package/chunks/FormTemp.PJFfNRls.mjs +139 -0
  31. package/chunks/FyCurd.me083T8V.mjs +2622 -0
  32. package/chunks/FyForm.vVp8aVtj.mjs +906 -0
  33. package/chunks/FyFormDesign.BCxVyiWY.mjs +5600 -0
  34. package/chunks/FyUEditor.BymtA5SJ.mjs +221 -0
  35. package/chunks/FyUpload.CA7Gfa6Q.mjs +504 -0
  36. package/chunks/ImagePreview.ByEWJYdu.mjs +639 -0
  37. package/chunks/Keyboard.4hi7CjGc.mjs +379 -0
  38. package/chunks/MonacoEditor.B7BUQwb7.mjs +302 -0
  39. package/chunks/PageableTable.Ba3XSbZ5.mjs +660 -0
  40. package/chunks/RecordVideo.VRFTaHSp.mjs +116 -0
  41. package/chunks/SignalAndMessage.DYhKWs3X.mjs +198 -0
  42. package/chunks/SplitPane.Bwe5Rc0J.mjs +219 -0
  43. package/chunks/TableColumn.72HOXQkb.mjs +186 -0
  44. package/chunks/TableView.BxfsOAxU.mjs +484 -0
  45. package/chunks/Toolbar.BVziVmyT.mjs +219 -0
  46. package/chunks/UserTaskListeners.CkeyTpnn.mjs +599 -0
  47. package/chunks/VueCron.DEvY5-i7.mjs +1823 -0
  48. package/chunks/VueTreeSelect.C6Ycu28Z.mjs +1873 -0
  49. package/chunks/_plugin-vue_export-helper.7vrlOII_.mjs +8 -0
  50. package/chunks/checkbox.C_9WZ8gc.mjs +437 -0
  51. package/chunks/confirmable-mixin.zegaXQTl.mjs +1762 -0
  52. package/chunks/core.DXaMPWGV.mjs +51 -0
  53. package/chunks/dataformat.CteBVoOe.mjs +144 -0
  54. package/chunks/dic.C0abEij9.mjs +116 -0
  55. package/chunks/dictionary.BRhZD-WH.mjs +19 -0
  56. package/chunks/dictionary.CNNpjPL2.mjs +87 -0
  57. package/chunks/event.B4iwtUNO.mjs +4 -0
  58. package/chunks/event.Dv4XTu8B.mjs +224 -0
  59. package/chunks/focus-trap.FbvlqAGe.mjs +211 -0
  60. package/chunks/form-input.BUGZmAI1.mjs +34 -0
  61. package/chunks/form-item.Ca8U2bIR.mjs +712 -0
  62. package/chunks/form-pick.DT5kumy4.mjs +7 -0
  63. package/chunks/form-validate.CUvMwtPN.mjs +11 -0
  64. package/chunks/icon.CxCY22-F.mjs +26 -0
  65. package/chunks/icon.ym7735_x.mjs +251 -0
  66. package/chunks/init.6jGmuY99.mjs +115 -0
  67. package/chunks/input.C2GWsuXE.mjs +547 -0
  68. package/chunks/install.yLcn5MLL.mjs +84 -0
  69. package/chunks/message.C4NdvfbE.mjs +400 -0
  70. package/chunks/packages.BLDb9e6G.mjs +56 -0
  71. package/chunks/permission.C-IUDxQQ.mjs +16 -0
  72. package/chunks/photo-swipe.BxnG4lip.mjs +55 -0
  73. package/chunks/radio.CeLeSOEo.mjs +273 -0
  74. package/chunks/scroll.DWjS-gnW.mjs +28 -0
  75. package/chunks/scrollbar.CAmrlKi9.mjs +345 -0
  76. package/chunks/slot.DT5QwXL-.mjs +25 -0
  77. package/chunks/style.BmlGmjpO.mjs +325 -0
  78. package/chunks/sub-table-plus-props.CRX7ERxJ.mjs +28 -0
  79. package/chunks/tab-mixin.7zuMMM1E.mjs +70 -0
  80. package/chunks/tag.ZhEIVRpP.mjs +141 -0
  81. package/chunks/tooltip.DNiltmX1.mjs +1939 -0
  82. package/chunks/typescript.CLl-2siQ.mjs +18 -0
  83. package/chunks/use-aria.BW7nWOl1.mjs +17 -0
  84. package/chunks/use-composition.mUaomyno.mjs +47 -0
  85. package/chunks/use-deprecated.BfDSbZS9.mjs +12 -0
  86. package/chunks/use-empty-values.D8KYIiKR.mjs +81 -0
  87. package/chunks/use-form-item.BlWa7ZKe.mjs +56 -0
  88. package/chunks/use-global-config.DRovgom9.mjs +57 -0
  89. package/chunks/use-locale.Be9HCpTQ.mjs +188 -0
  90. package/chunks/util.Ce4MHRmD.mjs +103 -0
  91. package/chunks/util.g-WQEec9.mjs +223 -0
  92. package/chunks/utilSelf.BttmSVX6.mjs +46 -0
  93. package/chunks/utils.BGJfM4oG.mjs +60 -0
  94. package/chunks/utils.CSPl1l4f.mjs +14 -0
  95. package/chunks/validator.DuBSEj8O.mjs +5 -0
  96. package/chunks/vnode.C3PXzhmg.mjs +14 -0
  97. package/code-mirror-editor/index.mjs +89 -88
  98. package/comment/index.mjs +62 -57
  99. package/configComponents.mjs +40 -50
  100. package/confirm-button/index.mjs +34 -46
  101. package/confirmable/index.mjs +7 -17
  102. package/context-menu/index.mjs +195 -174
  103. package/count-up/index.mjs +97 -105
  104. package/custom-scrollbar/index.mjs +91 -98
  105. package/data-box/index.mjs +64 -44
  106. package/data-box/style.css +1 -1
  107. package/data-card/index.mjs +60 -47
  108. package/data-card/style.css +1 -1
  109. package/data-card-text/index.mjs +63 -49
  110. package/data-display/index.mjs +71 -51
  111. package/data-display/style.css +1 -1
  112. package/data-icons/index.mjs +70 -50
  113. package/data-icons/style.css +1 -1
  114. package/data-imgtext/index.mjs +67 -43
  115. package/data-imgtext/style.css +1 -1
  116. package/data-operatext/index.mjs +51 -40
  117. package/data-operatext/style.css +1 -1
  118. package/data-panel/index.mjs +57 -44
  119. package/data-panel/style.css +1 -1
  120. package/data-pay/index.mjs +105 -48
  121. package/data-pay/style.css +1 -1
  122. package/data-price/index.mjs +48 -40
  123. package/data-price/style.css +1 -1
  124. package/data-progress/index.mjs +67 -44
  125. package/data-progress/style.css +1 -1
  126. package/data-rotate/index.mjs +61 -44
  127. package/data-rotate/style.css +1 -1
  128. package/data-table-picker/index.mjs +119 -71
  129. package/data-tabs/index.mjs +67 -44
  130. package/data-tabs/style.css +1 -1
  131. package/dialog-form/index.mjs +143 -87
  132. package/dynamic-table/index.mjs +166 -109
  133. package/e-charts/index.mjs +174 -200
  134. package/easy-popup/index.mjs +91 -102
  135. package/editable-progress/index.mjs +112 -83
  136. package/editable-tree/index.mjs +2 -481
  137. package/element-dialog/index.mjs +2 -306
  138. package/ellipsis/index.mjs +124 -148
  139. package/empty-view/index.mjs +48 -65
  140. package/error-view/index.mjs +39 -51
  141. package/flex-column/index.mjs +34 -51
  142. package/flex-item/index.mjs +60 -64
  143. package/flex-row/index.mjs +33 -39
  144. package/flex-scroller/index.mjs +29 -30
  145. package/flow/index.mjs +240 -247
  146. package/flow-designer/index.mjs +2 -4709
  147. package/flow-node/index.mjs +56 -64
  148. package/flow-viewer/index.mjs +159 -157
  149. package/form-block/index.mjs +2 -147
  150. package/form-button/index.mjs +35 -47
  151. package/form-card/index.mjs +14 -25
  152. package/form-cascader/index.mjs +2 -115
  153. package/form-checkbox/index.mjs +89 -70
  154. package/form-checkbox-group/index.mjs +161 -113
  155. package/form-date-picker/index.mjs +155 -142
  156. package/form-holder/index.mjs +134 -109
  157. package/form-input/index.mjs +113 -86
  158. package/form-input-cron-expression/index.mjs +97 -76
  159. package/form-input-email/index.mjs +65 -51
  160. package/form-input-id-card/index.mjs +73 -54
  161. package/form-input-phone-number/index.mjs +72 -56
  162. package/form-input-tag/index.mjs +88 -61
  163. package/form-input-time/index.mjs +2 -73
  164. package/form-item/index.mjs +2 -142
  165. package/form-item-config-provider/index.mjs +46 -60
  166. package/form-item-group/index.mjs +2 -157
  167. package/form-radio-group/index.mjs +161 -121
  168. package/form-select/index.mjs +2 -179
  169. package/form-switch/index.mjs +2 -54
  170. package/form-table/index.mjs +131 -84
  171. package/form-table-plus/index.mjs +164 -108
  172. package/form-textarea/index.mjs +90 -56
  173. package/form-tree-select/index.mjs +89 -71
  174. package/form-tree-select-multiple/index.mjs +92 -77
  175. package/form-view/index.mjs +280 -207
  176. package/fy-array/index.mjs +121 -70
  177. package/fy-article/index.mjs +73 -60
  178. package/fy-cascader/index.mjs +113 -90
  179. package/fy-checkbox/index.mjs +96 -64
  180. package/fy-code/index.mjs +48 -50
  181. package/fy-curd/index.mjs +2 -1879
  182. package/fy-date/index.mjs +76 -41
  183. package/fy-draggable/index.mjs +322 -317
  184. package/fy-dynamic/index.mjs +259 -224
  185. package/fy-empty/index.mjs +35 -36
  186. package/fy-form/index.mjs +2 -640
  187. package/fy-form-design/index.mjs +2 -2852
  188. package/fy-form-design/style.css +1 -1
  189. package/fy-from/crud/zh.d.ts +1 -1
  190. package/fy-input/index.mjs +117 -97
  191. package/fy-input-color/index.mjs +77 -54
  192. package/fy-input-icon/index.mjs +129 -82
  193. package/fy-input-map/index.mjs +242 -183
  194. package/fy-input-number/index.mjs +74 -49
  195. package/fy-input-table/index.mjs +160 -105
  196. package/fy-input-tree/index.mjs +259 -178
  197. package/fy-progress/index.mjs +36 -39
  198. package/fy-radio/index.mjs +53 -37
  199. package/fy-rate/index.mjs +86 -70
  200. package/fy-select/index.mjs +224 -137
  201. package/fy-slider/index.mjs +68 -43
  202. package/fy-switch/index.mjs +67 -41
  203. package/fy-tabs/index.mjs +46 -46
  204. package/fy-time/index.mjs +81 -53
  205. package/fy-title/index.mjs +18 -27
  206. package/fy-tree/index.mjs +382 -286
  207. package/fy-u-editor/index.mjs +2 -357
  208. package/fy-upload/index.mjs +2 -421
  209. package/guide-steps/index.mjs +72 -71
  210. package/helper-function.d.ts +3 -30
  211. package/helper-function.mjs +48 -67
  212. package/highlight-j-s/index.mjs +50 -59
  213. package/icon-card/index.mjs +34 -36
  214. package/icon-temp/index.mjs +27 -27
  215. package/iframe-window/index.mjs +39 -32
  216. package/image-cropper/index.mjs +171 -73
  217. package/image-preview/index.mjs +2 -116
  218. package/image-viewer/index.mjs +69 -66
  219. package/index.d.ts +3 -9
  220. package/index.mjs +173 -488
  221. package/input-number-range/index.mjs +78 -58
  222. package/j-s-x-component/index.mjs +13 -15
  223. package/keyboard/index.mjs +2 -369
  224. package/license/index.mjs +106 -115
  225. package/loading-view/index.mjs +39 -51
  226. package/login/index.mjs +252 -120
  227. package/monaco-editor/index.mjs +2 -7
  228. package/name-avatar/index.mjs +61 -53
  229. package/nav-bar/index.mjs +33 -30
  230. package/not-implement/index.mjs +10 -22
  231. package/notice/index.mjs +100 -93
  232. package/package.json +7 -7
  233. package/page/index.mjs +18 -25
  234. package/page-header/index.mjs +27 -33
  235. package/page-index/index.mjs +121 -99
  236. package/page-index-top/index.mjs +79 -74
  237. package/page-skeleton/index.mjs +47 -44
  238. package/page-skeleton-new/index.mjs +79 -49
  239. package/pageable-table/index.mjs +2 -512
  240. package/pageable-view/index.mjs +279 -274
  241. package/photo-swipe/index.d.ts +4 -0
  242. package/photo-swipe/index.mjs +33 -36
  243. package/picker-table-view/index.mjs +224 -117
  244. package/present-view/index.mjs +271 -196
  245. package/queue/index.mjs +45 -53
  246. package/record-video/index.mjs +2 -134
  247. package/resize-observer/index.mjs +43 -46
  248. package/search/index.mjs +116 -107
  249. package/sign/index.mjs +103 -110
  250. package/sign-panel/index.mjs +182 -141
  251. package/skeleton/index.mjs +51 -54
  252. package/skeleton-panel/index.mjs +33 -37
  253. package/split-pane/index.mjs +3 -196
  254. package/stateful/index.mjs +70 -73
  255. package/static-pageable-table/index.mjs +72 -64
  256. package/sub-table/index.mjs +508 -206
  257. package/sub-table-plus/index.mjs +592 -230
  258. package/swiper/index.mjs +128 -120
  259. package/tab/index.mjs +117 -119
  260. package/tab-item/index.mjs +48 -56
  261. package/table-column/index.mjs +2 -225
  262. package/table-view/index.mjs +3 -326
  263. package/tabs-view/index.mjs +109 -104
  264. package/tag-render/index.mjs +79 -67
  265. package/text-ellipsis/index.mjs +94 -77
  266. package/toolbar/index.mjs +2 -254
  267. package/toolbar-button/index.mjs +142 -120
  268. package/verify/index.mjs +58 -64
  269. package/vue-cron/index.mjs +2 -1180
  270. package/vue-qr-code/index.mjs +31 -54
  271. package/vue-quill-editor/index.mjs +123 -99
  272. package/vue-tags-input/index.mjs +348 -431
  273. package/vue-tree-select/index.mjs +2 -2627
  274. package/vue-video-player/index.mjs +135 -136
  275. package/watermark/index.mjs +46 -74
  276. package/web-types.json +225 -969
  277. package/x-input-tag/index.mjs +144 -106
  278. package/chunks/ElementBaseInfo.ZADwixb5.mjs +0 -125
  279. package/chunks/ElementForm.CQ3PN5qj.mjs +0 -223
  280. package/chunks/ElementListeners.De_PRuIm.mjs +0 -215
  281. package/chunks/ElementMultiInstance.DQo2wuAQ.mjs +0 -181
  282. package/chunks/ElementOtherConfig.B1NfMTYh.mjs +0 -60
  283. package/chunks/ElementProperties.CosfDrlW.mjs +0 -112
  284. package/chunks/ElementTaskConfig.Bko0kgTp.mjs +0 -317
  285. package/chunks/FlowCondition.Y6qEYi1T.mjs +0 -102
  286. package/chunks/FormTemp.BQxO5IQq.mjs +0 -123
  287. package/chunks/MonacoEditor.D31t4FTy.mjs +0 -327
  288. package/chunks/SignalAndMessage.Bb5PFX0N.mjs +0 -85
  289. package/chunks/UserTaskListeners.Bv3BDfEI.mjs +0 -169
  290. package/chunks/_plugin-vue2_normalizer.CeySl7Fu.mjs +0 -10
  291. package/chunks/confirmable-mixin.B2TtLAdk.mjs +0 -86
  292. package/chunks/core.0Exl13Mz.mjs +0 -54
  293. package/chunks/dataformat.CpqOeGBl.mjs +0 -154
  294. package/chunks/dic.Dkl-leRW.mjs +0 -128
  295. package/chunks/dictionary.DGt59Ir7.mjs +0 -68
  296. package/chunks/dictionary.DqiP9x2m.mjs +0 -25
  297. package/chunks/event.9aDS6jcw.mjs +0 -236
  298. package/chunks/form-input.CvFdwlEV.mjs +0 -31
  299. package/chunks/form-item.LWjePsPa.mjs +0 -233
  300. package/chunks/form-pick.BFTIVn_i.mjs +0 -11
  301. package/chunks/form-validate.CVarNHKX.mjs +0 -12
  302. package/chunks/helper.BiMLcEEk.mjs +0 -41
  303. package/chunks/index.9OxHjTIE.mjs +0 -16
  304. package/chunks/index.B2TRddqf.mjs +0 -184
  305. package/chunks/index.BmYCjxZQ.mjs +0 -47
  306. package/chunks/init.DAsXSoLW.mjs +0 -122
  307. package/chunks/packages.ByyangTp.mjs +0 -58
  308. package/chunks/permission.CO31YIkD.mjs +0 -16
  309. package/chunks/slot.DXIbhGat.mjs +0 -27
  310. package/chunks/sub-table-plus-props.BVsD71hT.mjs +0 -30
  311. package/chunks/tab-mixin.BNK6dxLN.mjs +0 -81
  312. package/chunks/util.DqFv_pWg.mjs +0 -241
  313. package/chunks/utilSelf.Csq1766E.mjs +0 -48
  314. package/chunks/utils.DRcxC1Fb.mjs +0 -60
  315. package/color-picker/index.mjs +0 -78
  316. package/egd-collapse/index.mjs +0 -62
  317. package/egd-collapse-item/index.mjs +0 -72
  318. package/form-input-number/index.mjs +0 -69
  319. package/form-input-number/style.css +0 -1
  320. package/input-number/index.mjs +0 -232
  321. package/input-number/style.css +0 -1
  322. package/keep-view-alive/index.mjs +0 -117
  323. package/search-popover/index.mjs +0 -118
  324. package/search-popover/style.css +0 -1
  325. /package/{base.css → utils/style.css} +0 -0
@@ -0,0 +1,660 @@
1
+ import "./install.yLcn5MLL.mjs";
2
+ import { t as e } from "./_plugin-vue_export-helper.7vrlOII_.mjs";
3
+ import { t } from "./message.C4NdvfbE.mjs";
4
+ import { a as n, i as r, l as i, r as a } from "./util.Ce4MHRmD.mjs";
5
+ import { t as o } from "./dictionary.CNNpjPL2.mjs";
6
+ import { Fragment as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createSlots as f, createTextVNode as p, createVNode as m, isVNode as h, mergeProps as g, normalizeClass as _, normalizeProps as v, openBlock as y, renderList as b, renderSlot as x, resolveComponent as S, toDisplayString as C, toHandlers as w, withCtx as T } from "vue";
7
+ import { copy as E, hasOwn as D } from "@web-utils/core";
8
+ import { merge as O } from "@web-utils/integrations/lodash";
9
+ import { isEqual as k } from "lodash-es";
10
+ //#region src/util/clipboard.js
11
+ function A(e) {
12
+ E(e, () => i(t).success({
13
+ duration: 1e3,
14
+ message: "复制成功!",
15
+ type: "success"
16
+ }), () => i(t).error({
17
+ duration: 1e3,
18
+ message: "复制失败!",
19
+ type: "error"
20
+ }));
21
+ }
22
+ //#endregion
23
+ //#region src/components/table/components/TableColumnFilterable.vue?vue&type=script&lang.jsx
24
+ function j(e) {
25
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !h(e);
26
+ }
27
+ //#endregion
28
+ //#region src/components/table/components/TableColumnFilterable.vue
29
+ var M = {
30
+ name: "TableColumnFilterable",
31
+ functional: !0,
32
+ render(e, t) {
33
+ let { data: { key: n }, props: r, parent: { records: i }, scopedSlots: a } = t, { hide: o, isVNode: s, filterable: c, allowSort: l, autoUpdate: u, scopedSlots: d, prop: f, ...p } = r, h = `${n}-${c}${u ? `-${Math.random()}`.replace("0.", "") : ""}`, _ = {
34
+ prop: f,
35
+ ...p
36
+ };
37
+ if (c) {
38
+ let e = [...new Set(i.map((e) => e[f]).filter((e) => e))].map((e) => ({
39
+ text: e,
40
+ value: e
41
+ }));
42
+ _.filterMethod = (e, t, n) => t[n.property] === e, _.filters = e;
43
+ }
44
+ let v = d || a;
45
+ return v != null && v.default ? m(S("ElTableColumn"), g(_, { key: h }), j(v) ? v : { default: () => [v] }) : m(S("TableColumn"), g(_, { key: h }), null);
46
+ }
47
+ }, N = {
48
+ name: "TableColumnFilter",
49
+ props: {
50
+ columns: {
51
+ type: Array,
52
+ default: () => []
53
+ },
54
+ visible: Boolean
55
+ },
56
+ emits: ["update:visible"]
57
+ };
58
+ function P(e, t, n, r, i, a) {
59
+ let o = S("ElTableColumn"), s = S("ElCheckbox"), l = S("ElTable"), u = S("ElDrawer");
60
+ return y(), c(u, {
61
+ class: "table-column-filter",
62
+ visible: n.visible,
63
+ title: "表格设置",
64
+ "append-to-body": "",
65
+ "onUpdate:visible": t[0] || (t[0] = (t) => e.$emit("update:visible", t))
66
+ }, {
67
+ default: T(() => [m(l, {
68
+ data: n.columns,
69
+ border: ""
70
+ }, {
71
+ default: T(() => [
72
+ m(o, { label: "列名" }, {
73
+ default: T(({ row: e }) => [p(C(e.label), 1)]),
74
+ _: 1
75
+ }),
76
+ m(o, {
77
+ label: "隐藏",
78
+ align: "center"
79
+ }, {
80
+ default: T(({ row: e }) => [m(s, {
81
+ modelValue: e.hide,
82
+ "onUpdate:modelValue": (t) => e.hide = t
83
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
84
+ _: 1
85
+ }),
86
+ m(o, {
87
+ label: "冻结",
88
+ align: "center"
89
+ }, {
90
+ default: T(({ row: e }) => [m(s, {
91
+ modelValue: e.fixed,
92
+ "onUpdate:modelValue": (t) => e.fixed = t
93
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
94
+ _: 1
95
+ }),
96
+ m(o, {
97
+ label: "过滤",
98
+ align: "center"
99
+ }, {
100
+ default: T(({ row: e }) => [m(s, {
101
+ modelValue: e.filterable,
102
+ "onUpdate:modelValue": (t) => e.filterable = t
103
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
104
+ _: 1
105
+ }),
106
+ m(o, {
107
+ label: "排序",
108
+ align: "center"
109
+ }, {
110
+ default: T(({ row: e }) => [m(s, {
111
+ modelValue: e.sortable,
112
+ "onUpdate:modelValue": (t) => e.sortable = t,
113
+ title: e.allowSort ? null : "该列不支持排序!",
114
+ disabled: !e.allowSort
115
+ }, null, 8, [
116
+ "modelValue",
117
+ "onUpdate:modelValue",
118
+ "title",
119
+ "disabled"
120
+ ])]),
121
+ _: 1
122
+ })
123
+ ]),
124
+ _: 1
125
+ }, 8, ["data"])]),
126
+ _: 1
127
+ }, 8, ["visible"]);
128
+ }
129
+ var F = /* @__PURE__ */ e(N, [["render", P]]), I = {
130
+ props: { useVisibilityChange: Boolean },
131
+ created() {
132
+ this.useVisibilityChange && document.addEventListener("visibilitychange", this.onPageVisibleChange);
133
+ },
134
+ beforeDestroy() {
135
+ this.useVisibilityChange && document.removeEventListener("visibilitychange", this.onPageVisibleChange);
136
+ },
137
+ methods: { onPageVisibleChange() {
138
+ if (document.hidden) {
139
+ var e;
140
+ (e = this.onPageHidden) == null || e.call(this);
141
+ } else {
142
+ var t;
143
+ (t = this.onPageVisible) == null || t.call(this);
144
+ }
145
+ } }
146
+ };
147
+ //#endregion
148
+ //#region src/components/table/PageableTable.vue
149
+ function L(e, t) {
150
+ return k(e.map((e) => {
151
+ let { hide: t, filterable: n, allowSort: r, sortable: i, fixed: a, ...o } = e;
152
+ return o;
153
+ }), t.map((e) => {
154
+ let { hide: t, filterable: n, allowSort: r, sortable: i, fixed: a, ...o } = e;
155
+ return o;
156
+ }));
157
+ }
158
+ function R(e) {
159
+ let t = "";
160
+ for (let n in e) t += `<TableColumn prop="${n}" label="${n}"/>\n`;
161
+ return t;
162
+ }
163
+ var z = {
164
+ loading: 1,
165
+ error: -1,
166
+ empty: 2,
167
+ success: 0
168
+ }, B = {
169
+ name: "PageableTable",
170
+ components: {
171
+ TableColumnFilter: F,
172
+ TableColumnFilterable: M
173
+ },
174
+ mixins: [I],
175
+ emits: ["page-loaded", "row-dblclick"],
176
+ bus: { reloadTableView(e) {
177
+ e === this.viewId && this.getPage();
178
+ } },
179
+ inheritAttrs: !1,
180
+ props: {
181
+ selectionWidth: {
182
+ type: String,
183
+ default: "45"
184
+ },
185
+ viewId: String,
186
+ url: String,
187
+ hideOnSinglePage: Boolean,
188
+ api: Function,
189
+ model: Object,
190
+ ascs: {
191
+ type: Array,
192
+ default: () => []
193
+ },
194
+ descs: {
195
+ type: Array,
196
+ default: () => []
197
+ },
198
+ headerBold: Boolean,
199
+ autoHeight: Boolean,
200
+ immediate: {
201
+ type: Boolean,
202
+ default: !0
203
+ },
204
+ index: {
205
+ type: Boolean,
206
+ default: !0
207
+ },
208
+ multiple: {
209
+ type: Boolean,
210
+ default: !0
211
+ },
212
+ selection: {
213
+ type: Boolean,
214
+ default: !0
215
+ },
216
+ border: {
217
+ type: Boolean,
218
+ default: !0
219
+ },
220
+ reloadOnModelChange: {
221
+ type: Boolean,
222
+ default: !1
223
+ },
224
+ columns: Array,
225
+ pageSize: {
226
+ type: Number,
227
+ default: 25
228
+ },
229
+ dicOptions: {
230
+ type: Array,
231
+ default: () => []
232
+ },
233
+ paging: {
234
+ type: Boolean,
235
+ default: !0
236
+ },
237
+ clickRowSelect: Boolean,
238
+ payloadStyle: String,
239
+ rowKey: {
240
+ type: String,
241
+ default: "id"
242
+ },
243
+ disabledRowKeys: Array,
244
+ selectExport: Boolean
245
+ },
246
+ data() {
247
+ let e = this.pageSize;
248
+ return {
249
+ TABLE_STATUS: Object.freeze(z),
250
+ tableStatus: z.empty,
251
+ records: [],
252
+ currentRow: null,
253
+ showSettings: !1,
254
+ selectedRows: [],
255
+ page: {
256
+ total: 0,
257
+ page: 1,
258
+ limit: e,
259
+ ascs: this.ascs,
260
+ descs: this.descs
261
+ },
262
+ tableColumns: [],
263
+ expandColumn: null,
264
+ renderKey: 1
265
+ };
266
+ },
267
+ computed: {
268
+ guard() {
269
+ return this.reloadOnModelChange ? {
270
+ asc: this.page.ascs,
271
+ desc: this.page.descs,
272
+ page: this.page.page,
273
+ limit: this.page.limit,
274
+ model: this.model
275
+ } : {
276
+ asc: this.page.ascs,
277
+ desc: this.page.descs,
278
+ page: this.page.page,
279
+ limit: this.page.limit
280
+ };
281
+ },
282
+ indexWidth() {
283
+ var e;
284
+ let t = `${(this.page.page - 1) * this.page.limit + (((e = this.records) == null ? void 0 : e.length) ?? 0)}`;
285
+ return t.length > 3 ? 60 + (t.length - 3) * 10 : 60;
286
+ },
287
+ mergeAttrs() {
288
+ return O({}, this.$attrs, { height: this.autoHeight ? null : "auto" });
289
+ },
290
+ headers() {
291
+ var e;
292
+ return ((e = this.columns) == null ? void 0 : e.map(a)) || [];
293
+ }
294
+ },
295
+ watch: {
296
+ url: { handler: "reload" },
297
+ api: { handler: "reload" },
298
+ "$attrs.data": "getPage"
299
+ },
300
+ created() {
301
+ this.$watch(() => this.guard, this.getPage, {
302
+ deep: !0,
303
+ immediate: this.immediate
304
+ }), this.$watch(() => ({
305
+ columns: this.columns,
306
+ renderKey: this.renderKey
307
+ }), (e) => {
308
+ let t = [], n = null;
309
+ if (e) {
310
+ let r = this.$slots.default(), { columns: i } = e;
311
+ r ? r.forEach((e) => {
312
+ if (!e.isComment && e.data) {
313
+ let { attrs: r, props: i, scopedSlots: a } = e.data;
314
+ e.data.props = e.data.props || {}, e.data.props.type === "expand" ? n = {
315
+ ...r,
316
+ ...i,
317
+ scopedSlots: a,
318
+ hide: !1,
319
+ filterable: !1,
320
+ allowSort: e.data.props.sortable !== !1,
321
+ sortable: !1,
322
+ fixed: e.data.props.fixed
323
+ } : t.push({
324
+ ...r,
325
+ ...i,
326
+ scopedSlots: a,
327
+ hide: !1,
328
+ isVNode: !0,
329
+ filterable: !1,
330
+ allowSort: e.data.props.sortable !== !1,
331
+ sortable: !1,
332
+ fixed: e.data.props.fixed
333
+ });
334
+ }
335
+ }) : i && i.forEach((e) => {
336
+ e.type === "expand" ? n = {
337
+ ...e,
338
+ props: e,
339
+ hide: !1,
340
+ filterable: !1,
341
+ allowSort: e.sortable !== !1,
342
+ sortable: !1,
343
+ fixed: e.fixed
344
+ } : t.push({
345
+ ...e,
346
+ props: e,
347
+ hide: !1,
348
+ filterable: !1,
349
+ allowSort: e.sortable !== !1,
350
+ sortable: !1,
351
+ fixed: e.fixed
352
+ });
353
+ }), this.updateExpandColumn(n), this.updateColumns(t);
354
+ }
355
+ }, { immediate: !0 });
356
+ },
357
+ mounted() {
358
+ this.$refs.table.bodyWrapper.addEventListener("scroll", this.onTableScroll);
359
+ },
360
+ beforeUpdate() {
361
+ this.renderKey++;
362
+ },
363
+ beforeUnmount() {
364
+ this.$refs.table.bodyWrapper.removeEventListener("scroll", this.onTableScroll);
365
+ },
366
+ methods: {
367
+ rowDbClick(...e) {
368
+ this.hideTooltip(), this.$emit("row-dblclick", ...e);
369
+ },
370
+ rowClick(e, t, n) {
371
+ if (this.clickRowSelect && this.selectable(e)) {
372
+ let t = this.$refs.table;
373
+ if (this.selectedRows.find((t) => t[this.rowKey] === e[this.rowKey])) {
374
+ t.toggleRowSelection(e, !1);
375
+ return;
376
+ }
377
+ t.toggleRowSelection(e);
378
+ }
379
+ },
380
+ hideTooltip() {
381
+ var e;
382
+ let t = this.$refs.table.$children.find((e) => {
383
+ var t;
384
+ return ((t = e.$options) == null ? void 0 : t.name) === "ElTableBody";
385
+ });
386
+ t == null || (e = t.$refs.tooltip) == null || e.hide();
387
+ },
388
+ updateTableScrollPosition() {
389
+ this.$refs.table.bodyWrapper && this.scrollTo(this.tableScrollTop, this.tableScrollLeft);
390
+ },
391
+ filterTableProperties: n,
392
+ filterTableEvents: r,
393
+ filterTableColumnProperties: a,
394
+ onTableScroll() {
395
+ this.tableScrollTop = this.$refs.table.bodyWrapper.scrollTop, this.tableScrollLeft = this.$refs.table.bodyWrapper.scrollLeft;
396
+ },
397
+ copy: (e) => A(R(e)),
398
+ onSortChange({ prop: e, order: t }) {
399
+ this.payloadStyle === "body" ? (this.page.ascs = t === "ascending" ? [e] : this.ascs, this.page.descs = t === "descending" ? [e] : this.descs) : (this.page.ascs = t === "ascending" ? e : "", this.page.descs = t === "descending" ? e : "");
400
+ },
401
+ onCurrentChange(e) {
402
+ this.selectable(e) && (this.currentRow = e);
403
+ },
404
+ handleSelectionChange(e) {
405
+ this.selectedRows = e;
406
+ },
407
+ clearSelection() {
408
+ this.$refs.table.clearSelection();
409
+ },
410
+ getPageQuery() {
411
+ let e;
412
+ return e = this.payloadStyle === "body" ? {
413
+ page: {
414
+ ...this.page,
415
+ current: this.page.page,
416
+ size: this.page.limit
417
+ },
418
+ example: this.model || {}
419
+ } : {
420
+ ...this.page,
421
+ current: this.page.page,
422
+ size: this.page.limit,
423
+ ...this.model || {}
424
+ }, this.selectExport && (this.rowKey ? e.exportKeys = this.selectedRows.map((e) => e[this.rowKey]) : e.exportKeys = this.selectedRows.map((e) => this.records.indexOf(e))), e;
425
+ },
426
+ async getPage(e) {
427
+ if (D(this.$attrs, "data") && this.$attrs.data !== !1) {
428
+ var t;
429
+ this.records = this.$attrs.data, this.page.page = 1, this.page.total = (t = this.records) == null ? void 0 : t.length, this.page.limit = this.page.total;
430
+ return;
431
+ }
432
+ e !== !1 && (this.records = []);
433
+ let n, r = this.getPageQuery();
434
+ if (this.api || this.url) {
435
+ e !== !1 && (this.tableStatus = z.loading);
436
+ try {
437
+ this.api && (n = await this.api(r));
438
+ } catch {
439
+ this.tableStatus = z.error;
440
+ return;
441
+ }
442
+ } else {
443
+ this.$notify.warning({
444
+ title: "开发提示!",
445
+ message: "PageableTable 请提供 url(String) 或 api(Function) 属性"
446
+ });
447
+ return;
448
+ }
449
+ let { data: { data: i } } = n || {}, { total: a, records: o } = i || {};
450
+ this.page.total = Number(a), this.records = await this.mapRow(o), !o || !o.length ? this.tableStatus = z.empty : this.tableStatus = z.success, this.doLayout(), this.$emit("page-loaded", i);
451
+ },
452
+ doLayout() {
453
+ var e;
454
+ (e = this.$refs.table) == null || e.doLayout();
455
+ },
456
+ async refresh(e) {
457
+ await this.getPage(e);
458
+ },
459
+ reload() {
460
+ this.page = {
461
+ ...this.$options.data.call(this).page,
462
+ limit: this.page.limit
463
+ };
464
+ },
465
+ scrollTo(e, t) {
466
+ e && (this.$refs.table.bodyWrapper.scrollTop = e), t && (this.$refs.table.bodyWrapper.scrollLeft = t);
467
+ },
468
+ toggleRowSelection(e, t) {
469
+ this.$refs.table.toggleRowSelection(e, t);
470
+ },
471
+ mapRow(e) {
472
+ return e.map((e) => (this.dicOptions.forEach(async (t) => {
473
+ if (e[`$${t.prop}`] = e[t.prop], t.dicData) {
474
+ var n;
475
+ e[t.prop] = ((n = t.dicData.find((n) => n.value === e[t.prop])) == null ? void 0 : n.label) || e[t.prop];
476
+ } else e[t.prop] = await o(t.dicType, e[t.prop]);
477
+ }), e));
478
+ },
479
+ toggleSettings() {
480
+ this.showSettings = !this.showSettings;
481
+ },
482
+ selectable(e) {
483
+ var t;
484
+ return !(e != null && e.disabled) && !((t = this.disabledRowKeys) != null && t.includes(e == null ? void 0 : e[this.rowKey]));
485
+ },
486
+ updateExpandColumn(e) {
487
+ e && this.expandColumn ? O(this.expandColumn, e) : this.expandColumn = e;
488
+ },
489
+ updateColumns(e) {
490
+ if (!L(this.tableColumns, e)) {
491
+ let t = {};
492
+ this.tableColumns.forEach((e) => {
493
+ t[e.prop] = e;
494
+ }), e.map((e) => {
495
+ let n = t[e.prop];
496
+ if (n) {
497
+ let { hide: t, filterable: r, allowSort: i, sortable: a, fixed: o } = n;
498
+ return O(n, e), n.hide = t, n.filterable = r, n.allowSort = i, n.sortable = a, n.fixed = o, n;
499
+ }
500
+ return e;
501
+ }), this.tableColumns = e;
502
+ }
503
+ },
504
+ onPageVisible() {
505
+ this.refresh(!1);
506
+ }
507
+ }
508
+ }, V = { class: "pageable-table-wrapper" }, H = {
509
+ key: 0,
510
+ class: "pageable-table-loading"
511
+ }, U = ["onClick"];
512
+ function W(e, t, n, r, i, a) {
513
+ let o = S("TableColumnFilterable"), h = S("TableColumn"), E = S("ElRadio"), D = S("ElButton"), O = S("ElEmpty"), k = S("ElTable"), A = S("ElPagination"), j = S("TableColumnFilter"), M = S("ResizeObserver");
514
+ return y(), u("div", { class: _(["pageable-table", { "auto-height": n.autoHeight }]) }, [d("div", V, [
515
+ l("顶部工具条插槽"),
516
+ x(e.$slots, "toolbar", { selectedRows: i.selectedRows }),
517
+ l("表格"),
518
+ m(k, g({
519
+ ref: "table",
520
+ data: i.records,
521
+ class: ["flex-item", { "header-bold": n.headerBold }],
522
+ border: n.border,
523
+ stripe: "",
524
+ size: "default"
525
+ }, a.filterTableProperties(a.mergeAttrs), {
526
+ "onHook:updated": a.updateTableScrollPosition,
527
+ onSortChange: a.onSortChange,
528
+ onRowDblclick: a.rowDbClick,
529
+ onRowClick: a.rowClick,
530
+ onCellClick: a.hideTooltip,
531
+ onCurrentChange: a.onCurrentChange,
532
+ onSelectionChange: a.handleSelectionChange
533
+ }, w(a.filterTableEvents(e.$listeners))), {
534
+ empty: T(() => [l("内容为空插槽"), x(e.$slots, "empty", {}, () => [i.tableStatus === i.TABLE_STATUS.loading ? (y(), u("span", H, [...t[5] || (t[5] = [d("i", { class: "table-status-icon el-icon-loading" }, null, -1), p(" 加载中... ", -1)])])) : i.tableStatus === i.TABLE_STATUS.error ? (y(), c(D, {
535
+ key: 1,
536
+ class: "pageable-table-error",
537
+ icon: "table-status-icon el-icon-error",
538
+ onClick: a.refresh
539
+ }, {
540
+ default: T(() => [...t[6] || (t[6] = [p("加载失败,点击重试!", -1)])]),
541
+ _: 1
542
+ }, 8, ["onClick"])) : (y(), c(O, { key: 2 }))])]),
543
+ append: T(() => [x(e.$slots, "append")]),
544
+ default: T(() => [
545
+ i.expandColumn ? (y(), c(o, v(g({ key: 0 }, i.expandColumn)), null, 16)) : l("v-if", !0),
546
+ n.multiple && n.selection ? (y(), c(h, {
547
+ key: "multiple",
548
+ type: "selection",
549
+ selectable: a.selectable,
550
+ width: n.selectionWidth,
551
+ align: "center"
552
+ }, null, 8, ["selectable", "width"])) : l("v-if", !0),
553
+ !n.multiple && n.selection ? (y(), c(h, {
554
+ key: "single",
555
+ sortable: !1,
556
+ type: "single-selection",
557
+ "class-name": "single-select-column",
558
+ width: n.selectionWidth,
559
+ align: "center"
560
+ }, {
561
+ header: T(() => [m(E, {
562
+ value: !!i.currentRow,
563
+ label: !0
564
+ }, {
565
+ default: T(() => [...t[3] || (t[3] = [d("span", null, null, -1)])]),
566
+ _: 1
567
+ }, 8, ["value"])]),
568
+ default: T(({ row: r }) => [m(E, {
569
+ label: !0,
570
+ disabled: !a.selectable(r),
571
+ value: i.currentRow && i.currentRow[e.$attrs["row-key"] || n.rowKey || "id"] === r[e.$attrs["row-key"] || n.rowKey || "id"]
572
+ }, {
573
+ default: T(() => [...t[4] || (t[4] = [d("span", null, null, -1)])]),
574
+ _: 1
575
+ }, 8, ["disabled", "value"])]),
576
+ _: 1
577
+ }, 8, ["width"])) : l("v-if", !0),
578
+ n.index ? (y(), c(h, {
579
+ key: "order",
580
+ type: "index",
581
+ label: "序号",
582
+ width: a.indexWidth,
583
+ align: "center"
584
+ }, {
585
+ default: T(({ $index: e }) => [p(C((i.page.page - 1) * i.page.limit + e + 1 || e + 1), 1)]),
586
+ _: 1
587
+ }, 8, ["width"])) : l("v-if", !0),
588
+ i.tableColumns ? (y(!0), u(s, { key: 4 }, b(i.tableColumns.filter((e) => !e.hide), (t, n) => {
589
+ var r, i;
590
+ return y(), c(o, g({ key: `${((r = t.props) == null ? void 0 : r.prop) || t.prop}-${n}` }, { ref_for: !0 }, t), f({ _: 2 }, [e.$slots[((i = t.props) == null ? void 0 : i.prop) || t.prop] ? {
591
+ name: "default",
592
+ fn: T(({ row: n }) => {
593
+ var r;
594
+ return [x(e.$slots, ((r = t.props) == null ? void 0 : r.prop) || t.prop, { row: n })];
595
+ }),
596
+ key: "0"
597
+ } : void 0]), 1040);
598
+ }), 128)) : (y(), u(s, { key: 5 }, [l("未设置列提醒"), m(h, { label: "点击表格行复制模板" }, {
599
+ default: T(({ row: e }) => [d("pre", {
600
+ class: "pointer",
601
+ onClick: (t) => a.copy(e)
602
+ }, C(JSON.stringify(e, null, " ")), 9, U)]),
603
+ _: 1
604
+ })], 64))
605
+ ]),
606
+ _: 3
607
+ }, 16, [
608
+ "data",
609
+ "class",
610
+ "border",
611
+ "onHook:updated",
612
+ "onSortChange",
613
+ "onRowDblclick",
614
+ "onRowClick",
615
+ "onCellClick",
616
+ "onCurrentChange",
617
+ "onSelectionChange"
618
+ ]),
619
+ l("底部分页工具条"),
620
+ n.paging ? (y(), c(A, {
621
+ key: 0,
622
+ "current-page": i.page.page,
623
+ "hide-on-single-page": n.hideOnSinglePage,
624
+ "page-size": i.page.limit,
625
+ total: i.page.total,
626
+ "page-sizes": [
627
+ 10,
628
+ 25,
629
+ 50,
630
+ 100,
631
+ 500,
632
+ 1e3,
633
+ 2e3
634
+ ],
635
+ class: "flex-not-shrink",
636
+ background: "",
637
+ layout: "total, sizes, prev, pager, next, jumper",
638
+ onSizeChange: t[0] || (t[0] = (e) => {
639
+ i.page.limit = e;
640
+ }),
641
+ onCurrentChange: t[1] || (t[1] = (e) => {
642
+ i.page.page = e;
643
+ })
644
+ }, null, 8, [
645
+ "current-page",
646
+ "hide-on-single-page",
647
+ "page-size",
648
+ "total"
649
+ ])) : l("v-if", !0),
650
+ l("列设置面板"),
651
+ m(j, {
652
+ visible: i.showSettings,
653
+ "onUpdate:visible": t[2] || (t[2] = (e) => i.showSettings = e),
654
+ columns: i.tableColumns
655
+ }, null, 8, ["visible", "columns"])
656
+ ]), m(M, { onNotify: a.doLayout }, null, 8, ["onNotify"])], 2);
657
+ }
658
+ var G = /* @__PURE__ */ e(B, [["render", W]]);
659
+ //#endregion
660
+ export { G as t };