@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.
Files changed (91) hide show
  1. package/README.md +18 -10
  2. package/dist/components/data-table/DataTable.d.ts +8 -0
  3. package/dist/components/data-table/DataTable.d.ts.map +1 -0
  4. package/dist/components/data-table/DataTable.types.d.ts +176 -0
  5. package/dist/components/data-table/DataTable.types.d.ts.map +1 -0
  6. package/dist/components/data-table/DataTableActions.d.ts +42 -0
  7. package/dist/components/data-table/DataTableActions.d.ts.map +1 -0
  8. package/dist/components/data-table/DataTableAlignment.d.ts +9 -0
  9. package/dist/components/data-table/DataTableAlignment.d.ts.map +1 -0
  10. package/dist/components/data-table/DataTableColumnHeader.d.ts +11 -0
  11. package/dist/components/data-table/DataTableColumnHeader.d.ts.map +1 -0
  12. package/dist/components/data-table/DataTableColumnMenu.d.ts +9 -0
  13. package/dist/components/data-table/DataTableColumnMenu.d.ts.map +1 -0
  14. package/dist/components/data-table/DataTableContent.d.ts +7 -0
  15. package/dist/components/data-table/DataTableContent.d.ts.map +1 -0
  16. package/dist/components/data-table/DataTableContext.d.ts +37 -0
  17. package/dist/components/data-table/DataTableContext.d.ts.map +1 -0
  18. package/dist/components/data-table/DataTableHeader.d.ts +22 -0
  19. package/dist/components/data-table/DataTableHeader.d.ts.map +1 -0
  20. package/dist/components/data-table/DataTablePagination.d.ts +8 -0
  21. package/dist/components/data-table/DataTablePagination.d.ts.map +1 -0
  22. package/dist/components/data-table/DataTableRowView.d.ts +40 -0
  23. package/dist/components/data-table/DataTableRowView.d.ts.map +1 -0
  24. package/dist/components/data-table/dataTableColumnDrag.d.ts +13 -0
  25. package/dist/components/data-table/dataTableColumnDrag.d.ts.map +1 -0
  26. package/dist/components/data-table/dataTableEditing.d.ts +11 -0
  27. package/dist/components/data-table/dataTableEditing.d.ts.map +1 -0
  28. package/dist/components/data-table/dataTableFeatures.d.ts +25 -0
  29. package/dist/components/data-table/dataTableFeatures.d.ts.map +1 -0
  30. package/dist/components/data-table/dataTableModel.d.ts +23 -0
  31. package/dist/components/data-table/dataTableModel.d.ts.map +1 -0
  32. package/dist/components/data-table/dataTablePrint.d.ts +3 -0
  33. package/dist/components/data-table/dataTablePrint.d.ts.map +1 -0
  34. package/dist/components/data-table/dataTableStyles.d.ts +2 -0
  35. package/dist/components/data-table/dataTableStyles.d.ts.map +1 -0
  36. package/dist/components/data-table/useDataTableApi.d.ts +34 -0
  37. package/dist/components/data-table/useDataTableApi.d.ts.map +1 -0
  38. package/dist/components/data-table/useDataTableColumnDrag.d.ts +16 -0
  39. package/dist/components/data-table/useDataTableColumnDrag.d.ts.map +1 -0
  40. package/dist/components/data-table/useDataTableInstance.d.ts +96 -0
  41. package/dist/components/data-table/useDataTableInstance.d.ts.map +1 -0
  42. package/dist/components/data-table/useDataTableMotion.d.ts +4 -0
  43. package/dist/components/data-table/useDataTableMotion.d.ts.map +1 -0
  44. package/dist/components/resource-scheduler/ResourceScheduler.d.ts +96 -0
  45. package/dist/components/resource-scheduler/ResourceScheduler.d.ts.map +1 -0
  46. package/dist/datatable.es.js +40 -0
  47. package/dist/datatable.es.js.map +1 -0
  48. package/dist/datatableactions.es.js +193 -0
  49. package/dist/datatableactions.es.js.map +1 -0
  50. package/dist/datatablealignment.es.js +11 -0
  51. package/dist/datatablealignment.es.js.map +1 -0
  52. package/dist/datatablecolumndrag.es.js +34 -0
  53. package/dist/datatablecolumndrag.es.js.map +1 -0
  54. package/dist/datatablecolumnheader.es.js +81 -0
  55. package/dist/datatablecolumnheader.es.js.map +1 -0
  56. package/dist/datatablecolumnmenu.es.js +191 -0
  57. package/dist/datatablecolumnmenu.es.js.map +1 -0
  58. package/dist/datatablecontent.es.js +376 -0
  59. package/dist/datatablecontent.es.js.map +1 -0
  60. package/dist/datatablecontext.es.js +14 -0
  61. package/dist/datatablecontext.es.js.map +1 -0
  62. package/dist/datatablefeatures.es.js +24 -0
  63. package/dist/datatablefeatures.es.js.map +1 -0
  64. package/dist/datatableheader.es.js +126 -0
  65. package/dist/datatableheader.es.js.map +1 -0
  66. package/dist/datatablemodel.es.js +126 -0
  67. package/dist/datatablemodel.es.js.map +1 -0
  68. package/dist/datatablepagination.es.js +43 -0
  69. package/dist/datatablepagination.es.js.map +1 -0
  70. package/dist/datatableprint.es.js +65 -0
  71. package/dist/datatableprint.es.js.map +1 -0
  72. package/dist/datatablerowview.es.js +201 -0
  73. package/dist/datatablerowview.es.js.map +1 -0
  74. package/dist/datatablestyles.es.js +5 -0
  75. package/dist/datatablestyles.es.js.map +1 -0
  76. package/dist/index.d.ts +6 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.es.js +173 -154
  79. package/dist/index.es.js.map +1 -1
  80. package/dist/resourcescheduler.es.js +450 -0
  81. package/dist/resourcescheduler.es.js.map +1 -0
  82. package/dist/styles.css +1 -1
  83. package/dist/usedatatableapi.es.js +117 -0
  84. package/dist/usedatatableapi.es.js.map +1 -0
  85. package/dist/usedatatablecolumndrag.es.js +40 -0
  86. package/dist/usedatatablecolumndrag.es.js.map +1 -0
  87. package/dist/usedatatableinstance.es.js +178 -0
  88. package/dist/usedatatableinstance.es.js.map +1 -0
  89. package/dist/usedatatablemotion.es.js +99 -0
  90. package/dist/usedatatablemotion.es.js.map +1 -0
  91. 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