mig-schema-table 5.0.7 → 5.0.8
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.
- package/dist/mig-schema-table.es.js +166 -167
- package/dist/mig-schema-table.umd.js +1 -1
- package/package.json +10 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
1
|
+
import { jsx as t, jsxs as W, Fragment as wt } from "react/jsx-runtime";
|
|
2
2
|
import * as Ft from "react";
|
|
3
3
|
import e from "react";
|
|
4
4
|
import { createPortal as jt } from "react-dom";
|
|
@@ -29,7 +29,7 @@ function ft(n, ...o) {
|
|
|
29
29
|
u = u.replace(`{${f}}`, `${p}`);
|
|
30
30
|
}), u;
|
|
31
31
|
}
|
|
32
|
-
const
|
|
32
|
+
const ee = "SELECT_ALL_COLUMN_NAME", bt = 40, vt = "dd MMM yyyy", Je = "dd MMM yyyy HH:mm", kt = 25, gt = 50, en = 3;
|
|
33
33
|
var be = /* @__PURE__ */ ((n) => (n.GT = "GT", n.LT = "LT", n.EQ = "EQ", n))(be || {}), $e = /* @__PURE__ */ ((n) => (n.UNAVAILABLE = "UNAVAILABLE", n.AVAILABLE = "AVAILABLE", n.ACTIVE = "ACTIVE", n))($e || {});
|
|
34
34
|
const Me = Ft.createContext({
|
|
35
35
|
checkedIndexes: [],
|
|
@@ -61,25 +61,25 @@ const Me = Ft.createContext({
|
|
|
61
61
|
checkedIndexes: p,
|
|
62
62
|
columnNames: f,
|
|
63
63
|
config: l,
|
|
64
|
-
disabledCheckedIndexes:
|
|
64
|
+
disabledCheckedIndexes: O,
|
|
65
65
|
displayTimezone: _,
|
|
66
|
-
getRowClassName:
|
|
67
|
-
getRowSelected:
|
|
66
|
+
getRowClassName: R,
|
|
67
|
+
getRowSelected: I,
|
|
68
68
|
isItemLoaded: T,
|
|
69
|
-
lastCheckChangedRowIndex:
|
|
69
|
+
lastCheckChangedRowIndex: $,
|
|
70
70
|
onRowClick: M,
|
|
71
71
|
onRowDoubleClick: y,
|
|
72
72
|
properties: S,
|
|
73
|
-
setCheckedIndexes:
|
|
74
|
-
setLastCheckChangedRowIndex:
|
|
73
|
+
setCheckedIndexes: Z,
|
|
74
|
+
setLastCheckChangedRowIndex: Y,
|
|
75
75
|
sortedRenderData: D,
|
|
76
76
|
sourceData: s,
|
|
77
77
|
translate: m
|
|
78
|
-
} = e.useContext(Me), b = f[n], w = b ===
|
|
78
|
+
} = e.useContext(Me), b = f[n], w = b === ee ? tn : S[b], U = l ? l[b] : void 0, te = e.useCallback(
|
|
79
79
|
(v) => {
|
|
80
|
-
|
|
80
|
+
Z && Z((A) => A && A.includes(v) ? A.filter((E) => E !== v) : A ? [...A, v] : [v]);
|
|
81
81
|
},
|
|
82
|
-
[
|
|
82
|
+
[Z]
|
|
83
83
|
), le = T(o), ne = e.useCallback(
|
|
84
84
|
(v) => {
|
|
85
85
|
if (!s || !D || !M || !le)
|
|
@@ -105,7 +105,7 @@ const Me = Ft.createContext({
|
|
|
105
105
|
), L = D ? D[o] : void 0, { showTimezones: se, TdBody: G } = U || {}, re = e.useMemo(() => _ ? null : Te.startsWith("Europe/") ? "Asia/Jakarta" : "Europe/Amsterdam", [_]), B = e.useMemo(() => {
|
|
106
106
|
if (!L || !D)
|
|
107
107
|
return;
|
|
108
|
-
let v = b ===
|
|
108
|
+
let v = b === ee ? void 0 : L[b];
|
|
109
109
|
if (w?.format && w.format === "date-time" && se !== !1) {
|
|
110
110
|
const k = s ? s[L._index] : void 0, E = k ? k[b] : void 0, ce = E ? new Date(E) : void 0;
|
|
111
111
|
ce && re && (v = `${yt(
|
|
@@ -119,8 +119,8 @@ const Me = Ft.createContext({
|
|
|
119
119
|
`mig-schema-table__td--${o % 2 ? "odd" : "even"}`,
|
|
120
120
|
`mig-schema-table__td--prop-${b}`
|
|
121
121
|
];
|
|
122
|
-
switch (s &&
|
|
123
|
-
|
|
122
|
+
switch (s && I && I(s[L._index], L._index) && A.push("mig-schema-table__td--selected"), s && R && A.push(
|
|
123
|
+
R(s[L._index], L._index, D)
|
|
124
124
|
), w?.type) {
|
|
125
125
|
case "boolean":
|
|
126
126
|
A.push(`text-${U?.align || "center"}`);
|
|
@@ -138,8 +138,8 @@ const Me = Ft.createContext({
|
|
|
138
138
|
style: u,
|
|
139
139
|
className: A.join(" "),
|
|
140
140
|
title: v,
|
|
141
|
-
onClick: b ===
|
|
142
|
-
onDoubleClick: b ===
|
|
141
|
+
onClick: b === ee ? void 0 : ne,
|
|
142
|
+
onDoubleClick: b === ee ? void 0 : C
|
|
143
143
|
};
|
|
144
144
|
}, [
|
|
145
145
|
L,
|
|
@@ -149,8 +149,8 @@ const Me = Ft.createContext({
|
|
|
149
149
|
se,
|
|
150
150
|
o,
|
|
151
151
|
s,
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
I,
|
|
153
|
+
R,
|
|
154
154
|
n,
|
|
155
155
|
u,
|
|
156
156
|
ne,
|
|
@@ -163,8 +163,8 @@ const Me = Ft.createContext({
|
|
|
163
163
|
if (!te || !L)
|
|
164
164
|
return;
|
|
165
165
|
const A = parseInt(v.currentTarget.dataset.rowIndex);
|
|
166
|
-
if (v.shiftKey &&
|
|
167
|
-
const k = p?.includes(
|
|
166
|
+
if (v.shiftKey && $ !== void 0) {
|
|
167
|
+
const k = p?.includes($) ? $ : void 0;
|
|
168
168
|
if (k !== void 0 && D) {
|
|
169
169
|
const E = o;
|
|
170
170
|
for (const ce of Pt(
|
|
@@ -172,21 +172,21 @@ const Me = Ft.createContext({
|
|
|
172
172
|
E > k ? E + 1 : k
|
|
173
173
|
)) {
|
|
174
174
|
const me = D[ce]._index;
|
|
175
|
-
(
|
|
175
|
+
(!O || !O.includes(me)) && te(me);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
} else
|
|
179
179
|
te(L._index);
|
|
180
|
-
|
|
180
|
+
Y(A), _e.current?.focus();
|
|
181
181
|
},
|
|
182
182
|
[
|
|
183
183
|
p,
|
|
184
|
+
O,
|
|
184
185
|
$,
|
|
185
|
-
I,
|
|
186
186
|
te,
|
|
187
187
|
L,
|
|
188
188
|
o,
|
|
189
|
-
|
|
189
|
+
Y,
|
|
190
190
|
D
|
|
191
191
|
]
|
|
192
192
|
), _e = e.useRef(null);
|
|
@@ -194,7 +194,7 @@ const Me = Ft.createContext({
|
|
|
194
194
|
return null;
|
|
195
195
|
if (!T || s && !s[L._index])
|
|
196
196
|
return /* @__PURE__ */ t("div", { ...B, children: "loading" });
|
|
197
|
-
if (b ===
|
|
197
|
+
if (b === ee)
|
|
198
198
|
return /* @__PURE__ */ t("div", { ...B, onMouseDown: V, children: /* @__PURE__ */ t("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ t(
|
|
199
199
|
"input",
|
|
200
200
|
{
|
|
@@ -202,7 +202,7 @@ const Me = Ft.createContext({
|
|
|
202
202
|
type: "checkbox",
|
|
203
203
|
readOnly: !0,
|
|
204
204
|
checked: p?.includes(L._index),
|
|
205
|
-
disabled:
|
|
205
|
+
disabled: O?.includes(L._index)
|
|
206
206
|
}
|
|
207
207
|
) }) });
|
|
208
208
|
if (G && s)
|
|
@@ -215,17 +215,17 @@ const Me = Ft.createContext({
|
|
|
215
215
|
...U?.tdBodyProps
|
|
216
216
|
}
|
|
217
217
|
) });
|
|
218
|
-
const
|
|
219
|
-
return w?.format === "url" &&
|
|
218
|
+
const q = L[b];
|
|
219
|
+
return w?.format === "url" && q ? /* @__PURE__ */ t(
|
|
220
220
|
"a",
|
|
221
221
|
{
|
|
222
|
-
href:
|
|
222
|
+
href: q,
|
|
223
223
|
target: "_blank",
|
|
224
224
|
rel: "noopener noreferrer",
|
|
225
225
|
...B,
|
|
226
|
-
children:
|
|
226
|
+
children: q
|
|
227
227
|
}
|
|
228
|
-
) : /* @__PURE__ */ t("div", { ...B, children:
|
|
228
|
+
) : /* @__PURE__ */ t("div", { ...B, children: q });
|
|
229
229
|
}, pt = e.memo(nn);
|
|
230
230
|
function rn() {
|
|
231
231
|
const { checkedIndexes: n, disabledCheckedIndexes: o, sortedRenderData: u } = e.useContext(Me);
|
|
@@ -257,27 +257,27 @@ const on = ({ index: n, style: o }) => {
|
|
|
257
257
|
columnNames: p,
|
|
258
258
|
columnWidths: f,
|
|
259
259
|
config: l,
|
|
260
|
-
disabledCheckedIndexes:
|
|
260
|
+
disabledCheckedIndexes: O,
|
|
261
261
|
dropTargetIndex: _,
|
|
262
|
-
isColumnFilterable:
|
|
263
|
-
isSortable:
|
|
262
|
+
isColumnFilterable: R,
|
|
263
|
+
isSortable: I,
|
|
264
264
|
setCheckedIndexes: T,
|
|
265
|
-
properties:
|
|
265
|
+
properties: $,
|
|
266
266
|
required: M,
|
|
267
267
|
setCustomColumnNames: y,
|
|
268
268
|
setDropTargetIndex: S,
|
|
269
|
-
setFilterSortColumn:
|
|
270
|
-
setMenuConfig:
|
|
269
|
+
setFilterSortColumn: Z,
|
|
270
|
+
setMenuConfig: Y,
|
|
271
271
|
settingsStorageKey: D,
|
|
272
272
|
tableDataState: s,
|
|
273
273
|
sortedRenderData: m,
|
|
274
274
|
translate: b,
|
|
275
275
|
displayTimezone: w
|
|
276
|
-
} = e.useContext(Me), [U, te] = e.useState(!1), le = n === _, ne = Dt(), C = p[n], L = C ===
|
|
277
|
-
let re =
|
|
276
|
+
} = e.useContext(Me), [U, te] = e.useState(!1), le = n === _, ne = Dt(), C = p[n], L = C === ee ? { type: "boolean" } : $[C], se = s.sortColumn === C ? s.sortAsc : void 0, G = l ? l[C] : void 0;
|
|
277
|
+
let re = R && (L || G?.FilterMenu) && G?.isFilterable !== !1 ? $e.AVAILABLE : $e.UNAVAILABLE;
|
|
278
278
|
s.columnFilterMap && s.columnFilterMap[C] !== void 0 && (re = $e.ACTIVE);
|
|
279
279
|
const B = xt(
|
|
280
|
-
|
|
280
|
+
I,
|
|
281
281
|
L,
|
|
282
282
|
G
|
|
283
283
|
), V = [
|
|
@@ -289,28 +289,28 @@ const on = ({ index: n, style: o }) => {
|
|
|
289
289
|
B ? "mig-schema-table__th--sortable" : "mig-schema-table__th--unsortable"
|
|
290
290
|
), se !== void 0 && V.push("mig-schema-table__th--sorted"), U && V.push("mig-schema-table__th--dragging"), le && V.push("mig-schema-table__th--drop-target");
|
|
291
291
|
const { format: _e } = L || {}, {
|
|
292
|
-
align:
|
|
292
|
+
align: q,
|
|
293
293
|
defaultSortDesc: v,
|
|
294
294
|
showTimezones: A = !w,
|
|
295
295
|
title: k
|
|
296
296
|
} = G || {}, E = e.useCallback(() => {
|
|
297
297
|
if (B) {
|
|
298
298
|
if (se === void 0) {
|
|
299
|
-
|
|
299
|
+
Z(C, !v);
|
|
300
300
|
return;
|
|
301
301
|
}
|
|
302
|
-
|
|
302
|
+
Z(C, !se);
|
|
303
303
|
}
|
|
304
304
|
}, [
|
|
305
305
|
B,
|
|
306
306
|
v,
|
|
307
307
|
C,
|
|
308
|
-
|
|
308
|
+
Z,
|
|
309
309
|
se
|
|
310
310
|
]), ce = M.includes(C), me = e.useCallback(
|
|
311
311
|
(j) => {
|
|
312
312
|
const he = j.currentTarget;
|
|
313
|
-
|
|
313
|
+
Y((we) => {
|
|
314
314
|
if (we?.propName !== C)
|
|
315
315
|
return {
|
|
316
316
|
propConfig: G,
|
|
@@ -320,7 +320,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
320
320
|
};
|
|
321
321
|
});
|
|
322
322
|
},
|
|
323
|
-
[G, ce, C,
|
|
323
|
+
[G, ce, C, Y]
|
|
324
324
|
), Ce = e.useMemo(() => k !== void 0 ? k : _e === "date-time" && A ? `${b(C)} (${b(w || Te)})` : b(C), [k, _e, A, b, C, w]), oe = e.useCallback(
|
|
325
325
|
(j, he) => {
|
|
326
326
|
if (!p || !f)
|
|
@@ -364,15 +364,15 @@ const on = ({ index: n, style: o }) => {
|
|
|
364
364
|
[oe, C, S]
|
|
365
365
|
), Le = rn(), Ze = e.useCallback(() => {
|
|
366
366
|
!T || !m || T(
|
|
367
|
-
Le ? [] : m.map((j) => j._index).filter((j) =>
|
|
367
|
+
Le ? [] : m.map((j) => j._index).filter((j) => !O?.includes(j))
|
|
368
368
|
);
|
|
369
369
|
}, [
|
|
370
370
|
T,
|
|
371
371
|
m,
|
|
372
372
|
Le,
|
|
373
|
-
|
|
373
|
+
O
|
|
374
374
|
]);
|
|
375
|
-
if (C ===
|
|
375
|
+
if (C === ee)
|
|
376
376
|
return /* @__PURE__ */ t("div", { style: o, className: V.join(" "), children: /* @__PURE__ */ t(
|
|
377
377
|
"div",
|
|
378
378
|
{
|
|
@@ -395,22 +395,22 @@ const on = ({ index: n, style: o }) => {
|
|
|
395
395
|
switch (L?.type) {
|
|
396
396
|
case "boolean":
|
|
397
397
|
V.push(
|
|
398
|
-
`text-${
|
|
399
|
-
`justify-content-${
|
|
398
|
+
`text-${q || "center"}`,
|
|
399
|
+
`justify-content-${q || "center"}`
|
|
400
400
|
);
|
|
401
401
|
break;
|
|
402
402
|
case "integer":
|
|
403
403
|
case "number":
|
|
404
404
|
V.push(
|
|
405
|
-
`text-${
|
|
406
|
-
`justify-content-${
|
|
405
|
+
`text-${q || "end"}`,
|
|
406
|
+
`justify-content-${q || "end"}`
|
|
407
407
|
);
|
|
408
408
|
break;
|
|
409
409
|
default:
|
|
410
|
-
|
|
410
|
+
q && V.push(`text-${q}`);
|
|
411
411
|
}
|
|
412
412
|
let Q = G?.hoverTitle;
|
|
413
|
-
return !Q && typeof Ce == "string" && (Q = Ce), /* @__PURE__ */
|
|
413
|
+
return !Q && typeof Ce == "string" && (Q = Ce), /* @__PURE__ */ W(
|
|
414
414
|
"div",
|
|
415
415
|
{
|
|
416
416
|
className: V.join(" "),
|
|
@@ -422,7 +422,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
422
422
|
onDragOver: Ve,
|
|
423
423
|
onDrop: Pe,
|
|
424
424
|
children: [
|
|
425
|
-
/* @__PURE__ */
|
|
425
|
+
/* @__PURE__ */ W(
|
|
426
426
|
"div",
|
|
427
427
|
{
|
|
428
428
|
className: "mig-schema-table__th__label-body",
|
|
@@ -471,13 +471,14 @@ const on = ({ index: n, style: o }) => {
|
|
|
471
471
|
propIsRequired: p,
|
|
472
472
|
propName: f,
|
|
473
473
|
propSchema: l,
|
|
474
|
-
translate:
|
|
474
|
+
translate: O
|
|
475
475
|
}) => {
|
|
476
|
-
const { displayTimezone: _ } = e.useContext(Me), { type:
|
|
477
|
-
|
|
476
|
+
const { displayTimezone: _ } = e.useContext(Me), { type: R, format: I, minimum: T, maximum: $ } = l || {}, M = n, y = I === "date-time";
|
|
477
|
+
let S, Z, Y, D;
|
|
478
|
+
switch (R) {
|
|
478
479
|
case "number":
|
|
479
480
|
case "integer":
|
|
480
|
-
|
|
481
|
+
return S = M || {}, Z = (s, m, b) => {
|
|
481
482
|
const w = {
|
|
482
483
|
...S,
|
|
483
484
|
[s]: m.value === "" ? void 0 : parseInt(m.value)
|
|
@@ -488,10 +489,9 @@ const on = ({ index: n, style: o }) => {
|
|
|
488
489
|
U !== void 0 && (T === void 0 || U >= T) ? w : void 0,
|
|
489
490
|
b
|
|
490
491
|
);
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
/* @__PURE__ */ R("label", { className: "d-flex", children: [
|
|
492
|
+
}, /* @__PURE__ */ W("ol", { className: "mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component", children: [
|
|
493
|
+
p ? null : /* @__PURE__ */ W("li", { style: { padding: 8 }, children: [
|
|
494
|
+
/* @__PURE__ */ W("label", { className: "d-flex", children: [
|
|
495
495
|
/* @__PURE__ */ t(
|
|
496
496
|
"input",
|
|
497
497
|
{
|
|
@@ -513,7 +513,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
513
513
|
] }),
|
|
514
514
|
Object.keys(be).map((s) => {
|
|
515
515
|
const m = S[s];
|
|
516
|
-
return /* @__PURE__ */
|
|
516
|
+
return /* @__PURE__ */ W("li", { children: [
|
|
517
517
|
/* @__PURE__ */ t("label", { style: { width: 40, paddingLeft: 16 }, children: an[s] }),
|
|
518
518
|
/* @__PURE__ */ t(
|
|
519
519
|
"input",
|
|
@@ -524,14 +524,14 @@ const on = ({ index: n, style: o }) => {
|
|
|
524
524
|
value: m !== void 0 ? m : "",
|
|
525
525
|
"data-prop-name": f,
|
|
526
526
|
onChange: (b) => {
|
|
527
|
-
|
|
527
|
+
Z(
|
|
528
528
|
s,
|
|
529
529
|
b.currentTarget,
|
|
530
530
|
!1
|
|
531
531
|
);
|
|
532
532
|
},
|
|
533
533
|
onBlur: (b) => {
|
|
534
|
-
|
|
534
|
+
Z(
|
|
535
535
|
s,
|
|
536
536
|
b.currentTarget,
|
|
537
537
|
!0
|
|
@@ -539,17 +539,14 @@ const on = ({ index: n, style: o }) => {
|
|
|
539
539
|
},
|
|
540
540
|
onKeyDown: u,
|
|
541
541
|
min: T,
|
|
542
|
-
max:
|
|
542
|
+
max: $
|
|
543
543
|
}
|
|
544
544
|
)
|
|
545
545
|
] }, s);
|
|
546
546
|
})
|
|
547
547
|
] });
|
|
548
548
|
case "boolean":
|
|
549
|
-
|
|
550
|
-
p || ee.push("?");
|
|
551
|
-
let D = M ? "✓" : "✕";
|
|
552
|
-
return M === null && (D = "?"), M === void 0 && (D = ""), /* @__PURE__ */ t("ol", { className: "mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component", children: /* @__PURE__ */ t("li", { children: /* @__PURE__ */ R(
|
|
549
|
+
return Y = ["✓", "✕"], p || Y.push("?"), D = M ? "✓" : "✕", M === null && (D = "?"), M === void 0 && (D = ""), /* @__PURE__ */ t("ol", { className: "mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component", children: /* @__PURE__ */ t("li", { children: /* @__PURE__ */ W(
|
|
553
550
|
"select",
|
|
554
551
|
{
|
|
555
552
|
autoFocus: !0,
|
|
@@ -573,7 +570,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
573
570
|
},
|
|
574
571
|
children: [
|
|
575
572
|
/* @__PURE__ */ t("option", { value: "", children: "All" }, "all"),
|
|
576
|
-
|
|
573
|
+
Y.map((s) => /* @__PURE__ */ t(
|
|
577
574
|
"option",
|
|
578
575
|
{
|
|
579
576
|
value: s,
|
|
@@ -587,7 +584,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
587
584
|
// @ts-expect-error falls through
|
|
588
585
|
case "string":
|
|
589
586
|
if (l?.enum)
|
|
590
|
-
return /* @__PURE__ */ t("ol", { className: "mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component", children: /* @__PURE__ */ t("li", { children: /* @__PURE__ */
|
|
587
|
+
return /* @__PURE__ */ t("ol", { className: "mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component", children: /* @__PURE__ */ t("li", { children: /* @__PURE__ */ W(
|
|
591
588
|
"select",
|
|
592
589
|
{
|
|
593
590
|
autoFocus: !0,
|
|
@@ -603,22 +600,22 @@ const on = ({ index: n, style: o }) => {
|
|
|
603
600
|
"option",
|
|
604
601
|
{
|
|
605
602
|
value: s,
|
|
606
|
-
children:
|
|
603
|
+
children: O(s)
|
|
607
604
|
},
|
|
608
605
|
`column-filter-select-${s}`
|
|
609
606
|
))
|
|
610
607
|
]
|
|
611
608
|
}
|
|
612
609
|
) }) });
|
|
613
|
-
if (y ||
|
|
610
|
+
if (y || I === "date") {
|
|
614
611
|
const s = y ? Je : vt, m = n || {
|
|
615
612
|
from: void 0,
|
|
616
613
|
to: void 0,
|
|
617
614
|
filterEmpty: void 0
|
|
618
615
|
};
|
|
619
|
-
return /* @__PURE__ */
|
|
620
|
-
p ? null : /* @__PURE__ */
|
|
621
|
-
/* @__PURE__ */
|
|
616
|
+
return /* @__PURE__ */ W("ol", { className: "mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component", children: [
|
|
617
|
+
p ? null : /* @__PURE__ */ W("li", { style: { padding: 8 }, children: [
|
|
618
|
+
/* @__PURE__ */ W("label", { className: "d-flex", children: [
|
|
622
619
|
/* @__PURE__ */ t(
|
|
623
620
|
"input",
|
|
624
621
|
{
|
|
@@ -637,7 +634,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
637
634
|
] }),
|
|
638
635
|
/* @__PURE__ */ t("hr", {})
|
|
639
636
|
] }),
|
|
640
|
-
/* @__PURE__ */
|
|
637
|
+
/* @__PURE__ */ W("li", { style: { padding: 8 }, children: [
|
|
641
638
|
/* @__PURE__ */ t("label", { style: { width: 120, paddingLeft: 4 }, children: "After" }),
|
|
642
639
|
/* @__PURE__ */ t(
|
|
643
640
|
ut,
|
|
@@ -676,7 +673,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
676
673
|
}
|
|
677
674
|
)
|
|
678
675
|
] }),
|
|
679
|
-
/* @__PURE__ */
|
|
676
|
+
/* @__PURE__ */ W("li", { style: { padding: 8 }, children: [
|
|
680
677
|
/* @__PURE__ */ t("label", { style: { width: 120, paddingLeft: 4 }, children: "Before" }),
|
|
681
678
|
/* @__PURE__ */ t(
|
|
682
679
|
ut,
|
|
@@ -748,18 +745,18 @@ const on = ({ index: n, style: o }) => {
|
|
|
748
745
|
onClose: p,
|
|
749
746
|
onInputKeyDown: f,
|
|
750
747
|
propConfig: l,
|
|
751
|
-
propIsRequired:
|
|
748
|
+
propIsRequired: O,
|
|
752
749
|
propName: _,
|
|
753
|
-
propSchema:
|
|
754
|
-
referenceElement:
|
|
750
|
+
propSchema: R,
|
|
751
|
+
referenceElement: I,
|
|
755
752
|
setFilterSortColumn: T,
|
|
756
|
-
translate:
|
|
753
|
+
translate: $,
|
|
757
754
|
value: M
|
|
758
755
|
}) => {
|
|
759
756
|
const y = mt({
|
|
760
757
|
placement: "bottom-start",
|
|
761
758
|
elements: {
|
|
762
|
-
reference:
|
|
759
|
+
reference: I
|
|
763
760
|
},
|
|
764
761
|
middleware: [ht()]
|
|
765
762
|
}), S = mt({
|
|
@@ -786,7 +783,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
786
783
|
p,
|
|
787
784
|
S.elements.floating
|
|
788
785
|
]);
|
|
789
|
-
const
|
|
786
|
+
const Z = l?.FilterMenu || ln, Y = e.useCallback(
|
|
790
787
|
(m) => {
|
|
791
788
|
T(_, !0), p(m);
|
|
792
789
|
},
|
|
@@ -799,25 +796,25 @@ const on = ({ index: n, style: o }) => {
|
|
|
799
796
|
), s = e.useCallback(() => {
|
|
800
797
|
u(void 0, !0);
|
|
801
798
|
}, [u]);
|
|
802
|
-
return !n && !o ? null : /* @__PURE__ */
|
|
799
|
+
return !n && !o ? null : /* @__PURE__ */ W(wt, { children: [
|
|
803
800
|
/* @__PURE__ */ t(
|
|
804
801
|
"div",
|
|
805
802
|
{
|
|
806
803
|
className: "mig-schema-table mig-schema-table__th-menu",
|
|
807
804
|
ref: y.refs.setFloating,
|
|
808
805
|
style: y.floatingStyles,
|
|
809
|
-
children: /* @__PURE__ */
|
|
810
|
-
n ? /* @__PURE__ */
|
|
806
|
+
children: /* @__PURE__ */ W("ol", { className: "mig-schema-table-menu", children: [
|
|
807
|
+
n ? /* @__PURE__ */ W("li", { onClick: Y, style: { padding: 8 }, children: [
|
|
811
808
|
/* @__PURE__ */ t("span", { className: "mig-schema-table__th-menu__icon", children: "↓" }),
|
|
812
809
|
" ",
|
|
813
|
-
|
|
810
|
+
$("sortAscending")
|
|
814
811
|
] }) : null,
|
|
815
|
-
n ? /* @__PURE__ */
|
|
812
|
+
n ? /* @__PURE__ */ W("li", { onClick: D, style: { padding: 8 }, children: [
|
|
816
813
|
/* @__PURE__ */ t("span", { className: "mig-schema-table__th-menu__icon", children: "↑" }),
|
|
817
814
|
" ",
|
|
818
|
-
|
|
815
|
+
$("sortDescending")
|
|
819
816
|
] }) : null,
|
|
820
|
-
o ? /* @__PURE__ */
|
|
817
|
+
o ? /* @__PURE__ */ W(
|
|
821
818
|
"li",
|
|
822
819
|
{
|
|
823
820
|
style: { padding: 8 },
|
|
@@ -835,7 +832,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
835
832
|
onChange: s
|
|
836
833
|
}
|
|
837
834
|
) }),
|
|
838
|
-
/* @__PURE__ */ t("label", { htmlFor: "mig-schema-table__th-menu__filters", children:
|
|
835
|
+
/* @__PURE__ */ t("label", { htmlFor: "mig-schema-table__th-menu__filters", children: $("filters") }),
|
|
839
836
|
/* @__PURE__ */ t("div", { className: "mig-schema-table__th-menu__sub-menu-indicator" })
|
|
840
837
|
]
|
|
841
838
|
}
|
|
@@ -850,15 +847,15 @@ const on = ({ index: n, style: o }) => {
|
|
|
850
847
|
ref: S.refs.setFloating,
|
|
851
848
|
style: S.floatingStyles,
|
|
852
849
|
children: /* @__PURE__ */ t(
|
|
853
|
-
|
|
850
|
+
Z,
|
|
854
851
|
{
|
|
855
852
|
columnFilterValue: M,
|
|
856
853
|
onChange: u,
|
|
857
854
|
onInputKeyDown: f,
|
|
858
|
-
propIsRequired:
|
|
855
|
+
propIsRequired: O,
|
|
859
856
|
propName: _,
|
|
860
|
-
propSchema:
|
|
861
|
-
translate:
|
|
857
|
+
propSchema: R,
|
|
858
|
+
translate: $
|
|
862
859
|
}
|
|
863
860
|
)
|
|
864
861
|
}
|
|
@@ -870,38 +867,38 @@ const on = ({ index: n, style: o }) => {
|
|
|
870
867
|
setResizeColumnIndex: u,
|
|
871
868
|
tableBodyHeight: p
|
|
872
869
|
}) => {
|
|
873
|
-
const [f, l] = e.useState(0),
|
|
874
|
-
(
|
|
870
|
+
const [f, l] = e.useState(0), O = Dt(), _ = e.useCallback(
|
|
871
|
+
($) => {
|
|
875
872
|
const M = n.map(
|
|
876
|
-
(y, S) => S === o ? Math.max(y +
|
|
873
|
+
(y, S) => S === o ? Math.max(y + $, kt) : y
|
|
877
874
|
);
|
|
878
|
-
|
|
875
|
+
O(M);
|
|
879
876
|
},
|
|
880
|
-
[n, o,
|
|
877
|
+
[n, o, O]
|
|
881
878
|
);
|
|
882
|
-
let
|
|
883
|
-
const
|
|
884
|
-
(
|
|
885
|
-
u(parseInt(
|
|
879
|
+
let R = 0;
|
|
880
|
+
const I = e.useCallback(
|
|
881
|
+
($) => {
|
|
882
|
+
u(parseInt($.currentTarget.dataset.columnIndex)), l($.clientX);
|
|
886
883
|
},
|
|
887
884
|
[u]
|
|
888
885
|
), T = e.useCallback(
|
|
889
|
-
(
|
|
890
|
-
_(
|
|
886
|
+
($) => {
|
|
887
|
+
_($.clientX - f), l(0), u(-1);
|
|
891
888
|
},
|
|
892
889
|
[f, _, u]
|
|
893
890
|
);
|
|
894
|
-
return /* @__PURE__ */ t("div", { children: [...n].map((
|
|
895
|
-
|
|
891
|
+
return /* @__PURE__ */ t("div", { children: [...n].map(($, M) => {
|
|
892
|
+
R += $;
|
|
896
893
|
const y = ["mig-schema-table__column_resizer"];
|
|
897
894
|
return M === o && y.push("mig-schema-table__column_resizer--dragged"), /* @__PURE__ */ t(
|
|
898
895
|
"div",
|
|
899
896
|
{
|
|
900
|
-
style: { left:
|
|
897
|
+
style: { left: R - en, bottom: p },
|
|
901
898
|
className: y.join(" "),
|
|
902
899
|
draggable: "true",
|
|
903
900
|
"data-column-index": M,
|
|
904
|
-
onDragStart:
|
|
901
|
+
onDragStart: I,
|
|
905
902
|
onDragEnd: T
|
|
906
903
|
},
|
|
907
904
|
M
|
|
@@ -916,9 +913,11 @@ const on = ({ index: n, style: o }) => {
|
|
|
916
913
|
if (!n)
|
|
917
914
|
return;
|
|
918
915
|
const f = new ResizeObserver((l) => {
|
|
919
|
-
for (const
|
|
920
|
-
const { blockSize: _, inlineSize:
|
|
921
|
-
|
|
916
|
+
for (const O of l) {
|
|
917
|
+
const { blockSize: _, inlineSize: R } = O.borderBoxSize[0];
|
|
918
|
+
p(
|
|
919
|
+
(I) => R && _ && (I.width !== R || I.height !== _) ? { width: R, height: _ } : I
|
|
920
|
+
);
|
|
922
921
|
}
|
|
923
922
|
});
|
|
924
923
|
return f.observe(n), () => {
|
|
@@ -945,7 +944,7 @@ const on = ({ index: n, style: o }) => {
|
|
|
945
944
|
])
|
|
946
945
|
), p.getRow(1).font = { bold: !0 }, p.addRows(
|
|
947
946
|
n.map((f) => {
|
|
948
|
-
const { _index: l, SELECT_ALL_COLUMN_NAME:
|
|
947
|
+
const { _index: l, SELECT_ALL_COLUMN_NAME: O, ..._ } = f;
|
|
949
948
|
return Object.values(_);
|
|
950
949
|
})
|
|
951
950
|
), u.xlsx.writeBuffer().then((f) => {
|
|
@@ -976,17 +975,17 @@ const pn = ({
|
|
|
976
975
|
autoRender: p,
|
|
977
976
|
checkedIndexes: f,
|
|
978
977
|
config: l,
|
|
979
|
-
customElementProps:
|
|
978
|
+
customElementProps: O,
|
|
980
979
|
data: _,
|
|
981
|
-
defaultColumnFilters:
|
|
982
|
-
defaultSortAsc:
|
|
980
|
+
defaultColumnFilters: R,
|
|
981
|
+
defaultSortAsc: I = !1,
|
|
983
982
|
defaultSortColumn: T,
|
|
984
|
-
disabledCheckedIndexes:
|
|
983
|
+
disabledCheckedIndexes: $,
|
|
985
984
|
displayTimezone: M,
|
|
986
985
|
enableAutoFocus: y = !0,
|
|
987
986
|
enableRowCounter: S = !0,
|
|
988
|
-
getRowClassName:
|
|
989
|
-
getRowSelected:
|
|
987
|
+
getRowClassName: Z,
|
|
988
|
+
getRowSelected: Y,
|
|
990
989
|
getSearchQueryFilterResult: D,
|
|
991
990
|
infiniteLoaderRef: s,
|
|
992
991
|
isColumnFilterable: m = !0,
|
|
@@ -1004,7 +1003,7 @@ const pn = ({
|
|
|
1004
1003
|
rowHeight: B = 36,
|
|
1005
1004
|
schema: V,
|
|
1006
1005
|
searchPlaceholder: _e,
|
|
1007
|
-
setCheckedIndexes:
|
|
1006
|
+
setCheckedIndexes: q,
|
|
1008
1007
|
settingsStorageKey: v,
|
|
1009
1008
|
style: A,
|
|
1010
1009
|
translate: k = ft,
|
|
@@ -1016,9 +1015,9 @@ const pn = ({
|
|
|
1016
1015
|
J ? void 0 : _
|
|
1017
1016
|
), [fe, qe] = e.useState(), [a, ke] = e.useState({
|
|
1018
1017
|
searchQuery: "",
|
|
1019
|
-
columnFilterMap:
|
|
1018
|
+
columnFilterMap: R || {},
|
|
1020
1019
|
sortColumn: T,
|
|
1021
|
-
sortAsc:
|
|
1020
|
+
sortAsc: I
|
|
1022
1021
|
}), [z, Tt] = e.useState(
|
|
1023
1022
|
E ? ct(window.location.hash) : null
|
|
1024
1023
|
);
|
|
@@ -1047,8 +1046,8 @@ const pn = ({
|
|
|
1047
1046
|
return;
|
|
1048
1047
|
const { columnFilterMap: r, searchQuery: c, sortAsc: d, sortColumn: i } = z || {}, h = {
|
|
1049
1048
|
searchQuery: c || "",
|
|
1050
|
-
columnFilterMap: r ||
|
|
1051
|
-
sortAsc: d === void 0 ?
|
|
1049
|
+
columnFilterMap: r || R || {},
|
|
1050
|
+
sortAsc: d === void 0 ? I : d,
|
|
1052
1051
|
sortColumn: i === void 0 ? T : i
|
|
1053
1052
|
};
|
|
1054
1053
|
ke(
|
|
@@ -1057,8 +1056,8 @@ const pn = ({
|
|
|
1057
1056
|
}, [
|
|
1058
1057
|
z,
|
|
1059
1058
|
E,
|
|
1060
|
-
|
|
1061
|
-
|
|
1059
|
+
R,
|
|
1060
|
+
I,
|
|
1062
1061
|
T
|
|
1063
1062
|
]), e.useEffect(() => {
|
|
1064
1063
|
re && re(a);
|
|
@@ -1075,12 +1074,12 @@ const pn = ({
|
|
|
1075
1074
|
...V
|
|
1076
1075
|
}),
|
|
1077
1076
|
[V]
|
|
1078
|
-
), We = v ? localStorage.getItem(`${v}.columnNames`) : null, Fe = v ? localStorage.getItem(`${v}.columnWidths`) : null,
|
|
1077
|
+
), We = v ? localStorage.getItem(`${v}.columnNames`) : null, Fe = v ? localStorage.getItem(`${v}.columnWidths`) : null, K = e.useMemo(() => {
|
|
1079
1078
|
if (Ce)
|
|
1080
1079
|
return Ce;
|
|
1081
1080
|
const r = We ? JSON.parse(We) : void 0;
|
|
1082
1081
|
let c = Object.keys(ae);
|
|
1083
|
-
if (
|
|
1082
|
+
if (q && c.unshift(ee), l) {
|
|
1084
1083
|
Object.keys(l).forEach((i) => {
|
|
1085
1084
|
c.includes(i) || c.push(i);
|
|
1086
1085
|
});
|
|
@@ -1096,24 +1095,24 @@ const pn = ({
|
|
|
1096
1095
|
let g = l[h] ? l[h].order : void 0;
|
|
1097
1096
|
return g === void 0 && (g = Object.keys(ae).findIndex(
|
|
1098
1097
|
(H) => H === h
|
|
1099
|
-
)), h ===
|
|
1098
|
+
)), h === ee || i === ee ? 0 : N === -1 ? 1 : g === -1 ? -1 : N - g;
|
|
1100
1099
|
});
|
|
1101
1100
|
}
|
|
1102
1101
|
return r?.length === c.length ? r : c;
|
|
1103
1102
|
}, [
|
|
1104
1103
|
l,
|
|
1105
1104
|
Ce,
|
|
1106
|
-
|
|
1105
|
+
q,
|
|
1107
1106
|
ae,
|
|
1108
1107
|
We
|
|
1109
1108
|
]), je = e.useMemo(
|
|
1110
|
-
() => x &&
|
|
1111
|
-
(r, c) =>
|
|
1109
|
+
() => x && K ? x.map(
|
|
1110
|
+
(r, c) => K.reduce(
|
|
1112
1111
|
(d, i) => {
|
|
1113
1112
|
const h = ae[i], N = l ? l[i] : void 0;
|
|
1114
1113
|
if (N?.renderData)
|
|
1115
1114
|
return d[i] = N.renderData(r, c), d;
|
|
1116
|
-
if (!h || i ===
|
|
1115
|
+
if (!h || i === ee)
|
|
1117
1116
|
return d[i] = "", d;
|
|
1118
1117
|
const g = r ? r[i] : "";
|
|
1119
1118
|
switch (h.type) {
|
|
@@ -1152,18 +1151,18 @@ const pn = ({
|
|
|
1152
1151
|
{ _index: c }
|
|
1153
1152
|
)
|
|
1154
1153
|
) : void 0,
|
|
1155
|
-
[x,
|
|
1156
|
-
), xe =
|
|
1154
|
+
[x, K, ae, l, k, M]
|
|
1155
|
+
), xe = K ? K.length : 0, { dynamicWidthColumnCount: Ge, fixedWidthColumnsWidth: Xe } = e.useMemo(() => {
|
|
1157
1156
|
let r = 0, c = 0;
|
|
1158
|
-
return (
|
|
1159
|
-
if (d ===
|
|
1157
|
+
return (K || []).forEach((d) => {
|
|
1158
|
+
if (d === ee) {
|
|
1160
1159
|
r += bt;
|
|
1161
1160
|
return;
|
|
1162
1161
|
}
|
|
1163
1162
|
const i = l ? l[d] : void 0;
|
|
1164
1163
|
i?.width ? r += i.width : c += 1;
|
|
1165
1164
|
}, 0), { dynamicWidthColumnCount: c, fixedWidthColumnsWidth: r };
|
|
1166
|
-
}, [
|
|
1165
|
+
}, [K, l]), ie = e.useMemo(() => {
|
|
1167
1166
|
if (Ee)
|
|
1168
1167
|
return new Uint16Array(Ee);
|
|
1169
1168
|
const r = Fe ? new Uint16Array(JSON.parse(Fe)) : void 0, c = Math.max(
|
|
@@ -1174,8 +1173,8 @@ const pn = ({
|
|
|
1174
1173
|
);
|
|
1175
1174
|
let d = (Ae - Xe) % Ge;
|
|
1176
1175
|
const i = new Uint16Array(
|
|
1177
|
-
|
|
1178
|
-
if (h ===
|
|
1176
|
+
K.map((h) => {
|
|
1177
|
+
if (h === ee)
|
|
1179
1178
|
return bt;
|
|
1180
1179
|
const N = l ? l[h] : void 0;
|
|
1181
1180
|
return N?.width ? N?.width : d ? (d -= 1, c + 1) : c;
|
|
@@ -1183,7 +1182,7 @@ const pn = ({
|
|
|
1183
1182
|
);
|
|
1184
1183
|
return r?.length === i.length ? r : i;
|
|
1185
1184
|
}, [
|
|
1186
|
-
|
|
1185
|
+
K,
|
|
1187
1186
|
l,
|
|
1188
1187
|
Ee,
|
|
1189
1188
|
Ge,
|
|
@@ -1196,7 +1195,7 @@ const pn = ({
|
|
|
1196
1195
|
), Ie = e.useMemo(() => {
|
|
1197
1196
|
if (!je || !m && !U || J)
|
|
1198
1197
|
return je;
|
|
1199
|
-
const { searchQuery: r } = a, c = r.toLowerCase() || "", d = (i) => x && D ? D(x[i._index], r) : !(
|
|
1198
|
+
const { searchQuery: r } = a, c = r.toLowerCase() || "", d = (i) => x && D ? D(x[i._index], r) : !(K && !K.find(
|
|
1200
1199
|
(h) => `${i[h]}`.toLowerCase().includes(c)
|
|
1201
1200
|
));
|
|
1202
1201
|
return je.filter((i) => {
|
|
@@ -1273,7 +1272,7 @@ const pn = ({
|
|
|
1273
1272
|
J,
|
|
1274
1273
|
a,
|
|
1275
1274
|
D,
|
|
1276
|
-
|
|
1275
|
+
K,
|
|
1277
1276
|
l,
|
|
1278
1277
|
x,
|
|
1279
1278
|
ae
|
|
@@ -1288,7 +1287,7 @@ const pn = ({
|
|
|
1288
1287
|
return F ? P ? h(
|
|
1289
1288
|
F,
|
|
1290
1289
|
P,
|
|
1291
|
-
r === void 0 ?
|
|
1290
|
+
r === void 0 ? I : r
|
|
1292
1291
|
) : -1 : 1;
|
|
1293
1292
|
});
|
|
1294
1293
|
const N = d && d.format?.startsWith("date"), g = gn(d, i);
|
|
@@ -1298,7 +1297,7 @@ const pn = ({
|
|
|
1298
1297
|
});
|
|
1299
1298
|
}, [
|
|
1300
1299
|
l,
|
|
1301
|
-
|
|
1300
|
+
I,
|
|
1302
1301
|
Ie,
|
|
1303
1302
|
J,
|
|
1304
1303
|
ae,
|
|
@@ -1427,10 +1426,10 @@ const pn = ({
|
|
|
1427
1426
|
columnFilterMap: {},
|
|
1428
1427
|
// Clear button should clear _ALL_ filters, do _NOT_ revert to defaultColumnFilters
|
|
1429
1428
|
sortColumn: T,
|
|
1430
|
-
sortAsc:
|
|
1429
|
+
sortAsc: I
|
|
1431
1430
|
};
|
|
1432
1431
|
E && (window.location.hash = ze(r)), qe(r), ke(r);
|
|
1433
|
-
}, [E,
|
|
1432
|
+
}, [E, I, T]), It = e.useCallback(() => {
|
|
1434
1433
|
const r = z?.searchQuery || "";
|
|
1435
1434
|
E && // prevent hash change for undefined vs empty string compare
|
|
1436
1435
|
(a.searchQuery || r) && a.searchQuery !== r && (window.location.hash = ze({
|
|
@@ -1555,14 +1554,14 @@ const pn = ({
|
|
|
1555
1554
|
{
|
|
1556
1555
|
value: {
|
|
1557
1556
|
checkedIndexes: f,
|
|
1558
|
-
columnNames:
|
|
1557
|
+
columnNames: K,
|
|
1559
1558
|
columnWidths: ie,
|
|
1560
1559
|
config: l,
|
|
1561
|
-
disabledCheckedIndexes:
|
|
1560
|
+
disabledCheckedIndexes: $,
|
|
1562
1561
|
displayTimezone: M,
|
|
1563
1562
|
dropTargetIndex: Le,
|
|
1564
|
-
getRowClassName:
|
|
1565
|
-
getRowSelected:
|
|
1563
|
+
getRowClassName: Z,
|
|
1564
|
+
getRowSelected: Y,
|
|
1566
1565
|
isColumnFilterable: m,
|
|
1567
1566
|
isItemLoaded: Ke,
|
|
1568
1567
|
isSortable: te,
|
|
@@ -1571,7 +1570,7 @@ const pn = ({
|
|
|
1571
1570
|
onRowDoubleClick: se,
|
|
1572
1571
|
properties: ae,
|
|
1573
1572
|
required: Mt,
|
|
1574
|
-
setCheckedIndexes:
|
|
1573
|
+
setCheckedIndexes: q,
|
|
1575
1574
|
setCustomColumnNames: oe,
|
|
1576
1575
|
setCustomColumnWidths: Oe,
|
|
1577
1576
|
setDropTargetIndex: Ze,
|
|
@@ -1584,7 +1583,7 @@ const pn = ({
|
|
|
1584
1583
|
tableDataState: a,
|
|
1585
1584
|
translate: k || ft
|
|
1586
1585
|
},
|
|
1587
|
-
children: /* @__PURE__ */
|
|
1586
|
+
children: /* @__PURE__ */ W(
|
|
1588
1587
|
"div",
|
|
1589
1588
|
{
|
|
1590
1589
|
className: `mig-schema-table${L ? " mig-schema-table--clickable-rows" : ""}`,
|
|
@@ -1592,7 +1591,7 @@ const pn = ({
|
|
|
1592
1591
|
style: Rt,
|
|
1593
1592
|
role: "table",
|
|
1594
1593
|
children: [
|
|
1595
|
-
/* @__PURE__ */
|
|
1594
|
+
/* @__PURE__ */ W(
|
|
1596
1595
|
"div",
|
|
1597
1596
|
{
|
|
1598
1597
|
className: "mig-schema-table__action-container",
|
|
@@ -1616,7 +1615,7 @@ const pn = ({
|
|
|
1616
1615
|
n ? /* @__PURE__ */ t(
|
|
1617
1616
|
n,
|
|
1618
1617
|
{
|
|
1619
|
-
|
|
1618
|
+
...O,
|
|
1620
1619
|
renderData: X
|
|
1621
1620
|
}
|
|
1622
1621
|
) : /* @__PURE__ */ t("div", { className: "mig-schema-table__custom_element_placeholder" }),
|
|
@@ -1655,7 +1654,7 @@ const pn = ({
|
|
|
1655
1654
|
]
|
|
1656
1655
|
}
|
|
1657
1656
|
),
|
|
1658
|
-
/* @__PURE__ */
|
|
1657
|
+
/* @__PURE__ */ W("div", { className: "mig-schema-table__column_resize_container", children: [
|
|
1659
1658
|
/* @__PURE__ */ t(
|
|
1660
1659
|
u,
|
|
1661
1660
|
{
|
|
@@ -1717,15 +1716,15 @@ const pn = ({
|
|
|
1717
1716
|
}
|
|
1718
1717
|
);
|
|
1719
1718
|
}, In = e.memo(pn), Sn = e.memo(({ refresh: n, period: o = 60 }) => {
|
|
1720
|
-
const [u, p] = e.useState(/* @__PURE__ */ new Date()), [f, l] = e.useState(/* @__PURE__ */ new Date()),
|
|
1719
|
+
const [u, p] = e.useState(/* @__PURE__ */ new Date()), [f, l] = e.useState(/* @__PURE__ */ new Date()), O = e.useCallback(() => {
|
|
1721
1720
|
l(/* @__PURE__ */ new Date()), n();
|
|
1722
1721
|
}, [n]), _ = e.useMemo(
|
|
1723
1722
|
() => Ut(u, f),
|
|
1724
1723
|
[u, f]
|
|
1725
1724
|
);
|
|
1726
1725
|
e.useEffect(() => {
|
|
1727
|
-
_ > o &&
|
|
1728
|
-
}, [_, u, f, o,
|
|
1726
|
+
_ > o && O();
|
|
1727
|
+
}, [_, u, f, o, O]), e.useEffect(() => {
|
|
1729
1728
|
const T = setInterval(() => {
|
|
1730
1729
|
p(/* @__PURE__ */ new Date());
|
|
1731
1730
|
}, 1e3);
|
|
@@ -1733,12 +1732,12 @@ const pn = ({
|
|
|
1733
1732
|
clearInterval(T);
|
|
1734
1733
|
};
|
|
1735
1734
|
}, []);
|
|
1736
|
-
const
|
|
1737
|
-
return /* @__PURE__ */
|
|
1735
|
+
const R = o - _;
|
|
1736
|
+
return /* @__PURE__ */ W(
|
|
1738
1737
|
"div",
|
|
1739
1738
|
{
|
|
1740
1739
|
className: "mx-auto",
|
|
1741
|
-
title: `Refresh ${
|
|
1740
|
+
title: `Refresh ${R > 0 ? `in ${R} seconds` : "NOW"}`,
|
|
1742
1741
|
children: [
|
|
1743
1742
|
"Last update ",
|
|
1744
1743
|
tt(f, "HH:mm")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(E,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("react-dom"),require("react-window"),require("date-fns"),require("date-fns/locale"),require("mig-data-tools"),require("lodash"),require("react-datepicker"),require("date-fns/locale/nl"),require("@date-fns/tz"),require("@floating-ui/react-dom"),require("react-window-infinite-loader"),require("file-saver")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","react-dom","react-window","date-fns","date-fns/locale","mig-data-tools","lodash","react-datepicker","date-fns/locale/nl","@date-fns/tz","@floating-ui/react-dom","react-window-infinite-loader","file-saver"],e):(E=typeof globalThis<"u"?globalThis:E||self,e(E["mig-schema-table"]={},E.jsxRuntime,E.React,E.ReactDOM,E.reactWindow,E.dateFns,E.locale,E.migDataTools,E.lodash,E.DatePicker,E.nl,E.tz,E.reactDom,E.InfiniteLoader,E.fileSaver))})(this,(function(E,e,t,kt,Pe,Ve,xt,F,ge,ot,it,Fe,We,Mt,Et){"use strict";function Tt(n){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const a in n)if(a!=="default"){const m=Object.getOwnPropertyDescriptor(n,a);Object.defineProperty(r,a,m.get?m:{enumerable:!0,get:()=>n[a]})}}return r.default=n,Object.freeze(r)}const Dt=Tt(t),Je=(n,r)=>Ve.format(n,r,{locale:xt.nl}).replace(".",""),Lt={"Europe/Amsterdam":"AMS","Europe/Berlin":"AMS","Asia/Jakarta":"JKT","Asia/Bangkok":"JKT",showingFilteredCountOfTotalCount:"Showing {0} of {1}"};function lt(n,...r){let a=Lt[n]||F.unCamel(n);return r.forEach((m,b)=>{a=a.replace(`{${b}}`,`${m}`)}),a}const R="SELECT_ALL_COLUMN_NAME",at=40,He="dd MMM yyyy",Le="dd MMM yyyy HH:mm",Ge=25,ct=50,dt=3;var fe=(n=>(n.GT="GT",n.LT="LT",n.EQ="EQ",n))(fe||{}),xe=(n=>(n.UNAVAILABLE="UNAVAILABLE",n.AVAILABLE="AVAILABLE",n.ACTIVE="ACTIVE",n))(xe||{});const Me=Dt.createContext({checkedIndexes:[],columnNames:[],columnWidths:new Uint16Array,config:{},disabledCheckedIndexes:[],dropTargetIndex:-1,isColumnFilterable:!1,isItemLoaded:()=>!1,isSortable:!1,properties:{},required:[],setCustomColumnNames:F.emptyFn,setCustomColumnWidths:F.emptyFn,setDropTargetIndex:F.emptyFn,setFilterSortColumn:F.emptyFn,setLastCheckChangedRowIndex:F.emptyFn,setMenuConfig:F.emptyFn,tableDataState:{searchQuery:"",columnFilterMap:{},sortColumn:"",sortAsc:!1},translate:F.emptyFn}),At={type:"boolean"},It=({columnIndex:n,rowIndex:r,style:a})=>{const{checkedIndexes:m,columnNames:b,config:c,disabledCheckedIndexes:$,displayTimezone:_,getRowClassName:W,getRowSelected:j,isItemLoaded:T,lastCheckChangedRowIndex:S,onRowClick:D,onRowDoubleClick:y,properties:O,setCheckedIndexes:G,setLastCheckChangedRowIndex:te,sortedRenderData:M,sourceData:o,translate:h}=t.useContext(Me),p=b[n],w=p===R?At:O[p],Z=c?c[p]:void 0,ne=t.useCallback(v=>{G&&G(I=>I&&I.includes(v)?I.filter(L=>L!==v):I?[...I,v]:[v])},[G]),ce=T(r),re=t.useCallback(v=>{if(!o||!M||!D||!ce)return;const{rowIndex:I}=v.currentTarget.dataset;if(!I)return;const k=M[parseInt(I,10)];D(o[k._index],k._index,v)},[ce,D,M,o]),C=t.useCallback(v=>{if(!o||!M||!y||!T)return;const{rowIndex:I}=v.currentTarget.dataset;if(!I)return;const k=M[parseInt(I,10)];y(o[k._index],k._index,v)},[T,y,M,o]),A=M?M[r]:void 0,{showTimezones:ie,TdBody:X}=Z||{},se=t.useMemo(()=>_?null:F.timeZone.startsWith("Europe/")?"Asia/Jakarta":"Europe/Amsterdam",[_]),z=t.useMemo(()=>{if(!A||!M)return;let v=p===R?void 0:A[p];if(w?.format&&w.format==="date-time"&&ie!==!1){const k=o?o[A._index]:void 0,L=k?k[p]:void 0,de=L?new Date(L):void 0;de&&se&&(v=`${F.localeFormatInTimeZone(de,se,Le)} (${h(se)})`)}const I=["mig-schema-table__td",`mig-schema-table__td--${r%2?"odd":"even"}`,`mig-schema-table__td--prop-${p}`];switch(o&&j&&j(o[A._index],A._index)&&I.push("mig-schema-table__td--selected"),o&&W&&I.push(W(o[A._index],A._index,M)),w?.type){case"boolean":I.push(`text-${Z?.align||"center"}`);break;case"number":case"integer":I.push(`text-${Z?.align||"end"}`);break;default:Z?.align&&I.push(`text-${Z.align}`)}return{"data-row-index":r,"data-column-index":n,style:a,className:I.join(" "),title:v,onClick:p===R?void 0:re,onDoubleClick:p===R?void 0:C}},[A,M,p,w,ie,r,o,j,W,n,a,re,C,se,h,Z]),V=t.useCallback(v=>{if(!ne||!A)return;const I=parseInt(v.currentTarget.dataset.rowIndex);if(v.shiftKey&&S!==void 0){const k=m?.includes(S)?S:void 0;if(k!==void 0&&M){const L=r;for(const de of ge.range(L>k?k+1:L,L>k?L+1:k)){const me=M[de]._index;(!$||!$.includes(me))&&ne(me)}}}else ne(A._index);te(I),we.current?.focus()},[m,$,S,ne,A,r,te,M]),we=t.useRef(null);if(!A||!z)return null;if(!T||o&&!o[A._index])return e.jsx("div",{...z,children:"loading"});if(p===R)return e.jsx("div",{...z,onMouseDown:V,children:e.jsx("div",{style:{textAlign:"center"},children:e.jsx("input",{ref:we,type:"checkbox",readOnly:!0,checked:m?.includes(A._index),disabled:$?.includes(A._index)})})});if(X&&o)return e.jsx("div",{...z,children:e.jsx(X,{dataIndex:A._index,rowData:o[A._index],rowIndex:r,...Z?.tdBodyProps})});const H=A[p];return w?.format==="url"&&H?e.jsx("a",{href:H,target:"_blank",rel:"noopener noreferrer",...z,children:H}):e.jsx("div",{...z,children:H})},ut=t.memo(It);function Nt(){const{checkedIndexes:n,disabledCheckedIndexes:r,sortedRenderData:a}=t.useContext(Me);return t.useMemo(()=>{const m=[...a||[]].filter(b=>(n?n.includes(b._index):!0)||(r?!r.includes(b._index):!0));return n?.length!==0&&m.length===n?.length},[n,r,a])}function ht(n,r,a){return!!(n&&a?.isSortable!==!1&&(r||a?.renderData||a?.sort))}function ft(){const{setCustomColumnWidths:n,settingsStorageKey:r}=t.useContext(Me);return t.useCallback(a=>{r&&localStorage.setItem(`${r}.columnWidths`,JSON.stringify(Array.from(a))),n(a)},[n,r])}const St=({index:n,style:r})=>{const{checkedIndexes:a,columnNames:m,columnWidths:b,config:c,disabledCheckedIndexes:$,dropTargetIndex:_,isColumnFilterable:W,isSortable:j,setCheckedIndexes:T,properties:S,required:D,setCustomColumnNames:y,setDropTargetIndex:O,setFilterSortColumn:G,setMenuConfig:te,settingsStorageKey:M,tableDataState:o,sortedRenderData:h,translate:p,displayTimezone:w}=t.useContext(Me),[Z,ne]=t.useState(!1),ce=n===_,re=ft(),C=m[n],A=C===R?{type:"boolean"}:S[C],ie=o.sortColumn===C?o.sortAsc:void 0,X=c?c[C]:void 0;let se=W&&(A||X?.FilterMenu)&&X?.isFilterable!==!1?xe.AVAILABLE:xe.UNAVAILABLE;o.columnFilterMap&&o.columnFilterMap[C]!==void 0&&(se=xe.ACTIVE);const z=ht(j,A,X),V=["mig-schema-table__th",`mig-schema-table__th--filter-${se}`,`mig-schema-table__th--prop-${C}`];V.push(z?"mig-schema-table__th--sortable":"mig-schema-table__th--unsortable"),ie!==void 0&&V.push("mig-schema-table__th--sorted"),Z&&V.push("mig-schema-table__th--dragging"),ce&&V.push("mig-schema-table__th--drop-target");const{format:we}=A||{},{align:H,defaultSortDesc:v,showTimezones:I=!w,title:k}=X||{},L=t.useCallback(()=>{if(z){if(ie===void 0){G(C,!v);return}G(C,!ie)}},[z,v,C,G,ie]),de=D.includes(C),me=t.useCallback(Q=>{const be=Q.currentTarget;te(ve=>{if(ve?.propName!==C)return{propConfig:X,propIsRequired:de,propName:C,referenceElement:be}})},[X,de,C,te]),ye=t.useMemo(()=>k!==void 0?k:we==="date-time"&&I?`${p(C)} (${p(w||F.timeZone)})`:p(C),[k,we,I,p,C,w]),oe=t.useCallback((Q,be)=>{if(!m||!b)return;const ve=m.indexOf(Q),P=[...m];P.splice(ve,1);const x=P.indexOf(be);P.splice(x+1,0,Q),y(P);const _e=[...b],pe=_e[ve];_e.splice(ve,1),_e.splice(x+1,0,pe),re(new Uint16Array(_e)),M&&localStorage.setItem(`${M}.columnNames`,JSON.stringify(P))},[m,b,re,M,y]),Ae=t.useCallback(Q=>{oe&&(ne(!0),Q.dataTransfer.effectAllowed="move",Q.dataTransfer.dropEffect="move",Q.dataTransfer.setData("text/plain",C))},[oe,C]),je=t.useCallback(()=>{oe&&(ne(!1),O(-1))},[oe,O]),Xe=t.useCallback(Q=>{oe&&(Q.preventDefault(),O(n))},[n,oe,O]),Ye=t.useCallback(Q=>{if(O(-1),!oe||!C)return;const be=Q.dataTransfer.getData("text/plain");!be||be===C||oe(be,C)},[oe,C,O]),Ie=Nt(),Ke=t.useCallback(()=>{!T||!h||T(Ie?[]:h.map(Q=>Q._index).filter(Q=>!$?.includes(Q)))},[T,h,Ie,$]);if(C===R)return e.jsx("div",{style:r,className:V.join(" "),children:e.jsx("div",{style:{width:"100%",textAlign:"center"},title:`${a?.length||0} selected`,children:e.jsx("input",{type:"checkbox",name:"selectAll",checked:Ie,onChange:Ke})})});switch(A?.type){case"boolean":V.push(`text-${H||"center"}`,`justify-content-${H||"center"}`);break;case"integer":case"number":V.push(`text-${H||"end"}`,`justify-content-${H||"end"}`);break;default:H&&V.push(`text-${H}`)}let U=X?.hoverTitle;return!U&&typeof ye=="string"&&(U=ye),e.jsxs("div",{className:V.join(" "),style:r,title:U,draggable:!0,onDragStart:Ae,onDragEnd:je,onDragOver:Xe,onDrop:Ye,children:[e.jsxs("div",{className:"mig-schema-table__th__label-body",style:{lineHeight:"44px"},onClick:L,children:[e.jsx("span",{className:"mig-schema-table__th__label-body-text",children:ye}),ie===void 0?null:e.jsx("span",{className:"mig-schema-table__th__sort-icon",children:ie?"↓":"↑"})]}),z||se!==xe.UNAVAILABLE?e.jsx("button",{className:"mig-schema-table__th__trigger-el",onClick:me,children:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"#404040",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})}):null]})},mt=t.memo(St),Ot={[fe.GT]:">",[fe.LT]:"<",[fe.EQ]:"="},$t=t.memo(({columnFilterValue:n,onChange:r,onInputKeyDown:a,propIsRequired:m,propName:b,propSchema:c,translate:$})=>{const{displayTimezone:_}=t.useContext(Me),{type:W,format:j,minimum:T,maximum:S}=c||{},D=n,y=j==="date-time";switch(W){case"number":case"integer":const O=D||{},G=(o,h,p)=>{const w={...O,[o]:h.value===""?void 0:parseInt(h.value)},Z=Object.values(w).find(ne=>isFinite(ne));r(Z!==void 0&&(T===void 0||Z>=T)?w:void 0,p)};return e.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[m?null:e.jsxs("li",{style:{padding:8},children:[e.jsxs("label",{className:"d-flex",children:[e.jsx("input",{type:"checkbox",style:{marginRight:14},checked:!!O.filterEmpty,onChange:()=>{const{filterEmpty:o,...h}=O;o||(h.filterEmpty=!0),r(Object.keys(h).length?h:void 0,!0)}}),"Hide empty values"]}),e.jsx("hr",{})]}),Object.keys(fe).map(o=>{const h=O[o];return e.jsxs("li",{children:[e.jsx("label",{style:{width:40,paddingLeft:16},children:Ot[o]}),e.jsx("input",{className:"form-control",style:{width:120},type:"number",value:h!==void 0?h:"","data-prop-name":b,onChange:p=>{G(o,p.currentTarget,!1)},onBlur:p=>{G(o,p.currentTarget,!0)},onKeyDown:a,min:T,max:S})]},o)})]});case"boolean":const te=["✓","✕"];m||te.push("?");let M=D?"✓":"✕";return D===null&&(M="?"),D===void 0&&(M=""),e.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:e.jsx("li",{children:e.jsxs("select",{autoFocus:!0,className:"form-select",value:M,"data-prop-name":b,onChange:o=>{switch(o.currentTarget.value){case"✓":r(!0,!0);break;case"✕":r(!1,!0);break;case"?":r(null,!0);break;default:r(void 0,!0)}},children:[e.jsx("option",{value:"",children:"All"},"all"),te.map(o=>e.jsx("option",{value:o,children:o},`column-filter-select-${o}`))]})})});case"string":if(c?.enum)return e.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:e.jsx("li",{children:e.jsxs("select",{autoFocus:!0,className:"form-select",value:D,"data-prop-name":b,onChange:o=>{r(o.currentTarget.value||void 0,!0)},children:[e.jsx("option",{value:"",children:"All"},"all"),c.enum.map(o=>e.jsx("option",{value:o,children:$(o)},`column-filter-select-${o}`))]})})});if(y||j==="date"){const o=y?Le:He,h=n||{from:void 0,to:void 0,filterEmpty:void 0};return e.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[m?null:e.jsxs("li",{style:{padding:8},children:[e.jsxs("label",{className:"d-flex",children:[e.jsx("input",{type:"checkbox",checked:!!h.filterEmpty,onChange:()=>{const{filterEmpty:p,...w}=h;p||(w.filterEmpty=!0),r(Object.keys(w).length?w:void 0,!0)}}),"Hide empty values"]}),e.jsx("hr",{})]}),e.jsxs("li",{style:{padding:8},children:[e.jsx("label",{style:{width:120,paddingLeft:4},children:"After"}),e.jsx(ot,{dateFormat:o,"data-prop-name":b,locale:it.nl,selected:h.from?new Fe.TZDate(h.from).withTimeZone(_||F.timeZone):null,onChange:p=>{if(!p&&!h.to){r(void 0,!0);return}if(h.to&&p&&p>h.to)return;const w=p?Fe.TZDate.tz(_||F.timeZone,p):void 0;r({...n,from:w},!0)},placeholderText:o,isClearable:!0,selectsStart:!0,showTimeSelect:y,showTimeInput:y,showMonthDropdown:!0,showYearDropdown:!0,timeIntervals:15,shouldCloseOnSelect:!y})]}),e.jsxs("li",{style:{padding:8},children:[e.jsx("label",{style:{width:120,paddingLeft:4},children:"Before"}),e.jsx(ot,{id:"filter-date",dateFormat:o,"data-prop-name":b,locale:it.nl,selectsEnd:!0,selected:h.to?new Fe.TZDate(h.to).withTimeZone(_||F.timeZone):null,showMonthDropdown:!0,showYearDropdown:!0,onChange:p=>{if(!p&&!h.from){r(void 0,!0);return}const w=p?y?Fe.TZDate.tz(_||F.timeZone,p):Ve.endOfDay(p):void 0;h.from&&w&&w<h.from||r({...n,to:w},!0)},placeholderText:o,isClearable:!0,startDate:h.from,endDate:h.to,showTimeInput:y,showTimeSelect:y,timeIntervals:15,shouldCloseOnSelect:!y})]})]})}default:return e.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:e.jsx("li",{children:e.jsx("input",{autoFocus:!0,type:"search",className:"form-control",placeholder:`Search ${b}`,"aria-label":`Search ${b}`,value:D||"","data-prop-name":b,onChange:o=>{r(o.currentTarget.value||void 0,!1)},onKeyDown:a,onBlur:o=>{r(o.currentTarget.value||void 0,!0)}})})})}}),Ft=({isSortable:n,isFilterable:r,onChange:a,onClose:m,onInputKeyDown:b,propConfig:c,propIsRequired:$,propName:_,propSchema:W,referenceElement:j,setFilterSortColumn:T,translate:S,value:D})=>{const y=We.useFloating({placement:"bottom-start",elements:{reference:j},middleware:[We.flip()]}),O=We.useFloating({placement:"right-start",middleware:[We.flip()]});t.useEffect(()=>{const h=p=>{if(!y.elements.floating)return;let w=p.target;for(;w&&y.elements.floating;){if(w===y.elements.floating||w===O.elements.floating)return;w=w.parentNode===window.document?null:w.parentNode}m(p)};return window.addEventListener("click",h,{capture:!0}),()=>{window.removeEventListener("click",h,{capture:!0})}},[y.elements.floating,m,O.elements.floating]);const G=c?.FilterMenu||$t,te=t.useCallback(h=>{T(_,!0),m(h)},[m,_,T]),M=t.useCallback(h=>{T(_,!1),m(h)},[m,_,T]),o=t.useCallback(()=>{a(void 0,!0)},[a]);return!n&&!r?null:e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu",ref:y.refs.setFloating,style:y.floatingStyles,children:e.jsxs("ol",{className:"mig-schema-table-menu",children:[n?e.jsxs("li",{onClick:te,style:{padding:8},children:[e.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↓"})," ",S("sortAscending")]}):null,n?e.jsxs("li",{onClick:M,style:{padding:8},children:[e.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↑"})," ",S("sortDescending")]}):null,r?e.jsxs("li",{style:{padding:8},onMouseOver:h=>{O.refs.setReference(h.currentTarget)},children:[e.jsx("span",{className:"mig-schema-table__th-menu__icon",children:e.jsx("input",{type:"checkbox",id:"mig-schema-table__th-menu__filters",checked:D!==void 0,disabled:D===void 0,onChange:o})}),e.jsx("label",{htmlFor:"mig-schema-table__th-menu__filters",children:S("filters")}),e.jsx("div",{className:"mig-schema-table__th-menu__sub-menu-indicator"})]}):null]})}),O.elements.reference?e.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu__sub-menu",ref:O.refs.setFloating,style:O.floatingStyles,children:e.jsx(G,{columnFilterValue:D,onChange:a,onInputKeyDown:b,propIsRequired:$,propName:_,propSchema:W,translate:S})}):null]})},Wt=t.memo(Ft),jt=({columnWidths:n,resizeColumnIndex:r,setResizeColumnIndex:a,tableBodyHeight:m})=>{const[b,c]=t.useState(0),$=ft(),_=t.useCallback(S=>{const D=n.map((y,O)=>O===r?Math.max(y+S,Ge):y);$(D)},[n,r,$]);let W=0;const j=t.useCallback(S=>{a(parseInt(S.currentTarget.dataset.columnIndex)),c(S.clientX)},[a]),T=t.useCallback(S=>{_(S.clientX-b),c(0),a(-1)},[b,_,a]);return e.jsx("div",{children:[...n].map((S,D)=>{W+=S;const y=["mig-schema-table__column_resizer"];return D===r&&y.push("mig-schema-table__column_resizer--dragged"),e.jsx("div",{style:{left:W-dt,bottom:m},className:y.join(" "),draggable:"true","data-column-index":D,onDragStart:j,onDragEnd:T},D)})})},bt=n=>{const[r,a]=t.useState({width:0,height:0}),m=t.useMemo(()=>ge.debounce(a,100),[]);return t.useEffect(()=>{if(!n)return;const b=new ResizeObserver(c=>{for(const $ of c){const{blockSize:_,inlineSize:W}=$.borderBoxSize[0];W&&_&&m({width:W,height:_})}});return b.observe(n),()=>{b.disconnect()}},[m,n]),r},Bt=()=>new Promise((n,r)=>{if(window.ExcelJS){n(window.ExcelJS);return}const a=document.createElement("script");a.src="https://cdnjs.cloudflare.com/ajax/libs/exceljs/4.4.0/exceljs.bare.min.js",a.onload=()=>{n(window.ExcelJS)},a.onerror=()=>{r(new Error("Failed to load ExcelJS library"))},document.head.appendChild(a)}),Qt=async n=>{const{Workbook:r}=await Bt(),a=new r,m=a.addWorksheet("Data");n.length&&(m.addRow(ge.difference(Object.keys(n[0]),["_index","SELECT_ALL_COLUMN_NAME"])),m.getRow(1).font={bold:!0},m.addRows(n.map(b=>{const{_index:c,SELECT_ALL_COLUMN_NAME:$,..._}=b;return Object.values(_)})),a.xlsx.writeBuffer().then(b=>{const c=new Blob([b],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Et.saveAs(c,"export.xlsx")}).catch(b=>{console.error("Error generating Excel file:",b)}))},pt=new Date("1000-01-01 00:00:00Z"),zt=new Intl.NumberFormat("nl-NL"),Ut=new Intl.NumberFormat("nl-NL",{style:"currency",currency:"EUR"});function qt(n,r){const{TdBody:a,sortByValue:m}=r||{};if(m!==void 0)return m;if(!n)return!1;const{format:b,type:c}=n;return b?.startsWith("date")||c==="boolean"||c==="integer"||c==="number"||!!a}const Zt=({CustomElement:n,CustomSearchInput:r,Heading:a=Pe.VariableSizeList,autoRender:m,checkedIndexes:b,config:c,customElementProps:$,data:_,defaultColumnFilters:W,defaultSortAsc:j=!1,defaultSortColumn:T,disabledCheckedIndexes:S,displayTimezone:D,enableAutoFocus:y=!0,enableRowCounter:O=!0,getRowClassName:G,getRowSelected:te,getSearchQueryFilterResult:M,infiniteLoaderRef:o,isColumnFilterable:h=!0,isExportable:p=!0,isResizable:w=!0,isSearchable:Z=!0,isSortable:ne=!0,itemCount:ce,loadMoreItems:re,maxHeight:C,onRowClick:A,onRowDoubleClick:ie,onSearchEnter:X,onTableDataStateChange:se,rowHeight:z=36,schema:V,searchPlaceholder:we,setCheckedIndexes:H,settingsStorageKey:v,style:I,translate:k=lt,useFilterStateHash:L,variableSizeGridRef:de,width:me})=>{const[ye,oe]=t.useState(),[Ae,je]=t.useState(),[Xe,Ye]=t.useState(-1),[Ie,Ke]=t.useState(-1),[U,Q]=t.useState(),[be,ve]=t.useState(),P=_ instanceof Function,[x,_e]=t.useState(P?void 0:_),[pe,Re]=t.useState(),[i,Ee]=t.useState({searchQuery:"",columnFilterMap:W||{},sortColumn:T,sortAsc:j}),[q,Jt]=t.useState(L?F.parseLocationHash(window.location.hash):null);t.useEffect(()=>{P||_e(_)},[_,P]),t.useEffect(()=>{!P||x!==void 0||_(q&&Object.keys(q).length!==0?{...q,columnFilterMap:q.columnFilterMap||{}}:i).then(_e)},[_,P,q,x,i]),t.useEffect(()=>{pe||Re(i)},[i,pe]),t.useEffect(()=>{if(!L)return;const s=()=>{Jt(F.parseLocationHash(window.location.hash))};return window.addEventListener("hashchange",s),()=>{window.removeEventListener("hashchange",s)}},[L]),t.useEffect(()=>{if(!L)return;const{columnFilterMap:s,searchQuery:d,sortAsc:u,sortColumn:l}=q||{},f={searchQuery:d||"",columnFilterMap:s||W||{},sortAsc:u===void 0?j:u,sortColumn:l===void 0?T:l};Ee(N=>ge.isEqual(f,N)?N:f)},[q,L,W,j,T]),t.useEffect(()=>{se&&se(i)},[se,i]);const gt=t.useRef(null),_t=t.useRef(null),Be=bt(gt.current),Ct=bt(_t.current),Ne=t.useMemo(()=>me||Math.floor(Be.width||0),[Be.width,me]),Se=t.useMemo(()=>!ge.isEqual(i,pe)&&P,[i,pe,P]),{properties:le,required:Ht}=t.useMemo(()=>({properties:{},required:[],...V}),[V]),Qe=v?localStorage.getItem(`${v}.columnNames`):null,ze=v?localStorage.getItem(`${v}.columnWidths`):null,ee=t.useMemo(()=>{if(ye)return ye;const s=Qe?JSON.parse(Qe):void 0;let d=Object.keys(le);if(H&&d.unshift(R),c){Object.keys(c).forEach(l=>{d.includes(l)||d.push(l)});const u=Object.entries(c).reduce((l,[f,N])=>(N.hidden&&l.push(f),l),[]);d=d.filter(l=>!u.includes(l)).sort((l,f)=>{let N=c[l]?c[l].order:void 0;N===void 0&&(N=Object.keys(le).findIndex(K=>K===l));let g=c[f]?c[f].order:void 0;return g===void 0&&(g=Object.keys(le).findIndex(K=>K===f)),f===R||l===R?0:N===-1?1:g===-1?-1:N-g})}return s?.length===d.length?s:d},[c,ye,H,le,Qe]),Ue=t.useMemo(()=>x&&ee?x.map((s,d)=>ee.reduce((u,l)=>{const f=le[l],N=c?c[l]:void 0;if(N?.renderData)return u[l]=N.renderData(s,d),u;if(!f||l===R)return u[l]="",u;const g=s?s[l]:"";switch(f.type){case"array":return u[l]=f.items?.type==="string"&&g?g.map(K=>k(K)).join(", "):JSON.stringify(g),u;case"boolean":return u[l]=g===void 0?"?":g?"✓":"✕",u;case"number":case"integer":return g===void 0?(u[l]="",u):(u[l]=f.format==="currency"?Ut.format(g):zt.format(g),u);case"string":if(f.format==="date"&&g)return u[l]=["2999-12-31","1970-01-01"].includes(g)?"-":Je(new Date(g),N?.dateFormat||He),u;if(f.format==="date-time"&&g)return u[l]=D?F.localeFormatInTimeZone(new Date(g),D,Le):Je(new Date(g),N?.dateFormat||Le),u;if(f.enum)return u[l]=g?k(g):"",u;default:return u[l]=g?`${g}`:"",u}},{_index:d})):void 0,[x,ee,le,c,k,D]),Te=ee?ee.length:0,{dynamicWidthColumnCount:et,fixedWidthColumnsWidth:tt}=t.useMemo(()=>{let s=0,d=0;return(ee||[]).forEach(u=>{if(u===R){s+=at;return}const l=c?c[u]:void 0;l?.width?s+=l.width:d+=1},0),{dynamicWidthColumnCount:d,fixedWidthColumnsWidth:s}},[ee,c]),ae=t.useMemo(()=>{if(Ae)return new Uint16Array(Ae);const s=ze?new Uint16Array(JSON.parse(ze)):void 0,d=Math.max(Math.floor((Ne-tt)/et),Ge);let u=(Ne-tt)%et;const l=new Uint16Array(ee.map(f=>{if(f===R)return at;const N=c?c[f]:void 0;return N?.width?N?.width:u?(u-=1,d+1):d}));return s?.length===l.length?s:l},[ee,c,Ae,et,tt,ze,Ne]),qe=t.useCallback(s=>ae?ae[s]:1,[ae]),Oe=t.useMemo(()=>{if(!Ue||!h&&!Z||P)return Ue;const{searchQuery:s}=i,d=s.toLowerCase()||"",u=l=>x&&M?M(x[l._index],s):!(ee&&!ee.find(f=>`${l[f]}`.toLowerCase().includes(d)));return Ue.filter(l=>{let f=u(l);return!f||!i.columnFilterMap?!1:(Object.entries(i.columnFilterMap).forEach(([N,g])=>{if(!f||g===void 0)return;const K=c?c[N]:void 0;if(x&&K?.filter){f=K.filter(x[l._index],g);return}const he=le[N],B=x[l._index]?.[N];switch(he?.type){case"boolean":case"number":case"integer":if(g&&typeof g=="object"){g.filterEmpty&&B===void 0&&(f=!1);for(const J of Object.keys(fe)){const ke=g[J];if(f&&ge.isFinite(ke))switch(J){case fe.EQ:B!==ke&&(f=!1);break;case fe.GT:B<=ke&&(f=!1);break;case fe.LT:B>=ke&&(f=!1);break}}}else{if(B===void 0&&g===null)return!0;f=B===g}break;case"string":if(typeof g=="object"&&(he.format==="date"||he.format==="date-time")){const{from:J,to:ke,filterEmpty:vt}=g;if(!B)f=!vt;else{const Ze=B?new Date(B):void 0;(vt===!1||J&&(!Ze||Ze<J)||ke&&(!Ze||Ze>ke))&&(f=!1)}return}default:if(he?.enum){f=B===g;return}f=`${l[N]}`.toLowerCase().includes(`${g}`.toLowerCase())}}),f)})},[Ue,h,Z,P,i,M,ee,c,x,le]),Y=t.useMemo(()=>{const{sortAsc:s,sortColumn:d}=i;if(!d||!Oe||!x||P)return Oe;const u=le[d],l=c?c[d]:void 0,f=l?.sort;if(f)return Oe.sort((K,he)=>{const B=x[K._index],J=x[he._index];return B?J?f(B,J,s===void 0?j:s):-1:1});const N=u&&u.format?.startsWith("date"),g=qt(u,l);return Oe.sort((K,he)=>{let B=g&&x[K._index]?x[K._index][d]:`${K[d]}`.toLowerCase(),J=g&&x[he._index]?x[he._index][d]:`${he[d]}`.toLowerCase();return g&&N&&(B=new Date(B),isNaN(B.getTime())&&(B=pt),J=new Date(J),isNaN(J.getTime())&&(J=pt)),B===J?0:B?J?(B<J?1:-1)*(s?-1:1):s?1:-1:s?-1:1})},[c,j,Oe,P,le,x,i]),wt=t.useCallback(s=>{const d={...i.columnFilterMap};delete d[s],Ee({...i,columnFilterMap:d})},[i]),nt=t.useCallback((s,d)=>{if(L){window.location.hash=F.serializeLocationHash({...q,sortColumn:s,sortAsc:d});return}Ee({...i,sortColumn:s,sortAsc:d})},[i,q,L]),Gt=t.useCallback(s=>{Ee({...i,searchQuery:s.currentTarget.value})},[i]),De=t.useCallback(()=>{Re(i),_e(void 0)},[i]);t.useEffect(()=>{if(!m||!q||!pe||!L)return;const s=Object.keys(q);let d=!1;for(const u of s){const l=q[u],f=pe[u];if(typeof l=="string"&&l!==f){d=!0;break}if(typeof l=="object"&&!ge.isEqual(l,f)){d=!0;break}}d&&De()},[m,q,pe,De,L]);const yt=t.useCallback(s=>{s.key==="Enter"&&(Q(void 0),Se&&De(),X&&s.currentTarget.className==="mig-schema-table__search"&&X(i.searchQuery||""))},[Se,i.searchQuery,X,De]),rt=t.useCallback(()=>z,[z]),ue=t.useMemo(()=>ge.sum(ae),[ae]),$e=t.useMemo(()=>Y?Y.length:0,[Y]),Ce=t.useMemo(()=>{const s=z*$e;let d;if(C&&(d=C==="100%"?Be.height:C,!d))return 0;const u=d?d-Ct.height-ct:0;return u&&u<s?u:s},[z,$e,C,Ct,Be.height]),Xt=t.useCallback(s=>{Q(void 0),s.preventDefault(),s.stopPropagation()},[]),Yt=t.useCallback((s,d)=>{if(!U)return;if(L&&d!==!1){window.location.hash=F.serializeLocationHash({...q,columnFilterMap:{...i.columnFilterMap,[U.propName]:s}});return}if(s===void 0){wt(U.propName);return}const u={...i.columnFilterMap,[U.propName]:s};Ee({...i,columnFilterMap:u})},[wt,i,q,U,L]),Kt=t.useCallback(()=>{const s={searchQuery:"",columnFilterMap:{},sortColumn:T,sortAsc:j};L&&(window.location.hash=F.serializeLocationHash(s)),Re(s),Ee(s)},[L,j,T]),Rt=t.useCallback(()=>{const s=q?.searchQuery||"";L&&(i.searchQuery||s)&&i.searchQuery!==s&&(window.location.hash=F.serializeLocationHash({...q,searchQuery:i.searchQuery}))},[q,i.searchQuery,L]),en=t.useCallback(async s=>{s.preventDefault(),s.stopPropagation(),Y&&Qt(Y)},[Y]),tn=t.useCallback(()=>{v&&(localStorage.removeItem(`${v}.columnNames`),localStorage.removeItem(`${v}.columnWidths`),oe(void 0),je(void 0))},[v]),st=t.useCallback(s=>{if(!Y||!x||!re||!ce)return!0;const d=Y[s];return d&&x[d._index]!==void 0},[ce,re,Y,x]),nn=t.useMemo(()=>Ce?!(x&&!Se)&&!re?e.jsx("div",{style:{width:ue,height:Math.max(50,Ce),border:"1px solid #BBB",textAlign:"center",display:"flex",backgroundColor:"#CCC",alignItems:"center",justifyContent:"center"},children:Se?e.jsx("button",{onClick:De,className:"btn border",children:"Refresh data"}):e.jsx("div",{children:"⌛ Loading..."})}):re&&ce?e.jsx(Mt,{ref:o,isItemLoaded:st,itemCount:ce,loadMoreItems:re,children:({onItemsRendered:d,ref:u})=>e.jsx(Pe.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:z,height:Ce,width:ue,columnWidth:qe,rowHeight:rt,columnCount:Te,rowCount:$e,ref:u,onItemsRendered:({overscanRowStartIndex:l,overscanRowStopIndex:f,visibleRowStartIndex:N,visibleRowStopIndex:g})=>d({overscanStartIndex:l,overscanStopIndex:f,visibleStartIndex:N,visibleStopIndex:g}),children:ut},`tbody_${Ce}_${ue}_${i.sortColumn}_${i.sortAsc}_${i.searchQuery}_${Te}_${ae.join(" ")}`)}):e.jsx(Pe.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:z,height:Ce,width:ue,columnWidth:qe,rowHeight:rt,columnCount:Te,rowCount:$e,ref:de,children:ut},`tbody_${Ce}_${ue}_${i.sortColumn}_${i.sortAsc}_${i.searchQuery}_${Te}_${ae.join(" ")}`):null,[Te,ae,qe,rt,o,Se,st,ce,re,De,$e,z,ue,i.searchQuery,i.sortAsc,i.sortColumn,x,Ce,de]),rn=t.useMemo(()=>({...I,width:me?Math.min(ue,Ne):void 0,height:C==="100%"?"100%":void 0,maxHeight:C==="100%"?"100%":void 0}),[C,ue,I,Ne,me]),sn=r||"input";return e.jsx(Me.Provider,{value:{checkedIndexes:b,columnNames:ee,columnWidths:ae,config:c,disabledCheckedIndexes:S,displayTimezone:D,dropTargetIndex:Ie,getRowClassName:G,getRowSelected:te,isColumnFilterable:h,isItemLoaded:st,isSortable:ne,lastCheckChangedRowIndex:be,onRowClick:A,onRowDoubleClick:ie,properties:le,required:Ht,setCheckedIndexes:H,setCustomColumnNames:oe,setCustomColumnWidths:je,setDropTargetIndex:Ke,setFilterSortColumn:nt,setLastCheckChangedRowIndex:ve,setMenuConfig:Q,settingsStorageKey:v,sortedRenderData:Y,sourceData:x,tableDataState:i,translate:k||lt},children:e.jsxs("div",{className:`mig-schema-table${A?" mig-schema-table--clickable-rows":""}`,ref:gt,style:rn,role:"table",children:[e.jsxs("div",{className:"mig-schema-table__action-container",ref:_t,children:[e.jsx("div",{children:Z?e.jsx(sn,{className:"mig-schema-table__search",type:"search",name:"search",autoComplete:"off",placeholder:we||k("search..."),value:i.searchQuery,onChange:Gt,onKeyDown:yt,autoFocus:y,onBlur:Rt}):null}),n?e.jsx(n,{...$,renderData:Y}):e.jsx("div",{className:"mig-schema-table__custom_element_placeholder"}),O&&Array.isArray(_)?e.jsx("span",{className:"mig-schema-table__row_counter",children:k("showingFilteredCountOfTotalCount",Y?.length||0,_.length)}):null,p?e.jsx("button",{onClick:en,style:{marginLeft:8},disabled:!Y?.length,children:k("exportData")}):null,Z||h?e.jsx("button",{onClick:Kt,style:{marginLeft:8},disabled:i.columnFilterMap&&i.searchQuery?Object.keys(i.columnFilterMap).length+i.searchQuery.length===0:!1,children:k("clearFilters")}):null,v?e.jsx("button",{onClick:tn,style:{marginLeft:8},disabled:!Qe&&!ze,children:k("clearSettings")}):null]}),e.jsxs("div",{className:"mig-schema-table__column_resize_container",children:[e.jsx(a,{height:ct,itemCount:Te,itemSize:qe,layout:"horizontal",width:ue,sortAsc:i.sortAsc,setFilterSortColumn:nt,sortColumn:i.sortColumn,sortedRenderData:Y,className:"mig-schema-table__th-row",children:mt},`thead_${ue}_${i.sortColumn}_${i.sortAsc}_${i.searchQuery}_${ae.join(" ")}`),nn,w?e.jsx(jt,{columnWidths:ae,resizeColumnIndex:Xe,setResizeColumnIndex:Ye,tableBodyHeight:Ce}):null]}),x?x.length>0?e.jsx(e.Fragment,{children:kt.createPortal(U?e.jsx(Wt,{isFilterable:h&&U.propConfig?.isFilterable!==!1,isSortable:ht(!!ne,V.properties[U.propName],U.propConfig),onChange:Yt,onClose:Xt,onInputKeyDown:yt,propConfig:U.propConfig,propIsRequired:U.propIsRequired,propName:U.propName,propSchema:V.properties[U.propName],referenceElement:U.referenceElement,setFilterSortColumn:nt,translate:k,value:i.columnFilterMap?i.columnFilterMap[U.propName]:null}):null,document.body)}):e.jsx("div",{className:"mig-schema-table__no_data",children:"No data found"}):null]})})},Pt=t.memo(Zt),Vt=t.memo(({refresh:n,period:r=60})=>{const[a,m]=t.useState(new Date),[b,c]=t.useState(new Date),$=t.useCallback(()=>{c(new Date),n()},[n]),_=t.useMemo(()=>Ve.differenceInSeconds(a,b),[a,b]);t.useEffect(()=>{_>r&&$()},[_,a,b,r,$]),t.useEffect(()=>{const T=setInterval(()=>{m(new Date)},1e3);return()=>{clearInterval(T)}},[]);const W=r-_;return e.jsxs("div",{className:"mx-auto",title:`Refresh ${W>0?`in ${W} seconds`:"NOW"}`,children:["Last update ",Je(b,"HH:mm")]})});E.DEFAULT_DATE_FORMAT=He,E.DEFAULT_DATE_TIME_FORMAT=Le,E.EColumnFilterStatus=xe,E.MINIMUM_COLUMN_WIDTH=Ge,E.RESIZER_WIDTH=dt,E.Refresher=Vt,E.SchemaTable=Pt,E.Th=mt,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(E,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("react-dom"),require("react-window"),require("date-fns"),require("date-fns/locale"),require("mig-data-tools"),require("lodash"),require("react-datepicker"),require("date-fns/locale/nl"),require("@date-fns/tz"),require("@floating-ui/react-dom"),require("react-window-infinite-loader"),require("file-saver")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","react-dom","react-window","date-fns","date-fns/locale","mig-data-tools","lodash","react-datepicker","date-fns/locale/nl","@date-fns/tz","@floating-ui/react-dom","react-window-infinite-loader","file-saver"],e):(E=typeof globalThis<"u"?globalThis:E||self,e(E["mig-schema-table"]={},E.jsxRuntime,E.React,E.ReactDOM,E.reactWindow,E.dateFns,E.locale,E.migDataTools,E.lodash,E.DatePicker,E.nl,E.tz,E.reactDom,E.InfiniteLoader,E.fileSaver))})(this,(function(E,e,t,kt,Pe,Ve,xt,j,ge,ot,it,Fe,We,Mt,Et){"use strict";function Tt(n){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const a in n)if(a!=="default"){const m=Object.getOwnPropertyDescriptor(n,a);Object.defineProperty(r,a,m.get?m:{enumerable:!0,get:()=>n[a]})}}return r.default=n,Object.freeze(r)}const Dt=Tt(t),Je=(n,r)=>Ve.format(n,r,{locale:xt.nl}).replace(".",""),Lt={"Europe/Amsterdam":"AMS","Europe/Berlin":"AMS","Asia/Jakarta":"JKT","Asia/Bangkok":"JKT",showingFilteredCountOfTotalCount:"Showing {0} of {1}"};function lt(n,...r){let a=Lt[n]||j.unCamel(n);return r.forEach((m,b)=>{a=a.replace(`{${b}}`,`${m}`)}),a}const R="SELECT_ALL_COLUMN_NAME",at=40,He="dd MMM yyyy",Le="dd MMM yyyy HH:mm",Ge=25,ct=50,dt=3;var fe=(n=>(n.GT="GT",n.LT="LT",n.EQ="EQ",n))(fe||{}),xe=(n=>(n.UNAVAILABLE="UNAVAILABLE",n.AVAILABLE="AVAILABLE",n.ACTIVE="ACTIVE",n))(xe||{});const Me=Dt.createContext({checkedIndexes:[],columnNames:[],columnWidths:new Uint16Array,config:{},disabledCheckedIndexes:[],dropTargetIndex:-1,isColumnFilterable:!1,isItemLoaded:()=>!1,isSortable:!1,properties:{},required:[],setCustomColumnNames:j.emptyFn,setCustomColumnWidths:j.emptyFn,setDropTargetIndex:j.emptyFn,setFilterSortColumn:j.emptyFn,setLastCheckChangedRowIndex:j.emptyFn,setMenuConfig:j.emptyFn,tableDataState:{searchQuery:"",columnFilterMap:{},sortColumn:"",sortAsc:!1},translate:j.emptyFn}),At={type:"boolean"},It=({columnIndex:n,rowIndex:r,style:a})=>{const{checkedIndexes:m,columnNames:b,config:c,disabledCheckedIndexes:F,displayTimezone:_,getRowClassName:W,getRowSelected:S,isItemLoaded:T,lastCheckChangedRowIndex:$,onRowClick:D,onRowDoubleClick:y,properties:O,setCheckedIndexes:H,setLastCheckChangedRowIndex:ee,sortedRenderData:M,sourceData:o,translate:h}=t.useContext(Me),p=b[n],w=p===R?At:O[p],Z=c?c[p]:void 0,ne=t.useCallback(v=>{H&&H(I=>I&&I.includes(v)?I.filter(L=>L!==v):I?[...I,v]:[v])},[H]),ce=T(r),re=t.useCallback(v=>{if(!o||!M||!D||!ce)return;const{rowIndex:I}=v.currentTarget.dataset;if(!I)return;const k=M[parseInt(I,10)];D(o[k._index],k._index,v)},[ce,D,M,o]),C=t.useCallback(v=>{if(!o||!M||!y||!T)return;const{rowIndex:I}=v.currentTarget.dataset;if(!I)return;const k=M[parseInt(I,10)];y(o[k._index],k._index,v)},[T,y,M,o]),A=M?M[r]:void 0,{showTimezones:ie,TdBody:X}=Z||{},se=t.useMemo(()=>_?null:j.timeZone.startsWith("Europe/")?"Asia/Jakarta":"Europe/Amsterdam",[_]),z=t.useMemo(()=>{if(!A||!M)return;let v=p===R?void 0:A[p];if(w?.format&&w.format==="date-time"&&ie!==!1){const k=o?o[A._index]:void 0,L=k?k[p]:void 0,de=L?new Date(L):void 0;de&&se&&(v=`${j.localeFormatInTimeZone(de,se,Le)} (${h(se)})`)}const I=["mig-schema-table__td",`mig-schema-table__td--${r%2?"odd":"even"}`,`mig-schema-table__td--prop-${p}`];switch(o&&S&&S(o[A._index],A._index)&&I.push("mig-schema-table__td--selected"),o&&W&&I.push(W(o[A._index],A._index,M)),w?.type){case"boolean":I.push(`text-${Z?.align||"center"}`);break;case"number":case"integer":I.push(`text-${Z?.align||"end"}`);break;default:Z?.align&&I.push(`text-${Z.align}`)}return{"data-row-index":r,"data-column-index":n,style:a,className:I.join(" "),title:v,onClick:p===R?void 0:re,onDoubleClick:p===R?void 0:C}},[A,M,p,w,ie,r,o,S,W,n,a,re,C,se,h,Z]),V=t.useCallback(v=>{if(!ne||!A)return;const I=parseInt(v.currentTarget.dataset.rowIndex);if(v.shiftKey&&$!==void 0){const k=m?.includes($)?$:void 0;if(k!==void 0&&M){const L=r;for(const de of ge.range(L>k?k+1:L,L>k?L+1:k)){const me=M[de]._index;(!F||!F.includes(me))&&ne(me)}}}else ne(A._index);ee(I),we.current?.focus()},[m,F,$,ne,A,r,ee,M]),we=t.useRef(null);if(!A||!z)return null;if(!T||o&&!o[A._index])return e.jsx("div",{...z,children:"loading"});if(p===R)return e.jsx("div",{...z,onMouseDown:V,children:e.jsx("div",{style:{textAlign:"center"},children:e.jsx("input",{ref:we,type:"checkbox",readOnly:!0,checked:m?.includes(A._index),disabled:F?.includes(A._index)})})});if(X&&o)return e.jsx("div",{...z,children:e.jsx(X,{dataIndex:A._index,rowData:o[A._index],rowIndex:r,...Z?.tdBodyProps})});const G=A[p];return w?.format==="url"&&G?e.jsx("a",{href:G,target:"_blank",rel:"noopener noreferrer",...z,children:G}):e.jsx("div",{...z,children:G})},ut=t.memo(It);function Nt(){const{checkedIndexes:n,disabledCheckedIndexes:r,sortedRenderData:a}=t.useContext(Me);return t.useMemo(()=>{const m=[...a||[]].filter(b=>(n?n.includes(b._index):!0)||(r?!r.includes(b._index):!0));return n?.length!==0&&m.length===n?.length},[n,r,a])}function ht(n,r,a){return!!(n&&a?.isSortable!==!1&&(r||a?.renderData||a?.sort))}function ft(){const{setCustomColumnWidths:n,settingsStorageKey:r}=t.useContext(Me);return t.useCallback(a=>{r&&localStorage.setItem(`${r}.columnWidths`,JSON.stringify(Array.from(a))),n(a)},[n,r])}const St=({index:n,style:r})=>{const{checkedIndexes:a,columnNames:m,columnWidths:b,config:c,disabledCheckedIndexes:F,dropTargetIndex:_,isColumnFilterable:W,isSortable:S,setCheckedIndexes:T,properties:$,required:D,setCustomColumnNames:y,setDropTargetIndex:O,setFilterSortColumn:H,setMenuConfig:ee,settingsStorageKey:M,tableDataState:o,sortedRenderData:h,translate:p,displayTimezone:w}=t.useContext(Me),[Z,ne]=t.useState(!1),ce=n===_,re=ft(),C=m[n],A=C===R?{type:"boolean"}:$[C],ie=o.sortColumn===C?o.sortAsc:void 0,X=c?c[C]:void 0;let se=W&&(A||X?.FilterMenu)&&X?.isFilterable!==!1?xe.AVAILABLE:xe.UNAVAILABLE;o.columnFilterMap&&o.columnFilterMap[C]!==void 0&&(se=xe.ACTIVE);const z=ht(S,A,X),V=["mig-schema-table__th",`mig-schema-table__th--filter-${se}`,`mig-schema-table__th--prop-${C}`];V.push(z?"mig-schema-table__th--sortable":"mig-schema-table__th--unsortable"),ie!==void 0&&V.push("mig-schema-table__th--sorted"),Z&&V.push("mig-schema-table__th--dragging"),ce&&V.push("mig-schema-table__th--drop-target");const{format:we}=A||{},{align:G,defaultSortDesc:v,showTimezones:I=!w,title:k}=X||{},L=t.useCallback(()=>{if(z){if(ie===void 0){H(C,!v);return}H(C,!ie)}},[z,v,C,H,ie]),de=D.includes(C),me=t.useCallback(Q=>{const be=Q.currentTarget;ee(ve=>{if(ve?.propName!==C)return{propConfig:X,propIsRequired:de,propName:C,referenceElement:be}})},[X,de,C,ee]),ye=t.useMemo(()=>k!==void 0?k:we==="date-time"&&I?`${p(C)} (${p(w||j.timeZone)})`:p(C),[k,we,I,p,C,w]),oe=t.useCallback((Q,be)=>{if(!m||!b)return;const ve=m.indexOf(Q),P=[...m];P.splice(ve,1);const x=P.indexOf(be);P.splice(x+1,0,Q),y(P);const _e=[...b],pe=_e[ve];_e.splice(ve,1),_e.splice(x+1,0,pe),re(new Uint16Array(_e)),M&&localStorage.setItem(`${M}.columnNames`,JSON.stringify(P))},[m,b,re,M,y]),Ae=t.useCallback(Q=>{oe&&(ne(!0),Q.dataTransfer.effectAllowed="move",Q.dataTransfer.dropEffect="move",Q.dataTransfer.setData("text/plain",C))},[oe,C]),je=t.useCallback(()=>{oe&&(ne(!1),O(-1))},[oe,O]),Xe=t.useCallback(Q=>{oe&&(Q.preventDefault(),O(n))},[n,oe,O]),Ye=t.useCallback(Q=>{if(O(-1),!oe||!C)return;const be=Q.dataTransfer.getData("text/plain");!be||be===C||oe(be,C)},[oe,C,O]),Ie=Nt(),Ke=t.useCallback(()=>{!T||!h||T(Ie?[]:h.map(Q=>Q._index).filter(Q=>!F?.includes(Q)))},[T,h,Ie,F]);if(C===R)return e.jsx("div",{style:r,className:V.join(" "),children:e.jsx("div",{style:{width:"100%",textAlign:"center"},title:`${a?.length||0} selected`,children:e.jsx("input",{type:"checkbox",name:"selectAll",checked:Ie,onChange:Ke})})});switch(A?.type){case"boolean":V.push(`text-${G||"center"}`,`justify-content-${G||"center"}`);break;case"integer":case"number":V.push(`text-${G||"end"}`,`justify-content-${G||"end"}`);break;default:G&&V.push(`text-${G}`)}let U=X?.hoverTitle;return!U&&typeof ye=="string"&&(U=ye),e.jsxs("div",{className:V.join(" "),style:r,title:U,draggable:!0,onDragStart:Ae,onDragEnd:je,onDragOver:Xe,onDrop:Ye,children:[e.jsxs("div",{className:"mig-schema-table__th__label-body",style:{lineHeight:"44px"},onClick:L,children:[e.jsx("span",{className:"mig-schema-table__th__label-body-text",children:ye}),ie===void 0?null:e.jsx("span",{className:"mig-schema-table__th__sort-icon",children:ie?"↓":"↑"})]}),z||se!==xe.UNAVAILABLE?e.jsx("button",{className:"mig-schema-table__th__trigger-el",onClick:me,children:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"#404040",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})}):null]})},mt=t.memo(St),Ot={[fe.GT]:">",[fe.LT]:"<",[fe.EQ]:"="},$t=t.memo(({columnFilterValue:n,onChange:r,onInputKeyDown:a,propIsRequired:m,propName:b,propSchema:c,translate:F})=>{const{displayTimezone:_}=t.useContext(Me),{type:W,format:S,minimum:T,maximum:$}=c||{},D=n,y=S==="date-time";let O,H,ee,M;switch(W){case"number":case"integer":return O=D||{},H=(o,h,p)=>{const w={...O,[o]:h.value===""?void 0:parseInt(h.value)},Z=Object.values(w).find(ne=>isFinite(ne));r(Z!==void 0&&(T===void 0||Z>=T)?w:void 0,p)},e.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[m?null:e.jsxs("li",{style:{padding:8},children:[e.jsxs("label",{className:"d-flex",children:[e.jsx("input",{type:"checkbox",style:{marginRight:14},checked:!!O.filterEmpty,onChange:()=>{const{filterEmpty:o,...h}=O;o||(h.filterEmpty=!0),r(Object.keys(h).length?h:void 0,!0)}}),"Hide empty values"]}),e.jsx("hr",{})]}),Object.keys(fe).map(o=>{const h=O[o];return e.jsxs("li",{children:[e.jsx("label",{style:{width:40,paddingLeft:16},children:Ot[o]}),e.jsx("input",{className:"form-control",style:{width:120},type:"number",value:h!==void 0?h:"","data-prop-name":b,onChange:p=>{H(o,p.currentTarget,!1)},onBlur:p=>{H(o,p.currentTarget,!0)},onKeyDown:a,min:T,max:$})]},o)})]});case"boolean":return ee=["✓","✕"],m||ee.push("?"),M=D?"✓":"✕",D===null&&(M="?"),D===void 0&&(M=""),e.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:e.jsx("li",{children:e.jsxs("select",{autoFocus:!0,className:"form-select",value:M,"data-prop-name":b,onChange:o=>{switch(o.currentTarget.value){case"✓":r(!0,!0);break;case"✕":r(!1,!0);break;case"?":r(null,!0);break;default:r(void 0,!0)}},children:[e.jsx("option",{value:"",children:"All"},"all"),ee.map(o=>e.jsx("option",{value:o,children:o},`column-filter-select-${o}`))]})})});case"string":if(c?.enum)return e.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:e.jsx("li",{children:e.jsxs("select",{autoFocus:!0,className:"form-select",value:D,"data-prop-name":b,onChange:o=>{r(o.currentTarget.value||void 0,!0)},children:[e.jsx("option",{value:"",children:"All"},"all"),c.enum.map(o=>e.jsx("option",{value:o,children:F(o)},`column-filter-select-${o}`))]})})});if(y||S==="date"){const o=y?Le:He,h=n||{from:void 0,to:void 0,filterEmpty:void 0};return e.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[m?null:e.jsxs("li",{style:{padding:8},children:[e.jsxs("label",{className:"d-flex",children:[e.jsx("input",{type:"checkbox",checked:!!h.filterEmpty,onChange:()=>{const{filterEmpty:p,...w}=h;p||(w.filterEmpty=!0),r(Object.keys(w).length?w:void 0,!0)}}),"Hide empty values"]}),e.jsx("hr",{})]}),e.jsxs("li",{style:{padding:8},children:[e.jsx("label",{style:{width:120,paddingLeft:4},children:"After"}),e.jsx(ot,{dateFormat:o,"data-prop-name":b,locale:it.nl,selected:h.from?new Fe.TZDate(h.from).withTimeZone(_||j.timeZone):null,onChange:p=>{if(!p&&!h.to){r(void 0,!0);return}if(h.to&&p&&p>h.to)return;const w=p?Fe.TZDate.tz(_||j.timeZone,p):void 0;r({...n,from:w},!0)},placeholderText:o,isClearable:!0,selectsStart:!0,showTimeSelect:y,showTimeInput:y,showMonthDropdown:!0,showYearDropdown:!0,timeIntervals:15,shouldCloseOnSelect:!y})]}),e.jsxs("li",{style:{padding:8},children:[e.jsx("label",{style:{width:120,paddingLeft:4},children:"Before"}),e.jsx(ot,{id:"filter-date",dateFormat:o,"data-prop-name":b,locale:it.nl,selectsEnd:!0,selected:h.to?new Fe.TZDate(h.to).withTimeZone(_||j.timeZone):null,showMonthDropdown:!0,showYearDropdown:!0,onChange:p=>{if(!p&&!h.from){r(void 0,!0);return}const w=p?y?Fe.TZDate.tz(_||j.timeZone,p):Ve.endOfDay(p):void 0;h.from&&w&&w<h.from||r({...n,to:w},!0)},placeholderText:o,isClearable:!0,startDate:h.from,endDate:h.to,showTimeInput:y,showTimeSelect:y,timeIntervals:15,shouldCloseOnSelect:!y})]})]})}default:return e.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:e.jsx("li",{children:e.jsx("input",{autoFocus:!0,type:"search",className:"form-control",placeholder:`Search ${b}`,"aria-label":`Search ${b}`,value:D||"","data-prop-name":b,onChange:o=>{r(o.currentTarget.value||void 0,!1)},onKeyDown:a,onBlur:o=>{r(o.currentTarget.value||void 0,!0)}})})})}}),Ft=({isSortable:n,isFilterable:r,onChange:a,onClose:m,onInputKeyDown:b,propConfig:c,propIsRequired:F,propName:_,propSchema:W,referenceElement:S,setFilterSortColumn:T,translate:$,value:D})=>{const y=We.useFloating({placement:"bottom-start",elements:{reference:S},middleware:[We.flip()]}),O=We.useFloating({placement:"right-start",middleware:[We.flip()]});t.useEffect(()=>{const h=p=>{if(!y.elements.floating)return;let w=p.target;for(;w&&y.elements.floating;){if(w===y.elements.floating||w===O.elements.floating)return;w=w.parentNode===window.document?null:w.parentNode}m(p)};return window.addEventListener("click",h,{capture:!0}),()=>{window.removeEventListener("click",h,{capture:!0})}},[y.elements.floating,m,O.elements.floating]);const H=c?.FilterMenu||$t,ee=t.useCallback(h=>{T(_,!0),m(h)},[m,_,T]),M=t.useCallback(h=>{T(_,!1),m(h)},[m,_,T]),o=t.useCallback(()=>{a(void 0,!0)},[a]);return!n&&!r?null:e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu",ref:y.refs.setFloating,style:y.floatingStyles,children:e.jsxs("ol",{className:"mig-schema-table-menu",children:[n?e.jsxs("li",{onClick:ee,style:{padding:8},children:[e.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↓"})," ",$("sortAscending")]}):null,n?e.jsxs("li",{onClick:M,style:{padding:8},children:[e.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↑"})," ",$("sortDescending")]}):null,r?e.jsxs("li",{style:{padding:8},onMouseOver:h=>{O.refs.setReference(h.currentTarget)},children:[e.jsx("span",{className:"mig-schema-table__th-menu__icon",children:e.jsx("input",{type:"checkbox",id:"mig-schema-table__th-menu__filters",checked:D!==void 0,disabled:D===void 0,onChange:o})}),e.jsx("label",{htmlFor:"mig-schema-table__th-menu__filters",children:$("filters")}),e.jsx("div",{className:"mig-schema-table__th-menu__sub-menu-indicator"})]}):null]})}),O.elements.reference?e.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu__sub-menu",ref:O.refs.setFloating,style:O.floatingStyles,children:e.jsx(H,{columnFilterValue:D,onChange:a,onInputKeyDown:b,propIsRequired:F,propName:_,propSchema:W,translate:$})}):null]})},Wt=t.memo(Ft),jt=({columnWidths:n,resizeColumnIndex:r,setResizeColumnIndex:a,tableBodyHeight:m})=>{const[b,c]=t.useState(0),F=ft(),_=t.useCallback($=>{const D=n.map((y,O)=>O===r?Math.max(y+$,Ge):y);F(D)},[n,r,F]);let W=0;const S=t.useCallback($=>{a(parseInt($.currentTarget.dataset.columnIndex)),c($.clientX)},[a]),T=t.useCallback($=>{_($.clientX-b),c(0),a(-1)},[b,_,a]);return e.jsx("div",{children:[...n].map(($,D)=>{W+=$;const y=["mig-schema-table__column_resizer"];return D===r&&y.push("mig-schema-table__column_resizer--dragged"),e.jsx("div",{style:{left:W-dt,bottom:m},className:y.join(" "),draggable:"true","data-column-index":D,onDragStart:S,onDragEnd:T},D)})})},bt=n=>{const[r,a]=t.useState({width:0,height:0}),m=t.useMemo(()=>ge.debounce(a,100),[]);return t.useEffect(()=>{if(!n)return;const b=new ResizeObserver(c=>{for(const F of c){const{blockSize:_,inlineSize:W}=F.borderBoxSize[0];m(S=>W&&_&&(S.width!==W||S.height!==_)?{width:W,height:_}:S)}});return b.observe(n),()=>{b.disconnect()}},[m,n]),r},Bt=()=>new Promise((n,r)=>{if(window.ExcelJS){n(window.ExcelJS);return}const a=document.createElement("script");a.src="https://cdnjs.cloudflare.com/ajax/libs/exceljs/4.4.0/exceljs.bare.min.js",a.onload=()=>{n(window.ExcelJS)},a.onerror=()=>{r(new Error("Failed to load ExcelJS library"))},document.head.appendChild(a)}),Qt=async n=>{const{Workbook:r}=await Bt(),a=new r,m=a.addWorksheet("Data");n.length&&(m.addRow(ge.difference(Object.keys(n[0]),["_index","SELECT_ALL_COLUMN_NAME"])),m.getRow(1).font={bold:!0},m.addRows(n.map(b=>{const{_index:c,SELECT_ALL_COLUMN_NAME:F,..._}=b;return Object.values(_)})),a.xlsx.writeBuffer().then(b=>{const c=new Blob([b],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Et.saveAs(c,"export.xlsx")}).catch(b=>{console.error("Error generating Excel file:",b)}))},pt=new Date("1000-01-01 00:00:00Z"),zt=new Intl.NumberFormat("nl-NL"),Ut=new Intl.NumberFormat("nl-NL",{style:"currency",currency:"EUR"});function qt(n,r){const{TdBody:a,sortByValue:m}=r||{};if(m!==void 0)return m;if(!n)return!1;const{format:b,type:c}=n;return b?.startsWith("date")||c==="boolean"||c==="integer"||c==="number"||!!a}const Zt=({CustomElement:n,CustomSearchInput:r,Heading:a=Pe.VariableSizeList,autoRender:m,checkedIndexes:b,config:c,customElementProps:F,data:_,defaultColumnFilters:W,defaultSortAsc:S=!1,defaultSortColumn:T,disabledCheckedIndexes:$,displayTimezone:D,enableAutoFocus:y=!0,enableRowCounter:O=!0,getRowClassName:H,getRowSelected:ee,getSearchQueryFilterResult:M,infiniteLoaderRef:o,isColumnFilterable:h=!0,isExportable:p=!0,isResizable:w=!0,isSearchable:Z=!0,isSortable:ne=!0,itemCount:ce,loadMoreItems:re,maxHeight:C,onRowClick:A,onRowDoubleClick:ie,onSearchEnter:X,onTableDataStateChange:se,rowHeight:z=36,schema:V,searchPlaceholder:we,setCheckedIndexes:G,settingsStorageKey:v,style:I,translate:k=lt,useFilterStateHash:L,variableSizeGridRef:de,width:me})=>{const[ye,oe]=t.useState(),[Ae,je]=t.useState(),[Xe,Ye]=t.useState(-1),[Ie,Ke]=t.useState(-1),[U,Q]=t.useState(),[be,ve]=t.useState(),P=_ instanceof Function,[x,_e]=t.useState(P?void 0:_),[pe,Re]=t.useState(),[i,Ee]=t.useState({searchQuery:"",columnFilterMap:W||{},sortColumn:T,sortAsc:S}),[q,Jt]=t.useState(L?j.parseLocationHash(window.location.hash):null);t.useEffect(()=>{P||_e(_)},[_,P]),t.useEffect(()=>{!P||x!==void 0||_(q&&Object.keys(q).length!==0?{...q,columnFilterMap:q.columnFilterMap||{}}:i).then(_e)},[_,P,q,x,i]),t.useEffect(()=>{pe||Re(i)},[i,pe]),t.useEffect(()=>{if(!L)return;const s=()=>{Jt(j.parseLocationHash(window.location.hash))};return window.addEventListener("hashchange",s),()=>{window.removeEventListener("hashchange",s)}},[L]),t.useEffect(()=>{if(!L)return;const{columnFilterMap:s,searchQuery:d,sortAsc:u,sortColumn:l}=q||{},f={searchQuery:d||"",columnFilterMap:s||W||{},sortAsc:u===void 0?S:u,sortColumn:l===void 0?T:l};Ee(N=>ge.isEqual(f,N)?N:f)},[q,L,W,S,T]),t.useEffect(()=>{se&&se(i)},[se,i]);const gt=t.useRef(null),_t=t.useRef(null),Be=bt(gt.current),Ct=bt(_t.current),Ne=t.useMemo(()=>me||Math.floor(Be.width||0),[Be.width,me]),Se=t.useMemo(()=>!ge.isEqual(i,pe)&&P,[i,pe,P]),{properties:le,required:Ht}=t.useMemo(()=>({properties:{},required:[],...V}),[V]),Qe=v?localStorage.getItem(`${v}.columnNames`):null,ze=v?localStorage.getItem(`${v}.columnWidths`):null,te=t.useMemo(()=>{if(ye)return ye;const s=Qe?JSON.parse(Qe):void 0;let d=Object.keys(le);if(G&&d.unshift(R),c){Object.keys(c).forEach(l=>{d.includes(l)||d.push(l)});const u=Object.entries(c).reduce((l,[f,N])=>(N.hidden&&l.push(f),l),[]);d=d.filter(l=>!u.includes(l)).sort((l,f)=>{let N=c[l]?c[l].order:void 0;N===void 0&&(N=Object.keys(le).findIndex(K=>K===l));let g=c[f]?c[f].order:void 0;return g===void 0&&(g=Object.keys(le).findIndex(K=>K===f)),f===R||l===R?0:N===-1?1:g===-1?-1:N-g})}return s?.length===d.length?s:d},[c,ye,G,le,Qe]),Ue=t.useMemo(()=>x&&te?x.map((s,d)=>te.reduce((u,l)=>{const f=le[l],N=c?c[l]:void 0;if(N?.renderData)return u[l]=N.renderData(s,d),u;if(!f||l===R)return u[l]="",u;const g=s?s[l]:"";switch(f.type){case"array":return u[l]=f.items?.type==="string"&&g?g.map(K=>k(K)).join(", "):JSON.stringify(g),u;case"boolean":return u[l]=g===void 0?"?":g?"✓":"✕",u;case"number":case"integer":return g===void 0?(u[l]="",u):(u[l]=f.format==="currency"?Ut.format(g):zt.format(g),u);case"string":if(f.format==="date"&&g)return u[l]=["2999-12-31","1970-01-01"].includes(g)?"-":Je(new Date(g),N?.dateFormat||He),u;if(f.format==="date-time"&&g)return u[l]=D?j.localeFormatInTimeZone(new Date(g),D,Le):Je(new Date(g),N?.dateFormat||Le),u;if(f.enum)return u[l]=g?k(g):"",u;default:return u[l]=g?`${g}`:"",u}},{_index:d})):void 0,[x,te,le,c,k,D]),Te=te?te.length:0,{dynamicWidthColumnCount:et,fixedWidthColumnsWidth:tt}=t.useMemo(()=>{let s=0,d=0;return(te||[]).forEach(u=>{if(u===R){s+=at;return}const l=c?c[u]:void 0;l?.width?s+=l.width:d+=1},0),{dynamicWidthColumnCount:d,fixedWidthColumnsWidth:s}},[te,c]),ae=t.useMemo(()=>{if(Ae)return new Uint16Array(Ae);const s=ze?new Uint16Array(JSON.parse(ze)):void 0,d=Math.max(Math.floor((Ne-tt)/et),Ge);let u=(Ne-tt)%et;const l=new Uint16Array(te.map(f=>{if(f===R)return at;const N=c?c[f]:void 0;return N?.width?N?.width:u?(u-=1,d+1):d}));return s?.length===l.length?s:l},[te,c,Ae,et,tt,ze,Ne]),qe=t.useCallback(s=>ae?ae[s]:1,[ae]),Oe=t.useMemo(()=>{if(!Ue||!h&&!Z||P)return Ue;const{searchQuery:s}=i,d=s.toLowerCase()||"",u=l=>x&&M?M(x[l._index],s):!(te&&!te.find(f=>`${l[f]}`.toLowerCase().includes(d)));return Ue.filter(l=>{let f=u(l);return!f||!i.columnFilterMap?!1:(Object.entries(i.columnFilterMap).forEach(([N,g])=>{if(!f||g===void 0)return;const K=c?c[N]:void 0;if(x&&K?.filter){f=K.filter(x[l._index],g);return}const he=le[N],B=x[l._index]?.[N];switch(he?.type){case"boolean":case"number":case"integer":if(g&&typeof g=="object"){g.filterEmpty&&B===void 0&&(f=!1);for(const J of Object.keys(fe)){const ke=g[J];if(f&&ge.isFinite(ke))switch(J){case fe.EQ:B!==ke&&(f=!1);break;case fe.GT:B<=ke&&(f=!1);break;case fe.LT:B>=ke&&(f=!1);break}}}else{if(B===void 0&&g===null)return!0;f=B===g}break;case"string":if(typeof g=="object"&&(he.format==="date"||he.format==="date-time")){const{from:J,to:ke,filterEmpty:vt}=g;if(!B)f=!vt;else{const Ze=B?new Date(B):void 0;(vt===!1||J&&(!Ze||Ze<J)||ke&&(!Ze||Ze>ke))&&(f=!1)}return}default:if(he?.enum){f=B===g;return}f=`${l[N]}`.toLowerCase().includes(`${g}`.toLowerCase())}}),f)})},[Ue,h,Z,P,i,M,te,c,x,le]),Y=t.useMemo(()=>{const{sortAsc:s,sortColumn:d}=i;if(!d||!Oe||!x||P)return Oe;const u=le[d],l=c?c[d]:void 0,f=l?.sort;if(f)return Oe.sort((K,he)=>{const B=x[K._index],J=x[he._index];return B?J?f(B,J,s===void 0?S:s):-1:1});const N=u&&u.format?.startsWith("date"),g=qt(u,l);return Oe.sort((K,he)=>{let B=g&&x[K._index]?x[K._index][d]:`${K[d]}`.toLowerCase(),J=g&&x[he._index]?x[he._index][d]:`${he[d]}`.toLowerCase();return g&&N&&(B=new Date(B),isNaN(B.getTime())&&(B=pt),J=new Date(J),isNaN(J.getTime())&&(J=pt)),B===J?0:B?J?(B<J?1:-1)*(s?-1:1):s?1:-1:s?-1:1})},[c,S,Oe,P,le,x,i]),wt=t.useCallback(s=>{const d={...i.columnFilterMap};delete d[s],Ee({...i,columnFilterMap:d})},[i]),nt=t.useCallback((s,d)=>{if(L){window.location.hash=j.serializeLocationHash({...q,sortColumn:s,sortAsc:d});return}Ee({...i,sortColumn:s,sortAsc:d})},[i,q,L]),Gt=t.useCallback(s=>{Ee({...i,searchQuery:s.currentTarget.value})},[i]),De=t.useCallback(()=>{Re(i),_e(void 0)},[i]);t.useEffect(()=>{if(!m||!q||!pe||!L)return;const s=Object.keys(q);let d=!1;for(const u of s){const l=q[u],f=pe[u];if(typeof l=="string"&&l!==f){d=!0;break}if(typeof l=="object"&&!ge.isEqual(l,f)){d=!0;break}}d&&De()},[m,q,pe,De,L]);const yt=t.useCallback(s=>{s.key==="Enter"&&(Q(void 0),Se&&De(),X&&s.currentTarget.className==="mig-schema-table__search"&&X(i.searchQuery||""))},[Se,i.searchQuery,X,De]),rt=t.useCallback(()=>z,[z]),ue=t.useMemo(()=>ge.sum(ae),[ae]),$e=t.useMemo(()=>Y?Y.length:0,[Y]),Ce=t.useMemo(()=>{const s=z*$e;let d;if(C&&(d=C==="100%"?Be.height:C,!d))return 0;const u=d?d-Ct.height-ct:0;return u&&u<s?u:s},[z,$e,C,Ct,Be.height]),Xt=t.useCallback(s=>{Q(void 0),s.preventDefault(),s.stopPropagation()},[]),Yt=t.useCallback((s,d)=>{if(!U)return;if(L&&d!==!1){window.location.hash=j.serializeLocationHash({...q,columnFilterMap:{...i.columnFilterMap,[U.propName]:s}});return}if(s===void 0){wt(U.propName);return}const u={...i.columnFilterMap,[U.propName]:s};Ee({...i,columnFilterMap:u})},[wt,i,q,U,L]),Kt=t.useCallback(()=>{const s={searchQuery:"",columnFilterMap:{},sortColumn:T,sortAsc:S};L&&(window.location.hash=j.serializeLocationHash(s)),Re(s),Ee(s)},[L,S,T]),Rt=t.useCallback(()=>{const s=q?.searchQuery||"";L&&(i.searchQuery||s)&&i.searchQuery!==s&&(window.location.hash=j.serializeLocationHash({...q,searchQuery:i.searchQuery}))},[q,i.searchQuery,L]),en=t.useCallback(async s=>{s.preventDefault(),s.stopPropagation(),Y&&Qt(Y)},[Y]),tn=t.useCallback(()=>{v&&(localStorage.removeItem(`${v}.columnNames`),localStorage.removeItem(`${v}.columnWidths`),oe(void 0),je(void 0))},[v]),st=t.useCallback(s=>{if(!Y||!x||!re||!ce)return!0;const d=Y[s];return d&&x[d._index]!==void 0},[ce,re,Y,x]),nn=t.useMemo(()=>Ce?!(x&&!Se)&&!re?e.jsx("div",{style:{width:ue,height:Math.max(50,Ce),border:"1px solid #BBB",textAlign:"center",display:"flex",backgroundColor:"#CCC",alignItems:"center",justifyContent:"center"},children:Se?e.jsx("button",{onClick:De,className:"btn border",children:"Refresh data"}):e.jsx("div",{children:"⌛ Loading..."})}):re&&ce?e.jsx(Mt,{ref:o,isItemLoaded:st,itemCount:ce,loadMoreItems:re,children:({onItemsRendered:d,ref:u})=>e.jsx(Pe.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:z,height:Ce,width:ue,columnWidth:qe,rowHeight:rt,columnCount:Te,rowCount:$e,ref:u,onItemsRendered:({overscanRowStartIndex:l,overscanRowStopIndex:f,visibleRowStartIndex:N,visibleRowStopIndex:g})=>d({overscanStartIndex:l,overscanStopIndex:f,visibleStartIndex:N,visibleStopIndex:g}),children:ut},`tbody_${Ce}_${ue}_${i.sortColumn}_${i.sortAsc}_${i.searchQuery}_${Te}_${ae.join(" ")}`)}):e.jsx(Pe.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:z,height:Ce,width:ue,columnWidth:qe,rowHeight:rt,columnCount:Te,rowCount:$e,ref:de,children:ut},`tbody_${Ce}_${ue}_${i.sortColumn}_${i.sortAsc}_${i.searchQuery}_${Te}_${ae.join(" ")}`):null,[Te,ae,qe,rt,o,Se,st,ce,re,De,$e,z,ue,i.searchQuery,i.sortAsc,i.sortColumn,x,Ce,de]),rn=t.useMemo(()=>({...I,width:me?Math.min(ue,Ne):void 0,height:C==="100%"?"100%":void 0,maxHeight:C==="100%"?"100%":void 0}),[C,ue,I,Ne,me]),sn=r||"input";return e.jsx(Me.Provider,{value:{checkedIndexes:b,columnNames:te,columnWidths:ae,config:c,disabledCheckedIndexes:$,displayTimezone:D,dropTargetIndex:Ie,getRowClassName:H,getRowSelected:ee,isColumnFilterable:h,isItemLoaded:st,isSortable:ne,lastCheckChangedRowIndex:be,onRowClick:A,onRowDoubleClick:ie,properties:le,required:Ht,setCheckedIndexes:G,setCustomColumnNames:oe,setCustomColumnWidths:je,setDropTargetIndex:Ke,setFilterSortColumn:nt,setLastCheckChangedRowIndex:ve,setMenuConfig:Q,settingsStorageKey:v,sortedRenderData:Y,sourceData:x,tableDataState:i,translate:k||lt},children:e.jsxs("div",{className:`mig-schema-table${A?" mig-schema-table--clickable-rows":""}`,ref:gt,style:rn,role:"table",children:[e.jsxs("div",{className:"mig-schema-table__action-container",ref:_t,children:[e.jsx("div",{children:Z?e.jsx(sn,{className:"mig-schema-table__search",type:"search",name:"search",autoComplete:"off",placeholder:we||k("search..."),value:i.searchQuery,onChange:Gt,onKeyDown:yt,autoFocus:y,onBlur:Rt}):null}),n?e.jsx(n,{...F,renderData:Y}):e.jsx("div",{className:"mig-schema-table__custom_element_placeholder"}),O&&Array.isArray(_)?e.jsx("span",{className:"mig-schema-table__row_counter",children:k("showingFilteredCountOfTotalCount",Y?.length||0,_.length)}):null,p?e.jsx("button",{onClick:en,style:{marginLeft:8},disabled:!Y?.length,children:k("exportData")}):null,Z||h?e.jsx("button",{onClick:Kt,style:{marginLeft:8},disabled:i.columnFilterMap&&i.searchQuery?Object.keys(i.columnFilterMap).length+i.searchQuery.length===0:!1,children:k("clearFilters")}):null,v?e.jsx("button",{onClick:tn,style:{marginLeft:8},disabled:!Qe&&!ze,children:k("clearSettings")}):null]}),e.jsxs("div",{className:"mig-schema-table__column_resize_container",children:[e.jsx(a,{height:ct,itemCount:Te,itemSize:qe,layout:"horizontal",width:ue,sortAsc:i.sortAsc,setFilterSortColumn:nt,sortColumn:i.sortColumn,sortedRenderData:Y,className:"mig-schema-table__th-row",children:mt},`thead_${ue}_${i.sortColumn}_${i.sortAsc}_${i.searchQuery}_${ae.join(" ")}`),nn,w?e.jsx(jt,{columnWidths:ae,resizeColumnIndex:Xe,setResizeColumnIndex:Ye,tableBodyHeight:Ce}):null]}),x?x.length>0?e.jsx(e.Fragment,{children:kt.createPortal(U?e.jsx(Wt,{isFilterable:h&&U.propConfig?.isFilterable!==!1,isSortable:ht(!!ne,V.properties[U.propName],U.propConfig),onChange:Yt,onClose:Xt,onInputKeyDown:yt,propConfig:U.propConfig,propIsRequired:U.propIsRequired,propName:U.propName,propSchema:V.properties[U.propName],referenceElement:U.referenceElement,setFilterSortColumn:nt,translate:k,value:i.columnFilterMap?i.columnFilterMap[U.propName]:null}):null,document.body)}):e.jsx("div",{className:"mig-schema-table__no_data",children:"No data found"}):null]})})},Pt=t.memo(Zt),Vt=t.memo(({refresh:n,period:r=60})=>{const[a,m]=t.useState(new Date),[b,c]=t.useState(new Date),F=t.useCallback(()=>{c(new Date),n()},[n]),_=t.useMemo(()=>Ve.differenceInSeconds(a,b),[a,b]);t.useEffect(()=>{_>r&&F()},[_,a,b,r,F]),t.useEffect(()=>{const T=setInterval(()=>{m(new Date)},1e3);return()=>{clearInterval(T)}},[]);const W=r-_;return e.jsxs("div",{className:"mx-auto",title:`Refresh ${W>0?`in ${W} seconds`:"NOW"}`,children:["Last update ",Je(b,"HH:mm")]})});E.DEFAULT_DATE_FORMAT=He,E.DEFAULT_DATE_TIME_FORMAT=Le,E.EColumnFilterStatus=xe,E.MINIMUM_COLUMN_WIDTH=Ge,E.RESIZER_WIDTH=dt,E.Refresher=Vt,E.SchemaTable=Pt,E.Th=mt,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mig-schema-table",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"dev": "vite",
|
|
22
22
|
"build": "tsc && vite build",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"prepublishOnly": "npm run build",
|
|
24
|
+
"lint": "eslint src"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@date-fns/tz": "^1.4.1",
|
|
28
|
-
"@floating-ui/react-dom": "^2.1.
|
|
28
|
+
"@floating-ui/react-dom": "^2.1.6",
|
|
29
29
|
"date-fns": "^4.1.0",
|
|
30
30
|
"file-saver": "^2.0.5",
|
|
31
31
|
"lodash": "^4.17.21",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@chromatic-com/storybook": "^1.4.0",
|
|
39
|
+
"@eslint/js": "^9.39.1",
|
|
39
40
|
"@storybook/addon-essentials": "^8.1.2",
|
|
40
41
|
"@storybook/addon-interactions": "^8.1.2",
|
|
41
42
|
"@storybook/addon-links": "^8.1.2",
|
|
@@ -52,16 +53,15 @@
|
|
|
52
53
|
"@types/react-dom": "^18.2.22",
|
|
53
54
|
"@types/react-window": "^1.8.8",
|
|
54
55
|
"@types/react-window-infinite-loader": "^1.0.9",
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
56
|
-
"@typescript-eslint/parser": "^7.2.0",
|
|
57
56
|
"@vitejs/plugin-react-swc": "^4.2.2",
|
|
58
|
-
"eslint": "^
|
|
59
|
-
"eslint-plugin-react-hooks": "^
|
|
60
|
-
"eslint-plugin-react-refresh": "^0.4.
|
|
57
|
+
"eslint": "^9.39.1",
|
|
58
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
59
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
61
60
|
"openapi3-ts": "^4.3.1",
|
|
62
61
|
"prettier": "^3.2.5",
|
|
63
62
|
"sass": "^1.77.2",
|
|
64
|
-
"typescript": "5.8.2",
|
|
63
|
+
"typescript": "^5.8.2",
|
|
64
|
+
"typescript-eslint": "^8.46.4",
|
|
65
65
|
"vite": "^7.2.2",
|
|
66
66
|
"vite-plugin-dts": "^4.5.4"
|
|
67
67
|
},
|