evui 3.5.0-rc.1 → 3.5.0

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 (135) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  2. package/dist/common/utils.bignumber.js +23 -0
  3. package/dist/common/utils.debounce.js +66 -0
  4. package/dist/common/utils.js +64 -0
  5. package/dist/common/utils.throttle.js +15 -0
  6. package/dist/components/button/Button.vue.js +65 -0
  7. package/dist/components/button/index.js +7 -0
  8. package/dist/components/buttonGroup/ButtonGroup.vue.js +14 -0
  9. package/dist/components/buttonGroup/index.js +7 -0
  10. package/dist/components/calendar/Calendar.vue.js +299 -0
  11. package/dist/components/calendar/index.js +7 -0
  12. package/dist/components/calendar/uses.js +579 -0
  13. package/dist/components/chart/Chart.vue.js +261 -0
  14. package/dist/components/chart/ChartToolbar.vue.js +32 -0
  15. package/dist/components/chart/chart.core.js +738 -0
  16. package/dist/components/chart/chartZoom.core.js +221 -0
  17. package/dist/components/chart/element/element.bar.js +358 -0
  18. package/dist/components/chart/element/element.bar.time.js +55 -0
  19. package/dist/components/chart/element/element.heatmap.js +403 -0
  20. package/dist/components/chart/element/element.line.js +292 -0
  21. package/dist/components/chart/element/element.pie.js +73 -0
  22. package/dist/components/chart/element/element.scatter.js +209 -0
  23. package/dist/components/chart/element/element.tip.js +312 -0
  24. package/dist/components/chart/helpers/helpers.canvas.js +141 -0
  25. package/dist/components/chart/helpers/helpers.constant.js +253 -0
  26. package/dist/components/chart/helpers/helpers.util.js +265 -0
  27. package/dist/components/chart/index.js +7 -0
  28. package/dist/components/chart/model/index.js +6 -0
  29. package/dist/components/chart/model/model.series.js +82 -0
  30. package/dist/components/chart/model/model.store.js +650 -0
  31. package/dist/components/chart/plugins/plugins.interaction.js +823 -0
  32. package/dist/components/chart/plugins/plugins.legend.gradient.js +281 -0
  33. package/dist/components/chart/plugins/plugins.legend.js +665 -0
  34. package/dist/components/chart/plugins/plugins.pie.js +86 -0
  35. package/dist/components/chart/plugins/plugins.scrollbar.js +345 -0
  36. package/dist/components/chart/plugins/plugins.title.js +43 -0
  37. package/dist/components/chart/plugins/plugins.tooltip.js +508 -0
  38. package/dist/components/chart/scale/scale.js +492 -0
  39. package/dist/components/chart/scale/scale.linear.js +248 -0
  40. package/dist/components/chart/scale/scale.logarithmic.js +82 -0
  41. package/dist/components/chart/scale/scale.step.js +227 -0
  42. package/dist/components/chart/scale/scale.time.category.js +148 -0
  43. package/dist/components/chart/scale/scale.time.js +95 -0
  44. package/dist/components/chart/uses.js +479 -0
  45. package/dist/components/chartBrush/ChartBrush.vue.js +198 -0
  46. package/dist/components/chartBrush/chartBrush.core.js +265 -0
  47. package/dist/components/chartBrush/index.js +7 -0
  48. package/dist/components/chartBrush/uses.js +18 -0
  49. package/dist/components/chartGroup/ChartGroup.vue.js +128 -0
  50. package/dist/components/chartGroup/index.js +7 -0
  51. package/dist/components/chartGroup/uses.js +47 -0
  52. package/dist/components/checkbox/Checkbox.vue.js +99 -0
  53. package/dist/components/checkbox/index.js +7 -0
  54. package/dist/components/checkboxGroup/CheckboxGroup.vue.js +40 -0
  55. package/dist/components/checkboxGroup/index.js +7 -0
  56. package/dist/components/contextMenu/ContextMenu.vue.js +70 -0
  57. package/dist/components/contextMenu/MenuList.vue.js +105 -0
  58. package/dist/components/contextMenu/index.js +7 -0
  59. package/dist/components/contextMenu/uses.js +79 -0
  60. package/dist/components/datePicker/DatePicker.vue.js +310 -0
  61. package/dist/components/datePicker/index.js +7 -0
  62. package/dist/components/datePicker/uses.js +190 -0
  63. package/dist/components/grid/Grid.vue.js +1261 -0
  64. package/dist/components/grid/GridColumnSetting.vue.js +212 -0
  65. package/dist/components/grid/GridFilterSetting.vue.js +222 -0
  66. package/dist/components/grid/GridPagination.vue.js +69 -0
  67. package/dist/components/grid/GridSummary.vue.js +186 -0
  68. package/dist/components/grid/GridToolbar.vue.js +15 -0
  69. package/dist/components/grid/icon/icon-option-button.vue.js +39 -0
  70. package/dist/components/grid/icon/icon-sort-button.vue.js +56 -0
  71. package/dist/components/grid/index.js +7 -0
  72. package/dist/components/grid/uses.js +697 -0
  73. package/dist/components/icon/Icon.vue.js +50 -0
  74. package/dist/components/icon/index.js +8 -0
  75. package/dist/components/inputNumber/InputNumber.vue.js +112 -0
  76. package/dist/components/inputNumber/index.js +7 -0
  77. package/dist/components/inputNumber/uses.js +76 -0
  78. package/dist/components/loading/Loading.vue.js +78 -0
  79. package/dist/components/loading/index.js +7 -0
  80. package/dist/components/menu/Menu.vue.js +66 -0
  81. package/dist/components/menu/MenuItem.vue.js +125 -0
  82. package/dist/components/menu/index.js +7 -0
  83. package/dist/components/message/Message.vue.js +122 -0
  84. package/dist/components/message/index.js +16 -0
  85. package/dist/components/messageBox/MessageBox.vue.js +216 -0
  86. package/dist/components/messageBox/index.js +13 -0
  87. package/dist/components/notification/Notification.vue.js +140 -0
  88. package/dist/components/notification/index.js +23 -0
  89. package/dist/components/pagination/Pagination.vue.js +215 -0
  90. package/dist/components/pagination/index.js +7 -0
  91. package/dist/components/pagination/pageButton.vue.js +35 -0
  92. package/dist/components/progress/Progress.vue.js +88 -0
  93. package/dist/components/progress/index.js +7 -0
  94. package/dist/components/radio/Radio.vue.js +75 -0
  95. package/dist/components/radio/index.js +7 -0
  96. package/dist/components/radioGroup/RadioGroup.vue.js +37 -0
  97. package/dist/components/radioGroup/index.js +7 -0
  98. package/dist/components/scheduler/Scheduler.vue.js +128 -0
  99. package/dist/components/scheduler/index.js +7 -0
  100. package/dist/components/scheduler/uses.js +73 -0
  101. package/dist/components/select/Select.vue.js +381 -0
  102. package/dist/components/select/index.js +7 -0
  103. package/dist/components/select/uses.js +147 -0
  104. package/dist/components/slider/Slider.vue.js +243 -0
  105. package/dist/components/slider/index.js +7 -0
  106. package/dist/components/slider/uses.js +188 -0
  107. package/dist/components/tabPanel/TabPanel.vue.js +39 -0
  108. package/dist/components/tabPanel/index.js +7 -0
  109. package/dist/components/tabs/Tabs.vue.js +220 -0
  110. package/dist/components/tabs/index.js +7 -0
  111. package/dist/components/textField/TextField.vue.js +209 -0
  112. package/dist/components/textField/index.js +7 -0
  113. package/dist/components/timePicker/TimePicker.vue.js +227 -0
  114. package/dist/components/timePicker/index.js +7 -0
  115. package/dist/components/toggle/Toggle.vue.js +66 -0
  116. package/dist/components/toggle/index.js +7 -0
  117. package/dist/components/tree/Tree.vue.js +220 -0
  118. package/dist/components/tree/TreeNode.vue.js +146 -0
  119. package/dist/components/tree/index.js +7 -0
  120. package/dist/components/treeGrid/TreeGrid.vue.js +898 -0
  121. package/dist/components/treeGrid/TreeGridNode.vue.js +274 -0
  122. package/dist/components/treeGrid/TreeGridToolbar.vue.js +15 -0
  123. package/dist/components/treeGrid/index.js +7 -0
  124. package/dist/components/treeGrid/uses.js +497 -0
  125. package/dist/components/window/Window.vue.js +211 -0
  126. package/dist/components/window/index.js +7 -0
  127. package/dist/components/window/uses.js +345 -0
  128. package/dist/directives/clickoutside.js +47 -0
  129. package/dist/main.js +142 -0
  130. package/dist/package.json.js +4 -0
  131. package/dist/resolver.js +17 -0
  132. package/dist/style.css +1 -1
  133. package/package.json +56 -23
  134. package/dist/index.js +0 -21754
  135. package/dist/index.umd.cjs +0 -28
@@ -0,0 +1,697 @@
1
+ import { getCurrentInstance as T, nextTick as _ } from "vue";
2
+ import { uniqBy as q } from "lodash-es";
3
+ import { numberWithComma as U } from "../../common/utils.js";
4
+ const A = 0, N = 1, R = 2, B = 3, V = 4, J = () => {
5
+ const { props: k } = T();
6
+ return {
7
+ isRenderer: (y = {}) => {
8
+ var c;
9
+ return !!((c = y == null ? void 0 : y.render) != null && c.use);
10
+ },
11
+ getComponentName: (y = "") => {
12
+ const c = (w) => w.charAt(0).toUpperCase() + w.slice(1), v = "Renderer";
13
+ let p = "";
14
+ if (y.indexOf("_") !== -1) {
15
+ const w = y.split("_");
16
+ for (let m = 0; m < w.length; m++)
17
+ p += c(w[m]);
18
+ } else
19
+ p = c(y);
20
+ return p + v;
21
+ },
22
+ getConvertValue: (y, c) => {
23
+ let v = y.type === "number" || y.type === "float" ? Number(c) : c;
24
+ return y.type === "number" ? (v = U(c), v = v === !1 ? c : v) : y.type === "float" && (v = v.toFixed(y.decimal ?? 3).replace(/\B(?=(\d{3})+(?!\d))/g, ",")), v;
25
+ },
26
+ getColumnIndex: (y) => k.columns.findIndex((c) => c.field === y),
27
+ setPixelUnit: (y) => {
28
+ let c = y;
29
+ const v = c.toString().indexOf("px") >= 0, p = c.toString().indexOf("%") >= 0;
30
+ return !v && !p && (c = `${c}px`), c;
31
+ }
32
+ };
33
+ }, X = (k) => {
34
+ var n;
35
+ const e = ((n = k.movedColumns) != null && n.length ? k.movedColumns : k.originColumns) ?? [], r = new Map(
36
+ (k.filteredColumns ?? []).map((f) => [f.index, f])
37
+ );
38
+ return e.map((f) => {
39
+ const S = r.get(f.index) ?? {};
40
+ return {
41
+ ...f,
42
+ ...S
43
+ };
44
+ });
45
+ }, K = (k) => {
46
+ const {
47
+ scrollInfo: e,
48
+ stores: r,
49
+ elementInfo: n,
50
+ resizeInfo: f,
51
+ pageInfo: S,
52
+ summaryScroll: y,
53
+ getPagingData: c,
54
+ updatePagingInfo: v,
55
+ expandedInfo: p
56
+ } = k, w = (H) => {
57
+ var C, s;
58
+ const o = n.body, t = f.rowHeight, i = p.detailRowHeight ?? 0;
59
+ if (o) {
60
+ let a = r.store;
61
+ S.isClientPaging && (a = c());
62
+ const h = ((C = p.expandedRows) == null ? void 0 : C.length) ?? 0, b = ((s = p.expandedRows) == null ? void 0 : s.map(
63
+ (D) => a.findIndex((W) => W[R] === D)
64
+ )) ?? [], x = a.length * t + h * i;
65
+ let l = 0, u = 0;
66
+ if (h)
67
+ for (l = 0; u + t < o.scrollTop; l++)
68
+ b.includes(l) && (u += i), u += t;
69
+ else
70
+ l = Math.floor(o.scrollTop / t), u = Math.max(l, 0) * t;
71
+ l > a.length - 1 && (l = 0);
72
+ let d = 0, g = 0;
73
+ if (h)
74
+ for (let D = l; g <= o.clientHeight; D++)
75
+ b.includes(D) && (g += i), g += t, d += 1;
76
+ else
77
+ d = o.clientHeight > t ? Math.ceil(o.clientHeight / t) : a.length, g = d * t;
78
+ const E = l + d + 1, M = Math.max(l, 0), P = E, L = n.table;
79
+ r.viewStore = a.slice(M, P), e.hasVerticalScrollBar = d < a.length || o.clientHeight < L.clientHeight, e.vScrollTopHeight = u, e.vScrollBottomHeight = x - g - e.vScrollTopHeight, H && S.isInfinite && e.vScrollBottomHeight === 0 && (S.prevPage = S.currentPage, S.currentPage = Math.ceil(P / S.perPage) + 1, S.startIndex = P, v({ onScrollEnd: !0 }));
80
+ }
81
+ }, m = (H) => {
82
+ if (p.useRowDetail && !p.detailRowHeight) {
83
+ let o = r.store;
84
+ S.isClientPaging && (o = c()), r.viewStore = [...o], e.vScrollTopHeight = 0, e.vScrollBottomHeight = 0;
85
+ } else
86
+ w(H);
87
+ }, I = () => {
88
+ const H = n.header, o = n.body, t = n.table;
89
+ H.scrollLeft = o.scrollLeft, y.value = o.scrollLeft, e.hasHorizontalScrollBar = o.clientWidth < t.clientWidth;
90
+ };
91
+ return { updateVScroll: m, updateHScroll: I, onScroll: () => {
92
+ const H = n.body, o = H.scrollTop, t = H.scrollLeft, i = e.lastScroll.top, C = e.lastScroll.left, s = t !== C;
93
+ o !== i && (H != null && H.clientHeight) && m(!0), s && I(), e.lastScroll.top = o, e.lastScroll.left = t;
94
+ } };
95
+ }, Q = (k) => {
96
+ const { props: e, emit: r } = T(), {
97
+ resizeInfo: n,
98
+ elementInfo: f,
99
+ checkInfo: S,
100
+ expandedInfo: y,
101
+ stores: c,
102
+ isRenderer: v,
103
+ updateVScroll: p,
104
+ updateHScroll: w,
105
+ contextInfo: m
106
+ } = k, I = () => {
107
+ var C;
108
+ let t = n.columnWidth, i = 0;
109
+ if (n.adjust) {
110
+ const s = f.body;
111
+ let a = s.offsetWidth;
112
+ const h = s.offsetHeight, b = ((C = s.querySelector("tr")) == null ? void 0 : C.offsetHeight) || n.rowHeight, x = a - s.clientWidth, l = c.orderedColumns.reduce(
113
+ (u, d) => (d.hide || d.hiddenDisplay || (d.width ? u.totalWidth += d.width : u.emptyCount++), u),
114
+ { totalWidth: m.customContextMenu.length ? 30 : 0, emptyCount: 0 }
115
+ );
116
+ if (b * e.rows.length > h && (a -= x), S.useCheckbox.use && (a -= n.minWidth), y.useRowDetail && (a -= n.minWidth), t = a - l.totalWidth, t > 0) {
117
+ const u = l.emptyCount === 0 ? 0 : Math.floor(t / l.emptyCount);
118
+ i = t - u * l.emptyCount, t = l.emptyCount !== 0 ? u : t;
119
+ } else
120
+ t = n.columnWidth;
121
+ t = t < n.minWidth ? n.minWidth : t, n.columnWidth = t;
122
+ }
123
+ if (c.orderedColumns.forEach((s) => {
124
+ const a = v(s) ? n.rendererMinWidth : n.minWidth;
125
+ s.width && s.width < a && (s.width = a), !s.width && !s.hide && (s.width = t);
126
+ }), i && c.orderedColumns.length) {
127
+ let s = c.orderedColumns.length - 1, a = c.orderedColumns[s];
128
+ for (; s > 0 && a && (a.hide || a.hiddenDisplay); )
129
+ s -= 1, a = c.orderedColumns[s];
130
+ a && (a.width += i);
131
+ }
132
+ }, O = () => {
133
+ const t = new Map(e.columns.map((i) => [i.field, i.width]));
134
+ _(() => {
135
+ var i, C;
136
+ n.adjust && c.orderedColumns.forEach((s) => {
137
+ const a = s;
138
+ return a.resized || (a.width = t.get(a.field) ?? 0), a;
139
+ }, void 0), I(), (i = f.body) != null && i.clientHeight && p(), (C = f.body) != null && C.clientWidth && w();
140
+ });
141
+ };
142
+ return { calculatedColumn: I, onResize: O, onShow: (t) => {
143
+ t && O();
144
+ }, onColumnResize: (t, i) => {
145
+ i.preventDefault();
146
+ const C = f.header, s = f.body, a = C.getBoundingClientRect().left, h = C.querySelector(`li[data-index="${t}"]`), b = v(c.orderedColumns[t]) ? n.rendererMinWidth : n.minWidth, x = h.getBoundingClientRect(), l = f.resizeLine, u = x.left - a + b, d = x.right - a, g = i.clientX, E = x.left - a;
147
+ s.style.overflow = "auto", l.style.left = `${d}px`, n.showResizeLine = !0;
148
+ const M = (L) => {
149
+ const D = L.clientX - g, W = d + D, F = Math.max(u, W);
150
+ l.style.left = `${F}px`;
151
+ }, P = () => {
152
+ const D = parseInt(l.style.left, 10) - E;
153
+ c.orderedColumns[t] && (c.orderedColumns[t].width = D, c.orderedColumns[t].resized = !0), n.showResizeLine = !1, document.removeEventListener("mousemove", M), O();
154
+ const W = X(c);
155
+ r("resize-column", {
156
+ column: c.orderedColumns[t],
157
+ columns: W
158
+ }), r("change-column-info", {
159
+ type: "resize",
160
+ columns: W
161
+ });
162
+ };
163
+ document.addEventListener("mousemove", M), document.addEventListener("mouseup", P, { once: !0 });
164
+ } };
165
+ }, Y = (k) => {
166
+ const { emit: e } = T(), { selectInfo: r, stores: n } = k, f = (p, w) => {
167
+ var O;
168
+ const m = (O = p.target.tagName) == null ? void 0 : O.toLowerCase();
169
+ let I = {};
170
+ return m === "td" ? I = p.target.dataset : I = p.target.parentNode.dataset, {
171
+ event: p,
172
+ rowData: w[R],
173
+ rowIndex: w[A],
174
+ cellName: I.name,
175
+ cellIndex: I.index
176
+ };
177
+ };
178
+ let S = null, y = -1;
179
+ return { onRowClick: (p, w, m) => {
180
+ var H, o, t;
181
+ if ((H = p.target.parentElement.classList) != null && H.contains("row-checkbox-input"))
182
+ return !1;
183
+ const I = !!((t = (o = p.target.closest("td")) == null ? void 0 : o.classList) != null && t.contains("row-contextmenu")), O = (i, C, s) => {
184
+ if (i === "shift") {
185
+ const a = w[A];
186
+ if (y > -1)
187
+ for (let h = Math.min(a, y); h <= Math.max(a, y); h++)
188
+ if (!C)
189
+ n.originStore[h][B] = !0, y !== h && r.selectedRow.push(n.originStore[h][R]);
190
+ else {
191
+ n.originStore[h][B] = !1;
192
+ const b = r.selectedRow.indexOf(
193
+ n.originStore[h][R]
194
+ );
195
+ b > -1 && r.selectedRow.splice(b, 1);
196
+ }
197
+ } else i === "ctrl" && (C ? r.selectedRow.splice(r.selectedRow.indexOf(w[R]), 1) : r.selectedRow.push(s));
198
+ };
199
+ return S && clearTimeout(S), S = setTimeout(() => {
200
+ if (r.useSelect) {
201
+ const i = w[R], C = w[B];
202
+ w[B] = !w[B];
203
+ let s = "";
204
+ p.shiftKey ? s = "shift" : p.ctrlKey && (s = "ctrl"), r.multiple && s ? O(s, C, i) : m || I ? (r.selectedRow = [...r.selectedRow], r.selectedRow.includes(i) || (r.selectedRow = [i])) : C ? r.selectedRow = [] : r.selectedRow = [i], y = w[A], e("update:selected", r.selectedRow), e("click-row", f(p, w));
205
+ }
206
+ }, 100), !0;
207
+ }, onRowDblClick: (p, w) => {
208
+ S && clearTimeout(S), e("dblclick-row", f(p, w));
209
+ } };
210
+ }, Z = (k) => {
211
+ const { checkInfo: e, stores: r, pageInfo: n, getPagingData: f } = k, { props: S, emit: y } = T(), c = (w) => {
212
+ const m = r.originStore.findIndex(
213
+ (I) => I[R] === w[R]
214
+ );
215
+ m !== -1 && (r.originStore[m][N] = w[N]);
216
+ };
217
+ return { onCheck: (w, m) => {
218
+ if (e.useCheckbox.mode === "single" && e.prevCheckedRow.length && (e.prevCheckedRow = [], c(e.prevCheckedRow)), m[N]) {
219
+ e.useCheckbox.mode === "single" ? e.checkedRows = [m[R]] : e.checkedRows.push(m[R]);
220
+ let I = r.store;
221
+ n.isClientPaging && (I = f());
222
+ const O = I.filter((H) => !S.uncheckable.includes(H[R])).filter((H) => !S.disabledRows.includes(H[R])).every((H) => H[N]);
223
+ I.length && O && (e.isHeaderChecked = !0), e.isHeaderIndeterminate = I.length && !O;
224
+ } else
225
+ e.useCheckbox.mode === "single" ? e.checkedRows = [] : e.checkedRows.splice(e.checkedRows.indexOf(m[R]), 1), e.isHeaderChecked = !1, e.isHeaderIndeterminate = !!(r.store.length && e.checkedRows.length);
226
+ e.prevCheckedRow = m.slice(), y("update:checked", e.checkedRows), y("check-row", w, m[A], m[R]);
227
+ }, onCheckAll: (w) => {
228
+ const m = e.isHeaderChecked;
229
+ let I = r.store;
230
+ n.isClientPaging && (I = f()), I.forEach((O) => {
231
+ const H = S.uncheckable.includes(O[R]) || S.disabledRows.includes(O[R]);
232
+ m ? !e.checkedRows.includes(O[R]) && !H && e.checkedRows.push(O[R]) : e.checkedRows.splice(e.checkedRows.indexOf(O[R]), 1), H || (O[N] = m);
233
+ }), e.isHeaderIndeterminate = !1, y("update:checked", e.checkedRows), y("check-all", w, e.checkedRows);
234
+ } };
235
+ }, ee = (k) => {
236
+ const { expandedInfo: e } = k, { emit: r } = T();
237
+ return {
238
+ onExpanded: (f, S) => {
239
+ const y = S[R], c = e.expandedRows.indexOf(y);
240
+ c === -1 ? e.expandedRows.push(y) : e.expandedRows.splice(c, 1), S[V] = !S[V], r("update:expanded", e.expandedRows), r("expand-row", f, S[R], S[V], S[A]);
241
+ }
242
+ };
243
+ }, te = (k) => {
244
+ const { sortInfo: e, stores: r, updatePagingInfo: n } = k, { emit: f } = T(), S = (o = !0) => o ? ["asc", "desc", "init"] : ["asc", "desc"];
245
+ function y() {
246
+ this.orders = S(), this.dequeue = () => this.orders.shift(), this.enqueue = (o) => this.orders.push(o);
247
+ }
248
+ const c = (o, t = "init") => {
249
+ r.orderedColumns.forEach((i) => {
250
+ i.index === (o == null ? void 0 : o.index) && t ? i.sortOption = { sortType: t } : i.sortOption = { sortType: "init" };
251
+ });
252
+ }, v = () => {
253
+ const o = r.originColumns.filter((t) => t.hiddenDisplay || t.hide);
254
+ o.length && o.forEach((t) => {
255
+ t.sortOption = { sortType: "init" };
256
+ });
257
+ }, p = new y(), w = (o, t = !0) => {
258
+ const { sortType: i } = (o == null ? void 0 : o.sortOption) || {};
259
+ e.sortColumn = o, e.sortField = o == null ? void 0 : o.field, e.sortOrder = i, e.isSorting = !!i, t && (c(o, i), f("change-column-info", {
260
+ type: "sort",
261
+ columns: X(r)
262
+ }));
263
+ }, m = (o, t) => {
264
+ if (o.sortable === void 0 ? !0 : o.sortable) {
265
+ e.sortColumn = o, e.sortField !== (o == null ? void 0 : o.field) && (p.orders = S(), e.sortField = o == null ? void 0 : o.field), t && (p.orders = S(), t === "desc" && (e.sortOrder = p.dequeue(), p.enqueue(e.sortOrder))), e.sortOrder = p.dequeue(), p.enqueue(e.sortOrder), e.isSorting = !0, n({ onSort: !0 }), v(), c(o, e.sortOrder);
266
+ const C = X(r);
267
+ f("sort-column", {
268
+ field: e.sortField,
269
+ order: e.sortOrder,
270
+ column: e.sortColumn,
271
+ columns: C
272
+ }), f("change-column-info", {
273
+ type: "sort",
274
+ columns: C
275
+ });
276
+ }
277
+ }, I = () => {
278
+ var d;
279
+ const { field: o, index: t } = e.sortColumn || {}, i = ((d = e.sortFunction) == null ? void 0 : d[o]) ?? null, C = (g, E) => g > E ? -1 : 1, s = (g, E) => g < E ? -1 : 1, a = (g, E) => (g === null) - (E === null) || Number(E) - Number(g), h = (g, E) => (g === null) - (E === null) || Number(g) - Number(E);
280
+ if (e.sortOrder === "init" || !e.sortField && !e.isSorting) {
281
+ r.store.sort((g, E) => typeof g[A] == "number" ? s(g[A], E[A]) : 0);
282
+ return;
283
+ }
284
+ const b = e.sortColumn.type || "string", x = e.sortOrder === "desc" ? C : s, l = e.sortOrder === "desc" ? a : h, u = (g, E) => {
285
+ var L, D;
286
+ let M = g[R][t], P = E[R][t];
287
+ return g[R][t] && typeof g[R][t] == "object" && (M = g[R][t][(L = r.originColumns[t]) == null ? void 0 : L.field], P = E[R][t][(D = r.originColumns[t]) == null ? void 0 : D.field]), { aCol: M, bCol: P };
288
+ };
289
+ if (i) {
290
+ r.store.sort((g, E) => {
291
+ const M = g[R][t], P = E[R][t], L = i(M, P);
292
+ return e.sortOrder === "desc" ? -L : L;
293
+ });
294
+ return;
295
+ }
296
+ switch (b) {
297
+ case "string":
298
+ r.store.sort((g, E) => {
299
+ let { aCol: M, bCol: P } = u(g, E);
300
+ if ((!M || typeof M == "string") && (!P || typeof P == "string")) {
301
+ M = M || "", P = P || "";
302
+ const L = M.toLowerCase(), D = P.toLowerCase();
303
+ if (M !== P && L === D) {
304
+ const W = Array.from(M).findIndex((F, z) => F !== P[z]);
305
+ return x(M[W], P[W]);
306
+ }
307
+ return x(L, D);
308
+ }
309
+ return 0;
310
+ });
311
+ break;
312
+ case "stringNumber":
313
+ r.store.sort((g, E) => {
314
+ let { aCol: M, bCol: P } = u(g, E);
315
+ return !M || typeof M == "string" || typeof M == "number" ? (M = M === "" ? null : M, P = P === "" ? null : P, l(M ?? null, P ?? null)) : 0;
316
+ });
317
+ break;
318
+ default:
319
+ r.store.sort((g, E) => {
320
+ const { aCol: M, bCol: P } = u(g, E);
321
+ return !M || typeof M == "number" || typeof M == "boolean" ? l(M ?? null, P ?? null) : 0;
322
+ });
323
+ break;
324
+ }
325
+ }, O = () => {
326
+ var o;
327
+ return (o = r.orderedColumns) == null ? void 0 : o.find(
328
+ (t) => (t == null ? void 0 : t.sortOption) && S(!1).includes(t.sortOption.sortType)
329
+ );
330
+ };
331
+ return { onSort: m, getSortTarget: O, setSort: I, setSortInfo: w, hasSortTarget: () => !!O() };
332
+ }, ne = (k) => {
333
+ const { props: e } = T(), {
334
+ columnSettingInfo: r,
335
+ filterInfo: n,
336
+ stores: f,
337
+ checkInfo: S,
338
+ pageInfo: y,
339
+ getConvertValue: c,
340
+ updateVScroll: v,
341
+ getPagingData: p,
342
+ updatePagingInfo: w,
343
+ getColumnIndex: m
344
+ } = k, I = (h) => {
345
+ let b = 0;
346
+ h.forEach((x) => {
347
+ const l = S.checkedRows.includes(x[R]);
348
+ x[N] = l, b += l ? 1 : 0;
349
+ }), h.length && (S.isHeaderChecked = h.length === b, S.isHeaderIndeterminate = h.length !== b && b > 0, S.isHeaderUncheckable = h.every(
350
+ (x) => e.uncheckable.includes(x[R]) || e.disabledRows.includes(x[R])
351
+ ));
352
+ }, O = (h, b, x) => {
353
+ if (typeof h != "string" || b === null)
354
+ return !1;
355
+ const l = b == null ? void 0 : b.toLowerCase(), u = h == null ? void 0 : h.toLowerCase();
356
+ let d = l.includes(u);
357
+ return x && (x === "start" ? d = l.startsWith(u) : x === "end" && (d = l.endsWith(u))), d;
358
+ }, H = (h, b) => {
359
+ const x = b.comparison, l = b.value;
360
+ let u = h[R][b.index];
361
+ (u || u === 0) && (u = `${h[R][b.index]}`);
362
+ let d;
363
+ return x === "=" ? d = (l == null ? void 0 : l.toLowerCase()) === (u == null ? void 0 : u.toLowerCase()) : x === "!=" ? d = (l == null ? void 0 : l.toLowerCase()) !== (u == null ? void 0 : u.toLowerCase()) : x === "%s%" ? d = O(l, u) : x === "notLike" ? d = !O(l, u) : x === "s%" ? d = O(l, u, "start") : x === "%s" ? d = O(l, u, "end") : x === "isEmpty" ? d = u == null || u === "" : x === "isNotEmpty" && (d = !!u), d;
364
+ }, o = (h, b, x) => {
365
+ const l = b.comparison, u = Number(b.value.replace(/,/g, ""));
366
+ let d = Number(h[R][b.index]), g;
367
+ return x === "float" && (d = Number(d.toFixed(3))), l === "=" ? g = d === u : l === ">" ? g = d > u : l === "<" ? g = d < u : l === "<=" ? g = d <= u : l === ">=" ? g = d >= u : l === "!=" ? g = d !== u : l === "isEmpty" ? g = d == null || isNaN(d) : l === "isNotEmpty" && (g = !!d || d === 0), g;
368
+ }, t = (h, b) => {
369
+ const x = b.comparison, l = b.value, u = `${h[R][b.index]}`;
370
+ let d;
371
+ return x === "=" && (d = u === l), d;
372
+ }, i = (h, b, x) => {
373
+ let l = b === "string" || b === "stringNumber" ? H : o;
374
+ return b === "boolean" && (l = t), h.filter((u) => l(u, x, b)) || [];
375
+ }, C = () => {
376
+ const h = n.filteringItemsByColumn, b = Object.keys(h), x = f.originStore;
377
+ let l = [], u = !1, d = [];
378
+ b.forEach((g, E) => {
379
+ const M = h[g], P = m(g), L = e.columns[P].type, D = n.columnOperator === "or", W = E > 0 && n.columnOperator === "and";
380
+ M.forEach((F, z) => {
381
+ !l.length && !u ? l = i(x, L, {
382
+ ...F,
383
+ index: P
384
+ }) : W && F.operator === "or" ? z > 0 ? l.push(
385
+ ...i(d, L, {
386
+ ...F,
387
+ index: P
388
+ })
389
+ ) : l = i(d, L, {
390
+ ...F,
391
+ index: P
392
+ }) : z === 0 && D || z !== 0 && F.operator === "or" ? l.push(
393
+ ...i(x, L, {
394
+ ...F,
395
+ index: P
396
+ })
397
+ ) : l = i(l, L, {
398
+ ...F,
399
+ index: P
400
+ }), u = !0;
401
+ }), d = JSON.parse(JSON.stringify(l));
402
+ }), u ? f.filterStore = q(l, JSON.stringify) : f.filterStore = x;
403
+ };
404
+ let s = null;
405
+ return { onSearch: (h) => {
406
+ s && clearTimeout(s), s = setTimeout(() => {
407
+ n.isSearch = !1, n.searchWord = h, h && (f.searchStore = f.store.filter((b) => {
408
+ let x = !1;
409
+ const l = r.isFilteringColumn ? b[R].filter(
410
+ (u, d) => r.visibleColumnIdx.includes(d)
411
+ ) : b[R];
412
+ for (let u = 0; u < f.orderedColumns.length; u++) {
413
+ const d = f.orderedColumns[u] || {};
414
+ let g = l[d.index] ?? null;
415
+ if (d.type = d.type || "string", g !== null && (g instanceof Array ? g = JSON.stringify(g) : typeof g == "object" && (g = g[d.field]), !d.hide && ((d == null ? void 0 : d.searchable) === void 0 || d != null && d.searchable) && (g = c(d, g).toString(), x = g.toLowerCase().includes(h.toString().toLowerCase()), x)))
416
+ break;
417
+ }
418
+ return x;
419
+ }), n.isSearch = !0), I(f.store), !h && y.isClientPaging && y.prevPage && (y.currentPage = 1, f.pagingStore = p()), w({ onSearch: !0 }), v();
420
+ }, 500);
421
+ }, setFilter: C, setHeaderCheckboxByFilter: I };
422
+ }, oe = (k) => {
423
+ const {
424
+ contextInfo: e,
425
+ stores: r,
426
+ selectInfo: n,
427
+ onSort: f,
428
+ filterInfo: S,
429
+ useGridSetting: y,
430
+ columnSettingInfo: c,
431
+ setColumnHidden: v
432
+ } = k;
433
+ let p = null;
434
+ const { emit: w } = T(), m = (o) => {
435
+ p && clearTimeout(p);
436
+ const t = [];
437
+ p = setTimeout(() => {
438
+ if (e.customContextMenu.length) {
439
+ const i = e.customContextMenu.map((C) => {
440
+ const s = C;
441
+ return s.validate && (s.disabled = !s.validate(s.itemId, n.selectedRow)), s.selectedRow = n.selectedRow ?? [], s.contextmenuInfo = n.contextmenuInfo ?? [], s;
442
+ });
443
+ t.push(...i);
444
+ }
445
+ e.contextMenuItems = t, e.menu.show(o);
446
+ }, 200);
447
+ };
448
+ return {
449
+ setContextMenu: m,
450
+ onContextMenu: (o) => {
451
+ var s, a, h;
452
+ o.preventDefault();
453
+ const i = (a = (s = o.target.closest(".row")) == null ? void 0 : s.dataset) == null ? void 0 : a.index;
454
+ let C = null;
455
+ i && (C = (h = r.viewStore.find((b) => b[A] === +i)) == null ? void 0 : h[R]), C && (n.contextmenuInfo = [C], m(o));
456
+ },
457
+ onColumnContextMenu: (o, t) => {
458
+ var i, C, s, a, h, b, x, l;
459
+ if (o.target.className === "column-name") {
460
+ const u = t.sortable === void 0 ? !0 : t.sortable, d = S.isFiltering && t.filterable === void 0 ? !0 : t.filterable, g = [
461
+ {
462
+ text: ((i = e.columnMenuTextInfo) == null ? void 0 : i.ascending) ?? "Ascending",
463
+ iconClass: "ev-icon-allow2-up",
464
+ disabled: !u,
465
+ hidden: (C = e.hiddenColumnMenuItem) == null ? void 0 : C.ascending,
466
+ click: () => f(t, "asc")
467
+ },
468
+ {
469
+ text: ((s = e.columnMenuTextInfo) == null ? void 0 : s.descending) ?? "Descending",
470
+ iconClass: "ev-icon-allow2-down",
471
+ disabled: !u,
472
+ hidden: (a = e.hiddenColumnMenuItem) == null ? void 0 : a.descending,
473
+ click: () => f(t, "desc")
474
+ },
475
+ {
476
+ text: ((h = e.columnMenuTextInfo) == null ? void 0 : h.filter) ?? "Filter",
477
+ iconClass: "ev-icon-filter-list",
478
+ click: () => {
479
+ const E = document.documentElement.clientWidth, M = e.columnMenu.menuStyle.clientX, P = e.columnMenu.menuStyle.pageX, L = 350;
480
+ E < M + L && (e.columnMenu.menuStyle.left = `${P - L}px`), S.filterSettingPosition = {
481
+ top: e.columnMenu.menuStyle.top,
482
+ left: e.columnMenu.menuStyle.left
483
+ }, S.isShowFilterSetting = !0, S.filteringColumn = t, w("change-column-info", {
484
+ type: "filter",
485
+ columns: r.updatedColumns
486
+ });
487
+ },
488
+ disabled: !d,
489
+ hidden: ((b = e.hiddenColumnMenuItem) == null ? void 0 : b.filter) || !S.isFiltering
490
+ },
491
+ {
492
+ text: ((x = e.columnMenuTextInfo) == null ? void 0 : x.hide) ?? "Hide",
493
+ iconClass: "ev-icon-visibility-off",
494
+ disabled: !y.value || r.orderedColumns.length === 1 || t.fixed,
495
+ hidden: ((l = e.hiddenColumnMenuItem) == null ? void 0 : l.hide) || !y.value,
496
+ click: () => {
497
+ v(t.field), w("change-column-status", {
498
+ columns: r.updatedColumns
499
+ }), w("change-column-info", {
500
+ type: "display",
501
+ columns: r.updatedColumns
502
+ });
503
+ }
504
+ }
505
+ ];
506
+ if (e.columnMenuItems = [], !u && !d && !y.value)
507
+ return;
508
+ e.columnMenuItems = g.filter((E) => !E.hidden);
509
+ }
510
+ },
511
+ onGridSettingContextMenu: (o) => {
512
+ const { useDefaultColumnSetting: t, columnSettingTextInfo: i } = c, C = {
513
+ text: (i == null ? void 0 : i.title) ?? "Column List",
514
+ isShowMenu: !0,
515
+ click: () => {
516
+ c.isShowColumnSetting = !0, e.isShowMenuOnClick = !0;
517
+ }
518
+ };
519
+ e.customGridSettingContextMenu.length && (e.gridSettingContextMenuItems = [...e.customGridSettingContextMenu]), t && e.gridSettingContextMenuItems.push(C), e.gridSettingMenu.show(o);
520
+ }
521
+ };
522
+ }, se = (k) => {
523
+ const { props: e } = T(), {
524
+ selectInfo: r,
525
+ checkInfo: n,
526
+ stores: f,
527
+ sortInfo: S,
528
+ elementInfo: y,
529
+ filterInfo: c,
530
+ expandedInfo: v,
531
+ setSort: p,
532
+ setSortInfo: w,
533
+ updateVScroll: m,
534
+ setFilter: I
535
+ } = k;
536
+ return { setStore: ({ rows: H, isMakeIndex: o = !0, isInit: t = !1 }) => {
537
+ var C, s, a;
538
+ const i = f.orderedColumns.find(
539
+ (h) => (h == null ? void 0 : h.sortOption) && ["asc", "desc"].includes(h.sortOption.sortType)
540
+ );
541
+ if (o) {
542
+ const h = [];
543
+ let b = !1;
544
+ H.forEach((x, l) => {
545
+ const u = e.checked.includes(x), d = e.uncheckable.includes(x) || e.disabledRows.includes(x);
546
+ let g = !1;
547
+ r.useSelect && (g = e.selected.includes(x)), !u && !d && (b = !0);
548
+ let E = !1;
549
+ v.useRowDetail && (E = e.expanded.includes(x));
550
+ const M = e.disabledRows.includes(x);
551
+ h.push([l, u, x, g, E, d, M]);
552
+ }), H.length !== e.checked.length && (H.length === ((C = e.uncheckable) == null ? void 0 : C.length) || H.length === ((s = e.disabledRows) == null ? void 0 : s.length)) && (b = !0), n.isHeaderChecked = H.length > 0 ? !b : !1, n.isHeaderIndeterminate = b && !!n.checkedRows.length, n.isHeaderUncheckable = H.every(
553
+ (x) => e.uncheckable.includes(x) || e.disabledRows.includes(x)
554
+ ), f.originStore = h;
555
+ }
556
+ c.isFiltering && I(), i && t && w(i, !1), S.sortField && p(), (a = y.body) != null && a.clientHeight && m();
557
+ } };
558
+ }, ie = (k) => {
559
+ const { emit: e } = T(), { stores: r, pageInfo: n, sortInfo: f, filterInfo: S, elementInfo: y, clearCheckInfo: c } = k, v = () => {
560
+ const m = (n.currentPage - 1) * n.perPage, I = parseInt(m, 10) + parseInt(n.perPage, 10);
561
+ return r.store.slice(m, I);
562
+ }, p = (m) => {
563
+ e("page-change", {
564
+ eventName: m,
565
+ pageInfo: {
566
+ currentPage: n.currentPage,
567
+ prevPage: n.prevPage,
568
+ startIndex: n.startIndex,
569
+ total: n.pageTotal,
570
+ perPage: n.perPage
571
+ },
572
+ sortInfo: {
573
+ field: f.sortField,
574
+ order: f.sortOrder
575
+ },
576
+ searchInfo: {
577
+ searchWord: S.searchWord,
578
+ searchColumns: r.orderedColumns.filter((I) => !I.hide && ((I == null ? void 0 : I.searchable) === void 0 || (I == null ? void 0 : I.searchable))).map((I) => I.field)
579
+ }
580
+ }), n.isInfinite && (m != null && m.onSearch || m != null && m.onSort) && (n.currentPage = 1, y.body.scrollTop = 0, c());
581
+ };
582
+ return { getPagingData: v, updatePagingInfo: p, changePage: (m) => {
583
+ if (n.isClientPaging)
584
+ if (n.prevPage = m, r.store.length <= n.perPage)
585
+ r.pagingStore = r.store;
586
+ else {
587
+ const I = (n.currentPage - 1) * n.perPage, O = parseInt(I, 10) + parseInt(n.perPage, 10);
588
+ r.pagingStore = r.store.slice(I, O), y.body.scrollTop = 0, n.startIndex = I;
589
+ }
590
+ p({ onChangePage: !0 });
591
+ } };
592
+ }, re = (k) => {
593
+ const { props: e, emit: r } = T(), { stores: n, columnSettingInfo: f, contextInfo: S, onSearch: y, onResize: c } = k, v = (o) => {
594
+ var t, i, C;
595
+ if (f.isShowColumnSetting)
596
+ if (f.columnSettingPosition.columnListMenuWidth = 0, S.gridSettingContextMenuItems.length) {
597
+ const s = S.gridSettingContextMenuItems.length - 1, a = (C = (i = (t = S.gridSettingMenu) == null ? void 0 : t.rootMenuList) == null ? void 0 : i.$el) == null ? void 0 : C.children[0].children[s].getBoundingClientRect();
598
+ f.columnSettingPosition.columnListMenuWidth = a.width, f.columnSettingPosition.top = a.top, f.columnSettingPosition.left = a.right;
599
+ } else {
600
+ const s = o == null ? void 0 : o.getBoundingClientRect(), a = s == null ? void 0 : s.height;
601
+ f.columnSettingPosition.top = (s == null ? void 0 : s.top) + a, f.columnSettingPosition.left = s == null ? void 0 : s.right;
602
+ }
603
+ }, p = () => {
604
+ n.filteredColumns.length = 0, f.isFilteringColumn = !1, f.visibleColumnIdx = [], f.hiddenColumn = "";
605
+ }, w = () => Array.isArray(n.movedColumns) && n.movedColumns.length ? n.movedColumns : n.originColumns || [], m = (o, t) => {
606
+ var C;
607
+ if (!o)
608
+ return;
609
+ o.hiddenDisplay = t;
610
+ const i = (C = n.originColumns) == null ? void 0 : C.find((s) => s.index === o.index);
611
+ if (i && i !== o && (i.hiddenDisplay = t), Array.isArray(n.movedColumns)) {
612
+ const s = n.movedColumns.find((a) => a.index === o.index);
613
+ s && s !== o && (s.hiddenDisplay = t);
614
+ }
615
+ }, I = () => {
616
+ f.visibleColumnIdx = n.filteredColumns.map((i) => i.index);
617
+ const o = n.originColumns.filter((i) => !i.hide || i.hiddenDisplay).map((i) => i.index), t = f.visibleColumnIdx;
618
+ f.isFilteringColumn = t.length !== o.length, e.option.searchValue && y(e.option.searchValue), c();
619
+ };
620
+ return {
621
+ setPositionColumnSetting: v,
622
+ initColumnSettingInfo: p,
623
+ onApplyColumn: (o) => {
624
+ const t = n.orderedColumns.filter((a) => !a.hide && !a.hiddenDisplay);
625
+ if (o.length === t.length && t.every((a) => o.includes(a.field)))
626
+ return;
627
+ const C = w(), s = new Set(o);
628
+ n.filteredColumns = C.filter((a) => {
629
+ const h = s.has(a.field) || !a.caption;
630
+ return m(a, !h), h;
631
+ }), f.hiddenColumn = "", I(), r("change-column-status", {
632
+ columns: n.updatedColumns
633
+ }), r("change-column-info", {
634
+ type: "display",
635
+ columns: n.updatedColumns
636
+ });
637
+ },
638
+ setColumnHidden: (o) => {
639
+ const t = n.orderedColumns.filter((C) => !C.hide && !C.hiddenDisplay);
640
+ if (t.length === 1)
641
+ return;
642
+ n.filteredColumns = t.filter((C) => {
643
+ const s = C.field === o;
644
+ return m(C, s), !s;
645
+ }), w().forEach((C) => {
646
+ C.field === o && m(C, !0);
647
+ }), f.hiddenColumn = o, I();
648
+ }
649
+ };
650
+ }, le = ({ stores: k }) => {
651
+ const { emit: e } = T(), r = (c) => {
652
+ var m;
653
+ const v = (m = k.movedColumns) != null && m.length ? [...k.movedColumns] : [...k.originColumns], p = [...c], w = new Set(p.map((I) => I.index));
654
+ k.movedColumns = v.map((I) => w.has(I.index) ? p.shift() : I);
655
+ }, n = (c, v) => {
656
+ const p = parseInt(c, 10), w = parseInt(v, 10);
657
+ if (!Number.isInteger(p) || !Number.isInteger(w))
658
+ return;
659
+ const m = [...k.orderedColumns], I = m[p];
660
+ m.splice(p, 1), m.splice(w, 0, I), k.filteredColumns.length && (k.filteredColumns = m), r(m);
661
+ };
662
+ return {
663
+ onDragStart: (c) => {
664
+ c.dataTransfer.setData("text/plain", c.currentTarget.dataset.index);
665
+ },
666
+ onDragOver: (c) => {
667
+ c.preventDefault();
668
+ },
669
+ onDrop: (c) => {
670
+ c.preventDefault();
671
+ const v = c.dataTransfer.getData("text/plain"), p = c.target.parentNode.dataset.index;
672
+ n(v, p), e("change-column-order", {
673
+ column: k.orderedColumns[p],
674
+ columns: k.updatedColumns
675
+ }), e("change-column-info", {
676
+ type: "order",
677
+ columns: k.updatedColumns
678
+ });
679
+ }
680
+ };
681
+ };
682
+ export {
683
+ Z as checkEvent,
684
+ Y as clickEvent,
685
+ re as columnSettingEvent,
686
+ J as commonFunctions,
687
+ oe as contextMenuEvent,
688
+ le as dragEvent,
689
+ ee as expandEvent,
690
+ ne as filterEvent,
691
+ X as getUpdatedColumns,
692
+ ie as pagingEvent,
693
+ Q as resizeEvent,
694
+ K as scrollEvent,
695
+ te as sortEvent,
696
+ se as storeEvent
697
+ };