comins-table 0.1.10 → 0.2.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 (141) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/DESIGN.md +15 -1
  3. package/README.md +46 -11
  4. package/THIRD_PARTY_NOTICES.md +0 -2
  5. package/dist/browser/clipboard.d.ts +4 -0
  6. package/dist/browser/clipboard.d.ts.map +1 -0
  7. package/dist/browser/measurements.d.ts +28 -0
  8. package/dist/browser/measurements.d.ts.map +1 -0
  9. package/dist/browser/pointer.d.ts +25 -0
  10. package/dist/browser/pointer.d.ts.map +1 -0
  11. package/dist/browser/scroll.d.ts +9 -0
  12. package/dist/browser/scroll.d.ts.map +1 -0
  13. package/dist/browser/table-transfer.d.ts +38 -0
  14. package/dist/browser/table-transfer.d.ts.map +1 -0
  15. package/dist/browser/viewport-requests.d.ts +27 -0
  16. package/dist/browser/viewport-requests.d.ts.map +1 -0
  17. package/dist/cell-fill.d.ts +25 -0
  18. package/dist/cell-fill.d.ts.map +1 -0
  19. package/dist/clipboard-CNrbmDue.js +959 -0
  20. package/dist/clipboard-CNrbmDue.js.map +1 -0
  21. package/dist/clipboard-text.d.ts +5 -0
  22. package/dist/clipboard-text.d.ts.map +1 -0
  23. package/dist/clipboard.d.ts +2 -2
  24. package/dist/clipboard.d.ts.map +1 -1
  25. package/dist/clipboard.js +3 -2
  26. package/dist/column-filter.d.ts +2 -1
  27. package/dist/column-filter.d.ts.map +1 -1
  28. package/dist/column-layout.d.ts +24 -0
  29. package/dist/column-layout.d.ts.map +1 -0
  30. package/dist/component-renderer.d.ts +1 -1
  31. package/dist/component-renderer.d.ts.map +1 -1
  32. package/dist/core/editing/cells.d.ts +9 -0
  33. package/dist/core/editing/cells.d.ts.map +1 -0
  34. package/dist/core/editing/clipboard.d.ts +8 -0
  35. package/dist/core/editing/clipboard.d.ts.map +1 -0
  36. package/dist/core/editing/export.d.ts +4 -0
  37. package/dist/core/editing/export.d.ts.map +1 -0
  38. package/dist/core/layout/columns.d.ts +69 -0
  39. package/dist/core/layout/columns.d.ts.map +1 -0
  40. package/dist/core/layout/row-height.d.ts +25 -0
  41. package/dist/core/layout/row-height.d.ts.map +1 -0
  42. package/dist/core/layout/viewport.d.ts +21 -0
  43. package/dist/core/layout/viewport.d.ts.map +1 -0
  44. package/dist/core/layout/virtual.d.ts +119 -0
  45. package/dist/core/layout/virtual.d.ts.map +1 -0
  46. package/dist/core/model.d.ts +128 -0
  47. package/dist/core/model.d.ts.map +1 -0
  48. package/dist/core/rows/filtering.d.ts +45 -0
  49. package/dist/core/rows/filtering.d.ts.map +1 -0
  50. package/dist/core/rows/grouping.d.ts +97 -0
  51. package/dist/core/rows/grouping.d.ts.map +1 -0
  52. package/dist/core/rows/projection.d.ts +73 -0
  53. package/dist/core/rows/projection.d.ts.map +1 -0
  54. package/dist/core/rows/summary.d.ts +3 -0
  55. package/dist/core/rows/summary.d.ts.map +1 -0
  56. package/dist/core/selection/navigation.d.ts +49 -0
  57. package/dist/core/selection/navigation.d.ts.map +1 -0
  58. package/dist/core/selection/state.d.ts +131 -0
  59. package/dist/core/selection/state.d.ts.map +1 -0
  60. package/dist/core/state/access.d.ts +11 -0
  61. package/dist/core/state/access.d.ts.map +1 -0
  62. package/dist/core/state/changes.d.ts +14 -0
  63. package/dist/core/state/changes.d.ts.map +1 -0
  64. package/dist/core/state/reconcile.d.ts +18 -0
  65. package/dist/core/state/reconcile.d.ts.map +1 -0
  66. package/dist/core/state/table.d.ts +77 -0
  67. package/dist/core/state/table.d.ts.map +1 -0
  68. package/dist/core/transfer/policy.d.ts +116 -0
  69. package/dist/core/transfer/policy.d.ts.map +1 -0
  70. package/dist/core/viewport/data.d.ts +70 -0
  71. package/dist/core/viewport/data.d.ts.map +1 -0
  72. package/dist/core/viewport/requests.d.ts +19 -0
  73. package/dist/core/viewport/requests.d.ts.map +1 -0
  74. package/dist/core-compat-B4I2OHGY.js +391 -0
  75. package/dist/core-compat-B4I2OHGY.js.map +1 -0
  76. package/dist/core.d.ts +9 -704
  77. package/dist/core.d.ts.map +1 -1
  78. package/dist/core.js +3 -2
  79. package/dist/export-Cfk5Jz4a.js +37 -0
  80. package/dist/export-Cfk5Jz4a.js.map +1 -0
  81. package/dist/filtering.d.ts +8 -9
  82. package/dist/filtering.d.ts.map +1 -1
  83. package/dist/grouping.d.ts +11 -21
  84. package/dist/grouping.d.ts.map +1 -1
  85. package/dist/index.d.ts +16 -8
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +3400 -2552
  88. package/dist/index.js.map +1 -1
  89. package/dist/model.d.ts +140 -0
  90. package/dist/model.d.ts.map +1 -0
  91. package/dist/react/core-compat.d.ts +141 -0
  92. package/dist/react/core-compat.d.ts.map +1 -0
  93. package/dist/react/edit-policy.d.ts +9 -0
  94. package/dist/react/edit-policy.d.ts.map +1 -0
  95. package/dist/react/model.d.ts +14 -0
  96. package/dist/react/model.d.ts.map +1 -0
  97. package/dist/react/rows.d.ts +6 -0
  98. package/dist/react/rows.d.ts.map +1 -0
  99. package/dist/react/state.d.ts +43 -0
  100. package/dist/react/state.d.ts.map +1 -0
  101. package/dist/react/table-transfer.d.ts +55 -0
  102. package/dist/react/table-transfer.d.ts.map +1 -0
  103. package/dist/react/viewport.d.ts +10 -0
  104. package/dist/react/viewport.d.ts.map +1 -0
  105. package/dist/react-types.d.ts +292 -0
  106. package/dist/react-types.d.ts.map +1 -0
  107. package/dist/row-detail.d.ts +2 -0
  108. package/dist/row-detail.d.ts.map +1 -1
  109. package/dist/row-height.d.ts +1 -24
  110. package/dist/row-height.d.ts.map +1 -1
  111. package/dist/row-value.d.ts +2 -0
  112. package/dist/row-value.d.ts.map +1 -0
  113. package/dist/selection-data.d.ts +2 -1
  114. package/dist/selection-data.d.ts.map +1 -1
  115. package/dist/selection.d.ts +2 -2
  116. package/dist/selection.d.ts.map +1 -1
  117. package/dist/selection.js +2 -2
  118. package/dist/summary.d.ts +1 -1
  119. package/dist/summary.d.ts.map +1 -1
  120. package/dist/table-icons.d.ts.map +1 -1
  121. package/dist/table-state.d.ts +24 -0
  122. package/dist/table-state.d.ts.map +1 -0
  123. package/dist/table-transfer.d.ts +1 -152
  124. package/dist/table-transfer.d.ts.map +1 -1
  125. package/dist/tree-drag.d.ts +1 -0
  126. package/dist/tree-drag.d.ts.map +1 -1
  127. package/dist/tree.d.ts +1 -1
  128. package/dist/tree.d.ts.map +1 -1
  129. package/dist/use-viewport.d.ts.map +1 -1
  130. package/dist/viewport-data.d.ts +8 -71
  131. package/dist/viewport-data.d.ts.map +1 -1
  132. package/dist/viewport-layout.d.ts +1 -20
  133. package/dist/viewport-layout.d.ts.map +1 -1
  134. package/dist/viewport-requests.d.ts +1 -8
  135. package/dist/viewport-requests.d.ts.map +1 -1
  136. package/dist/virtual-layout.d.ts +1 -118
  137. package/dist/virtual-layout.d.ts.map +1 -1
  138. package/package.json +19 -2
  139. package/styles.css +167 -38
  140. package/dist/core-D01wEe-7.js +0 -897
  141. package/dist/core-D01wEe-7.js.map +0 -1
@@ -1,897 +0,0 @@
1
- //#region src/column-pinning.ts
2
- function e(e) {
3
- return e === "left" || e === "right" ? e : void 0;
4
- }
5
- function t(e, t) {
6
- let n = e.filter((e) => e.pinned === "left"), r = e.filter((e) => e.pinned === void 0), i = e.filter((e) => e.pinned === "right"), a = [], o = [], s = [...n], c = [...i], l = Number.isFinite(t) ? Math.max(0, t) : 0, u = l < 48 ? 0 : l - 48, d = (e) => e.reduce((e, t) => e + t.columnWidths.reduce((e, t) => e + Math.max(0, t), 0), 0);
7
- for (; d(s) + d(c) > u;) if (d(s) > d(c) && s.length > 0) a.unshift(s.pop());
8
- else if (c.length > 0) o.push(c.shift());
9
- else if (s.length > 0) a.unshift(s.pop());
10
- else break;
11
- let f = [
12
- ...s,
13
- ...a,
14
- ...r,
15
- ...o,
16
- ...c
17
- ], p = /* @__PURE__ */ new Map(), m = 0;
18
- for (let e of s) for (let t = 0; t < e.columnIds.length; t += 1) {
19
- let n = e.columnIds[t];
20
- p.set(n, {
21
- offset: m,
22
- pinned: "left"
23
- }), m += Math.max(0, e.columnWidths[t] ?? 0);
24
- }
25
- let h = s.at(-1)?.columnIds.at(-1);
26
- h && p.set(h, {
27
- ...p.get(h),
28
- boundary: !0
29
- });
30
- let g = 0;
31
- for (let e = c.length - 1; e >= 0; --e) {
32
- let t = c[e];
33
- for (let e = t.columnIds.length - 1; e >= 0; --e) {
34
- let n = t.columnIds[e];
35
- p.set(n, {
36
- offset: g,
37
- pinned: "right"
38
- }), g += Math.max(0, t.columnWidths[e] ?? 0);
39
- }
40
- }
41
- let _ = c[0]?.columnIds[0];
42
- _ && p.set(_, {
43
- ...p.get(_),
44
- boundary: !0
45
- });
46
- for (let e of [
47
- ...a,
48
- ...r,
49
- ...o
50
- ]) for (let t of e.columnIds) p.set(t, {});
51
- return {
52
- columns: p,
53
- orderedColumnIds: f.flatMap((e) => [...e.columnIds])
54
- };
55
- }
56
- function n(e, t, n, r, i = 48) {
57
- let a = e.find((e) => e.id === n);
58
- if (!a?.pinned || a.columnIds.length === 0 || a.columnIds.some((e) => t.columns.get(e)?.pinned !== a.pinned)) return;
59
- let o = e.reduce((e, n) => n.id === a.id || !n.pinned || n.columnIds.some((e) => t.columns.get(e)?.pinned !== n.pinned) ? e : e + n.columnWidths.reduce((e, t) => e + (Number.isFinite(t) ? Math.max(0, t) : 0), 0), 0);
60
- return Math.max(0, (Number.isFinite(r) ? Math.max(0, r) : 0) - (Number.isFinite(i) ? Math.max(0, i) : 48) - o);
61
- }
62
- function r(e, t, n) {
63
- let r = Math.min(e.orderedColumnIds.length, Math.max(t, t + Math.max(1, Math.floor(n)))), i = [];
64
- for (let n = Math.max(0, t); n < r; n += 1) {
65
- let t = e.orderedColumnIds[n], r = t ? e.columns.get(t) ?? {} : {}, a = i.at(-1);
66
- if (a && a.pinned === r.pinned) {
67
- a.colSpan += 1, r.pinned === "right" && (a.offset = r.offset);
68
- continue;
69
- }
70
- i.push({
71
- boundary: r.boundary,
72
- colSpan: 1,
73
- offset: r.offset,
74
- pinned: r.pinned,
75
- startIndex: n
76
- });
77
- }
78
- return i;
79
- }
80
- function i(e, t) {
81
- return t;
82
- }
83
- function a(e) {
84
- return e;
85
- }
86
- function o(e) {
87
- return e.map((e) => ({
88
- ...e,
89
- id: e.id ?? e.field
90
- }));
91
- }
92
- function s(e, t = []) {
93
- let n = new Set(e.map((e) => e.id)), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), a = [];
94
- for (let e of t) {
95
- if (i.has(e.id)) continue;
96
- let t = e.children.filter((e) => !n.has(e) || r.has(e) ? !1 : (r.add(e), !0));
97
- i.add(e.id), t.length !== 0 && a.push({
98
- ...e,
99
- children: t
100
- });
101
- }
102
- return a;
103
- }
104
- function c(t, n) {
105
- let r = {};
106
- for (let i of t) r[i.id] = {
107
- hidden: n?.columns?.[i.id]?.hidden ?? i.hidden,
108
- pinned: e(n === void 0 ? i.pinned : n.columns?.[i.id]?.pinned),
109
- width: n?.columns?.[i.id]?.width ?? i.width
110
- };
111
- return r;
112
- }
113
- function l(t, n) {
114
- let r = {};
115
- for (let i of t) r[i.id] = {
116
- hidden: n?.groups?.[i.id]?.hidden ?? i.hidden,
117
- pinned: e(n === void 0 ? i.pinned : n.groups?.[i.id]?.pinned)
118
- };
119
- return r;
120
- }
121
- function u(e) {
122
- let t = /* @__PURE__ */ new Map();
123
- for (let n of e) for (let e of n.children) t.set(e, n.id);
124
- return t;
125
- }
126
- function d(e, t) {
127
- return e.find((e) => e.id === t);
128
- }
129
- function f(t, n, r = []) {
130
- let i = new Set(t.map((e) => e.id)), a = (n?.order ?? []).filter((e) => i.has(e)), o = t.map((e) => e.id).filter((e) => !a.includes(e)), s = [...a, ...o], c = new Map(t.map((e) => [e.id, e])), l = u(r), d = new Map(r.map((e) => [e.id, e])), f = (t) => !l.has(t) && e(n === void 0 ? c.get(t)?.pinned : n.columns?.[t]?.pinned) !== void 0, p = (t) => e(n === void 0 ? d.get(t)?.pinned : n.groups?.[t]?.pinned) !== void 0, m = (e) => {
131
- let t = /* @__PURE__ */ new Set(), n = [];
132
- for (let r of e) {
133
- let i = l.get(r);
134
- if (!i) {
135
- n.push({
136
- columnIds: [r],
137
- key: `column:${r}`,
138
- locked: c.get(r)?.lockPosition === !0 || f(r)
139
- });
140
- continue;
141
- }
142
- if (t.has(i)) continue;
143
- let a = d.get(i);
144
- if (!a) {
145
- n.push({
146
- columnIds: [r],
147
- key: `column:${r}`,
148
- locked: c.get(r)?.lockPosition === !0 || f(r)
149
- });
150
- continue;
151
- }
152
- let o = e.filter((e) => a.children.includes(e));
153
- n.push({
154
- columnIds: o,
155
- key: `group:${i}`,
156
- locked: a.lockPosition || p(i) || o.some((e) => c.get(e)?.lockPosition === !0)
157
- }), t.add(i);
158
- }
159
- return n;
160
- }, h = m(t.map((e) => e.id)), g = m(s), _ = new Map(h.map((e) => [e.key, e])), v = /* @__PURE__ */ new Map(), y = 0;
161
- for (let e of h) v.set(e.key, y), e.locked && (y += 1);
162
- let b = Array.from({ length: y + 1 }, () => []), x = new Map(g.map((e) => [e.key, e]));
163
- for (let e of g) {
164
- let t = _.get(e.key);
165
- !t || t.locked || b[v.get(e.key) ?? 0]?.push(e);
166
- }
167
- let S = [], C = 0;
168
- for (let e of h) e.locked && (S.push(...b[C] ?? []), S.push(x.get(e.key) ?? e), C += 1);
169
- return S.push(...b[C] ?? []), S.flatMap((e) => {
170
- let t = _.get(e.key);
171
- if (!t || e.columnIds.length === 1) return e.columnIds;
172
- let n = new Set(t.columnIds.filter((e) => c.get(e)?.lockPosition));
173
- if (n.size === 0) return e.columnIds;
174
- let r = /* @__PURE__ */ new Map(), i = 0;
175
- for (let e of t.columnIds) r.set(e, i), n.has(e) && (i += 1);
176
- let a = Array.from({ length: i + 1 }, () => []);
177
- for (let t of e.columnIds) n.has(t) || a[r.get(t) ?? 0]?.push(t);
178
- let o = [], s = 0;
179
- for (let e of t.columnIds) n.has(e) && (o.push(...a[s] ?? []), o.push(e), s += 1);
180
- return o.push(...a[s] ?? []), o;
181
- });
182
- }
183
- function p() {
184
- return {
185
- cell: null,
186
- cells: [],
187
- range: null,
188
- rowIds: []
189
- };
190
- }
191
- function m(e, t) {
192
- return e.length === t.length && e.every((e, n) => e === t[n]);
193
- }
194
- function h(e, t, n = {}) {
195
- let r = t.map(e.getRowId), i = n.resetSelection === !0 || !m(e.rowIds, r);
196
- return {
197
- ...e,
198
- rowIds: r,
199
- rows: t,
200
- selection: i ? p() : e.selection
201
- };
202
- }
203
- function g(e, t) {
204
- return e.rowIds.findIndex((e) => e === t);
205
- }
206
- function _(e, t) {
207
- return e.columns.find((e) => e.id === t);
208
- }
209
- function v(e, t) {
210
- return e.length === t.length && e.every((e, n) => e.columnId === t[n]?.columnId && e.direction === t[n]?.direction);
211
- }
212
- function y(e, t) {
213
- let n = new Set(e.filter((e) => !!e.sort).map((e) => e.id)), r = /* @__PURE__ */ new Set(), i = [];
214
- for (let e of t) !n.has(e.columnId) || r.has(e.columnId) || e.direction !== "asc" && e.direction !== "desc" || (r.add(e.columnId), i.push({
215
- columnId: e.columnId,
216
- direction: e.direction
217
- }));
218
- return i;
219
- }
220
- function b(e, t) {
221
- return t.split(".").reduce((e, t) => {
222
- if (!(typeof e != "object" || !e)) return e[t];
223
- }, e);
224
- }
225
- function x(e, t, n) {
226
- if (!e || typeof e != "object") return e;
227
- let r = t.split("."), [i] = r;
228
- if (!i) return e;
229
- if (r.length === 1) return {
230
- ...e,
231
- [i]: n
232
- };
233
- let a = { ...e }, o = a;
234
- return r.slice(0, -1).forEach((e, t) => {
235
- let n = r[t + 1], i = o[e], a = i && typeof i == "object" && !Array.isArray(i) ? { ...i } : {};
236
- o[e] = a, n && (o = a);
237
- }), o[r.at(-1)] = n, a;
238
- }
239
- function S(e, t, n, r) {
240
- let i = e.rowIds.indexOf(n);
241
- return {
242
- column: {
243
- definition: r,
244
- field: r.field,
245
- id: r.id,
246
- index: e.columns.findIndex((e) => e.id === r.id),
247
- label: r.label
248
- },
249
- row: {
250
- data: t,
251
- dataIndex: i,
252
- disabled: !1,
253
- id: n,
254
- index: i,
255
- selected: e.selection.rowIds.includes(n)
256
- },
257
- selection: { selectedRowCount: e.selection.rowIds.length },
258
- value: q(e, t, r.id)
259
- };
260
- }
261
- function C(e, t) {
262
- return e === void 0 ? !0 : typeof e == "boolean" ? e : e(t);
263
- }
264
- function w(e, t, n, r) {
265
- let i = S(e, t, n, r), a = r.cell?.props;
266
- return typeof a == "function" ? a(i) : a;
267
- }
268
- function T(e, t, n = e.rowIds) {
269
- let r = G(e), i = n.indexOf(t.anchor.rowId), a = n.indexOf(t.focus.rowId), o = r.findIndex((e) => e.id === t.anchor.columnId), s = r.findIndex((e) => e.id === t.focus.columnId);
270
- return i < 0 || a < 0 || o < 0 || s < 0 ? null : {
271
- columnEnd: Math.max(o, s),
272
- columnStart: Math.min(o, s),
273
- rowEnd: Math.max(i, a),
274
- rowIds: n,
275
- rowStart: Math.min(i, a),
276
- visibleColumns: r
277
- };
278
- }
279
- function E(e, t) {
280
- return e && typeof e == "object" && "id" in e ? {
281
- ...e,
282
- id: t
283
- } : e;
284
- }
285
- function ee(e, t) {
286
- let n = 1, r = `${String(t)}-copy-${n}`, i = new Set(e.map(String));
287
- for (; i.has(r);) n += 1, r = `${String(t)}-copy-${n}`;
288
- return r;
289
- }
290
- function D(e, t, n, r, i) {
291
- if (t === void 0) return !1;
292
- let a = S(e, t, n, r), o = w(e, t, n, r);
293
- return o?.disabled !== void 0 && C(o.disabled, a) === !0 ? !1 : C(i === "copy" ? o?.copyable : o?.pasteable, a);
294
- }
295
- function te(e, t) {
296
- return typeof e == "number" && typeof t == "number" ? e - t : String(e ?? "").localeCompare(String(t ?? ""));
297
- }
298
- function O({ columnLayout: e, columnGroups: t, columns: n, getRowId: r = i, pagination: u, rows: d, showHeader: m = !0, sort: h = null, sortModel: g, theme: _ = {} }) {
299
- let v = a(d), b = o(n), x = s(b, t), S = y(b, g ?? (h ? [h] : []));
300
- return {
301
- columnOrder: f(b, e, x),
302
- columnGroups: x,
303
- columnGroupState: l(x, e),
304
- columns: b,
305
- columnState: c(b, e),
306
- getRowId: r,
307
- pagination: {
308
- pageIndex: u?.pageIndex ?? 0,
309
- pageSize: u?.pageSize ?? Math.max(v.length, 1)
310
- },
311
- rowIds: v.map(r),
312
- rows: v,
313
- selection: p(),
314
- showHeader: m,
315
- sort: S[0] ?? null,
316
- sortModel: S,
317
- theme: _
318
- };
319
- }
320
- function ne(e, t) {
321
- return t ? e.rows.filter(t) : [...e.rows];
322
- }
323
- function re(e, t) {
324
- return h(e, a(t), { resetSelection: !0 });
325
- }
326
- function k(e, t) {
327
- return h(e, [...e.rows, ...t]);
328
- }
329
- function A(e, t) {
330
- let n = new Map(t.map((e) => [e.id, e.patch]));
331
- return h(e, e.rows.map((t, r) => {
332
- let i = e.rowIds[r], a = i === void 0 ? void 0 : n.get(i);
333
- return a ? typeof a == "function" ? a(t) : {
334
- ...t,
335
- ...a
336
- } : t;
337
- }));
338
- }
339
- function ie(e, t) {
340
- let n = new Set(t);
341
- return h(e, e.rows.filter((t, r) => {
342
- let i = e.rowIds[r];
343
- return i === void 0 || !n.has(i);
344
- }));
345
- }
346
- function ae(e, t) {
347
- return {
348
- ...e,
349
- theme: {
350
- ...e.theme,
351
- ...t
352
- }
353
- };
354
- }
355
- function oe(e, t) {
356
- return {
357
- ...e,
358
- showHeader: t
359
- };
360
- }
361
- function se(e, t) {
362
- return {
363
- ...e,
364
- pagination: {
365
- pageIndex: t.pageIndex ?? e.pagination.pageIndex,
366
- pageSize: t.pageSize ?? e.pagination.pageSize
367
- }
368
- };
369
- }
370
- function j(e, t) {
371
- return M(e, t ? [t] : []);
372
- }
373
- function M(e, t) {
374
- let n = y(e.columns, t), r = n[0] ?? null;
375
- return v(e.sortModel, n) ? e : {
376
- ...e,
377
- sort: r,
378
- sortModel: n
379
- };
380
- }
381
- function ce(e) {
382
- return M(e, []);
383
- }
384
- function le(e, t, n) {
385
- return {
386
- ...e,
387
- columnState: {
388
- ...e.columnState,
389
- [t]: {
390
- ...e.columnState[t],
391
- width: n
392
- }
393
- }
394
- };
395
- }
396
- function ue(e, t, n) {
397
- return {
398
- ...e,
399
- columnState: {
400
- ...e.columnState,
401
- [t]: {
402
- ...e.columnState[t],
403
- hidden: n
404
- }
405
- }
406
- };
407
- }
408
- function de(e, t, n) {
409
- return d(e.columnGroups, t) ? {
410
- ...e,
411
- columnGroupState: {
412
- ...e.columnGroupState,
413
- [t]: {
414
- ...e.columnGroupState[t],
415
- hidden: n
416
- }
417
- }
418
- } : e;
419
- }
420
- function fe(e, t) {
421
- return e.columnState[t.id]?.width ?? t.width ?? 100;
422
- }
423
- function N(e) {
424
- return Math.max(88, e.minWidth ?? 88);
425
- }
426
- function P(e) {
427
- return e.maxWidth ?? Infinity;
428
- }
429
- function F(e, t, n) {
430
- return Math.min(n, Math.max(t, e));
431
- }
432
- function I(e, t, n) {
433
- let r = t.map((t) => F(fe(e, t), N(t), P(t))), i = new Set(t.map((e, t) => t)), a = t.map(N), o = t.map(P), s = F(n, a.reduce((e, t) => e + t, 0), o.reduce((e, t) => e + t, 0));
434
- for (; i.size > 0;) {
435
- let e = s - r.reduce((e, t) => e + t, 0);
436
- if (Math.abs(e) < .001) break;
437
- let t = [...i], n = t.reduce((e, t) => e + Math.max(r[t] ?? 0, 0), 0), c = !1;
438
- for (let s of t) {
439
- let l = r[s] ?? 0, u = l + e * (n > 0 ? l / n : 1 / t.length), d = F(u, a[s] ?? 0, o[s] ?? Infinity);
440
- r[s] = d, Math.abs(d - u) > .001 && (i.delete(s), c = !0);
441
- }
442
- if (!c) break;
443
- }
444
- return r;
445
- }
446
- function L(e, t, n) {
447
- let r = d(e.columnGroups, t);
448
- if (!r || e.columnGroupState[r.id]?.hidden === !0) return e;
449
- let i = r.children.map((t) => _(e, t)).filter((e) => !!e).filter((t) => e.columnState[t.id]?.hidden !== !0);
450
- if (i.length === 0) return e;
451
- let a = I(e, i, n), o = { ...e.columnState };
452
- return i.forEach((e, t) => {
453
- o[e.id] = {
454
- ...o[e.id],
455
- width: a[t]
456
- };
457
- }), {
458
- ...e,
459
- columnState: o
460
- };
461
- }
462
- function R(e, t) {
463
- let n = new Map(e.columnOrder.map((e, t) => [e, t])), r = new Map(t.map((e, t) => [e, t])), i = u(e.columnGroups);
464
- for (let t of e.columns) if ((t.lockPosition || !i.has(t.id) && e.columnState[t.id]?.pinned !== void 0) && n.get(t.id) !== r.get(t.id)) return !0;
465
- for (let t of e.columnGroups) {
466
- if (!t.lockPosition && e.columnGroupState[t.id]?.pinned === void 0) continue;
467
- let i = t.children.map((e) => n.get(e)).filter((e) => e !== void 0).sort((e, t) => e - t), a = t.children.map((e) => r.get(e)).filter((e) => e !== void 0).sort((e, t) => e - t);
468
- if (i.length !== a.length || i.some((e, t) => e !== a[t])) return !0;
469
- }
470
- return !1;
471
- }
472
- function z(e, t, n) {
473
- let r = _(e, t), i = u(e.columnGroups).get(t);
474
- if (!r || r.lockPosition || !i && e.columnState[t]?.pinned !== void 0) return e;
475
- u(e.columnGroups);
476
- let a = e.columnOrder.filter((e) => e !== t);
477
- if (a.length === e.columnOrder.length) return e;
478
- let o = Math.max(0, Math.min(n, a.length));
479
- if (i) {
480
- let t = d(e.columnGroups, i);
481
- if (!t) return e;
482
- let n = a.filter((e) => t.children.includes(e)), r = a.findIndex((e) => t.children.includes(e)), s = r + n.length;
483
- if (o < r || o > s) return e;
484
- } else if (e.columnGroups.length > 0) for (let t of e.columnGroups) {
485
- let n = a.filter((e) => t.children.includes(e));
486
- if (n.length === 0) continue;
487
- let r = a.findIndex((e) => t.children.includes(e)), i = r + n.length;
488
- if (o > r && o < i) return e;
489
- }
490
- return a.splice(o, 0, t), R(e, a) || a.every((t, n) => t === e.columnOrder[n]) ? e : {
491
- ...e,
492
- columnOrder: a
493
- };
494
- }
495
- function B(e, t, n) {
496
- let r = d(e.columnGroups, t);
497
- if (!r || r.lockPosition || e.columnGroupState[t]?.pinned !== void 0) return e;
498
- let i = e.columnOrder.filter((e) => r.children.includes(e));
499
- if (i.length === 0) return e;
500
- let a = e.columnOrder.filter((e) => !r.children.includes(e)), o = Math.max(0, Math.min(n, a.length)), s = [
501
- ...a.slice(0, o),
502
- ...i,
503
- ...a.slice(o)
504
- ];
505
- return R(e, s) || s.every((t, n) => t === e.columnOrder[n]) ? e : {
506
- ...e,
507
- columnOrder: s
508
- };
509
- }
510
- function V(e) {
511
- let t = e.columnGroups.length === 0 ? void 0 : Object.fromEntries(e.columnGroups.map((t) => [t.id, { ...e.columnGroupState[t.id] }]));
512
- return {
513
- columns: { ...e.columnState },
514
- ...t ? { groups: t } : {},
515
- order: [...e.columnOrder]
516
- };
517
- }
518
- function pe(e, t) {
519
- return {
520
- ...e,
521
- columnOrder: f(e.columns, t, e.columnGroups),
522
- columnGroupState: l(e.columnGroups, t),
523
- columnState: c(e.columns, t)
524
- };
525
- }
526
- function me(e, t, n = {}) {
527
- let r = e.selection.rowIds, i = r.includes(t), a = n.multi ? n.toggle && i ? r.filter((e) => e !== t) : i ? r : [...r, t] : n.toggle && i ? [] : [t];
528
- return {
529
- ...e,
530
- selection: {
531
- ...e.selection,
532
- rowIds: a
533
- }
534
- };
535
- }
536
- function he(e, t) {
537
- return {
538
- ...e,
539
- selection: {
540
- ...e.selection,
541
- rowIds: [...t]
542
- }
543
- };
544
- }
545
- function H(e, t) {
546
- return e.rowId === t.rowId && e.columnId === t.columnId;
547
- }
548
- function ge(e, t, n = {}) {
549
- let r = e.selection.cells ?? (e.selection.cell ? [e.selection.cell] : []), i = r.some((e) => H(e, t)), a = n.multi ? n.toggle && i ? r.filter((e) => !H(e, t)) : i ? r : [...r, t] : n.toggle && i ? [] : [t], o = a.some((e) => H(e, t)) ? t : a.at(-1) ?? null;
550
- return {
551
- ...e,
552
- selection: {
553
- ...e.selection,
554
- cell: o,
555
- cells: a,
556
- range: null
557
- }
558
- };
559
- }
560
- function _e(e, t) {
561
- return {
562
- ...e,
563
- selection: {
564
- ...e.selection,
565
- cell: t.focus,
566
- cells: [],
567
- range: t
568
- }
569
- };
570
- }
571
- function ve(e) {
572
- return {
573
- ...e,
574
- selection: {
575
- ...e.selection,
576
- range: null
577
- }
578
- };
579
- }
580
- function ye(e) {
581
- return {
582
- ...e,
583
- selection: p()
584
- };
585
- }
586
- function be(e, t) {
587
- return e.selection.rowIds.includes(t);
588
- }
589
- function U(e, t) {
590
- let n = e.selection.cells;
591
- return n && n.length > 0 ? n.some((e) => H(e, t)) : e.selection.cell !== null && H(e.selection.cell, t);
592
- }
593
- function W(e, t = e.selection.range, n = e.rowIds) {
594
- if (!t) return [];
595
- let r = G(e), i = T(e, t, n);
596
- if (!i) return [];
597
- let a = [];
598
- for (let e = i.rowStart; e <= i.rowEnd; e += 1) {
599
- let t = i.rowIds[e];
600
- if (t !== void 0) for (let e = i.columnStart; e <= i.columnEnd; e += 1) {
601
- let n = r[e];
602
- n && a.push({
603
- columnId: n.id,
604
- rowId: t
605
- });
606
- }
607
- }
608
- return a;
609
- }
610
- function xe(e, t, n = e.rowIds) {
611
- return W(e, e.selection.range, n).some((e) => e.rowId === t.rowId && e.columnId === t.columnId);
612
- }
613
- function G(e) {
614
- let t = u(e.columnGroups), n = new Map(e.columnGroups.map((e) => [e.id, e])), r = /* @__PURE__ */ new Set(), i = [];
615
- for (let a of e.columnOrder) {
616
- let o = _(e, a);
617
- if (!o || e.columnState[o.id]?.hidden === !0) continue;
618
- let s = t.get(o.id);
619
- if (!s) {
620
- i.push({
621
- columns: [o],
622
- pinned: e.columnState[o.id]?.pinned
623
- });
624
- continue;
625
- }
626
- if (r.has(s) || e.columnGroupState[s]?.hidden === !0) continue;
627
- let c = n.get(s);
628
- if (!c) continue;
629
- let l = e.columnOrder.filter((e) => c.children.includes(e)).map((t) => _(e, t)).filter((t) => !!t && e.columnState[t.id]?.hidden !== !0);
630
- l.length > 0 && i.push({
631
- columns: l,
632
- pinned: e.columnGroupState[s]?.pinned
633
- }), r.add(s);
634
- }
635
- return [
636
- "left",
637
- void 0,
638
- "right"
639
- ].flatMap((e) => i.filter((t) => t.pinned === e).flatMap((e) => e.columns));
640
- }
641
- function Se(e) {
642
- let t = G(e);
643
- if (e.columnGroups.length === 0) return [t.map((e) => ({
644
- colSpan: 1,
645
- column: e,
646
- columnId: e.id,
647
- kind: "column",
648
- rowSpan: 1
649
- }))];
650
- new Set(t.map((e) => e.id));
651
- let n = u(e.columnGroups), r = new Map(e.columnGroups.map((e) => [e.id, e])), i = /* @__PURE__ */ new Set(), a = [], o = [];
652
- for (let e of t) {
653
- let s = e.id, c = n.get(s);
654
- if (!c) {
655
- a.push({
656
- colSpan: 1,
657
- column: e,
658
- columnId: e.id,
659
- kind: "column",
660
- rowSpan: 2
661
- });
662
- continue;
663
- }
664
- if (i.has(c)) continue;
665
- let l = r.get(c);
666
- if (!l) continue;
667
- let u = t.filter((e) => l.children.includes(e.id));
668
- if (u.length === 0) {
669
- i.add(c);
670
- continue;
671
- }
672
- a.push({
673
- colSpan: u.length,
674
- group: l,
675
- groupId: c,
676
- kind: "group",
677
- rowSpan: 1
678
- }), o.push(...u.map((e) => ({
679
- colSpan: 1,
680
- column: e,
681
- columnId: e.id,
682
- groupId: c,
683
- kind: "column",
684
- rowSpan: 1
685
- }))), i.add(c);
686
- }
687
- return [a, o];
688
- }
689
- function K(e, t = e.rows.map((e, t) => t)) {
690
- let n = [...t];
691
- return e.sortModel.length === 0 ? n : [...n].sort((t, n) => {
692
- let r = e.rows[t], i = e.rows[n];
693
- for (let t of e.sortModel) {
694
- let n = _(e, t.columnId);
695
- if (!n?.sort) continue;
696
- let a = q(e, r, n.id), o = q(e, i, n.id), s = typeof n.sort == "function" ? n.sort(a, o, r, i) : te(a, o);
697
- if (s !== 0) return t.direction === "desc" ? s * -1 : s;
698
- }
699
- return t - n;
700
- });
701
- }
702
- function Ce(e, t) {
703
- let n = j(e, t);
704
- return h(n, K(n).map((e) => n.rows[e]));
705
- }
706
- function we(e, t = {}) {
707
- let n = t.pageIndex ?? e.pagination.pageIndex, r = t.pageSize ?? e.pagination.pageSize, i = Math.max(0, n) * Math.max(1, r);
708
- return K(e).slice(i, i + Math.max(1, r)).map((t) => e.rows[t]);
709
- }
710
- function Te(e, { overscan: t = 2, rowHeight: n, scrollTop: r, viewportHeight: i }) {
711
- let a = Math.max(1, n), o = K(e), s = o.length, c = s * a, l = Math.max(0, Math.floor(Math.max(0, r) / a) - Math.max(0, t)), u = Math.min(s, Math.ceil((Math.max(0, r) + Math.max(0, i)) / a) + Math.max(0, t)), d = l * a;
712
- return {
713
- bottomSpacerHeight: Math.max(0, c - d - (u - l) * a),
714
- endIndex: u,
715
- rows: o.slice(l, u).map((t) => e.rows[t]),
716
- startIndex: l,
717
- topSpacerHeight: d,
718
- totalHeight: c
719
- };
720
- }
721
- function Ee(e, t, n) {
722
- let r = g(e, t);
723
- if (r < 0) return e;
724
- let i = [...e.rows], [a] = i.splice(r, 1);
725
- return a === void 0 ? e : (i.splice(Math.max(0, Math.min(n, i.length)), 0, a), h(e, i));
726
- }
727
- function De(e, t) {
728
- let n = g(e, t.sourceRowId), r = t.targetRowId === void 0 ? -1 : g(e, t.targetRowId);
729
- if (n < 0 || t.targetRowId === t.sourceRowId || t.targetRowId !== void 0 && r < 0) return e;
730
- let i = e.rows[n];
731
- if (i === void 0) return e;
732
- let a = t.getRowGroupId(i, n), o = a !== t.targetGroupId;
733
- if (o && typeof t.setRowGroupId != "function") return e;
734
- if (r >= 0) {
735
- let n = e.rows[r];
736
- if (n === void 0 || t.getRowGroupId(n, r) !== t.targetGroupId) return e;
737
- }
738
- let s = o ? t.setRowGroupId({
739
- fromGroupId: a,
740
- row: i,
741
- rowId: t.sourceRowId,
742
- toGroupId: t.targetGroupId
743
- }) : i, c = [...e.rows];
744
- c.splice(n, 1);
745
- let l;
746
- if (t.targetRowId !== void 0) l = Math.max(0, Math.min(r, c.length));
747
- else {
748
- let e = -1;
749
- c.forEach((n, r) => {
750
- t.getRowGroupId(n, r) === t.targetGroupId && (e = r);
751
- }), l = e < 0 ? c.length : e + 1;
752
- }
753
- return c.splice(l, 0, s), h(e, c);
754
- }
755
- function q(e, t, n) {
756
- let r = _(e, n);
757
- return r ? b(t, r.field) : void 0;
758
- }
759
- function Oe(e, t, n, r) {
760
- let i = q(e, t, r.id);
761
- return r.cell?.format ? r.cell.format(S(e, t, n, r)) : i == null ? "" : String(i);
762
- }
763
- function ke(e, t, n, r) {
764
- let i = w(e, t, n, r);
765
- return i?.disabled !== void 0 && C(i.disabled, S(e, t, n, r)) === !0;
766
- }
767
- function Ae(e, t, n, r) {
768
- let i = S(e, t, n, r), a = w(e, t, n, r)?.className;
769
- return typeof a == "function" ? a(i) : a;
770
- }
771
- function je(e, t, n, r) {
772
- let i = S(e, t, n, r), a = w(e, t, n, r)?.style;
773
- return typeof a == "function" ? a(i) : a;
774
- }
775
- function Me(e, t) {
776
- let n = e.rows[g(e, t)];
777
- if (n === void 0) throw Error(`Cannot copy missing row: ${String(t)}`);
778
- return {
779
- kind: "row",
780
- row: n,
781
- text: JSON.stringify(n)
782
- };
783
- }
784
- function Ne(e, t, n) {
785
- if (n.mode === "append") {
786
- let r = n.getNewRowId?.(t.row);
787
- return k(e, [r === void 0 ? t.row : E(t.row, r)]);
788
- }
789
- if (n.mode === "insert-after") {
790
- let r = g(e, n.targetRowId);
791
- if (r < 0) return e;
792
- let i = e.getRowId(t.row, r), a = n.getPastedRowId?.(t.row) ?? ee(e.rowIds, i), o = E(t.row, a), s = [...e.rows];
793
- return s.splice(r + 1, 0, o), h(e, s);
794
- }
795
- return A(e, [{
796
- id: n.targetRowId,
797
- patch: E(t.row, n.targetRowId)
798
- }]);
799
- }
800
- function J(e, { columnId: t, rowId: n }) {
801
- let r = e.rows[g(e, n)], i = _(e, t);
802
- if (!i || !D(e, r, n, i, "copy")) return null;
803
- let a = q(e, r, t);
804
- return {
805
- kind: "cell",
806
- text: a == null ? "" : String(a),
807
- value: a
808
- };
809
- }
810
- function Y(e, { columnId: t, rowId: n }, r) {
811
- let i = _(e, t), a = e.rows[g(e, n)];
812
- return !r || !i || !D(e, a, n, i, "paste") ? e : A(e, [{
813
- id: n,
814
- patch: (e) => x(e, i.field, r.value)
815
- }]);
816
- }
817
- function Pe(e, t = e.selection.range, n = e.rowIds) {
818
- if (!t) return null;
819
- let r = T(e, t, n);
820
- if (!r) return null;
821
- let i = [];
822
- for (let t = r.rowStart; t <= r.rowEnd; t += 1) {
823
- let n = r.rowIds[t], a = n === void 0 ? -1 : g(e, n), o = e.rows[a], s = [];
824
- for (let t = r.columnStart; t <= r.columnEnd; t += 1) {
825
- let i = r.visibleColumns[t];
826
- if (o === void 0 || n === void 0 || !i || !D(e, o, n, i, "copy")) {
827
- s.push(null);
828
- continue;
829
- }
830
- let a = q(e, o, i.id);
831
- s.push({
832
- columnId: i.id,
833
- text: a == null ? "" : String(a),
834
- value: a
835
- });
836
- }
837
- i.push(s);
838
- }
839
- return {
840
- kind: "cell-range",
841
- rows: i,
842
- text: i.map((e) => e.map((e) => e?.text ?? "").join(" ")).join("\n")
843
- };
844
- }
845
- function Fe(e, t, n, r = e.rowIds) {
846
- if (!n) return e;
847
- let i = G(e), a = r.indexOf(t.rowId), o = i.findIndex((e) => e.id === t.columnId), s = [...e.rows];
848
- if (a < 0 || o < 0) return e;
849
- let c = !1;
850
- return n.rows.forEach((t, n) => {
851
- let l = r[a + n], u = l === void 0 ? -1 : g(e, l), d = s[u];
852
- d !== void 0 && l !== void 0 && t.forEach((t, n) => {
853
- let r = i[o + n];
854
- !t || !r || !D(e, d, l, r, "paste") || (s[u] = x(s[u], r.field, t.value), c = !0);
855
- });
856
- }), c ? h(e, s) : e;
857
- }
858
- function Ie(e, { source: t, target: n }) {
859
- let r = J(e, t);
860
- return r ? W(e, n).reduce((e, t) => Y(e, t, r), e) : e;
861
- }
862
- function X({ columnOrder: e, columns: t }) {
863
- if (!e?.length) return t;
864
- let n = new Map(t.map((e) => [e.id, e]));
865
- return e.map((e) => n.get(e)).filter((e) => !!e);
866
- }
867
- function Le(e) {
868
- return e == null ? "" : typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" || typeof e == "bigint" ? String(e) : JSON.stringify(e);
869
- }
870
- function Z(e) {
871
- let t = Le(e);
872
- return /[",\r\n]/u.test(t) ? `"${t.replaceAll("\"", "\"\"")}"` : t;
873
- }
874
- function Q(e, t) {
875
- return e.id && t?.[e.id] !== void 0 ? t[e.id] : e.label ?? e.id ?? "";
876
- }
877
- function $(e, t, n, r) {
878
- return r === "formatted" && e.format ? e.format(t, n) : e.value(t, n);
879
- }
880
- function Re({ columnOrder: e, columns: t, headerOverrides: n, rows: r, valueSource: i = "raw" }) {
881
- let a = X({
882
- columnOrder: e,
883
- columns: t
884
- });
885
- return [a.map((e) => Z(Q(e, n))).join(","), ...r.map((e, t) => a.map((n) => Z($(n, e, t, i))).join(","))].join("\n");
886
- }
887
- function ze({ columnOrder: e, columns: t, headerOverrides: n, rows: r, valueSource: i = "raw" }) {
888
- let a = X({
889
- columnOrder: e,
890
- columns: t
891
- }), o = r.map((e, t) => Object.fromEntries(a.map((r) => [Q(r, n), $(r, e, t, i)])));
892
- return JSON.stringify(o, null, 2);
893
- }
894
- //#endregion
895
- export { r as $, Ee as A, he as B, G as C, be as D, U as E, ne as F, le as G, de as H, re as I, M as J, oe as K, ge as L, Y as M, Fe as N, z as O, Ne as P, A as Q, _e as R, Te as S, xe as T, L as U, V, ue as W, ae as X, j as Y, Ce as Z, q as _, ce as a, W as b, Me as c, Re as d, n as et, ze as f, je as g, Ae as h, ye as i, De as j, B as k, O as l, Oe as m, pe as n, J as o, Ie as p, se as q, ve as r, Pe as s, k as t, t as tt, ie as u, Se as v, ke as w, K as x, we as y, me as z };
896
-
897
- //# sourceMappingURL=core-D01wEe-7.js.map