@trsys-tech/matrix-library 1.1.6 → 1.1.7
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/README.md +18 -10
- package/dist/components/data-table/DataTable.d.ts +8 -0
- package/dist/components/data-table/DataTable.d.ts.map +1 -0
- package/dist/components/data-table/DataTable.types.d.ts +176 -0
- package/dist/components/data-table/DataTable.types.d.ts.map +1 -0
- package/dist/components/data-table/DataTableActions.d.ts +42 -0
- package/dist/components/data-table/DataTableActions.d.ts.map +1 -0
- package/dist/components/data-table/DataTableAlignment.d.ts +9 -0
- package/dist/components/data-table/DataTableAlignment.d.ts.map +1 -0
- package/dist/components/data-table/DataTableColumnHeader.d.ts +11 -0
- package/dist/components/data-table/DataTableColumnHeader.d.ts.map +1 -0
- package/dist/components/data-table/DataTableColumnMenu.d.ts +9 -0
- package/dist/components/data-table/DataTableColumnMenu.d.ts.map +1 -0
- package/dist/components/data-table/DataTableContent.d.ts +7 -0
- package/dist/components/data-table/DataTableContent.d.ts.map +1 -0
- package/dist/components/data-table/DataTableContext.d.ts +37 -0
- package/dist/components/data-table/DataTableContext.d.ts.map +1 -0
- package/dist/components/data-table/DataTableHeader.d.ts +22 -0
- package/dist/components/data-table/DataTableHeader.d.ts.map +1 -0
- package/dist/components/data-table/DataTablePagination.d.ts +8 -0
- package/dist/components/data-table/DataTablePagination.d.ts.map +1 -0
- package/dist/components/data-table/DataTableRowView.d.ts +40 -0
- package/dist/components/data-table/DataTableRowView.d.ts.map +1 -0
- package/dist/components/data-table/dataTableColumnDrag.d.ts +13 -0
- package/dist/components/data-table/dataTableColumnDrag.d.ts.map +1 -0
- package/dist/components/data-table/dataTableEditing.d.ts +11 -0
- package/dist/components/data-table/dataTableEditing.d.ts.map +1 -0
- package/dist/components/data-table/dataTableFeatures.d.ts +25 -0
- package/dist/components/data-table/dataTableFeatures.d.ts.map +1 -0
- package/dist/components/data-table/dataTableModel.d.ts +23 -0
- package/dist/components/data-table/dataTableModel.d.ts.map +1 -0
- package/dist/components/data-table/dataTablePrint.d.ts +3 -0
- package/dist/components/data-table/dataTablePrint.d.ts.map +1 -0
- package/dist/components/data-table/dataTableStyles.d.ts +2 -0
- package/dist/components/data-table/dataTableStyles.d.ts.map +1 -0
- package/dist/components/data-table/useDataTableApi.d.ts +34 -0
- package/dist/components/data-table/useDataTableApi.d.ts.map +1 -0
- package/dist/components/data-table/useDataTableColumnDrag.d.ts +16 -0
- package/dist/components/data-table/useDataTableColumnDrag.d.ts.map +1 -0
- package/dist/components/data-table/useDataTableInstance.d.ts +96 -0
- package/dist/components/data-table/useDataTableInstance.d.ts.map +1 -0
- package/dist/components/data-table/useDataTableMotion.d.ts +4 -0
- package/dist/components/data-table/useDataTableMotion.d.ts.map +1 -0
- package/dist/components/resource-scheduler/ResourceScheduler.d.ts +96 -0
- package/dist/components/resource-scheduler/ResourceScheduler.d.ts.map +1 -0
- package/dist/datatable.es.js +40 -0
- package/dist/datatable.es.js.map +1 -0
- package/dist/datatableactions.es.js +193 -0
- package/dist/datatableactions.es.js.map +1 -0
- package/dist/datatablealignment.es.js +11 -0
- package/dist/datatablealignment.es.js.map +1 -0
- package/dist/datatablecolumndrag.es.js +34 -0
- package/dist/datatablecolumndrag.es.js.map +1 -0
- package/dist/datatablecolumnheader.es.js +81 -0
- package/dist/datatablecolumnheader.es.js.map +1 -0
- package/dist/datatablecolumnmenu.es.js +191 -0
- package/dist/datatablecolumnmenu.es.js.map +1 -0
- package/dist/datatablecontent.es.js +376 -0
- package/dist/datatablecontent.es.js.map +1 -0
- package/dist/datatablecontext.es.js +14 -0
- package/dist/datatablecontext.es.js.map +1 -0
- package/dist/datatablefeatures.es.js +24 -0
- package/dist/datatablefeatures.es.js.map +1 -0
- package/dist/datatableheader.es.js +126 -0
- package/dist/datatableheader.es.js.map +1 -0
- package/dist/datatablemodel.es.js +126 -0
- package/dist/datatablemodel.es.js.map +1 -0
- package/dist/datatablepagination.es.js +43 -0
- package/dist/datatablepagination.es.js.map +1 -0
- package/dist/datatableprint.es.js +65 -0
- package/dist/datatableprint.es.js.map +1 -0
- package/dist/datatablerowview.es.js +201 -0
- package/dist/datatablerowview.es.js.map +1 -0
- package/dist/datatablestyles.es.js +5 -0
- package/dist/datatablestyles.es.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +173 -154
- package/dist/index.es.js.map +1 -1
- package/dist/resourcescheduler.es.js +450 -0
- package/dist/resourcescheduler.es.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/usedatatableapi.es.js +117 -0
- package/dist/usedatatableapi.es.js.map +1 -0
- package/dist/usedatatablecolumndrag.es.js +40 -0
- package/dist/usedatatablecolumndrag.es.js.map +1 -0
- package/dist/usedatatableinstance.es.js +178 -0
- package/dist/usedatatableinstance.es.js.map +1 -0
- package/dist/usedatatablemotion.es.js +99 -0
- package/dist/usedatatablemotion.es.js.map +1 -0
- package/package.json +33 -12
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { jsxs as S, jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import * as r from "react";
|
|
3
|
+
import { DragDropProvider as be, DragOverlay as we } from "@dnd-kit/react";
|
|
4
|
+
import { useVirtualizer as ye } from "@tanstack/react-virtual";
|
|
5
|
+
import { cn as Ct } from "./utils.es.js";
|
|
6
|
+
import { Button as kt } from "./button.es.js";
|
|
7
|
+
import { useDataTable as Ie, DataTableAlignmentContext as ve } from "./datatablecontext.es.js";
|
|
8
|
+
import { dataTableColumnSensors as Re } from "./datatablecolumndrag.es.js";
|
|
9
|
+
import { getActiveDataTableCell as Ce } from "./datatablemodel.es.js";
|
|
10
|
+
import { useDataTableInstance as ke } from "./usedatatableinstance.es.js";
|
|
11
|
+
import { DataTableHeader as Ee } from "./datatableheader.es.js";
|
|
12
|
+
import { DataTablePagination as Se } from "./datatablepagination.es.js";
|
|
13
|
+
import { DataTableRowView as _e } from "./datatablerowview.es.js";
|
|
14
|
+
import { useDataTableColumnDrag as Pe } from "./usedatatablecolumndrag.es.js";
|
|
15
|
+
import { useDataTableMotion as De } from "./usedatatablemotion.es.js";
|
|
16
|
+
import { useDataTableApi as Te } from "./usedatatableapi.es.js";
|
|
17
|
+
const Et = [], Ae = {};
|
|
18
|
+
function ze({
|
|
19
|
+
rowData: St,
|
|
20
|
+
columnDefs: J,
|
|
21
|
+
defaultColDef: _t = Ae,
|
|
22
|
+
getRowId: Pt,
|
|
23
|
+
onReady: et,
|
|
24
|
+
rowSelection: p,
|
|
25
|
+
renderSubComponent: z,
|
|
26
|
+
getRowCanExpand: Dt,
|
|
27
|
+
onSelectionChanged: nt,
|
|
28
|
+
quickFilterText: Tt,
|
|
29
|
+
onQuickFilterTextChange: At,
|
|
30
|
+
externalFilter: zt,
|
|
31
|
+
loading: N = !1,
|
|
32
|
+
emptyContent: Nt = "No rows to display",
|
|
33
|
+
loadingContent: jt = "Loading…",
|
|
34
|
+
rowHeight: K = 36,
|
|
35
|
+
headerHeight: j = 40,
|
|
36
|
+
getRowClass: Mt,
|
|
37
|
+
rowClassRules: Lt,
|
|
38
|
+
pinnedTopRowData: _ = Et,
|
|
39
|
+
pinnedBottomRowData: M = Et,
|
|
40
|
+
pagination: L = !1,
|
|
41
|
+
paginationPageSize: Vt = 25,
|
|
42
|
+
paginationPageSizeSelector: Wt = [10, 25, 50, 100],
|
|
43
|
+
virtualize: Ft = !0,
|
|
44
|
+
overscan: $t = 8,
|
|
45
|
+
domLayout: rt = "normal",
|
|
46
|
+
suppressHorizontalScroll: Ot = !1,
|
|
47
|
+
editType: st = "cell",
|
|
48
|
+
suppressClickEdit: Jt = !1,
|
|
49
|
+
readOnlyEdit: ot = !1,
|
|
50
|
+
validateRow: it,
|
|
51
|
+
onEditCommit: lt,
|
|
52
|
+
onEditRequest: at,
|
|
53
|
+
onEditCancel: ct,
|
|
54
|
+
onRowClick: Kt,
|
|
55
|
+
tableOptions: P,
|
|
56
|
+
containerStyle: U,
|
|
57
|
+
className: Ut,
|
|
58
|
+
style: Xt,
|
|
59
|
+
...dt
|
|
60
|
+
}, Bt) {
|
|
61
|
+
"use no memo";
|
|
62
|
+
const { setApi: X, search: Ht, hasSearch: Yt, setSearch: Gt, setCounts: mt } = Ie(), D = r.useContext(ve), Qt = r.useId(), y = r.useRef(null), B = r.useRef(null), [Zt, qt] = r.useState(0), [te, ee] = r.useState(!1), [H, ne] = r.useState(null), [re, se] = r.useState(null), [oe, ut] = r.useState({}), [T, ie] = r.useState(null), [le] = r.useState(() => P?.initialState?.globalFilter ?? ""), x = r.useRef(T), ft = r.useRef({ columnDefs: J, validateRow: it, readOnlyEdit: ot, onEditCommit: lt, onEditRequest: at, onEditCancel: ct });
|
|
63
|
+
ft.current = { columnDefs: J, validateRow: it, readOnlyEdit: ot, onEditCommit: lt, onEditRequest: at, onEditCancel: ct };
|
|
64
|
+
const gt = r.useCallback((t) => {
|
|
65
|
+
x.current = t, ie(t);
|
|
66
|
+
}, []), l = te || rt === "print", pt = l || rt === "autoHeight", ae = Tt ?? P?.state?.globalFilter ?? (Yt ? Ht : le), V = !!p && p.checkboxes !== !1 && !l, W = !!z && !l, Y = W ? 44 : 0, G = (V ? 44 : 0) + Y, { table: o, definitionsById: R, sourcesById: h, data: ce, rowIndices: F, resolveId: xt } = ke({
|
|
67
|
+
rowData: St,
|
|
68
|
+
columnDefs: J,
|
|
69
|
+
defaultColDef: _t,
|
|
70
|
+
getRowId: Pt,
|
|
71
|
+
paginationPageSize: Vt,
|
|
72
|
+
tableOptions: P,
|
|
73
|
+
externalFilter: zt,
|
|
74
|
+
rowSelection: p,
|
|
75
|
+
pagination: L,
|
|
76
|
+
renderSubComponent: z,
|
|
77
|
+
getRowCanExpand: Dt,
|
|
78
|
+
onQuickFilterTextChange: At,
|
|
79
|
+
patches: oe,
|
|
80
|
+
alignment: D,
|
|
81
|
+
isPrinting: l,
|
|
82
|
+
viewportWidth: Zt,
|
|
83
|
+
selectionWidth: G,
|
|
84
|
+
searchText: ae,
|
|
85
|
+
setSearch: Gt
|
|
86
|
+
}), a = [...o.getStartVisibleLeafColumns(), ...o.getCenterVisibleLeafColumns(), ...o.getEndVisibleLeafColumns()].filter(
|
|
87
|
+
(t) => t.id !== "__external" && (!l || !R.get(t.id)?.hideInPrint)
|
|
88
|
+
);
|
|
89
|
+
if (H) {
|
|
90
|
+
const t = a.findIndex((n) => n.id === H.sourceId), e = a.findIndex((n) => n.id === H.targetId);
|
|
91
|
+
t >= 0 && e >= 0 && a.splice(e, 0, a.splice(t, 1)[0]);
|
|
92
|
+
}
|
|
93
|
+
const A = new Map(a.map((t) => [t.id, t.getSize()])), Q = G + a.reduce((t, e) => t + A.get(e.id), 0), g = o.getTopRows(), b = o.getBottomRows(), ht = new Set([...g, ...b].map((t) => t.id)), d = (l ? o.getPrePaginatedRowModel().rows : o.getRowModel().rows).filter((t) => !ht.has(t.id)), Z = (t) => !!z && t.getCanExpand() && t.getIsExpanded(), de = [...g, ...d, ...b].some(Z), C = Ft && !pt && !de, bt = (g.length + _.length) * K, $ = ye({
|
|
94
|
+
count: d.length,
|
|
95
|
+
getScrollElement: () => y.current,
|
|
96
|
+
estimateSize: () => K,
|
|
97
|
+
getItemKey: (t) => d[t].id,
|
|
98
|
+
overscan: $t,
|
|
99
|
+
scrollMargin: j + bt,
|
|
100
|
+
enabled: C,
|
|
101
|
+
useFlushSync: !1
|
|
102
|
+
}), I = r.useRef({
|
|
103
|
+
table: o,
|
|
104
|
+
definitionsById: R,
|
|
105
|
+
centerRows: d,
|
|
106
|
+
virtualizer: $,
|
|
107
|
+
resolveId: xt,
|
|
108
|
+
rowIndices: F,
|
|
109
|
+
sourcesById: h,
|
|
110
|
+
useVirtualRows: C,
|
|
111
|
+
pagination: L,
|
|
112
|
+
serverPagination: P?.manualPagination === !0
|
|
113
|
+
});
|
|
114
|
+
I.current = {
|
|
115
|
+
table: o,
|
|
116
|
+
definitionsById: R,
|
|
117
|
+
centerRows: d,
|
|
118
|
+
virtualizer: $,
|
|
119
|
+
resolveId: xt,
|
|
120
|
+
rowIndices: F,
|
|
121
|
+
sourcesById: h,
|
|
122
|
+
useVirtualRows: C,
|
|
123
|
+
pagination: L,
|
|
124
|
+
serverPagination: P?.manualPagination === !0
|
|
125
|
+
};
|
|
126
|
+
const me = Pe({ runtime: I, viewportRef: y, contentRef: B, setColumnDrag: ne }), s = Te({ runtime: I, editRef: x, configRef: ft, updateEdit: gt, setPatches: ut, contentRef: B, viewportRef: y, setPrinting: ee });
|
|
127
|
+
r.useImperativeHandle(Bt, () => s, [s]), r.useEffect(() => (X(s), () => X((t) => t === s ? null : t)), [s, X]);
|
|
128
|
+
const wt = r.useRef(et);
|
|
129
|
+
wt.current = et, r.useEffect(() => {
|
|
130
|
+
wt.current?.(s);
|
|
131
|
+
}, [s]);
|
|
132
|
+
const yt = r.useRef(nt);
|
|
133
|
+
yt.current = nt, r.useEffect(() => {
|
|
134
|
+
const t = I.current.table, e = t.getSelectedRowModel().rows.map((n) => n.original);
|
|
135
|
+
yt.current?.(e, t.getSelectedRowIds());
|
|
136
|
+
}, [o.state.rowSelection, ce]), r.useEffect(() => {
|
|
137
|
+
const t = I.current.table, e = t.getSelectedRowIds().length, n = (t.state.rowPinning.top?.length ?? 0) + (t.state.rowPinning.bottom?.length ?? 0);
|
|
138
|
+
mt(
|
|
139
|
+
(i) => i.selectedCount === e && i.pinnedCount === n ? i : { selectedCount: e, pinnedCount: n }
|
|
140
|
+
);
|
|
141
|
+
}, [o.state.rowSelection, o.state.rowPinning, mt]), r.useEffect(() => {
|
|
142
|
+
const t = y.current;
|
|
143
|
+
if (!t) return;
|
|
144
|
+
const e = () => qt(t.clientWidth);
|
|
145
|
+
e();
|
|
146
|
+
const n = new ResizeObserver(e);
|
|
147
|
+
return n.observe(t), () => n.disconnect();
|
|
148
|
+
}, []), r.useEffect(() => {
|
|
149
|
+
const t = y.current, e = D?.viewports.current;
|
|
150
|
+
if (!(!t || !e))
|
|
151
|
+
return e.add(t), () => {
|
|
152
|
+
e.delete(t);
|
|
153
|
+
};
|
|
154
|
+
}, [D?.viewports]), r.useEffect(() => {
|
|
155
|
+
x.current && h.get(x.current.rowId) !== x.current.source && s.stopEditing(!0), ut((e) => {
|
|
156
|
+
const n = Object.entries(e).filter(([i, c]) => h.get(i) === c.source);
|
|
157
|
+
return n.length === Object.keys(e).length ? e : Object.fromEntries(n);
|
|
158
|
+
});
|
|
159
|
+
const t = I.current.table;
|
|
160
|
+
if (!I.current.serverPagination) {
|
|
161
|
+
const e = t.atoms.rowSelection.get(), n = Object.entries(e).filter(([u]) => h.has(u));
|
|
162
|
+
n.length !== Object.keys(e).length && t.setRowSelection(Object.fromEntries(n));
|
|
163
|
+
const i = t.atoms.rowPinning.get(), c = i.top?.filter((u) => h.has(u)), w = i.bottom?.filter((u) => h.has(u));
|
|
164
|
+
(c?.length !== i.top?.length || w?.length !== i.bottom?.length) && t.setRowPinning({ top: c, bottom: w });
|
|
165
|
+
}
|
|
166
|
+
}, [h, s]);
|
|
167
|
+
const O = [...g, ...d, ...b], q = [
|
|
168
|
+
..._.map((t, e) => `__summary_top_${e}`),
|
|
169
|
+
...g.map((t) => t.id),
|
|
170
|
+
...d.map((t) => t.id),
|
|
171
|
+
...b.map((t) => t.id),
|
|
172
|
+
...M.map((t, e) => `__summary_bottom_${e}`)
|
|
173
|
+
], ue = new Set(O.filter(Z).map((t) => t.id));
|
|
174
|
+
let tt = 0;
|
|
175
|
+
const fe = new Map(
|
|
176
|
+
q.map((t) => {
|
|
177
|
+
const e = tt;
|
|
178
|
+
return tt += ue.has(t) ? 2 : 1, [t, e];
|
|
179
|
+
})
|
|
180
|
+
), It = C ? $.getVirtualItems() : [], ge = C ? [
|
|
181
|
+
...q.slice(0, _.length + g.length),
|
|
182
|
+
...It.map((t) => d[t.index].id),
|
|
183
|
+
...b.map((t) => t.id),
|
|
184
|
+
...M.map((t, e) => `__summary_bottom_${e}`)
|
|
185
|
+
] : q, pe = Ce(
|
|
186
|
+
re,
|
|
187
|
+
ge,
|
|
188
|
+
a.map((t) => t.id)
|
|
189
|
+
);
|
|
190
|
+
De(y, JSON.stringify(d.map((t) => t.id)), JSON.stringify(a.map((t) => t.id)), l);
|
|
191
|
+
const vt = (t, e = !1) => {
|
|
192
|
+
const n = l ? !1 : t.getIsPinned(), i = a.filter((f) => f.getIsPinned() === n), c = i.findIndex((f) => f.id === t.id), w = i.slice(0, c).reduce((f, E) => f + A.get(E.id), G), u = i.slice(c + 1).reduce((f, E) => f + A.get(E.id), 0);
|
|
193
|
+
return {
|
|
194
|
+
width: A.get(t.id),
|
|
195
|
+
flexShrink: 0,
|
|
196
|
+
position: n ? "sticky" : "relative",
|
|
197
|
+
insetInlineStart: n === "start" ? w : void 0,
|
|
198
|
+
insetInlineEnd: n === "end" ? u : void 0,
|
|
199
|
+
zIndex: n ? 2 : void 0,
|
|
200
|
+
background: n ? e ? "oklch(var(--mtx-primary-50))" : "inherit" : void 0
|
|
201
|
+
};
|
|
202
|
+
}, xe = (t, e, n) => {
|
|
203
|
+
if (t.defaultPrevented) return;
|
|
204
|
+
if (t.key === "Escape" && x.current) {
|
|
205
|
+
t.preventDefault(), s.stopEditing(!0);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (t.key === "Enter" && x.current) {
|
|
209
|
+
if (t.target.closest("button,select,textarea,[contenteditable=true],[role=combobox],[role=listbox]")) return;
|
|
210
|
+
t.preventDefault(), s.stopEditing();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (t.target.closest("input,select,textarea,button,[contenteditable=true]")) return;
|
|
214
|
+
if (t.key === "Enter" || t.key === "F2") {
|
|
215
|
+
t.preventDefault(), st === "fullRow" ? s.startEditingRow(e.id) : s.startEditingCell({ rowId: e.id, columnId: n.id });
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const c = O.findIndex((v) => v.id === e.id), w = a.findIndex((v) => v.id === n.id), u = t.key === "ArrowDown" ? c + 1 : t.key === "ArrowUp" ? c - 1 : c, f = getComputedStyle(t.currentTarget).direction === "rtl" ? -1 : 1, E = t.key === "ArrowRight" ? w + f : t.key === "ArrowLeft" ? w - f : w;
|
|
219
|
+
if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(t.key) && O[u] && a[E]) {
|
|
220
|
+
t.preventDefault();
|
|
221
|
+
const v = O[u];
|
|
222
|
+
ht.has(v.id) || s.scrollToRow(v.id), s.focusCell(v.id, a[E].id);
|
|
223
|
+
}
|
|
224
|
+
}, k = (t, e, n, i, c) => /* @__PURE__ */ m(
|
|
225
|
+
_e,
|
|
226
|
+
{
|
|
227
|
+
data: t,
|
|
228
|
+
rowId: e,
|
|
229
|
+
index: n,
|
|
230
|
+
row: i,
|
|
231
|
+
pinned: c,
|
|
232
|
+
edit: T,
|
|
233
|
+
editRef: x,
|
|
234
|
+
updateEdit: gt,
|
|
235
|
+
api: s,
|
|
236
|
+
table: o,
|
|
237
|
+
detailId: Qt,
|
|
238
|
+
displayedIndices: fe,
|
|
239
|
+
rowSelection: p,
|
|
240
|
+
rowHeight: K,
|
|
241
|
+
totalWidth: Q,
|
|
242
|
+
getRowClass: Mt,
|
|
243
|
+
rowClassRules: Lt,
|
|
244
|
+
onRowClick: Kt,
|
|
245
|
+
showExpanders: W,
|
|
246
|
+
expanderWidth: Y,
|
|
247
|
+
showCheckboxes: V,
|
|
248
|
+
visibleColumns: a,
|
|
249
|
+
definitionsById: R,
|
|
250
|
+
activeCell: pe,
|
|
251
|
+
setFocusedCell: se,
|
|
252
|
+
columnStyle: vt,
|
|
253
|
+
handleCellKeyDown: xe,
|
|
254
|
+
suppressClickEdit: Jt,
|
|
255
|
+
editType: st,
|
|
256
|
+
renderSubComponent: z,
|
|
257
|
+
isDetailExpanded: Z
|
|
258
|
+
},
|
|
259
|
+
e
|
|
260
|
+
), Rt = (p?.selectAll === "all" ? o.getCoreRowModel() : p?.selectAll === "currentPage" ? o.getRowModel() : o.getFilteredRowModel()).rows.filter((t) => t.getCanSelect()), he = Rt.filter((t) => t.getIsSelected()).length;
|
|
261
|
+
return /* @__PURE__ */ S(be, { sensors: Re, ...me, children: [
|
|
262
|
+
/* @__PURE__ */ m(we, { dropAnimation: null, style: { position: "fixed", pointerEvents: "none" }, children: (t) => {
|
|
263
|
+
const e = R.get(t.data.columnId);
|
|
264
|
+
return /* @__PURE__ */ m("div", { className: "mtx-rounded-sm mtx-border mtx-border-gray-200 mtx-bg-primary-50 mtx-px-3 mtx-py-2 mtx-text-xs mtx-font-bold mtx-shadow-md", children: e?.headerName ?? t.data.columnId });
|
|
265
|
+
} }),
|
|
266
|
+
/* @__PURE__ */ S(
|
|
267
|
+
"div",
|
|
268
|
+
{
|
|
269
|
+
ref: B,
|
|
270
|
+
"data-data-table-content": "",
|
|
271
|
+
"data-print-layout": l || void 0,
|
|
272
|
+
className: Ct("mtx-relative mtx-flex mtx-min-h-0 mtx-flex-1 mtx-flex-col mtx-rounded-b-lg", Ut),
|
|
273
|
+
style: Xt,
|
|
274
|
+
...dt,
|
|
275
|
+
children: [
|
|
276
|
+
T && /* @__PURE__ */ S("div", { "data-print-hidden": "", className: "mtx-flex mtx-shrink-0 mtx-items-center mtx-gap-2 mtx-border-b mtx-border-gray-200 mtx-p-2", children: [
|
|
277
|
+
/* @__PURE__ */ m(kt, { type: "button", size: "sm", onClick: () => s.stopEditing(), children: "Save" }),
|
|
278
|
+
/* @__PURE__ */ m(kt, { type: "button", size: "sm", variant: "text", onClick: () => s.stopEditing(!0), children: "Cancel" }),
|
|
279
|
+
T.errors.length > 0 && /* @__PURE__ */ m("span", { role: "alert", className: "mtx-text-danger", children: T.errors.join(". ") })
|
|
280
|
+
] }),
|
|
281
|
+
/* @__PURE__ */ S(
|
|
282
|
+
"div",
|
|
283
|
+
{
|
|
284
|
+
ref: y,
|
|
285
|
+
"data-data-table-viewport": "",
|
|
286
|
+
role: "grid",
|
|
287
|
+
"aria-label": dt["aria-label"] ?? "Data table",
|
|
288
|
+
"aria-busy": N,
|
|
289
|
+
"aria-rowcount": tt + 1,
|
|
290
|
+
"aria-colcount": a.length + (V ? 1 : 0) + (W ? 1 : 0),
|
|
291
|
+
"aria-multiselectable": p?.mode === "multiRow" || void 0,
|
|
292
|
+
className: "mtx-relative mtx-min-h-0 mtx-flex-1 mtx-rounded-b-lg",
|
|
293
|
+
style: {
|
|
294
|
+
...U,
|
|
295
|
+
overflow: pt ? "visible" : U?.overflow ?? "auto",
|
|
296
|
+
overflowX: l ? "visible" : Ot ? "hidden" : U?.overflowX
|
|
297
|
+
},
|
|
298
|
+
onScroll: (t) => {
|
|
299
|
+
if (D && !l)
|
|
300
|
+
for (const e of D.viewports.current)
|
|
301
|
+
e !== t.currentTarget && e.scrollLeft !== t.currentTarget.scrollLeft && (e.scrollLeft = t.currentTarget.scrollLeft);
|
|
302
|
+
},
|
|
303
|
+
children: [
|
|
304
|
+
/* @__PURE__ */ m(
|
|
305
|
+
Ee,
|
|
306
|
+
{
|
|
307
|
+
table: o,
|
|
308
|
+
api: s,
|
|
309
|
+
headerHeight: j,
|
|
310
|
+
totalWidth: Q,
|
|
311
|
+
isPrinting: l,
|
|
312
|
+
showExpanders: W,
|
|
313
|
+
expanderWidth: Y,
|
|
314
|
+
showCheckboxes: V,
|
|
315
|
+
rowSelection: p,
|
|
316
|
+
selectionRows: Rt,
|
|
317
|
+
selectedInScope: he,
|
|
318
|
+
visibleColumns: a,
|
|
319
|
+
definitionsById: R,
|
|
320
|
+
columnStyle: vt,
|
|
321
|
+
widths: A
|
|
322
|
+
}
|
|
323
|
+
),
|
|
324
|
+
(g.length > 0 || _.length > 0) && /* @__PURE__ */ S(
|
|
325
|
+
"div",
|
|
326
|
+
{
|
|
327
|
+
role: "rowgroup",
|
|
328
|
+
className: "mtx-sticky mtx-z-20",
|
|
329
|
+
style: { top: l ? void 0 : j, position: l ? "relative" : "sticky" },
|
|
330
|
+
children: [
|
|
331
|
+
_.map((t, e) => k(t, `__summary_top_${e}`, e, void 0, "top")),
|
|
332
|
+
g.map((t) => k(t.original, t.id, t.index, t, "top"))
|
|
333
|
+
]
|
|
334
|
+
}
|
|
335
|
+
),
|
|
336
|
+
/* @__PURE__ */ m("div", { role: "rowgroup", children: C ? /* @__PURE__ */ m("div", { style: { height: $.getTotalSize(), position: "relative", width: Q, minWidth: "100%" }, children: It.map((t) => {
|
|
337
|
+
const e = d[t.index];
|
|
338
|
+
return /* @__PURE__ */ m(
|
|
339
|
+
"div",
|
|
340
|
+
{
|
|
341
|
+
style: { position: "absolute", top: 0, width: "100%", transform: `translateY(${t.start - j - bt}px)` },
|
|
342
|
+
children: k(e.original, e.id, F.get(e.original) ?? e.index, e)
|
|
343
|
+
},
|
|
344
|
+
e.id
|
|
345
|
+
);
|
|
346
|
+
}) }) : d.map((t) => k(t.original, t.id, F.get(t.original) ?? t.index, t)) }),
|
|
347
|
+
(b.length > 0 || M.length > 0) && /* @__PURE__ */ S("div", { role: "rowgroup", className: "mtx-sticky mtx-bottom-0 mtx-z-20", style: { position: l ? "relative" : "sticky" }, children: [
|
|
348
|
+
b.map((t) => k(t.original, t.id, t.index, t, "bottom")),
|
|
349
|
+
M.map((t, e) => k(t, `__summary_bottom_${e}`, e, void 0, "bottom"))
|
|
350
|
+
] }),
|
|
351
|
+
(N || !d.length && !g.length && !b.length) && /* @__PURE__ */ m(
|
|
352
|
+
"div",
|
|
353
|
+
{
|
|
354
|
+
role: "status",
|
|
355
|
+
className: Ct(
|
|
356
|
+
"mtx-flex mtx-items-center mtx-justify-center mtx-p-6 mtx-text-text-300",
|
|
357
|
+
N && "mtx-absolute mtx-top-0 mtx-start-0 mtx-z-50 mtx-h-full mtx-w-full mtx-bg-gray-100/25"
|
|
358
|
+
),
|
|
359
|
+
children: N ? jt : Nt
|
|
360
|
+
}
|
|
361
|
+
)
|
|
362
|
+
]
|
|
363
|
+
}
|
|
364
|
+
),
|
|
365
|
+
L && !l && /* @__PURE__ */ m(Se, { table: o, paginationPageSizeSelector: Wt })
|
|
366
|
+
]
|
|
367
|
+
}
|
|
368
|
+
)
|
|
369
|
+
] });
|
|
370
|
+
}
|
|
371
|
+
const Ne = r.forwardRef(ze);
|
|
372
|
+
Ne.displayName = "DataTableContent";
|
|
373
|
+
export {
|
|
374
|
+
Ne as DataTableContent
|
|
375
|
+
};
|
|
376
|
+
//# sourceMappingURL=datatablecontent.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatablecontent.es.js","sources":["../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { DragDropProvider, DragOverlay } from \"@dnd-kit/react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button/Button\";\nimport { DataTableAlignmentContext, useDataTable } from \"./DataTableContext\";\nimport { dataTableColumnSensors } from \"./dataTableColumnDrag\";\nimport { getActiveDataTableCell } from \"./dataTableModel\";\nimport { useDataTableInstance } from \"./useDataTableInstance\";\nimport { DataTableHeader } from \"./DataTableHeader\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport { DataTableRowView } from \"./DataTableRowView\";\nimport { useDataTableColumnDrag } from \"./useDataTableColumnDrag\";\nimport { useDataTableMotion } from \"./useDataTableMotion\";\nimport { useDataTableApi, type DataTableRuntime } from \"./useDataTableApi\";\nimport type { DataTableEditSession } from \"./dataTableEditing\";\nimport type { DataTableApi, DataTableContentProps, DataTableFeatures, DataTableRow } from \"./DataTable.types\";\n\nconst emptyRows: never[] = [];\nconst emptyColumn: Record<string, never> = {};\n\nfunction DataTableContentInner<T extends object>(\n {\n rowData,\n columnDefs,\n defaultColDef = emptyColumn,\n getRowId,\n onReady,\n rowSelection,\n renderSubComponent,\n getRowCanExpand,\n onSelectionChanged,\n quickFilterText,\n onQuickFilterTextChange,\n externalFilter,\n loading = false,\n emptyContent = \"No rows to display\",\n loadingContent = \"Loading…\",\n rowHeight = 36,\n headerHeight = 40,\n getRowClass,\n rowClassRules,\n pinnedTopRowData = emptyRows,\n pinnedBottomRowData = emptyRows,\n pagination = false,\n paginationPageSize = 25,\n paginationPageSizeSelector = [10, 25, 50, 100],\n virtualize = true,\n overscan = 8,\n domLayout = \"normal\",\n suppressHorizontalScroll = false,\n editType = \"cell\",\n suppressClickEdit = false,\n readOnlyEdit = false,\n validateRow,\n onEditCommit,\n onEditRequest,\n onEditCancel,\n onRowClick,\n tableOptions,\n containerStyle,\n className,\n style,\n ...props\n }: DataTableContentProps<T>,\n forwardedRef: React.ForwardedRef<DataTableApi<T>>,\n) {\n \"use no memo\";\n const { setApi, search, hasSearch, setSearch, setCounts } = useDataTable<T>();\n const alignment = React.useContext(DataTableAlignmentContext);\n const detailId = React.useId();\n const viewportRef = React.useRef<HTMLDivElement>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [viewportWidth, setViewportWidth] = React.useState(0);\n const [printing, setPrinting] = React.useState(false);\n const [columnDrag, setColumnDrag] = React.useState<{ sourceId: string; targetId: string } | null>(null);\n const [focusedCell, setFocusedCell] = React.useState<{ rowId: string; columnId: string } | null>(null);\n const [patches, setPatches] = React.useState<Record<string, { source: T; data: T }>>({});\n const [edit, setEdit] = React.useState<DataTableEditSession<T> | null>(null);\n const [initialSearch] = React.useState(() => tableOptions?.initialState?.globalFilter ?? \"\");\n const editRef = React.useRef(edit);\n const configRef = React.useRef({ columnDefs, validateRow, readOnlyEdit, onEditCommit, onEditRequest, onEditCancel });\n configRef.current = { columnDefs, validateRow, readOnlyEdit, onEditCommit, onEditRequest, onEditCancel };\n const updateEdit = React.useCallback((next: DataTableEditSession<T> | null) => {\n editRef.current = next;\n setEdit(next);\n }, []);\n const isPrinting = printing || domLayout === \"print\";\n const naturalHeight = isPrinting || domLayout === \"autoHeight\";\n const searchText = quickFilterText ?? tableOptions?.state?.globalFilter ?? (hasSearch ? search : initialSearch);\n const showCheckboxes = !!rowSelection && rowSelection.checkboxes !== false && !isPrinting;\n const showExpanders = !!renderSubComponent && !isPrinting;\n const expanderWidth = showExpanders ? 44 : 0;\n const selectionWidth = (showCheckboxes ? 44 : 0) + expanderWidth;\n const { table, definitionsById, sourcesById, data, rowIndices, resolveId } = useDataTableInstance({\n rowData,\n columnDefs,\n defaultColDef,\n getRowId,\n paginationPageSize,\n tableOptions,\n externalFilter,\n rowSelection,\n pagination,\n renderSubComponent,\n getRowCanExpand,\n onQuickFilterTextChange,\n patches,\n alignment,\n isPrinting,\n viewportWidth,\n selectionWidth,\n searchText,\n setSearch,\n });\n\n const visibleColumns = [...table.getStartVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns(), ...table.getEndVisibleLeafColumns()].filter(\n column => column.id !== \"__external\" && (!isPrinting || !definitionsById.get(column.id)?.hideInPrint),\n );\n // Preview locally so canceled drags never update controlled or aligned table state.\n if (columnDrag) {\n const from = visibleColumns.findIndex(column => column.id === columnDrag.sourceId);\n const to = visibleColumns.findIndex(column => column.id === columnDrag.targetId);\n if (from >= 0 && to >= 0) visibleColumns.splice(to, 0, visibleColumns.splice(from, 1)[0]);\n }\n const widths = new Map(visibleColumns.map(column => [column.id, column.getSize()]));\n const totalWidth = selectionWidth + visibleColumns.reduce((sum, column) => sum + widths.get(column.id)!, 0);\n const topRows = table.getTopRows();\n const bottomRows = table.getBottomRows();\n const pinnedIds = new Set([...topRows, ...bottomRows].map(row => row.id));\n const centerRows = (isPrinting ? table.getPrePaginatedRowModel().rows : table.getRowModel().rows).filter(row => !pinnedIds.has(row.id));\n const isDetailExpanded = (row: DataTableRow<T>) => !!renderSubComponent && row.getCanExpand() && row.getIsExpanded();\n // Detail panels can have arbitrary height. Resume fixed-height virtualization when all visible panels close.\n const hasExpandedDetails = [...topRows, ...centerRows, ...bottomRows].some(isDetailExpanded);\n const useVirtualRows = virtualize && !naturalHeight && !hasExpandedDetails;\n const topHeight = (topRows.length + pinnedTopRowData.length) * rowHeight;\n // This renderer opts out of React Compiler above; Virtual exposes a mutable measurement instance.\n // eslint-disable-next-line react-hooks/incompatible-library\n const virtualizer = useVirtualizer({\n count: centerRows.length,\n getScrollElement: () => viewportRef.current,\n estimateSize: () => rowHeight,\n getItemKey: index => centerRows[index].id,\n overscan,\n scrollMargin: headerHeight + topHeight,\n enabled: useVirtualRows,\n useFlushSync: false,\n });\n\n const runtime = React.useRef<DataTableRuntime<T>>({\n table,\n definitionsById,\n centerRows,\n virtualizer,\n resolveId,\n rowIndices,\n sourcesById,\n useVirtualRows,\n pagination,\n serverPagination: tableOptions?.manualPagination === true,\n });\n runtime.current = {\n table,\n definitionsById,\n centerRows,\n virtualizer,\n resolveId,\n rowIndices,\n sourcesById,\n useVirtualRows,\n pagination,\n serverPagination: tableOptions?.manualPagination === true,\n };\n const columnDragHandlers = useDataTableColumnDrag({ runtime, viewportRef, contentRef, setColumnDrag });\n const api = useDataTableApi({ runtime, editRef, configRef, updateEdit, setPatches, contentRef, viewportRef, setPrinting });\n React.useImperativeHandle(forwardedRef, () => api, [api]);\n\n React.useEffect(() => {\n setApi(api);\n return () => setApi(previous => (previous === api ? null : previous));\n }, [api, setApi]);\n const readyRef = React.useRef(onReady);\n readyRef.current = onReady;\n React.useEffect(() => {\n readyRef.current?.(api);\n }, [api]);\n const selectionCallback = React.useRef(onSelectionChanged);\n selectionCallback.current = onSelectionChanged;\n React.useEffect(() => {\n const current = runtime.current.table;\n const selected = current.getSelectedRowModel().rows.map(row => row.original);\n selectionCallback.current?.(selected, current.getSelectedRowIds());\n }, [table.state.rowSelection, data]);\n React.useEffect(() => {\n const current = runtime.current.table;\n const selectedCount = current.getSelectedRowIds().length;\n const pinnedCount = (current.state.rowPinning.top?.length ?? 0) + (current.state.rowPinning.bottom?.length ?? 0);\n setCounts(previous =>\n previous.selectedCount === selectedCount && previous.pinnedCount === pinnedCount ? previous : { selectedCount, pinnedCount },\n );\n }, [table.state.rowSelection, table.state.rowPinning, setCounts]);\n React.useEffect(() => {\n const element = viewportRef.current;\n if (!element) return;\n const resize = () => setViewportWidth(element.clientWidth);\n resize();\n const observer = new ResizeObserver(resize);\n observer.observe(element);\n return () => observer.disconnect();\n }, []);\n React.useEffect(() => {\n const element = viewportRef.current;\n const viewports = alignment?.viewports.current;\n if (!element || !viewports) return;\n viewports.add(element);\n return () => {\n viewports.delete(element);\n };\n }, [alignment?.viewports]);\n React.useEffect(() => {\n if (editRef.current && sourcesById.get(editRef.current.rowId) !== editRef.current.source) {\n api.stopEditing(true);\n }\n setPatches(previous => {\n const entries = Object.entries(previous).filter(([id, patch]) => sourcesById.get(id) === patch.source);\n return entries.length === Object.keys(previous).length ? previous : Object.fromEntries(entries);\n });\n const current = runtime.current.table;\n if (!runtime.current.serverPagination) {\n // Locally owned datasets can discard deleted identities. Server pages retain unloaded selection IDs.\n const selection = current.atoms.rowSelection.get();\n const entries = Object.entries(selection).filter(([id]) => sourcesById.has(id));\n if (entries.length !== Object.keys(selection).length) current.setRowSelection(Object.fromEntries(entries));\n const pinning = current.atoms.rowPinning.get();\n const top = pinning.top?.filter(id => sourcesById.has(id));\n const bottom = pinning.bottom?.filter(id => sourcesById.has(id));\n if (top?.length !== pinning.top?.length || bottom?.length !== pinning.bottom?.length) current.setRowPinning({ top, bottom });\n }\n }, [sourcesById, api]);\n\n const navigableRows = [...topRows, ...centerRows, ...bottomRows];\n const displayedIds = [\n ...pinnedTopRowData.map((_, index) => `__summary_top_${index}`),\n ...topRows.map(row => row.id),\n ...centerRows.map(row => row.id),\n ...bottomRows.map(row => row.id),\n ...pinnedBottomRowData.map((_, index) => `__summary_bottom_${index}`),\n ];\n const expandedIds = new Set(navigableRows.filter(isDetailExpanded).map(row => row.id));\n let displayedRowCount = 0;\n const displayedIndices = new Map(\n displayedIds.map(id => {\n const index = displayedRowCount;\n displayedRowCount += expandedIds.has(id) ? 2 : 1;\n return [id, index];\n }),\n );\n const virtualItems = useVirtualRows ? virtualizer.getVirtualItems() : [];\n const renderedIds = useVirtualRows\n ? [\n ...displayedIds.slice(0, pinnedTopRowData.length + topRows.length),\n ...virtualItems.map(item => centerRows[item.index].id),\n ...bottomRows.map(row => row.id),\n ...pinnedBottomRowData.map((_, index) => `__summary_bottom_${index}`),\n ]\n : displayedIds;\n const activeCell = getActiveDataTableCell(\n focusedCell,\n renderedIds,\n visibleColumns.map(column => column.id),\n );\n\n useDataTableMotion(viewportRef, JSON.stringify(centerRows.map(row => row.id)), JSON.stringify(visibleColumns.map(column => column.id)), isPrinting);\n\n const columnStyle = (column: Column<DataTableFeatures, T>, header = false): React.CSSProperties => {\n const pinned = isPrinting ? false : column.getIsPinned();\n const region = visibleColumns.filter(item => item.getIsPinned() === pinned);\n const index = region.findIndex(item => item.id === column.id);\n const start = region.slice(0, index).reduce((sum, item) => sum + widths.get(item.id)!, selectionWidth);\n const end = region.slice(index + 1).reduce((sum, item) => sum + widths.get(item.id)!, 0);\n return {\n width: widths.get(column.id),\n flexShrink: 0,\n position: pinned ? \"sticky\" : \"relative\",\n insetInlineStart: pinned === \"start\" ? start : undefined,\n insetInlineEnd: pinned === \"end\" ? end : undefined,\n zIndex: pinned ? 2 : undefined,\n background: pinned ? (header ? \"oklch(var(--mtx-primary-50))\" : \"inherit\") : undefined,\n };\n };\n\n const handleCellKeyDown = (event: React.KeyboardEvent, row: DataTableRow<T>, column: Column<DataTableFeatures, T>) => {\n if (event.defaultPrevented) return;\n if (event.key === \"Escape\" && editRef.current) {\n event.preventDefault();\n api.stopEditing(true);\n return;\n }\n if (event.key === \"Enter\" && editRef.current) {\n // Editors own activation and multiline input; plain text/number inputs still commit on Enter.\n if ((event.target as HTMLElement).closest(\"button,select,textarea,[contenteditable=true],[role=combobox],[role=listbox]\")) return;\n event.preventDefault();\n api.stopEditing();\n return;\n }\n const target = event.target as HTMLElement;\n if (target.closest(\"input,select,textarea,button,[contenteditable=true]\")) return;\n if (event.key === \"Enter\" || event.key === \"F2\") {\n event.preventDefault();\n if (editType === \"fullRow\") api.startEditingRow(row.id);\n else api.startEditingCell({ rowId: row.id, columnId: column.id });\n return;\n }\n const rowIndex = navigableRows.findIndex(item => item.id === row.id);\n const columnIndex = visibleColumns.findIndex(item => item.id === column.id);\n const nextRow = event.key === \"ArrowDown\" ? rowIndex + 1 : event.key === \"ArrowUp\" ? rowIndex - 1 : rowIndex;\n const horizontalStep = getComputedStyle(event.currentTarget).direction === \"rtl\" ? -1 : 1;\n const nextColumn =\n event.key === \"ArrowRight\" ? columnIndex + horizontalStep : event.key === \"ArrowLeft\" ? columnIndex - horizontalStep : columnIndex;\n if ([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key) && navigableRows[nextRow] && visibleColumns[nextColumn]) {\n event.preventDefault();\n const targetRow = navigableRows[nextRow];\n if (!pinnedIds.has(targetRow.id)) api.scrollToRow(targetRow.id);\n api.focusCell(targetRow.id, visibleColumns[nextColumn].id);\n }\n };\n\n const renderRow = (data: T, rowId: string, index: number, row?: DataTableRow<T>, pinned?: \"top\" | \"bottom\") => (\n <DataTableRowView\n key={rowId}\n {...{\n data,\n rowId,\n index,\n row,\n pinned,\n edit,\n editRef,\n updateEdit,\n api,\n table,\n detailId,\n displayedIndices,\n rowSelection,\n rowHeight,\n totalWidth,\n getRowClass,\n rowClassRules,\n onRowClick,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n visibleColumns,\n definitionsById,\n activeCell,\n setFocusedCell,\n columnStyle,\n handleCellKeyDown,\n suppressClickEdit,\n editType,\n renderSubComponent,\n isDetailExpanded,\n }}\n />\n );\n\n const selectionRows = (\n rowSelection?.selectAll === \"all\"\n ? table.getCoreRowModel()\n : rowSelection?.selectAll === \"currentPage\"\n ? table.getRowModel()\n : table.getFilteredRowModel()\n ).rows.filter(row => row.getCanSelect());\n const selectedInScope = selectionRows.filter(row => row.getIsSelected()).length;\n return (\n <DragDropProvider sensors={dataTableColumnSensors} {...columnDragHandlers}>\n <DragOverlay dropAnimation={null} style={{ position: \"fixed\", pointerEvents: \"none\" }}>\n {source => {\n const definition = definitionsById.get(source.data.columnId);\n return (\n <div className=\"mtx-rounded-sm mtx-border mtx-border-gray-200 mtx-bg-primary-50 mtx-px-3 mtx-py-2 mtx-text-xs mtx-font-bold mtx-shadow-md\">\n {definition?.headerName ?? source.data.columnId}\n </div>\n );\n }}\n </DragOverlay>\n <div\n ref={contentRef}\n data-data-table-content=\"\"\n data-print-layout={isPrinting || undefined}\n className={cn(\"mtx-relative mtx-flex mtx-min-h-0 mtx-flex-1 mtx-flex-col mtx-rounded-b-lg\", className)}\n style={style}\n {...props}\n >\n {edit && (\n <div data-print-hidden=\"\" className=\"mtx-flex mtx-shrink-0 mtx-items-center mtx-gap-2 mtx-border-b mtx-border-gray-200 mtx-p-2\">\n <Button type=\"button\" size=\"sm\" onClick={() => api.stopEditing()}>\n Save\n </Button>\n <Button type=\"button\" size=\"sm\" variant=\"text\" onClick={() => api.stopEditing(true)}>\n Cancel\n </Button>\n {edit.errors.length > 0 && (\n <span role=\"alert\" className=\"mtx-text-danger\">\n {edit.errors.join(\". \")}\n </span>\n )}\n </div>\n )}\n <div\n ref={viewportRef}\n data-data-table-viewport=\"\"\n role=\"grid\"\n aria-label={props[\"aria-label\"] ?? \"Data table\"}\n aria-busy={loading}\n aria-rowcount={displayedRowCount + 1}\n aria-colcount={visibleColumns.length + (showCheckboxes ? 1 : 0) + (showExpanders ? 1 : 0)}\n aria-multiselectable={rowSelection?.mode === \"multiRow\" || undefined}\n className=\"mtx-relative mtx-min-h-0 mtx-flex-1 mtx-rounded-b-lg\"\n style={{\n ...containerStyle,\n overflow: naturalHeight ? \"visible\" : (containerStyle?.overflow ?? \"auto\"),\n overflowX: isPrinting ? \"visible\" : suppressHorizontalScroll ? \"hidden\" : containerStyle?.overflowX,\n }}\n onScroll={event => {\n if (alignment && !isPrinting)\n for (const element of alignment.viewports.current) {\n if (element !== event.currentTarget && element.scrollLeft !== event.currentTarget.scrollLeft)\n element.scrollLeft = event.currentTarget.scrollLeft;\n }\n }}\n >\n <DataTableHeader\n {...{\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n }}\n />\n {(topRows.length > 0 || pinnedTopRowData.length > 0) && (\n <div\n role=\"rowgroup\"\n className=\"mtx-sticky mtx-z-20\"\n style={{ top: isPrinting ? undefined : headerHeight, position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {pinnedTopRowData.map((row, index) => renderRow(row, `__summary_top_${index}`, index, undefined, \"top\"))}\n {topRows.map(row => renderRow(row.original, row.id, row.index, row, \"top\"))}\n </div>\n )}\n <div role=\"rowgroup\">\n {useVirtualRows ? (\n <div style={{ height: virtualizer.getTotalSize(), position: \"relative\", width: totalWidth, minWidth: \"100%\" }}>\n {virtualItems.map(item => {\n const row = centerRows[item.index];\n return (\n <div\n key={row.id}\n style={{ position: \"absolute\", top: 0, width: \"100%\", transform: `translateY(${item.start - headerHeight - topHeight}px)` }}\n >\n {renderRow(row.original, row.id, rowIndices.get(row.original) ?? row.index, row)}\n </div>\n );\n })}\n </div>\n ) : (\n centerRows.map(row => renderRow(row.original, row.id, rowIndices.get(row.original) ?? row.index, row))\n )}\n </div>\n {(bottomRows.length > 0 || pinnedBottomRowData.length > 0) && (\n <div role=\"rowgroup\" className=\"mtx-sticky mtx-bottom-0 mtx-z-20\" style={{ position: isPrinting ? \"relative\" : \"sticky\" }}>\n {bottomRows.map(row => renderRow(row.original, row.id, row.index, row, \"bottom\"))}\n {pinnedBottomRowData.map((row, index) => renderRow(row, `__summary_bottom_${index}`, index, undefined, \"bottom\"))}\n </div>\n )}\n {(loading || (!centerRows.length && !topRows.length && !bottomRows.length)) && (\n <div\n role=\"status\"\n className={cn(\n \"mtx-flex mtx-items-center mtx-justify-center mtx-p-6 mtx-text-text-300\",\n loading && \"mtx-absolute mtx-top-0 mtx-start-0 mtx-z-50 mtx-h-full mtx-w-full mtx-bg-gray-100/25\",\n )}\n >\n {loading ? loadingContent : emptyContent}\n </div>\n )}\n </div>\n {pagination && !isPrinting && <DataTablePagination table={table} paginationPageSizeSelector={paginationPageSizeSelector} />}\n </div>\n </DragDropProvider>\n );\n}\n\nconst DataTableContent = React.forwardRef(DataTableContentInner) as <T extends object>(\n props: DataTableContentProps<T> & { ref?: React.ForwardedRef<DataTableApi<T>> },\n) => React.ReactElement;\n(DataTableContent as { displayName?: string }).displayName = \"DataTableContent\";\n\nexport { DataTableContent };\n"],"names":["emptyRows","emptyColumn","DataTableContentInner","rowData","columnDefs","defaultColDef","getRowId","onReady","rowSelection","renderSubComponent","getRowCanExpand","onSelectionChanged","quickFilterText","onQuickFilterTextChange","externalFilter","loading","emptyContent","loadingContent","rowHeight","headerHeight","getRowClass","rowClassRules","pinnedTopRowData","pinnedBottomRowData","pagination","paginationPageSize","paginationPageSizeSelector","virtualize","overscan","domLayout","suppressHorizontalScroll","editType","suppressClickEdit","readOnlyEdit","validateRow","onEditCommit","onEditRequest","onEditCancel","onRowClick","tableOptions","containerStyle","className","style","props","forwardedRef","setApi","search","hasSearch","setSearch","setCounts","useDataTable","alignment","React","DataTableAlignmentContext","detailId","viewportRef","contentRef","viewportWidth","setViewportWidth","printing","setPrinting","columnDrag","setColumnDrag","focusedCell","setFocusedCell","patches","setPatches","edit","setEdit","initialSearch","editRef","configRef","updateEdit","next","isPrinting","naturalHeight","searchText","showCheckboxes","showExpanders","expanderWidth","selectionWidth","table","definitionsById","sourcesById","data","rowIndices","resolveId","useDataTableInstance","visibleColumns","column","from","to","widths","totalWidth","sum","topRows","bottomRows","pinnedIds","row","centerRows","isDetailExpanded","hasExpandedDetails","useVirtualRows","topHeight","virtualizer","useVirtualizer","index","runtime","columnDragHandlers","useDataTableColumnDrag","api","useDataTableApi","previous","readyRef","selectionCallback","current","selected","selectedCount","pinnedCount","element","resize","observer","viewports","entries","id","patch","selection","pinning","top","bottom","navigableRows","displayedIds","_","expandedIds","displayedRowCount","displayedIndices","virtualItems","renderedIds","item","activeCell","getActiveDataTableCell","useDataTableMotion","columnStyle","header","pinned","region","start","end","handleCellKeyDown","event","rowIndex","columnIndex","nextRow","horizontalStep","nextColumn","targetRow","renderRow","rowId","jsx","DataTableRowView","selectionRows","selectedInScope","jsxs","DragDropProvider","dataTableColumnSensors","DragOverlay","source","definition","cn","Button","DataTableHeader","DataTablePagination","DataTableContent"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as e from "react";
|
|
2
|
+
const a = e.createContext(null);
|
|
3
|
+
function n() {
|
|
4
|
+
const t = e.useContext(a);
|
|
5
|
+
if (!t) throw new Error("DataTable components must be used within <DataTable>.");
|
|
6
|
+
return { ...t, search: t.search ?? "", hasSearch: t.search !== void 0, api: t.api };
|
|
7
|
+
}
|
|
8
|
+
const o = e.createContext(null);
|
|
9
|
+
export {
|
|
10
|
+
o as DataTableAlignmentContext,
|
|
11
|
+
a as DataTableContext,
|
|
12
|
+
n as useDataTable
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=datatablecontext.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatablecontext.es.js","sources":["../src/components/data-table/DataTableContext.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport type { DataTableApi, DataTableState } from \"./DataTable.types\";\n\ntype DataTableContextValue = {\n api: DataTableApi<any> | null;\n setApi: React.Dispatch<React.SetStateAction<DataTableApi<any> | null>>;\n search: string | undefined;\n setSearch: (value: string) => void;\n selectedCount: number;\n pinnedCount: number;\n setCounts: React.Dispatch<React.SetStateAction<{ selectedCount: number; pinnedCount: number }>>;\n};\n\nexport const DataTableContext = React.createContext<DataTableContextValue | null>(null);\n\nexport function useDataTable<T extends object = Record<string, unknown>>() {\n const context = React.useContext(DataTableContext);\n if (!context) throw new Error(\"DataTable components must be used within <DataTable>.\");\n // An untouched search can use the content's initial filter; an explicit empty search clears it.\n return { ...context, search: context.search ?? \"\", hasSearch: context.search !== undefined, api: context.api as DataTableApi<T> | null };\n}\n\nexport type AlignmentState = Pick<DataTableState, \"columnSizing\" | \"columnOrder\" | \"columnPinning\" | \"columnVisibility\">;\ntype AlignmentContextValue = {\n state: Partial<AlignmentState>;\n setState: React.Dispatch<React.SetStateAction<Partial<AlignmentState>>>;\n viewports: React.MutableRefObject<Set<HTMLDivElement>>;\n};\n\nexport const DataTableAlignmentContext = React.createContext<AlignmentContextValue | null>(null);\n"],"names":["DataTableContext","React","useDataTable","context","DataTableAlignmentContext"],"mappings":";AAgBO,MAAMA,IAAmBC,EAAM,cAA4C,IAAI;AAE/E,SAASC,IAA2D;AACzE,QAAMC,IAAUF,EAAM,WAAWD,CAAgB;AACjD,MAAI,CAACG,EAAS,OAAM,IAAI,MAAM,uDAAuD;AAErF,SAAO,EAAE,GAAGA,GAAS,QAAQA,EAAQ,UAAU,IAAI,WAAWA,EAAQ,WAAW,QAAW,KAAKA,EAAQ,IAAA;AAC3G;AASO,MAAMC,IAA4BH,EAAM,cAA4C,IAAI;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { tableFeatures as e, sortFn_basic as t, sortFn_datetime as o, sortFn_alphanumeric as r, rowSortingFeature as a, rowSelectionFeature as n, rowPinningFeature as i, rowPaginationFeature as l, rowExpandingFeature as d, columnVisibilityFeature as u, columnResizingFeature as F, columnSizingFeature as c, columnPinningFeature as g, columnOrderingFeature as s, globalFilteringFeature as w, columnFilteringFeature as m, createPaginatedRowModel as R, createExpandedRowModel as p, createSortedRowModel as M, createFilteredRowModel as b } from "@tanstack/react-table";
|
|
2
|
+
const P = e({
|
|
3
|
+
columnFilteringFeature: m,
|
|
4
|
+
globalFilteringFeature: w,
|
|
5
|
+
columnOrderingFeature: s,
|
|
6
|
+
columnPinningFeature: g,
|
|
7
|
+
columnSizingFeature: c,
|
|
8
|
+
columnResizingFeature: F,
|
|
9
|
+
columnVisibilityFeature: u,
|
|
10
|
+
rowExpandingFeature: d,
|
|
11
|
+
rowPaginationFeature: l,
|
|
12
|
+
rowPinningFeature: i,
|
|
13
|
+
rowSelectionFeature: n,
|
|
14
|
+
rowSortingFeature: a,
|
|
15
|
+
filteredRowModel: b(),
|
|
16
|
+
sortedRowModel: M(),
|
|
17
|
+
expandedRowModel: p(),
|
|
18
|
+
paginatedRowModel: R(),
|
|
19
|
+
sortFns: { alphanumeric: r, datetime: o, basic: t }
|
|
20
|
+
});
|
|
21
|
+
export {
|
|
22
|
+
P as dataTableFeatures
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=datatablefeatures.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatablefeatures.es.js","sources":["../src/components/data-table/dataTableFeatures.ts"],"sourcesContent":["import {\n columnFilteringFeature,\n globalFilteringFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n createExpandedRowModel,\n createFilteredRowModel,\n createSortedRowModel,\n createPaginatedRowModel,\n tableFeatures,\n sortFn_alphanumeric as sortAlphanumeric,\n sortFn_datetime as sortDatetime,\n sortFn_basic as sortBasic,\n} from \"@tanstack/react-table\";\n\n// Register only the features rendered by DataTable. The registry is stable across renders.\nexport const dataTableFeatures = tableFeatures({\n columnFilteringFeature,\n globalFilteringFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n filteredRowModel: createFilteredRowModel(),\n sortedRowModel: createSortedRowModel(),\n expandedRowModel: createExpandedRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n sortFns: { alphanumeric: sortAlphanumeric, datetime: sortDatetime, basic: sortBasic },\n});\n"],"names":["dataTableFeatures","tableFeatures","columnFilteringFeature","globalFilteringFeature","columnOrderingFeature","columnPinningFeature","columnSizingFeature","columnResizingFeature","columnVisibilityFeature","rowExpandingFeature","rowPaginationFeature","rowPinningFeature","rowSelectionFeature","rowSortingFeature","createFilteredRowModel","createSortedRowModel","createExpandedRowModel","createPaginatedRowModel","sortAlphanumeric","sortDatetime","sortBasic"],"mappings":";AAwBO,MAAMA,IAAoBC,EAAc;AAAA,EAC7C,wBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,kBAAkBC,EAAA;AAAA,EAClB,gBAAgBC,EAAA;AAAA,EAChB,kBAAkBC,EAAA;AAAA,EAClB,mBAAmBC,EAAA;AAAA,EACnB,SAAS,EAAE,cAAcC,GAAkB,UAAUC,GAAc,OAAOC,EAAA;AAC5E,CAAC;"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { jsxs as n, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { Checkbox as z } from "./checkbox.es.js";
|
|
3
|
+
import { DataTableColumnHeader as C } from "./datatablecolumnheader.es.js";
|
|
4
|
+
import { DataTableColumnMenu as S } from "./datatablecolumnmenu.es.js";
|
|
5
|
+
function j({
|
|
6
|
+
table: d,
|
|
7
|
+
api: g,
|
|
8
|
+
headerHeight: c,
|
|
9
|
+
totalWidth: f,
|
|
10
|
+
isPrinting: s,
|
|
11
|
+
showExpanders: b,
|
|
12
|
+
expanderWidth: o,
|
|
13
|
+
showCheckboxes: y,
|
|
14
|
+
rowSelection: x,
|
|
15
|
+
selectionRows: m,
|
|
16
|
+
selectedInScope: h,
|
|
17
|
+
visibleColumns: p,
|
|
18
|
+
definitionsById: k,
|
|
19
|
+
columnStyle: u,
|
|
20
|
+
widths: w
|
|
21
|
+
}) {
|
|
22
|
+
return /* @__PURE__ */ n(
|
|
23
|
+
"div",
|
|
24
|
+
{
|
|
25
|
+
role: "row",
|
|
26
|
+
className: "mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold",
|
|
27
|
+
style: { height: c, width: f, minWidth: "100%", position: s ? "relative" : "sticky" },
|
|
28
|
+
children: [
|
|
29
|
+
b && /* @__PURE__ */ i(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
role: "columnheader",
|
|
33
|
+
"aria-label": "Row details",
|
|
34
|
+
className: "mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50",
|
|
35
|
+
style: { width: o }
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
y && /* @__PURE__ */ i(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
role: "columnheader",
|
|
42
|
+
className: "mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50",
|
|
43
|
+
style: { width: 44, insetInlineStart: o },
|
|
44
|
+
children: x?.mode === "multiRow" && /* @__PURE__ */ i(
|
|
45
|
+
z,
|
|
46
|
+
{
|
|
47
|
+
"aria-label": "Select all rows",
|
|
48
|
+
disabled: !m.length,
|
|
49
|
+
checked: m.length > 0 && h === m.length ? !0 : h > 0 ? "indeterminate" : !1,
|
|
50
|
+
onCheckedChange: (e) => {
|
|
51
|
+
e === !0 ? g.selectAll(x.selectAll) : d.setRowSelection(
|
|
52
|
+
(r) => Object.fromEntries(Object.entries(r).filter(([l]) => !m.some((a) => a.id === l)))
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
p.map((e) => {
|
|
60
|
+
const r = k.get(e.id), l = d.getFlatHeaders().find((t) => t.column.id === e.id), a = e.getIsSorted();
|
|
61
|
+
return /* @__PURE__ */ n(
|
|
62
|
+
C,
|
|
63
|
+
{
|
|
64
|
+
columnId: e.id,
|
|
65
|
+
label: typeof r.headerName == "string" ? r.headerName : e.id,
|
|
66
|
+
region: e.getIsPinned(),
|
|
67
|
+
disabled: s,
|
|
68
|
+
"aria-sort": a === "asc" ? "ascending" : a === "desc" ? "descending" : "none",
|
|
69
|
+
className: "mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3",
|
|
70
|
+
style: u(e, !0),
|
|
71
|
+
children: [
|
|
72
|
+
/* @__PURE__ */ n(
|
|
73
|
+
"button",
|
|
74
|
+
{
|
|
75
|
+
type: "button",
|
|
76
|
+
"data-column-sort": "",
|
|
77
|
+
disabled: s,
|
|
78
|
+
"aria-disabled": !e.getCanSort() || void 0,
|
|
79
|
+
onClick: (t) => {
|
|
80
|
+
!t.defaultPrevented && e.getCanSort() && e.getToggleSortingHandler()?.(t);
|
|
81
|
+
},
|
|
82
|
+
className: "mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default",
|
|
83
|
+
"aria-label": `Sort ${typeof r.headerName == "string" ? r.headerName : e.id}`,
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ i("span", { className: "mtx-truncate", children: r.headerName ?? e.id }),
|
|
86
|
+
a && /* @__PURE__ */ n("span", { "aria-hidden": "true", children: [
|
|
87
|
+
a === "asc" ? "↑" : "↓",
|
|
88
|
+
d.state.sorting.length > 1 ? e.getSortIndex() + 1 : ""
|
|
89
|
+
] })
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
!s && /* @__PURE__ */ i(S, { table: d, column: e, definition: r }),
|
|
94
|
+
!s && e.getCanResize() && /* @__PURE__ */ i(
|
|
95
|
+
"div",
|
|
96
|
+
{
|
|
97
|
+
role: "separator",
|
|
98
|
+
"data-column-drag-ignore": "",
|
|
99
|
+
"aria-label": `Resize ${e.id}`,
|
|
100
|
+
"aria-orientation": "vertical",
|
|
101
|
+
tabIndex: 0,
|
|
102
|
+
className: "mtx-absolute mtx-inset-y-0 mtx-end-0 mtx-w-1 mtx-cursor-col-resize mtx-touch-none hover:mtx-bg-primary-300",
|
|
103
|
+
onMouseDown: l.getResizeHandler(),
|
|
104
|
+
onTouchStart: l.getResizeHandler(),
|
|
105
|
+
onDoubleClick: () => e.resetSize(),
|
|
106
|
+
onKeyDown: (t) => {
|
|
107
|
+
(t.key === "ArrowRight" || t.key === "ArrowLeft") && (t.preventDefault(), d.setColumnSizing((N) => ({
|
|
108
|
+
...N,
|
|
109
|
+
[e.id]: (w.get(e.id) ?? e.getSize()) + (t.key === "ArrowRight" ? 10 : -10)
|
|
110
|
+
})));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
)
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
e.id
|
|
117
|
+
);
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
export {
|
|
124
|
+
j as DataTableHeader
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=datatableheader.es.js.map
|