comins-table 0.1.11 → 0.2.1

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