@osdk/react-components 0.1.0-beta.2 → 0.1.0-beta.4

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 (76) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +51 -1
  3. package/build/browser/base-components/checkbox/Checkbox.js +40 -0
  4. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -0
  5. package/build/browser/base-components/checkbox/Checkbox.module.css +73 -0
  6. package/build/browser/css-modules.d.ts +20 -0
  7. package/build/browser/object-table/CellContextMenu.js +2 -2
  8. package/build/browser/object-table/CellContextMenu.js.map +1 -1
  9. package/build/browser/object-table/CellContextMenu.module.css +20 -0
  10. package/build/browser/object-table/ObjectTable.js +2 -1
  11. package/build/browser/object-table/ObjectTable.js.map +1 -1
  12. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  13. package/build/browser/object-table/SelectionCells.js +11 -33
  14. package/build/browser/object-table/SelectionCells.js.map +1 -1
  15. package/build/browser/object-table/Table.js +6 -15
  16. package/build/browser/object-table/Table.js.map +1 -1
  17. package/build/browser/object-table/Table.module.css +21 -0
  18. package/build/browser/object-table/TableBody.js +2 -2
  19. package/build/browser/object-table/TableBody.js.map +1 -1
  20. package/build/browser/object-table/TableBody.module.css +20 -0
  21. package/build/browser/object-table/TableCell.js +5 -3
  22. package/build/browser/object-table/TableCell.js.map +1 -1
  23. package/build/browser/object-table/TableCell.module.css +46 -0
  24. package/build/browser/object-table/TableHeader.js +12 -30
  25. package/build/browser/object-table/TableHeader.js.map +1 -1
  26. package/build/browser/object-table/TableHeader.module.css +78 -0
  27. package/build/browser/object-table/TableRow.js +4 -3
  28. package/build/browser/object-table/TableRow.js.map +1 -1
  29. package/build/browser/object-table/TableRow.module.css +60 -0
  30. package/build/cjs/public/experimental.cjs +143 -3716
  31. package/build/cjs/public/experimental.cjs.map +1 -1
  32. package/build/cjs/public/experimental.css +180 -0
  33. package/build/cjs/public/experimental.css.map +1 -0
  34. package/build/cjs/public/experimental.d.cts +1 -0
  35. package/build/esm/base-components/checkbox/Checkbox.js +40 -0
  36. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -0
  37. package/build/esm/base-components/checkbox/Checkbox.module.css +73 -0
  38. package/build/esm/css-modules.d.ts +20 -0
  39. package/build/esm/object-table/CellContextMenu.js +2 -2
  40. package/build/esm/object-table/CellContextMenu.js.map +1 -1
  41. package/build/esm/object-table/CellContextMenu.module.css +20 -0
  42. package/build/esm/object-table/ObjectTable.js +2 -1
  43. package/build/esm/object-table/ObjectTable.js.map +1 -1
  44. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  45. package/build/esm/object-table/SelectionCells.js +11 -33
  46. package/build/esm/object-table/SelectionCells.js.map +1 -1
  47. package/build/esm/object-table/Table.js +6 -15
  48. package/build/esm/object-table/Table.js.map +1 -1
  49. package/build/esm/object-table/Table.module.css +21 -0
  50. package/build/esm/object-table/TableBody.js +2 -2
  51. package/build/esm/object-table/TableBody.js.map +1 -1
  52. package/build/esm/object-table/TableBody.module.css +20 -0
  53. package/build/esm/object-table/TableCell.js +5 -3
  54. package/build/esm/object-table/TableCell.js.map +1 -1
  55. package/build/esm/object-table/TableCell.module.css +46 -0
  56. package/build/esm/object-table/TableHeader.js +12 -30
  57. package/build/esm/object-table/TableHeader.js.map +1 -1
  58. package/build/esm/object-table/TableHeader.module.css +78 -0
  59. package/build/esm/object-table/TableRow.js +4 -3
  60. package/build/esm/object-table/TableRow.js.map +1 -1
  61. package/build/esm/object-table/TableRow.module.css +60 -0
  62. package/build/types/base-components/checkbox/Checkbox.d.ts +10 -0
  63. package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -0
  64. package/build/types/css-modules.d.d.ts +6 -0
  65. package/build/types/css-modules.d.d.ts.map +1 -0
  66. package/build/types/object-table/CellContextMenu.d.ts.map +1 -1
  67. package/build/types/object-table/ObjectTableApi.d.ts +1 -0
  68. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  69. package/build/types/object-table/SelectionCells.d.ts.map +1 -1
  70. package/build/types/object-table/Table.d.ts +2 -1
  71. package/build/types/object-table/Table.d.ts.map +1 -1
  72. package/build/types/object-table/TableBody.d.ts.map +1 -1
  73. package/build/types/object-table/TableCell.d.ts.map +1 -1
  74. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  75. package/build/types/object-table/TableRow.d.ts.map +1 -1
  76. package/package.json +13 -8
@@ -1,2706 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var React2 = require('react');
3
+ var reactTable = require('@tanstack/react-table');
4
+ var React5 = require('react');
4
5
  var react = require('@osdk/react');
5
6
  var experimental = require('@osdk/react/experimental');
7
+ var checkbox = require('@base-ui/react/checkbox');
8
+ var icons = require('@blueprintjs/icons');
9
+ var classnames = require('classnames');
10
+ var reactVirtual = require('@tanstack/react-virtual');
6
11
  var reactDom = require('react-dom');
7
12
 
8
- function _interopNamespace(e) {
9
- if (e && e.__esModule) return e;
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n.default = e;
23
- return Object.freeze(n);
24
- }
25
-
26
- var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
27
-
28
- // ../../node_modules/.pnpm/@tanstack+react-table@8.21.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-table/build/lib/index.mjs
29
-
30
- // ../../node_modules/.pnpm/@tanstack+table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.mjs
31
- function functionalUpdate(updater, input) {
32
- return typeof updater === "function" ? updater(input) : updater;
33
- }
34
- function makeStateUpdater(key, instance) {
35
- return (updater) => {
36
- instance.setState((old) => {
37
- return {
38
- ...old,
39
- [key]: functionalUpdate(updater, old[key])
40
- };
41
- });
42
- };
43
- }
44
- function isFunction(d) {
45
- return d instanceof Function;
46
- }
47
- function isNumberArray(d) {
48
- return Array.isArray(d) && d.every((val) => typeof val === "number");
49
- }
50
- function flattenBy(arr, getChildren) {
51
- const flat = [];
52
- const recurse = (subArr) => {
53
- subArr.forEach((item) => {
54
- flat.push(item);
55
- const children = getChildren(item);
56
- if (children != null && children.length) {
57
- recurse(children);
58
- }
59
- });
60
- };
61
- recurse(arr);
62
- return flat;
63
- }
64
- function memo(getDeps, fn, opts) {
65
- let deps = [];
66
- let result;
67
- return (depArgs) => {
68
- let depTime;
69
- if (opts.key && opts.debug) depTime = Date.now();
70
- const newDeps = getDeps(depArgs);
71
- const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);
72
- if (!depsChanged) {
73
- return result;
74
- }
75
- deps = newDeps;
76
- let resultTime;
77
- if (opts.key && opts.debug) resultTime = Date.now();
78
- result = fn(...newDeps);
79
- opts == null || opts.onChange == null || opts.onChange(result);
80
- if (opts.key && opts.debug) {
81
- if (opts != null && opts.debug()) {
82
- const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
83
- const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
84
- const resultFpsPercentage = resultEndTime / 16;
85
- const pad = (str, num) => {
86
- str = String(str);
87
- while (str.length < num) {
88
- str = " " + str;
89
- }
90
- return str;
91
- };
92
- console.info(`%c\u23F1 ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `
93
- font-size: .6rem;
94
- font-weight: bold;
95
- color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);
96
- }
97
- }
98
- return result;
99
- };
100
- }
101
- function getMemoOptions(tableOptions, debugLevel, key, onChange) {
102
- return {
103
- debug: () => {
104
- var _tableOptions$debugAl;
105
- return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];
106
- },
107
- key: process.env.NODE_ENV === "development" && key,
108
- onChange
109
- };
110
- }
111
- function createCell(table, row, column, columnId) {
112
- const getRenderValue = () => {
113
- var _cell$getValue;
114
- return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;
115
- };
116
- const cell = {
117
- id: `${row.id}_${column.id}`,
118
- row,
119
- column,
120
- getValue: () => row.getValue(columnId),
121
- renderValue: getRenderValue,
122
- getContext: memo(() => [table, column, row, cell], (table2, column2, row2, cell2) => ({
123
- table: table2,
124
- column: column2,
125
- row: row2,
126
- cell: cell2,
127
- getValue: cell2.getValue,
128
- renderValue: cell2.renderValue
129
- }), getMemoOptions(table.options, "debugCells", "cell.getContext"))
130
- };
131
- table._features.forEach((feature) => {
132
- feature.createCell == null || feature.createCell(cell, column, row, table);
133
- }, {});
134
- return cell;
135
- }
136
- function createColumn(table, columnDef, depth, parent) {
137
- var _ref, _resolvedColumnDef$id;
138
- const defaultColumn = table._getDefaultColumnDef();
139
- const resolvedColumnDef = {
140
- ...defaultColumn,
141
- ...columnDef
142
- };
143
- const accessorKey = resolvedColumnDef.accessorKey;
144
- let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === "function" ? accessorKey.replaceAll(".", "_") : accessorKey.replace(/\./g, "_") : void 0) != null ? _ref : typeof resolvedColumnDef.header === "string" ? resolvedColumnDef.header : void 0;
145
- let accessorFn;
146
- if (resolvedColumnDef.accessorFn) {
147
- accessorFn = resolvedColumnDef.accessorFn;
148
- } else if (accessorKey) {
149
- if (accessorKey.includes(".")) {
150
- accessorFn = (originalRow) => {
151
- let result = originalRow;
152
- for (const key of accessorKey.split(".")) {
153
- var _result;
154
- result = (_result = result) == null ? void 0 : _result[key];
155
- if (process.env.NODE_ENV !== "production" && result === void 0) {
156
- console.warn(`"${key}" in deeply nested key "${accessorKey}" returned undefined.`);
157
- }
158
- }
159
- return result;
160
- };
161
- } else {
162
- accessorFn = (originalRow) => originalRow[resolvedColumnDef.accessorKey];
163
- }
164
- }
165
- if (!id) {
166
- if (process.env.NODE_ENV !== "production") {
167
- throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);
168
- }
169
- throw new Error();
170
- }
171
- let column = {
172
- id: `${String(id)}`,
173
- accessorFn,
174
- parent,
175
- depth,
176
- columnDef: resolvedColumnDef,
177
- columns: [],
178
- getFlatColumns: memo(() => [true], () => {
179
- var _column$columns;
180
- return [column, ...(_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap((d) => d.getFlatColumns())];
181
- }, getMemoOptions(table.options, "debugColumns", "column.getFlatColumns")),
182
- getLeafColumns: memo(() => [table._getOrderColumnsFn()], (orderColumns2) => {
183
- var _column$columns2;
184
- if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
185
- let leafColumns = column.columns.flatMap((column2) => column2.getLeafColumns());
186
- return orderColumns2(leafColumns);
187
- }
188
- return [column];
189
- }, getMemoOptions(table.options, "debugColumns", "column.getLeafColumns"))
190
- };
191
- for (const feature of table._features) {
192
- feature.createColumn == null || feature.createColumn(column, table);
193
- }
194
- return column;
195
- }
196
- var debug = "debugHeaders";
197
- function createHeader(table, column, options) {
198
- var _options$id;
199
- const id = (_options$id = options.id) != null ? _options$id : column.id;
200
- let header = {
201
- id,
202
- column,
203
- index: options.index,
204
- isPlaceholder: !!options.isPlaceholder,
205
- placeholderId: options.placeholderId,
206
- depth: options.depth,
207
- subHeaders: [],
208
- colSpan: 0,
209
- rowSpan: 0,
210
- headerGroup: null,
211
- getLeafHeaders: () => {
212
- const leafHeaders = [];
213
- const recurseHeader = (h) => {
214
- if (h.subHeaders && h.subHeaders.length) {
215
- h.subHeaders.map(recurseHeader);
216
- }
217
- leafHeaders.push(h);
218
- };
219
- recurseHeader(header);
220
- return leafHeaders;
221
- },
222
- getContext: () => ({
223
- table,
224
- header,
225
- column
226
- })
227
- };
228
- table._features.forEach((feature) => {
229
- feature.createHeader == null || feature.createHeader(header, table);
230
- });
231
- return header;
232
- }
233
- var Headers = {
234
- createTable: (table) => {
235
- table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
236
- var _left$map$filter, _right$map$filter;
237
- const leftColumns = (_left$map$filter = left == null ? void 0 : left.map((columnId) => leafColumns.find((d) => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];
238
- const rightColumns = (_right$map$filter = right == null ? void 0 : right.map((columnId) => leafColumns.find((d) => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];
239
- const centerColumns = leafColumns.filter((column) => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
240
- const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);
241
- return headerGroups;
242
- }, getMemoOptions(table.options, debug, "getHeaderGroups"));
243
- table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
244
- leafColumns = leafColumns.filter((column) => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
245
- return buildHeaderGroups(allColumns, leafColumns, table, "center");
246
- }, getMemoOptions(table.options, debug, "getCenterHeaderGroups"));
247
- table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {
248
- var _left$map$filter2;
249
- const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map((columnId) => leafColumns.find((d) => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];
250
- return buildHeaderGroups(allColumns, orderedLeafColumns, table, "left");
251
- }, getMemoOptions(table.options, debug, "getLeftHeaderGroups"));
252
- table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {
253
- var _right$map$filter2;
254
- const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map((columnId) => leafColumns.find((d) => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];
255
- return buildHeaderGroups(allColumns, orderedLeafColumns, table, "right");
256
- }, getMemoOptions(table.options, debug, "getRightHeaderGroups"));
257
- table.getFooterGroups = memo(() => [table.getHeaderGroups()], (headerGroups) => {
258
- return [...headerGroups].reverse();
259
- }, getMemoOptions(table.options, debug, "getFooterGroups"));
260
- table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], (headerGroups) => {
261
- return [...headerGroups].reverse();
262
- }, getMemoOptions(table.options, debug, "getLeftFooterGroups"));
263
- table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], (headerGroups) => {
264
- return [...headerGroups].reverse();
265
- }, getMemoOptions(table.options, debug, "getCenterFooterGroups"));
266
- table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], (headerGroups) => {
267
- return [...headerGroups].reverse();
268
- }, getMemoOptions(table.options, debug, "getRightFooterGroups"));
269
- table.getFlatHeaders = memo(() => [table.getHeaderGroups()], (headerGroups) => {
270
- return headerGroups.map((headerGroup) => {
271
- return headerGroup.headers;
272
- }).flat();
273
- }, getMemoOptions(table.options, debug, "getFlatHeaders"));
274
- table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], (left) => {
275
- return left.map((headerGroup) => {
276
- return headerGroup.headers;
277
- }).flat();
278
- }, getMemoOptions(table.options, debug, "getLeftFlatHeaders"));
279
- table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], (left) => {
280
- return left.map((headerGroup) => {
281
- return headerGroup.headers;
282
- }).flat();
283
- }, getMemoOptions(table.options, debug, "getCenterFlatHeaders"));
284
- table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], (left) => {
285
- return left.map((headerGroup) => {
286
- return headerGroup.headers;
287
- }).flat();
288
- }, getMemoOptions(table.options, debug, "getRightFlatHeaders"));
289
- table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], (flatHeaders) => {
290
- return flatHeaders.filter((header) => {
291
- var _header$subHeaders;
292
- return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
293
- });
294
- }, getMemoOptions(table.options, debug, "getCenterLeafHeaders"));
295
- table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], (flatHeaders) => {
296
- return flatHeaders.filter((header) => {
297
- var _header$subHeaders2;
298
- return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
299
- });
300
- }, getMemoOptions(table.options, debug, "getLeftLeafHeaders"));
301
- table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], (flatHeaders) => {
302
- return flatHeaders.filter((header) => {
303
- var _header$subHeaders3;
304
- return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
305
- });
306
- }, getMemoOptions(table.options, debug, "getRightLeafHeaders"));
307
- table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {
308
- var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;
309
- return [...(_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : [], ...(_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : [], ...(_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : []].map((header) => {
310
- return header.getLeafHeaders();
311
- }).flat();
312
- }, getMemoOptions(table.options, debug, "getLeafHeaders"));
313
- }
314
- };
315
- function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
316
- var _headerGroups$0$heade, _headerGroups$;
317
- let maxDepth = 0;
318
- const findMaxDepth = function(columns, depth) {
319
- if (depth === void 0) {
320
- depth = 1;
321
- }
322
- maxDepth = Math.max(maxDepth, depth);
323
- columns.filter((column) => column.getIsVisible()).forEach((column) => {
324
- var _column$columns;
325
- if ((_column$columns = column.columns) != null && _column$columns.length) {
326
- findMaxDepth(column.columns, depth + 1);
327
- }
328
- }, 0);
329
- };
330
- findMaxDepth(allColumns);
331
- let headerGroups = [];
332
- const createHeaderGroup = (headersToGroup, depth) => {
333
- const headerGroup = {
334
- depth,
335
- id: [headerFamily, `${depth}`].filter(Boolean).join("_"),
336
- headers: []
337
- };
338
- const pendingParentHeaders = [];
339
- headersToGroup.forEach((headerToGroup) => {
340
- const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];
341
- const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
342
- let column;
343
- let isPlaceholder = false;
344
- if (isLeafHeader && headerToGroup.column.parent) {
345
- column = headerToGroup.column.parent;
346
- } else {
347
- column = headerToGroup.column;
348
- isPlaceholder = true;
349
- }
350
- if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {
351
- latestPendingParentHeader.subHeaders.push(headerToGroup);
352
- } else {
353
- const header = createHeader(table, column, {
354
- id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join("_"),
355
- isPlaceholder,
356
- placeholderId: isPlaceholder ? `${pendingParentHeaders.filter((d) => d.column === column).length}` : void 0,
357
- depth,
358
- index: pendingParentHeaders.length
359
- });
360
- header.subHeaders.push(headerToGroup);
361
- pendingParentHeaders.push(header);
362
- }
363
- headerGroup.headers.push(headerToGroup);
364
- headerToGroup.headerGroup = headerGroup;
365
- });
366
- headerGroups.push(headerGroup);
367
- if (depth > 0) {
368
- createHeaderGroup(pendingParentHeaders, depth - 1);
369
- }
370
- };
371
- const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {
372
- depth: maxDepth,
373
- index
374
- }));
375
- createHeaderGroup(bottomHeaders, maxDepth - 1);
376
- headerGroups.reverse();
377
- const recurseHeadersForSpans = (headers) => {
378
- const filteredHeaders = headers.filter((header) => header.column.getIsVisible());
379
- return filteredHeaders.map((header) => {
380
- let colSpan = 0;
381
- let rowSpan = 0;
382
- let childRowSpans = [0];
383
- if (header.subHeaders && header.subHeaders.length) {
384
- childRowSpans = [];
385
- recurseHeadersForSpans(header.subHeaders).forEach((_ref) => {
386
- let {
387
- colSpan: childColSpan,
388
- rowSpan: childRowSpan
389
- } = _ref;
390
- colSpan += childColSpan;
391
- childRowSpans.push(childRowSpan);
392
- });
393
- } else {
394
- colSpan = 1;
395
- }
396
- const minChildRowSpan = Math.min(...childRowSpans);
397
- rowSpan = rowSpan + minChildRowSpan;
398
- header.colSpan = colSpan;
399
- header.rowSpan = rowSpan;
400
- return {
401
- colSpan,
402
- rowSpan
403
- };
404
- });
405
- };
406
- recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);
407
- return headerGroups;
408
- }
409
- var createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
410
- let row = {
411
- id,
412
- index: rowIndex,
413
- original,
414
- depth,
415
- parentId,
416
- _valuesCache: {},
417
- _uniqueValuesCache: {},
418
- getValue: (columnId) => {
419
- if (row._valuesCache.hasOwnProperty(columnId)) {
420
- return row._valuesCache[columnId];
421
- }
422
- const column = table.getColumn(columnId);
423
- if (!(column != null && column.accessorFn)) {
424
- return void 0;
425
- }
426
- row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
427
- return row._valuesCache[columnId];
428
- },
429
- getUniqueValues: (columnId) => {
430
- if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
431
- return row._uniqueValuesCache[columnId];
432
- }
433
- const column = table.getColumn(columnId);
434
- if (!(column != null && column.accessorFn)) {
435
- return void 0;
436
- }
437
- if (!column.columnDef.getUniqueValues) {
438
- row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
439
- return row._uniqueValuesCache[columnId];
440
- }
441
- row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);
442
- return row._uniqueValuesCache[columnId];
443
- },
444
- renderValue: (columnId) => {
445
- var _row$getValue;
446
- return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;
447
- },
448
- subRows: [],
449
- getLeafRows: () => flattenBy(row.subRows, (d) => d.subRows),
450
- getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : void 0,
451
- getParentRows: () => {
452
- let parentRows = [];
453
- let currentRow = row;
454
- while (true) {
455
- const parentRow = currentRow.getParentRow();
456
- if (!parentRow) break;
457
- parentRows.push(parentRow);
458
- currentRow = parentRow;
459
- }
460
- return parentRows.reverse();
461
- },
462
- getAllCells: memo(() => [table.getAllLeafColumns()], (leafColumns) => {
463
- return leafColumns.map((column) => {
464
- return createCell(table, row, column, column.id);
465
- });
466
- }, getMemoOptions(table.options, "debugRows", "getAllCells")),
467
- _getAllCellsByColumnId: memo(() => [row.getAllCells()], (allCells) => {
468
- return allCells.reduce((acc, cell) => {
469
- acc[cell.column.id] = cell;
470
- return acc;
471
- }, {});
472
- }, getMemoOptions(table.options, "debugRows", "getAllCellsByColumnId"))
473
- };
474
- for (let i = 0; i < table._features.length; i++) {
475
- const feature = table._features[i];
476
- feature == null || feature.createRow == null || feature.createRow(row, table);
477
- }
478
- return row;
479
- };
480
- var ColumnFaceting = {
481
- createColumn: (column, table) => {
482
- column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);
483
- column.getFacetedRowModel = () => {
484
- if (!column._getFacetedRowModel) {
485
- return table.getPreFilteredRowModel();
486
- }
487
- return column._getFacetedRowModel();
488
- };
489
- column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);
490
- column.getFacetedUniqueValues = () => {
491
- if (!column._getFacetedUniqueValues) {
492
- return /* @__PURE__ */ new Map();
493
- }
494
- return column._getFacetedUniqueValues();
495
- };
496
- column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);
497
- column.getFacetedMinMaxValues = () => {
498
- if (!column._getFacetedMinMaxValues) {
499
- return void 0;
500
- }
501
- return column._getFacetedMinMaxValues();
502
- };
503
- }
504
- };
505
- var includesString = (row, columnId, filterValue) => {
506
- var _filterValue$toString, _row$getValue;
507
- const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();
508
- return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));
509
- };
510
- includesString.autoRemove = (val) => testFalsey(val);
511
- var includesStringSensitive = (row, columnId, filterValue) => {
512
- var _row$getValue2;
513
- return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));
514
- };
515
- includesStringSensitive.autoRemove = (val) => testFalsey(val);
516
- var equalsString = (row, columnId, filterValue) => {
517
- var _row$getValue3;
518
- return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());
519
- };
520
- equalsString.autoRemove = (val) => testFalsey(val);
521
- var arrIncludes = (row, columnId, filterValue) => {
522
- var _row$getValue4;
523
- return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);
524
- };
525
- arrIncludes.autoRemove = (val) => testFalsey(val);
526
- var arrIncludesAll = (row, columnId, filterValue) => {
527
- return !filterValue.some((val) => {
528
- var _row$getValue5;
529
- return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));
530
- });
531
- };
532
- arrIncludesAll.autoRemove = (val) => testFalsey(val) || !(val != null && val.length);
533
- var arrIncludesSome = (row, columnId, filterValue) => {
534
- return filterValue.some((val) => {
535
- var _row$getValue6;
536
- return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);
537
- });
538
- };
539
- arrIncludesSome.autoRemove = (val) => testFalsey(val) || !(val != null && val.length);
540
- var equals = (row, columnId, filterValue) => {
541
- return row.getValue(columnId) === filterValue;
542
- };
543
- equals.autoRemove = (val) => testFalsey(val);
544
- var weakEquals = (row, columnId, filterValue) => {
545
- return row.getValue(columnId) == filterValue;
546
- };
547
- weakEquals.autoRemove = (val) => testFalsey(val);
548
- var inNumberRange = (row, columnId, filterValue) => {
549
- let [min2, max2] = filterValue;
550
- const rowValue = row.getValue(columnId);
551
- return rowValue >= min2 && rowValue <= max2;
552
- };
553
- inNumberRange.resolveFilterValue = (val) => {
554
- let [unsafeMin, unsafeMax] = val;
555
- let parsedMin = typeof unsafeMin !== "number" ? parseFloat(unsafeMin) : unsafeMin;
556
- let parsedMax = typeof unsafeMax !== "number" ? parseFloat(unsafeMax) : unsafeMax;
557
- let min2 = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;
558
- let max2 = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;
559
- if (min2 > max2) {
560
- const temp = min2;
561
- min2 = max2;
562
- max2 = temp;
563
- }
564
- return [min2, max2];
565
- };
566
- inNumberRange.autoRemove = (val) => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);
567
- var filterFns = {
568
- includesString,
569
- includesStringSensitive,
570
- equalsString,
571
- arrIncludes,
572
- arrIncludesAll,
573
- arrIncludesSome,
574
- equals,
575
- weakEquals,
576
- inNumberRange
577
- };
578
- function testFalsey(val) {
579
- return val === void 0 || val === null || val === "";
580
- }
581
- var ColumnFiltering = {
582
- getDefaultColumnDef: () => {
583
- return {
584
- filterFn: "auto"
585
- };
586
- },
587
- getInitialState: (state) => {
588
- return {
589
- columnFilters: [],
590
- ...state
591
- };
592
- },
593
- getDefaultOptions: (table) => {
594
- return {
595
- onColumnFiltersChange: makeStateUpdater("columnFilters", table),
596
- filterFromLeafRows: false,
597
- maxLeafRowFilterDepth: 100
598
- };
599
- },
600
- createColumn: (column, table) => {
601
- column.getAutoFilterFn = () => {
602
- const firstRow = table.getCoreRowModel().flatRows[0];
603
- const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
604
- if (typeof value === "string") {
605
- return filterFns.includesString;
606
- }
607
- if (typeof value === "number") {
608
- return filterFns.inNumberRange;
609
- }
610
- if (typeof value === "boolean") {
611
- return filterFns.equals;
612
- }
613
- if (value !== null && typeof value === "object") {
614
- return filterFns.equals;
615
- }
616
- if (Array.isArray(value)) {
617
- return filterFns.arrIncludes;
618
- }
619
- return filterFns.weakEquals;
620
- };
621
- column.getFilterFn = () => {
622
- var _table$options$filter, _table$options$filter2;
623
- return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === "auto" ? column.getAutoFilterFn() : (
624
- // @ts-ignore
625
- (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn]
626
- );
627
- };
628
- column.getCanFilter = () => {
629
- var _column$columnDef$ena, _table$options$enable, _table$options$enable2;
630
- return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;
631
- };
632
- column.getIsFiltered = () => column.getFilterIndex() > -1;
633
- column.getFilterValue = () => {
634
- var _table$getState$colum;
635
- return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find((d) => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;
636
- };
637
- column.getFilterIndex = () => {
638
- var _table$getState$colum2, _table$getState$colum3;
639
- return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex((d) => d.id === column.id)) != null ? _table$getState$colum2 : -1;
640
- };
641
- column.setFilterValue = (value) => {
642
- table.setColumnFilters((old) => {
643
- const filterFn = column.getFilterFn();
644
- const previousFilter = old == null ? void 0 : old.find((d) => d.id === column.id);
645
- const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : void 0);
646
- if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {
647
- var _old$filter;
648
- return (_old$filter = old == null ? void 0 : old.filter((d) => d.id !== column.id)) != null ? _old$filter : [];
649
- }
650
- const newFilterObj = {
651
- id: column.id,
652
- value: newFilter
653
- };
654
- if (previousFilter) {
655
- var _old$map;
656
- return (_old$map = old == null ? void 0 : old.map((d) => {
657
- if (d.id === column.id) {
658
- return newFilterObj;
659
- }
660
- return d;
661
- })) != null ? _old$map : [];
662
- }
663
- if (old != null && old.length) {
664
- return [...old, newFilterObj];
665
- }
666
- return [newFilterObj];
667
- });
668
- };
669
- },
670
- createRow: (row, _table) => {
671
- row.columnFilters = {};
672
- row.columnFiltersMeta = {};
673
- },
674
- createTable: (table) => {
675
- table.setColumnFilters = (updater) => {
676
- const leafColumns = table.getAllLeafColumns();
677
- const updateFn = (old) => {
678
- var _functionalUpdate;
679
- return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter((filter) => {
680
- const column = leafColumns.find((d) => d.id === filter.id);
681
- if (column) {
682
- const filterFn = column.getFilterFn();
683
- if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {
684
- return false;
685
- }
686
- }
687
- return true;
688
- });
689
- };
690
- table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);
691
- };
692
- table.resetColumnFilters = (defaultState) => {
693
- var _table$initialState$c, _table$initialState;
694
- table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);
695
- };
696
- table.getPreFilteredRowModel = () => table.getCoreRowModel();
697
- table.getFilteredRowModel = () => {
698
- if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {
699
- table._getFilteredRowModel = table.options.getFilteredRowModel(table);
700
- }
701
- if (table.options.manualFiltering || !table._getFilteredRowModel) {
702
- return table.getPreFilteredRowModel();
703
- }
704
- return table._getFilteredRowModel();
705
- };
706
- }
707
- };
708
- function shouldAutoRemoveFilter(filterFn, value, column) {
709
- return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === "undefined" || typeof value === "string" && !value;
710
- }
711
- var sum = (columnId, _leafRows, childRows) => {
712
- return childRows.reduce((sum2, next) => {
713
- const nextValue = next.getValue(columnId);
714
- return sum2 + (typeof nextValue === "number" ? nextValue : 0);
715
- }, 0);
716
- };
717
- var min = (columnId, _leafRows, childRows) => {
718
- let min2;
719
- childRows.forEach((row) => {
720
- const value = row.getValue(columnId);
721
- if (value != null && (min2 > value || min2 === void 0 && value >= value)) {
722
- min2 = value;
723
- }
724
- });
725
- return min2;
726
- };
727
- var max = (columnId, _leafRows, childRows) => {
728
- let max2;
729
- childRows.forEach((row) => {
730
- const value = row.getValue(columnId);
731
- if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
732
- max2 = value;
733
- }
734
- });
735
- return max2;
736
- };
737
- var extent = (columnId, _leafRows, childRows) => {
738
- let min2;
739
- let max2;
740
- childRows.forEach((row) => {
741
- const value = row.getValue(columnId);
742
- if (value != null) {
743
- if (min2 === void 0) {
744
- if (value >= value) min2 = max2 = value;
745
- } else {
746
- if (min2 > value) min2 = value;
747
- if (max2 < value) max2 = value;
748
- }
749
- }
750
- });
751
- return [min2, max2];
752
- };
753
- var mean = (columnId, leafRows) => {
754
- let count2 = 0;
755
- let sum2 = 0;
756
- leafRows.forEach((row) => {
757
- let value = row.getValue(columnId);
758
- if (value != null && (value = +value) >= value) {
759
- ++count2, sum2 += value;
760
- }
761
- });
762
- if (count2) return sum2 / count2;
763
- return;
764
- };
765
- var median = (columnId, leafRows) => {
766
- if (!leafRows.length) {
767
- return;
768
- }
769
- const values = leafRows.map((row) => row.getValue(columnId));
770
- if (!isNumberArray(values)) {
771
- return;
772
- }
773
- if (values.length === 1) {
774
- return values[0];
775
- }
776
- const mid = Math.floor(values.length / 2);
777
- const nums = values.sort((a, b) => a - b);
778
- return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
779
- };
780
- var unique = (columnId, leafRows) => {
781
- return Array.from(new Set(leafRows.map((d) => d.getValue(columnId))).values());
782
- };
783
- var uniqueCount = (columnId, leafRows) => {
784
- return new Set(leafRows.map((d) => d.getValue(columnId))).size;
785
- };
786
- var count = (_columnId, leafRows) => {
787
- return leafRows.length;
788
- };
789
- var aggregationFns = {
790
- sum,
791
- min,
792
- max,
793
- extent,
794
- mean,
795
- median,
796
- unique,
797
- uniqueCount,
798
- count
799
- };
800
- var ColumnGrouping = {
801
- getDefaultColumnDef: () => {
802
- return {
803
- aggregatedCell: (props) => {
804
- var _toString, _props$getValue;
805
- return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;
806
- },
807
- aggregationFn: "auto"
808
- };
809
- },
810
- getInitialState: (state) => {
811
- return {
812
- grouping: [],
813
- ...state
814
- };
815
- },
816
- getDefaultOptions: (table) => {
817
- return {
818
- onGroupingChange: makeStateUpdater("grouping", table),
819
- groupedColumnMode: "reorder"
820
- };
821
- },
822
- createColumn: (column, table) => {
823
- column.toggleGrouping = () => {
824
- table.setGrouping((old) => {
825
- if (old != null && old.includes(column.id)) {
826
- return old.filter((d) => d !== column.id);
827
- }
828
- return [...old != null ? old : [], column.id];
829
- });
830
- };
831
- column.getCanGroup = () => {
832
- var _column$columnDef$ena, _table$options$enable;
833
- return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);
834
- };
835
- column.getIsGrouped = () => {
836
- var _table$getState$group;
837
- return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);
838
- };
839
- column.getGroupedIndex = () => {
840
- var _table$getState$group2;
841
- return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);
842
- };
843
- column.getToggleGroupingHandler = () => {
844
- const canGroup = column.getCanGroup();
845
- return () => {
846
- if (!canGroup) return;
847
- column.toggleGrouping();
848
- };
849
- };
850
- column.getAutoAggregationFn = () => {
851
- const firstRow = table.getCoreRowModel().flatRows[0];
852
- const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
853
- if (typeof value === "number") {
854
- return aggregationFns.sum;
855
- }
856
- if (Object.prototype.toString.call(value) === "[object Date]") {
857
- return aggregationFns.extent;
858
- }
859
- };
860
- column.getAggregationFn = () => {
861
- var _table$options$aggreg, _table$options$aggreg2;
862
- if (!column) {
863
- throw new Error();
864
- }
865
- return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === "auto" ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];
866
- };
867
- },
868
- createTable: (table) => {
869
- table.setGrouping = (updater) => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);
870
- table.resetGrouping = (defaultState) => {
871
- var _table$initialState$g, _table$initialState;
872
- table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);
873
- };
874
- table.getPreGroupedRowModel = () => table.getFilteredRowModel();
875
- table.getGroupedRowModel = () => {
876
- if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {
877
- table._getGroupedRowModel = table.options.getGroupedRowModel(table);
878
- }
879
- if (table.options.manualGrouping || !table._getGroupedRowModel) {
880
- return table.getPreGroupedRowModel();
881
- }
882
- return table._getGroupedRowModel();
883
- };
884
- },
885
- createRow: (row, table) => {
886
- row.getIsGrouped = () => !!row.groupingColumnId;
887
- row.getGroupingValue = (columnId) => {
888
- if (row._groupingValuesCache.hasOwnProperty(columnId)) {
889
- return row._groupingValuesCache[columnId];
890
- }
891
- const column = table.getColumn(columnId);
892
- if (!(column != null && column.columnDef.getGroupingValue)) {
893
- return row.getValue(columnId);
894
- }
895
- row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);
896
- return row._groupingValuesCache[columnId];
897
- };
898
- row._groupingValuesCache = {};
899
- },
900
- createCell: (cell, column, row, table) => {
901
- cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;
902
- cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();
903
- cell.getIsAggregated = () => {
904
- var _row$subRows;
905
- return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
906
- };
907
- }
908
- };
909
- function orderColumns(leafColumns, grouping, groupedColumnMode) {
910
- if (!(grouping != null && grouping.length) || !groupedColumnMode) {
911
- return leafColumns;
912
- }
913
- const nonGroupingColumns = leafColumns.filter((col) => !grouping.includes(col.id));
914
- if (groupedColumnMode === "remove") {
915
- return nonGroupingColumns;
916
- }
917
- const groupingColumns = grouping.map((g) => leafColumns.find((col) => col.id === g)).filter(Boolean);
918
- return [...groupingColumns, ...nonGroupingColumns];
919
- }
920
- var ColumnOrdering = {
921
- getInitialState: (state) => {
922
- return {
923
- columnOrder: [],
924
- ...state
925
- };
926
- },
927
- getDefaultOptions: (table) => {
928
- return {
929
- onColumnOrderChange: makeStateUpdater("columnOrder", table)
930
- };
931
- },
932
- createColumn: (column, table) => {
933
- column.getIndex = memo((position) => [_getVisibleLeafColumns(table, position)], (columns) => columns.findIndex((d) => d.id === column.id), getMemoOptions(table.options, "debugColumns", "getIndex"));
934
- column.getIsFirstColumn = (position) => {
935
- var _columns$;
936
- const columns = _getVisibleLeafColumns(table, position);
937
- return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;
938
- };
939
- column.getIsLastColumn = (position) => {
940
- var _columns;
941
- const columns = _getVisibleLeafColumns(table, position);
942
- return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;
943
- };
944
- },
945
- createTable: (table) => {
946
- table.setColumnOrder = (updater) => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);
947
- table.resetColumnOrder = (defaultState) => {
948
- var _table$initialState$c;
949
- table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);
950
- };
951
- table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => (columns) => {
952
- let orderedColumns = [];
953
- if (!(columnOrder != null && columnOrder.length)) {
954
- orderedColumns = columns;
955
- } else {
956
- const columnOrderCopy = [...columnOrder];
957
- const columnsCopy = [...columns];
958
- while (columnsCopy.length && columnOrderCopy.length) {
959
- const targetColumnId = columnOrderCopy.shift();
960
- const foundIndex = columnsCopy.findIndex((d) => d.id === targetColumnId);
961
- if (foundIndex > -1) {
962
- orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);
963
- }
964
- }
965
- orderedColumns = [...orderedColumns, ...columnsCopy];
966
- }
967
- return orderColumns(orderedColumns, grouping, groupedColumnMode);
968
- }, getMemoOptions(table.options, "debugTable", "_getOrderColumnsFn"));
969
- }
970
- };
971
- var getDefaultColumnPinningState = () => ({
972
- left: [],
973
- right: []
974
- });
975
- var ColumnPinning = {
976
- getInitialState: (state) => {
977
- return {
978
- columnPinning: getDefaultColumnPinningState(),
979
- ...state
980
- };
981
- },
982
- getDefaultOptions: (table) => {
983
- return {
984
- onColumnPinningChange: makeStateUpdater("columnPinning", table)
985
- };
986
- },
987
- createColumn: (column, table) => {
988
- column.pin = (position) => {
989
- const columnIds = column.getLeafColumns().map((d) => d.id).filter(Boolean);
990
- table.setColumnPinning((old) => {
991
- var _old$left3, _old$right3;
992
- if (position === "right") {
993
- var _old$left, _old$right;
994
- return {
995
- left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter((d) => !(columnIds != null && columnIds.includes(d))),
996
- right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter((d) => !(columnIds != null && columnIds.includes(d))), ...columnIds]
997
- };
998
- }
999
- if (position === "left") {
1000
- var _old$left2, _old$right2;
1001
- return {
1002
- left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter((d) => !(columnIds != null && columnIds.includes(d))), ...columnIds],
1003
- right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter((d) => !(columnIds != null && columnIds.includes(d)))
1004
- };
1005
- }
1006
- return {
1007
- left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter((d) => !(columnIds != null && columnIds.includes(d))),
1008
- right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter((d) => !(columnIds != null && columnIds.includes(d)))
1009
- };
1010
- });
1011
- };
1012
- column.getCanPin = () => {
1013
- const leafColumns = column.getLeafColumns();
1014
- return leafColumns.some((d) => {
1015
- var _d$columnDef$enablePi, _ref, _table$options$enable;
1016
- return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);
1017
- });
1018
- };
1019
- column.getIsPinned = () => {
1020
- const leafColumnIds = column.getLeafColumns().map((d) => d.id);
1021
- const {
1022
- left,
1023
- right
1024
- } = table.getState().columnPinning;
1025
- const isLeft = leafColumnIds.some((d) => left == null ? void 0 : left.includes(d));
1026
- const isRight = leafColumnIds.some((d) => right == null ? void 0 : right.includes(d));
1027
- return isLeft ? "left" : isRight ? "right" : false;
1028
- };
1029
- column.getPinnedIndex = () => {
1030
- var _table$getState$colum, _table$getState$colum2;
1031
- const position = column.getIsPinned();
1032
- return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;
1033
- };
1034
- },
1035
- createRow: (row, table) => {
1036
- row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {
1037
- const leftAndRight = [...left != null ? left : [], ...right != null ? right : []];
1038
- return allCells.filter((d) => !leftAndRight.includes(d.column.id));
1039
- }, getMemoOptions(table.options, "debugRows", "getCenterVisibleCells"));
1040
- row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {
1041
- const cells = (left != null ? left : []).map((columnId) => allCells.find((cell) => cell.column.id === columnId)).filter(Boolean).map((d) => ({
1042
- ...d,
1043
- position: "left"
1044
- }));
1045
- return cells;
1046
- }, getMemoOptions(table.options, "debugRows", "getLeftVisibleCells"));
1047
- row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {
1048
- const cells = (right != null ? right : []).map((columnId) => allCells.find((cell) => cell.column.id === columnId)).filter(Boolean).map((d) => ({
1049
- ...d,
1050
- position: "right"
1051
- }));
1052
- return cells;
1053
- }, getMemoOptions(table.options, "debugRows", "getRightVisibleCells"));
1054
- },
1055
- createTable: (table) => {
1056
- table.setColumnPinning = (updater) => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);
1057
- table.resetColumnPinning = (defaultState) => {
1058
- var _table$initialState$c, _table$initialState;
1059
- return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());
1060
- };
1061
- table.getIsSomeColumnsPinned = (position) => {
1062
- var _pinningState$positio;
1063
- const pinningState = table.getState().columnPinning;
1064
- if (!position) {
1065
- var _pinningState$left, _pinningState$right;
1066
- return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));
1067
- }
1068
- return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
1069
- };
1070
- table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {
1071
- return (left != null ? left : []).map((columnId) => allColumns.find((column) => column.id === columnId)).filter(Boolean);
1072
- }, getMemoOptions(table.options, "debugColumns", "getLeftLeafColumns"));
1073
- table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {
1074
- return (right != null ? right : []).map((columnId) => allColumns.find((column) => column.id === columnId)).filter(Boolean);
1075
- }, getMemoOptions(table.options, "debugColumns", "getRightLeafColumns"));
1076
- table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {
1077
- const leftAndRight = [...left != null ? left : [], ...right != null ? right : []];
1078
- return allColumns.filter((d) => !leftAndRight.includes(d.id));
1079
- }, getMemoOptions(table.options, "debugColumns", "getCenterLeafColumns"));
1080
- }
1081
- };
1082
- function safelyAccessDocument(_document) {
1083
- return _document || (typeof document !== "undefined" ? document : null);
1084
- }
1085
- var defaultColumnSizing = {
1086
- size: 150,
1087
- minSize: 20,
1088
- maxSize: Number.MAX_SAFE_INTEGER
1089
- };
1090
- var getDefaultColumnSizingInfoState = () => ({
1091
- startOffset: null,
1092
- startSize: null,
1093
- deltaOffset: null,
1094
- deltaPercentage: null,
1095
- isResizingColumn: false,
1096
- columnSizingStart: []
1097
- });
1098
- var ColumnSizing = {
1099
- getDefaultColumnDef: () => {
1100
- return defaultColumnSizing;
1101
- },
1102
- getInitialState: (state) => {
1103
- return {
1104
- columnSizing: {},
1105
- columnSizingInfo: getDefaultColumnSizingInfoState(),
1106
- ...state
1107
- };
1108
- },
1109
- getDefaultOptions: (table) => {
1110
- return {
1111
- columnResizeMode: "onEnd",
1112
- columnResizeDirection: "ltr",
1113
- onColumnSizingChange: makeStateUpdater("columnSizing", table),
1114
- onColumnSizingInfoChange: makeStateUpdater("columnSizingInfo", table)
1115
- };
1116
- },
1117
- createColumn: (column, table) => {
1118
- column.getSize = () => {
1119
- var _column$columnDef$min, _ref, _column$columnDef$max;
1120
- const columnSize = table.getState().columnSizing[column.id];
1121
- return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);
1122
- };
1123
- column.getStart = memo((position) => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum2, column2) => sum2 + column2.getSize(), 0), getMemoOptions(table.options, "debugColumns", "getStart"));
1124
- column.getAfter = memo((position) => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum2, column2) => sum2 + column2.getSize(), 0), getMemoOptions(table.options, "debugColumns", "getAfter"));
1125
- column.resetSize = () => {
1126
- table.setColumnSizing((_ref2) => {
1127
- let {
1128
- [column.id]: _,
1129
- ...rest
1130
- } = _ref2;
1131
- return rest;
1132
- });
1133
- };
1134
- column.getCanResize = () => {
1135
- var _column$columnDef$ena, _table$options$enable;
1136
- return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);
1137
- };
1138
- column.getIsResizing = () => {
1139
- return table.getState().columnSizingInfo.isResizingColumn === column.id;
1140
- };
1141
- },
1142
- createHeader: (header, table) => {
1143
- header.getSize = () => {
1144
- let sum2 = 0;
1145
- const recurse = (header2) => {
1146
- if (header2.subHeaders.length) {
1147
- header2.subHeaders.forEach(recurse);
1148
- } else {
1149
- var _header$column$getSiz;
1150
- sum2 += (_header$column$getSiz = header2.column.getSize()) != null ? _header$column$getSiz : 0;
1151
- }
1152
- };
1153
- recurse(header);
1154
- return sum2;
1155
- };
1156
- header.getStart = () => {
1157
- if (header.index > 0) {
1158
- const prevSiblingHeader = header.headerGroup.headers[header.index - 1];
1159
- return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();
1160
- }
1161
- return 0;
1162
- };
1163
- header.getResizeHandler = (_contextDocument) => {
1164
- const column = table.getColumn(header.column.id);
1165
- const canResize = column == null ? void 0 : column.getCanResize();
1166
- return (e) => {
1167
- if (!column || !canResize) {
1168
- return;
1169
- }
1170
- e.persist == null || e.persist();
1171
- if (isTouchStartEvent(e)) {
1172
- if (e.touches && e.touches.length > 1) {
1173
- return;
1174
- }
1175
- }
1176
- const startSize = header.getSize();
1177
- const columnSizingStart = header ? header.getLeafHeaders().map((d) => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];
1178
- const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
1179
- const newColumnSizing = {};
1180
- const updateOffset = (eventType, clientXPos) => {
1181
- if (typeof clientXPos !== "number") {
1182
- return;
1183
- }
1184
- table.setColumnSizingInfo((old) => {
1185
- var _old$startOffset, _old$startSize;
1186
- const deltaDirection = table.options.columnResizeDirection === "rtl" ? -1 : 1;
1187
- const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;
1188
- const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
1189
- old.columnSizingStart.forEach((_ref3) => {
1190
- let [columnId, headerSize] = _ref3;
1191
- newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;
1192
- });
1193
- return {
1194
- ...old,
1195
- deltaOffset,
1196
- deltaPercentage
1197
- };
1198
- });
1199
- if (table.options.columnResizeMode === "onChange" || eventType === "end") {
1200
- table.setColumnSizing((old) => ({
1201
- ...old,
1202
- ...newColumnSizing
1203
- }));
1204
- }
1205
- };
1206
- const onMove = (clientXPos) => updateOffset("move", clientXPos);
1207
- const onEnd = (clientXPos) => {
1208
- updateOffset("end", clientXPos);
1209
- table.setColumnSizingInfo((old) => ({
1210
- ...old,
1211
- isResizingColumn: false,
1212
- startOffset: null,
1213
- startSize: null,
1214
- deltaOffset: null,
1215
- deltaPercentage: null,
1216
- columnSizingStart: []
1217
- }));
1218
- };
1219
- const contextDocument = safelyAccessDocument(_contextDocument);
1220
- const mouseEvents = {
1221
- moveHandler: (e2) => onMove(e2.clientX),
1222
- upHandler: (e2) => {
1223
- contextDocument == null || contextDocument.removeEventListener("mousemove", mouseEvents.moveHandler);
1224
- contextDocument == null || contextDocument.removeEventListener("mouseup", mouseEvents.upHandler);
1225
- onEnd(e2.clientX);
1226
- }
1227
- };
1228
- const touchEvents = {
1229
- moveHandler: (e2) => {
1230
- if (e2.cancelable) {
1231
- e2.preventDefault();
1232
- e2.stopPropagation();
1233
- }
1234
- onMove(e2.touches[0].clientX);
1235
- return false;
1236
- },
1237
- upHandler: (e2) => {
1238
- var _e$touches$;
1239
- contextDocument == null || contextDocument.removeEventListener("touchmove", touchEvents.moveHandler);
1240
- contextDocument == null || contextDocument.removeEventListener("touchend", touchEvents.upHandler);
1241
- if (e2.cancelable) {
1242
- e2.preventDefault();
1243
- e2.stopPropagation();
1244
- }
1245
- onEnd((_e$touches$ = e2.touches[0]) == null ? void 0 : _e$touches$.clientX);
1246
- }
1247
- };
1248
- const passiveIfSupported = passiveEventSupported() ? {
1249
- passive: false
1250
- } : false;
1251
- if (isTouchStartEvent(e)) {
1252
- contextDocument == null || contextDocument.addEventListener("touchmove", touchEvents.moveHandler, passiveIfSupported);
1253
- contextDocument == null || contextDocument.addEventListener("touchend", touchEvents.upHandler, passiveIfSupported);
1254
- } else {
1255
- contextDocument == null || contextDocument.addEventListener("mousemove", mouseEvents.moveHandler, passiveIfSupported);
1256
- contextDocument == null || contextDocument.addEventListener("mouseup", mouseEvents.upHandler, passiveIfSupported);
1257
- }
1258
- table.setColumnSizingInfo((old) => ({
1259
- ...old,
1260
- startOffset: clientX,
1261
- startSize,
1262
- deltaOffset: 0,
1263
- deltaPercentage: 0,
1264
- columnSizingStart,
1265
- isResizingColumn: column.id
1266
- }));
1267
- };
1268
- };
1269
- },
1270
- createTable: (table) => {
1271
- table.setColumnSizing = (updater) => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);
1272
- table.setColumnSizingInfo = (updater) => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);
1273
- table.resetColumnSizing = (defaultState) => {
1274
- var _table$initialState$c;
1275
- table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});
1276
- };
1277
- table.resetHeaderSizeInfo = (defaultState) => {
1278
- var _table$initialState$c2;
1279
- table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());
1280
- };
1281
- table.getTotalSize = () => {
1282
- var _table$getHeaderGroup, _table$getHeaderGroup2;
1283
- return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum2, header) => {
1284
- return sum2 + header.getSize();
1285
- }, 0)) != null ? _table$getHeaderGroup : 0;
1286
- };
1287
- table.getLeftTotalSize = () => {
1288
- var _table$getLeftHeaderG, _table$getLeftHeaderG2;
1289
- return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum2, header) => {
1290
- return sum2 + header.getSize();
1291
- }, 0)) != null ? _table$getLeftHeaderG : 0;
1292
- };
1293
- table.getCenterTotalSize = () => {
1294
- var _table$getCenterHeade, _table$getCenterHeade2;
1295
- return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum2, header) => {
1296
- return sum2 + header.getSize();
1297
- }, 0)) != null ? _table$getCenterHeade : 0;
1298
- };
1299
- table.getRightTotalSize = () => {
1300
- var _table$getRightHeader, _table$getRightHeader2;
1301
- return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum2, header) => {
1302
- return sum2 + header.getSize();
1303
- }, 0)) != null ? _table$getRightHeader : 0;
1304
- };
1305
- }
1306
- };
1307
- var passiveSupported = null;
1308
- function passiveEventSupported() {
1309
- if (typeof passiveSupported === "boolean") return passiveSupported;
1310
- let supported = false;
1311
- try {
1312
- const options = {
1313
- get passive() {
1314
- supported = true;
1315
- return false;
1316
- }
1317
- };
1318
- const noop2 = () => {
1319
- };
1320
- window.addEventListener("test", noop2, options);
1321
- window.removeEventListener("test", noop2);
1322
- } catch (err) {
1323
- supported = false;
1324
- }
1325
- passiveSupported = supported;
1326
- return passiveSupported;
1327
- }
1328
- function isTouchStartEvent(e) {
1329
- return e.type === "touchstart";
1330
- }
1331
- var ColumnVisibility = {
1332
- getInitialState: (state) => {
1333
- return {
1334
- columnVisibility: {},
1335
- ...state
1336
- };
1337
- },
1338
- getDefaultOptions: (table) => {
1339
- return {
1340
- onColumnVisibilityChange: makeStateUpdater("columnVisibility", table)
1341
- };
1342
- },
1343
- createColumn: (column, table) => {
1344
- column.toggleVisibility = (value) => {
1345
- if (column.getCanHide()) {
1346
- table.setColumnVisibility((old) => ({
1347
- ...old,
1348
- [column.id]: value != null ? value : !column.getIsVisible()
1349
- }));
1350
- }
1351
- };
1352
- column.getIsVisible = () => {
1353
- var _ref, _table$getState$colum;
1354
- const childColumns = column.columns;
1355
- return (_ref = childColumns.length ? childColumns.some((c) => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;
1356
- };
1357
- column.getCanHide = () => {
1358
- var _column$columnDef$ena, _table$options$enable;
1359
- return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);
1360
- };
1361
- column.getToggleVisibilityHandler = () => {
1362
- return (e) => {
1363
- column.toggleVisibility == null || column.toggleVisibility(e.target.checked);
1364
- };
1365
- };
1366
- },
1367
- createRow: (row, table) => {
1368
- row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], (cells) => {
1369
- return cells.filter((cell) => cell.column.getIsVisible());
1370
- }, getMemoOptions(table.options, "debugRows", "_getAllVisibleCells"));
1371
- row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, "debugRows", "getVisibleCells"));
1372
- },
1373
- createTable: (table) => {
1374
- const makeVisibleColumnsMethod = (key, getColumns) => {
1375
- return memo(() => [getColumns(), getColumns().filter((d) => d.getIsVisible()).map((d) => d.id).join("_")], (columns) => {
1376
- return columns.filter((d) => d.getIsVisible == null ? void 0 : d.getIsVisible());
1377
- }, getMemoOptions(table.options, "debugColumns", key));
1378
- };
1379
- table.getVisibleFlatColumns = makeVisibleColumnsMethod("getVisibleFlatColumns", () => table.getAllFlatColumns());
1380
- table.getVisibleLeafColumns = makeVisibleColumnsMethod("getVisibleLeafColumns", () => table.getAllLeafColumns());
1381
- table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod("getLeftVisibleLeafColumns", () => table.getLeftLeafColumns());
1382
- table.getRightVisibleLeafColumns = makeVisibleColumnsMethod("getRightVisibleLeafColumns", () => table.getRightLeafColumns());
1383
- table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod("getCenterVisibleLeafColumns", () => table.getCenterLeafColumns());
1384
- table.setColumnVisibility = (updater) => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);
1385
- table.resetColumnVisibility = (defaultState) => {
1386
- var _table$initialState$c;
1387
- table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});
1388
- };
1389
- table.toggleAllColumnsVisible = (value) => {
1390
- var _value;
1391
- value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();
1392
- table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({
1393
- ...obj,
1394
- [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value
1395
- }), {}));
1396
- };
1397
- table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some((column) => !(column.getIsVisible != null && column.getIsVisible()));
1398
- table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some((column) => column.getIsVisible == null ? void 0 : column.getIsVisible());
1399
- table.getToggleAllColumnsVisibilityHandler = () => {
1400
- return (e) => {
1401
- var _target;
1402
- table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);
1403
- };
1404
- };
1405
- }
1406
- };
1407
- function _getVisibleLeafColumns(table, position) {
1408
- return !position ? table.getVisibleLeafColumns() : position === "center" ? table.getCenterVisibleLeafColumns() : position === "left" ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();
1409
- }
1410
- var GlobalFaceting = {
1411
- createTable: (table) => {
1412
- table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, "__global__");
1413
- table.getGlobalFacetedRowModel = () => {
1414
- if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {
1415
- return table.getPreFilteredRowModel();
1416
- }
1417
- return table._getGlobalFacetedRowModel();
1418
- };
1419
- table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, "__global__");
1420
- table.getGlobalFacetedUniqueValues = () => {
1421
- if (!table._getGlobalFacetedUniqueValues) {
1422
- return /* @__PURE__ */ new Map();
1423
- }
1424
- return table._getGlobalFacetedUniqueValues();
1425
- };
1426
- table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, "__global__");
1427
- table.getGlobalFacetedMinMaxValues = () => {
1428
- if (!table._getGlobalFacetedMinMaxValues) {
1429
- return;
1430
- }
1431
- return table._getGlobalFacetedMinMaxValues();
1432
- };
1433
- }
1434
- };
1435
- var GlobalFiltering = {
1436
- getInitialState: (state) => {
1437
- return {
1438
- globalFilter: void 0,
1439
- ...state
1440
- };
1441
- },
1442
- getDefaultOptions: (table) => {
1443
- return {
1444
- onGlobalFilterChange: makeStateUpdater("globalFilter", table),
1445
- globalFilterFn: "auto",
1446
- getColumnCanGlobalFilter: (column) => {
1447
- var _table$getCoreRowMode;
1448
- const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();
1449
- return typeof value === "string" || typeof value === "number";
1450
- }
1451
- };
1452
- },
1453
- createColumn: (column, table) => {
1454
- column.getCanGlobalFilter = () => {
1455
- var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;
1456
- return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;
1457
- };
1458
- },
1459
- createTable: (table) => {
1460
- table.getGlobalAutoFilterFn = () => {
1461
- return filterFns.includesString;
1462
- };
1463
- table.getGlobalFilterFn = () => {
1464
- var _table$options$filter, _table$options$filter2;
1465
- const {
1466
- globalFilterFn
1467
- } = table.options;
1468
- return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === "auto" ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];
1469
- };
1470
- table.setGlobalFilter = (updater) => {
1471
- table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);
1472
- };
1473
- table.resetGlobalFilter = (defaultState) => {
1474
- table.setGlobalFilter(defaultState ? void 0 : table.initialState.globalFilter);
1475
- };
1476
- }
1477
- };
1478
- var RowExpanding = {
1479
- getInitialState: (state) => {
1480
- return {
1481
- expanded: {},
1482
- ...state
1483
- };
1484
- },
1485
- getDefaultOptions: (table) => {
1486
- return {
1487
- onExpandedChange: makeStateUpdater("expanded", table),
1488
- paginateExpandedRows: true
1489
- };
1490
- },
1491
- createTable: (table) => {
1492
- let registered = false;
1493
- let queued = false;
1494
- table._autoResetExpanded = () => {
1495
- var _ref, _table$options$autoRe;
1496
- if (!registered) {
1497
- table._queue(() => {
1498
- registered = true;
1499
- });
1500
- return;
1501
- }
1502
- if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {
1503
- if (queued) return;
1504
- queued = true;
1505
- table._queue(() => {
1506
- table.resetExpanded();
1507
- queued = false;
1508
- });
1509
- }
1510
- };
1511
- table.setExpanded = (updater) => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);
1512
- table.toggleAllRowsExpanded = (expanded) => {
1513
- if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {
1514
- table.setExpanded(true);
1515
- } else {
1516
- table.setExpanded({});
1517
- }
1518
- };
1519
- table.resetExpanded = (defaultState) => {
1520
- var _table$initialState$e, _table$initialState;
1521
- table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});
1522
- };
1523
- table.getCanSomeRowsExpand = () => {
1524
- return table.getPrePaginationRowModel().flatRows.some((row) => row.getCanExpand());
1525
- };
1526
- table.getToggleAllRowsExpandedHandler = () => {
1527
- return (e) => {
1528
- e.persist == null || e.persist();
1529
- table.toggleAllRowsExpanded();
1530
- };
1531
- };
1532
- table.getIsSomeRowsExpanded = () => {
1533
- const expanded = table.getState().expanded;
1534
- return expanded === true || Object.values(expanded).some(Boolean);
1535
- };
1536
- table.getIsAllRowsExpanded = () => {
1537
- const expanded = table.getState().expanded;
1538
- if (typeof expanded === "boolean") {
1539
- return expanded === true;
1540
- }
1541
- if (!Object.keys(expanded).length) {
1542
- return false;
1543
- }
1544
- if (table.getRowModel().flatRows.some((row) => !row.getIsExpanded())) {
1545
- return false;
1546
- }
1547
- return true;
1548
- };
1549
- table.getExpandedDepth = () => {
1550
- let maxDepth = 0;
1551
- const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);
1552
- rowIds.forEach((id) => {
1553
- const splitId = id.split(".");
1554
- maxDepth = Math.max(maxDepth, splitId.length);
1555
- });
1556
- return maxDepth;
1557
- };
1558
- table.getPreExpandedRowModel = () => table.getSortedRowModel();
1559
- table.getExpandedRowModel = () => {
1560
- if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {
1561
- table._getExpandedRowModel = table.options.getExpandedRowModel(table);
1562
- }
1563
- if (table.options.manualExpanding || !table._getExpandedRowModel) {
1564
- return table.getPreExpandedRowModel();
1565
- }
1566
- return table._getExpandedRowModel();
1567
- };
1568
- },
1569
- createRow: (row, table) => {
1570
- row.toggleExpanded = (expanded) => {
1571
- table.setExpanded((old) => {
1572
- var _expanded;
1573
- const exists = old === true ? true : !!(old != null && old[row.id]);
1574
- let oldExpanded = {};
1575
- if (old === true) {
1576
- Object.keys(table.getRowModel().rowsById).forEach((rowId) => {
1577
- oldExpanded[rowId] = true;
1578
- });
1579
- } else {
1580
- oldExpanded = old;
1581
- }
1582
- expanded = (_expanded = expanded) != null ? _expanded : !exists;
1583
- if (!exists && expanded) {
1584
- return {
1585
- ...oldExpanded,
1586
- [row.id]: true
1587
- };
1588
- }
1589
- if (exists && !expanded) {
1590
- const {
1591
- [row.id]: _,
1592
- ...rest
1593
- } = oldExpanded;
1594
- return rest;
1595
- }
1596
- return old;
1597
- });
1598
- };
1599
- row.getIsExpanded = () => {
1600
- var _table$options$getIsR;
1601
- const expanded = table.getState().expanded;
1602
- return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));
1603
- };
1604
- row.getCanExpand = () => {
1605
- var _table$options$getRow, _table$options$enable, _row$subRows;
1606
- return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
1607
- };
1608
- row.getIsAllParentsExpanded = () => {
1609
- let isFullyExpanded = true;
1610
- let currentRow = row;
1611
- while (isFullyExpanded && currentRow.parentId) {
1612
- currentRow = table.getRow(currentRow.parentId, true);
1613
- isFullyExpanded = currentRow.getIsExpanded();
1614
- }
1615
- return isFullyExpanded;
1616
- };
1617
- row.getToggleExpandedHandler = () => {
1618
- const canExpand = row.getCanExpand();
1619
- return () => {
1620
- if (!canExpand) return;
1621
- row.toggleExpanded();
1622
- };
1623
- };
1624
- }
1625
- };
1626
- var defaultPageIndex = 0;
1627
- var defaultPageSize = 10;
1628
- var getDefaultPaginationState = () => ({
1629
- pageIndex: defaultPageIndex,
1630
- pageSize: defaultPageSize
1631
- });
1632
- var RowPagination = {
1633
- getInitialState: (state) => {
1634
- return {
1635
- ...state,
1636
- pagination: {
1637
- ...getDefaultPaginationState(),
1638
- ...state == null ? void 0 : state.pagination
1639
- }
1640
- };
1641
- },
1642
- getDefaultOptions: (table) => {
1643
- return {
1644
- onPaginationChange: makeStateUpdater("pagination", table)
1645
- };
1646
- },
1647
- createTable: (table) => {
1648
- let registered = false;
1649
- let queued = false;
1650
- table._autoResetPageIndex = () => {
1651
- var _ref, _table$options$autoRe;
1652
- if (!registered) {
1653
- table._queue(() => {
1654
- registered = true;
1655
- });
1656
- return;
1657
- }
1658
- if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {
1659
- if (queued) return;
1660
- queued = true;
1661
- table._queue(() => {
1662
- table.resetPageIndex();
1663
- queued = false;
1664
- });
1665
- }
1666
- };
1667
- table.setPagination = (updater) => {
1668
- const safeUpdater = (old) => {
1669
- let newState = functionalUpdate(updater, old);
1670
- return newState;
1671
- };
1672
- return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);
1673
- };
1674
- table.resetPagination = (defaultState) => {
1675
- var _table$initialState$p;
1676
- table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());
1677
- };
1678
- table.setPageIndex = (updater) => {
1679
- table.setPagination((old) => {
1680
- let pageIndex = functionalUpdate(updater, old.pageIndex);
1681
- const maxPageIndex = typeof table.options.pageCount === "undefined" || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;
1682
- pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));
1683
- return {
1684
- ...old,
1685
- pageIndex
1686
- };
1687
- });
1688
- };
1689
- table.resetPageIndex = (defaultState) => {
1690
- var _table$initialState$p2, _table$initialState;
1691
- table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);
1692
- };
1693
- table.resetPageSize = (defaultState) => {
1694
- var _table$initialState$p3, _table$initialState2;
1695
- table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);
1696
- };
1697
- table.setPageSize = (updater) => {
1698
- table.setPagination((old) => {
1699
- const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));
1700
- const topRowIndex = old.pageSize * old.pageIndex;
1701
- const pageIndex = Math.floor(topRowIndex / pageSize);
1702
- return {
1703
- ...old,
1704
- pageIndex,
1705
- pageSize
1706
- };
1707
- });
1708
- };
1709
- table.setPageCount = (updater) => table.setPagination((old) => {
1710
- var _table$options$pageCo;
1711
- let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);
1712
- if (typeof newPageCount === "number") {
1713
- newPageCount = Math.max(-1, newPageCount);
1714
- }
1715
- return {
1716
- ...old,
1717
- pageCount: newPageCount
1718
- };
1719
- });
1720
- table.getPageOptions = memo(() => [table.getPageCount()], (pageCount) => {
1721
- let pageOptions = [];
1722
- if (pageCount && pageCount > 0) {
1723
- pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);
1724
- }
1725
- return pageOptions;
1726
- }, getMemoOptions(table.options, "debugTable", "getPageOptions"));
1727
- table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;
1728
- table.getCanNextPage = () => {
1729
- const {
1730
- pageIndex
1731
- } = table.getState().pagination;
1732
- const pageCount = table.getPageCount();
1733
- if (pageCount === -1) {
1734
- return true;
1735
- }
1736
- if (pageCount === 0) {
1737
- return false;
1738
- }
1739
- return pageIndex < pageCount - 1;
1740
- };
1741
- table.previousPage = () => {
1742
- return table.setPageIndex((old) => old - 1);
1743
- };
1744
- table.nextPage = () => {
1745
- return table.setPageIndex((old) => {
1746
- return old + 1;
1747
- });
1748
- };
1749
- table.firstPage = () => {
1750
- return table.setPageIndex(0);
1751
- };
1752
- table.lastPage = () => {
1753
- return table.setPageIndex(table.getPageCount() - 1);
1754
- };
1755
- table.getPrePaginationRowModel = () => table.getExpandedRowModel();
1756
- table.getPaginationRowModel = () => {
1757
- if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {
1758
- table._getPaginationRowModel = table.options.getPaginationRowModel(table);
1759
- }
1760
- if (table.options.manualPagination || !table._getPaginationRowModel) {
1761
- return table.getPrePaginationRowModel();
1762
- }
1763
- return table._getPaginationRowModel();
1764
- };
1765
- table.getPageCount = () => {
1766
- var _table$options$pageCo2;
1767
- return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);
1768
- };
1769
- table.getRowCount = () => {
1770
- var _table$options$rowCou;
1771
- return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;
1772
- };
1773
- }
1774
- };
1775
- var getDefaultRowPinningState = () => ({
1776
- top: [],
1777
- bottom: []
1778
- });
1779
- var RowPinning = {
1780
- getInitialState: (state) => {
1781
- return {
1782
- rowPinning: getDefaultRowPinningState(),
1783
- ...state
1784
- };
1785
- },
1786
- getDefaultOptions: (table) => {
1787
- return {
1788
- onRowPinningChange: makeStateUpdater("rowPinning", table)
1789
- };
1790
- },
1791
- createRow: (row, table) => {
1792
- row.pin = (position, includeLeafRows, includeParentRows) => {
1793
- const leafRowIds = includeLeafRows ? row.getLeafRows().map((_ref) => {
1794
- let {
1795
- id
1796
- } = _ref;
1797
- return id;
1798
- }) : [];
1799
- const parentRowIds = includeParentRows ? row.getParentRows().map((_ref2) => {
1800
- let {
1801
- id
1802
- } = _ref2;
1803
- return id;
1804
- }) : [];
1805
- const rowIds = /* @__PURE__ */ new Set([...parentRowIds, row.id, ...leafRowIds]);
1806
- table.setRowPinning((old) => {
1807
- var _old$top3, _old$bottom3;
1808
- if (position === "bottom") {
1809
- var _old$top, _old$bottom;
1810
- return {
1811
- top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter((d) => !(rowIds != null && rowIds.has(d))),
1812
- bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter((d) => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]
1813
- };
1814
- }
1815
- if (position === "top") {
1816
- var _old$top2, _old$bottom2;
1817
- return {
1818
- top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter((d) => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],
1819
- bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter((d) => !(rowIds != null && rowIds.has(d)))
1820
- };
1821
- }
1822
- return {
1823
- top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter((d) => !(rowIds != null && rowIds.has(d))),
1824
- bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter((d) => !(rowIds != null && rowIds.has(d)))
1825
- };
1826
- });
1827
- };
1828
- row.getCanPin = () => {
1829
- var _ref3;
1830
- const {
1831
- enableRowPinning,
1832
- enablePinning
1833
- } = table.options;
1834
- if (typeof enableRowPinning === "function") {
1835
- return enableRowPinning(row);
1836
- }
1837
- return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;
1838
- };
1839
- row.getIsPinned = () => {
1840
- const rowIds = [row.id];
1841
- const {
1842
- top,
1843
- bottom
1844
- } = table.getState().rowPinning;
1845
- const isTop = rowIds.some((d) => top == null ? void 0 : top.includes(d));
1846
- const isBottom = rowIds.some((d) => bottom == null ? void 0 : bottom.includes(d));
1847
- return isTop ? "top" : isBottom ? "bottom" : false;
1848
- };
1849
- row.getPinnedIndex = () => {
1850
- var _ref4, _visiblePinnedRowIds$;
1851
- const position = row.getIsPinned();
1852
- if (!position) return -1;
1853
- const visiblePinnedRowIds = (_ref4 = position === "top" ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map((_ref5) => {
1854
- let {
1855
- id
1856
- } = _ref5;
1857
- return id;
1858
- });
1859
- return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;
1860
- };
1861
- },
1862
- createTable: (table) => {
1863
- table.setRowPinning = (updater) => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);
1864
- table.resetRowPinning = (defaultState) => {
1865
- var _table$initialState$r, _table$initialState;
1866
- return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());
1867
- };
1868
- table.getIsSomeRowsPinned = (position) => {
1869
- var _pinningState$positio;
1870
- const pinningState = table.getState().rowPinning;
1871
- if (!position) {
1872
- var _pinningState$top, _pinningState$bottom;
1873
- return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));
1874
- }
1875
- return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
1876
- };
1877
- table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {
1878
- var _table$options$keepPi;
1879
- const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ? (
1880
- //get all rows that are pinned even if they would not be otherwise visible
1881
- //account for expanded parent rows, but not pagination or filtering
1882
- (pinnedRowIds != null ? pinnedRowIds : []).map((rowId) => {
1883
- const row = table.getRow(rowId, true);
1884
- return row.getIsAllParentsExpanded() ? row : null;
1885
- })
1886
- ) : (
1887
- //else get only visible rows that are pinned
1888
- (pinnedRowIds != null ? pinnedRowIds : []).map((rowId) => visibleRows.find((row) => row.id === rowId))
1889
- );
1890
- return rows.filter(Boolean).map((d) => ({
1891
- ...d,
1892
- position
1893
- }));
1894
- };
1895
- table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, "top"), getMemoOptions(table.options, "debugRows", "getTopRows"));
1896
- table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, "bottom"), getMemoOptions(table.options, "debugRows", "getBottomRows"));
1897
- table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {
1898
- const topAndBottom = /* @__PURE__ */ new Set([...top != null ? top : [], ...bottom != null ? bottom : []]);
1899
- return allRows.filter((d) => !topAndBottom.has(d.id));
1900
- }, getMemoOptions(table.options, "debugRows", "getCenterRows"));
1901
- }
1902
- };
1903
- var RowSelection = {
1904
- getInitialState: (state) => {
1905
- return {
1906
- rowSelection: {},
1907
- ...state
1908
- };
1909
- },
1910
- getDefaultOptions: (table) => {
1911
- return {
1912
- onRowSelectionChange: makeStateUpdater("rowSelection", table),
1913
- enableRowSelection: true,
1914
- enableMultiRowSelection: true,
1915
- enableSubRowSelection: true
1916
- // enableGroupingRowSelection: false,
1917
- // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,
1918
- // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,
1919
- };
1920
- },
1921
- createTable: (table) => {
1922
- table.setRowSelection = (updater) => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);
1923
- table.resetRowSelection = (defaultState) => {
1924
- var _table$initialState$r;
1925
- return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});
1926
- };
1927
- table.toggleAllRowsSelected = (value) => {
1928
- table.setRowSelection((old) => {
1929
- value = typeof value !== "undefined" ? value : !table.getIsAllRowsSelected();
1930
- const rowSelection = {
1931
- ...old
1932
- };
1933
- const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;
1934
- if (value) {
1935
- preGroupedFlatRows.forEach((row) => {
1936
- if (!row.getCanSelect()) {
1937
- return;
1938
- }
1939
- rowSelection[row.id] = true;
1940
- });
1941
- } else {
1942
- preGroupedFlatRows.forEach((row) => {
1943
- delete rowSelection[row.id];
1944
- });
1945
- }
1946
- return rowSelection;
1947
- });
1948
- };
1949
- table.toggleAllPageRowsSelected = (value) => table.setRowSelection((old) => {
1950
- const resolvedValue = typeof value !== "undefined" ? value : !table.getIsAllPageRowsSelected();
1951
- const rowSelection = {
1952
- ...old
1953
- };
1954
- table.getRowModel().rows.forEach((row) => {
1955
- mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);
1956
- });
1957
- return rowSelection;
1958
- });
1959
- table.getPreSelectedRowModel = () => table.getCoreRowModel();
1960
- table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {
1961
- if (!Object.keys(rowSelection).length) {
1962
- return {
1963
- rows: [],
1964
- flatRows: [],
1965
- rowsById: {}
1966
- };
1967
- }
1968
- return selectRowsFn(table, rowModel);
1969
- }, getMemoOptions(table.options, "debugTable", "getSelectedRowModel"));
1970
- table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {
1971
- if (!Object.keys(rowSelection).length) {
1972
- return {
1973
- rows: [],
1974
- flatRows: [],
1975
- rowsById: {}
1976
- };
1977
- }
1978
- return selectRowsFn(table, rowModel);
1979
- }, getMemoOptions(table.options, "debugTable", "getFilteredSelectedRowModel"));
1980
- table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {
1981
- if (!Object.keys(rowSelection).length) {
1982
- return {
1983
- rows: [],
1984
- flatRows: [],
1985
- rowsById: {}
1986
- };
1987
- }
1988
- return selectRowsFn(table, rowModel);
1989
- }, getMemoOptions(table.options, "debugTable", "getGroupedSelectedRowModel"));
1990
- table.getIsAllRowsSelected = () => {
1991
- const preGroupedFlatRows = table.getFilteredRowModel().flatRows;
1992
- const {
1993
- rowSelection
1994
- } = table.getState();
1995
- let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);
1996
- if (isAllRowsSelected) {
1997
- if (preGroupedFlatRows.some((row) => row.getCanSelect() && !rowSelection[row.id])) {
1998
- isAllRowsSelected = false;
1999
- }
2000
- }
2001
- return isAllRowsSelected;
2002
- };
2003
- table.getIsAllPageRowsSelected = () => {
2004
- const paginationFlatRows = table.getPaginationRowModel().flatRows.filter((row) => row.getCanSelect());
2005
- const {
2006
- rowSelection
2007
- } = table.getState();
2008
- let isAllPageRowsSelected = !!paginationFlatRows.length;
2009
- if (isAllPageRowsSelected && paginationFlatRows.some((row) => !rowSelection[row.id])) {
2010
- isAllPageRowsSelected = false;
2011
- }
2012
- return isAllPageRowsSelected;
2013
- };
2014
- table.getIsSomeRowsSelected = () => {
2015
- var _table$getState$rowSe;
2016
- const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;
2017
- return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;
2018
- };
2019
- table.getIsSomePageRowsSelected = () => {
2020
- const paginationFlatRows = table.getPaginationRowModel().flatRows;
2021
- return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter((row) => row.getCanSelect()).some((d) => d.getIsSelected() || d.getIsSomeSelected());
2022
- };
2023
- table.getToggleAllRowsSelectedHandler = () => {
2024
- return (e) => {
2025
- table.toggleAllRowsSelected(e.target.checked);
2026
- };
2027
- };
2028
- table.getToggleAllPageRowsSelectedHandler = () => {
2029
- return (e) => {
2030
- table.toggleAllPageRowsSelected(e.target.checked);
2031
- };
2032
- };
2033
- },
2034
- createRow: (row, table) => {
2035
- row.toggleSelected = (value, opts) => {
2036
- const isSelected = row.getIsSelected();
2037
- table.setRowSelection((old) => {
2038
- var _opts$selectChildren;
2039
- value = typeof value !== "undefined" ? value : !isSelected;
2040
- if (row.getCanSelect() && isSelected === value) {
2041
- return old;
2042
- }
2043
- const selectedRowIds = {
2044
- ...old
2045
- };
2046
- mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);
2047
- return selectedRowIds;
2048
- });
2049
- };
2050
- row.getIsSelected = () => {
2051
- const {
2052
- rowSelection
2053
- } = table.getState();
2054
- return isRowSelected(row, rowSelection);
2055
- };
2056
- row.getIsSomeSelected = () => {
2057
- const {
2058
- rowSelection
2059
- } = table.getState();
2060
- return isSubRowSelected(row, rowSelection) === "some";
2061
- };
2062
- row.getIsAllSubRowsSelected = () => {
2063
- const {
2064
- rowSelection
2065
- } = table.getState();
2066
- return isSubRowSelected(row, rowSelection) === "all";
2067
- };
2068
- row.getCanSelect = () => {
2069
- var _table$options$enable;
2070
- if (typeof table.options.enableRowSelection === "function") {
2071
- return table.options.enableRowSelection(row);
2072
- }
2073
- return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;
2074
- };
2075
- row.getCanSelectSubRows = () => {
2076
- var _table$options$enable2;
2077
- if (typeof table.options.enableSubRowSelection === "function") {
2078
- return table.options.enableSubRowSelection(row);
2079
- }
2080
- return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;
2081
- };
2082
- row.getCanMultiSelect = () => {
2083
- var _table$options$enable3;
2084
- if (typeof table.options.enableMultiRowSelection === "function") {
2085
- return table.options.enableMultiRowSelection(row);
2086
- }
2087
- return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;
2088
- };
2089
- row.getToggleSelectedHandler = () => {
2090
- const canSelect = row.getCanSelect();
2091
- return (e) => {
2092
- var _target;
2093
- if (!canSelect) return;
2094
- row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
2095
- };
2096
- };
2097
- }
2098
- };
2099
- var mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {
2100
- var _row$subRows;
2101
- const row = table.getRow(id, true);
2102
- if (value) {
2103
- if (!row.getCanMultiSelect()) {
2104
- Object.keys(selectedRowIds).forEach((key) => delete selectedRowIds[key]);
2105
- }
2106
- if (row.getCanSelect()) {
2107
- selectedRowIds[id] = true;
2108
- }
2109
- } else {
2110
- delete selectedRowIds[id];
2111
- }
2112
- if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {
2113
- row.subRows.forEach((row2) => mutateRowIsSelected(selectedRowIds, row2.id, value, includeChildren, table));
2114
- }
2115
- };
2116
- function selectRowsFn(table, rowModel) {
2117
- const rowSelection = table.getState().rowSelection;
2118
- const newSelectedFlatRows = [];
2119
- const newSelectedRowsById = {};
2120
- const recurseRows = function(rows, depth) {
2121
- return rows.map((row) => {
2122
- var _row$subRows2;
2123
- const isSelected = isRowSelected(row, rowSelection);
2124
- if (isSelected) {
2125
- newSelectedFlatRows.push(row);
2126
- newSelectedRowsById[row.id] = row;
2127
- }
2128
- if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
2129
- row = {
2130
- ...row,
2131
- subRows: recurseRows(row.subRows)
2132
- };
2133
- }
2134
- if (isSelected) {
2135
- return row;
2136
- }
2137
- }).filter(Boolean);
2138
- };
2139
- return {
2140
- rows: recurseRows(rowModel.rows),
2141
- flatRows: newSelectedFlatRows,
2142
- rowsById: newSelectedRowsById
2143
- };
2144
- }
2145
- function isRowSelected(row, selection) {
2146
- var _selection$row$id;
2147
- return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;
2148
- }
2149
- function isSubRowSelected(row, selection, table) {
2150
- var _row$subRows3;
2151
- if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;
2152
- let allChildrenSelected = true;
2153
- let someSelected = false;
2154
- row.subRows.forEach((subRow) => {
2155
- if (someSelected && !allChildrenSelected) {
2156
- return;
2157
- }
2158
- if (subRow.getCanSelect()) {
2159
- if (isRowSelected(subRow, selection)) {
2160
- someSelected = true;
2161
- } else {
2162
- allChildrenSelected = false;
2163
- }
2164
- }
2165
- if (subRow.subRows && subRow.subRows.length) {
2166
- const subRowChildrenSelected = isSubRowSelected(subRow, selection);
2167
- if (subRowChildrenSelected === "all") {
2168
- someSelected = true;
2169
- } else if (subRowChildrenSelected === "some") {
2170
- someSelected = true;
2171
- allChildrenSelected = false;
2172
- } else {
2173
- allChildrenSelected = false;
2174
- }
2175
- }
2176
- });
2177
- return allChildrenSelected ? "all" : someSelected ? "some" : false;
2178
- }
2179
- var reSplitAlphaNumeric = /([0-9]+)/gm;
2180
- var alphanumeric = (rowA, rowB, columnId) => {
2181
- return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
2182
- };
2183
- var alphanumericCaseSensitive = (rowA, rowB, columnId) => {
2184
- return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
2185
- };
2186
- var text = (rowA, rowB, columnId) => {
2187
- return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
2188
- };
2189
- var textCaseSensitive = (rowA, rowB, columnId) => {
2190
- return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
2191
- };
2192
- var datetime = (rowA, rowB, columnId) => {
2193
- const a = rowA.getValue(columnId);
2194
- const b = rowB.getValue(columnId);
2195
- return a > b ? 1 : a < b ? -1 : 0;
2196
- };
2197
- var basic = (rowA, rowB, columnId) => {
2198
- return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
2199
- };
2200
- function compareBasic(a, b) {
2201
- return a === b ? 0 : a > b ? 1 : -1;
2202
- }
2203
- function toString(a) {
2204
- if (typeof a === "number") {
2205
- if (isNaN(a) || a === Infinity || a === -Infinity) {
2206
- return "";
2207
- }
2208
- return String(a);
2209
- }
2210
- if (typeof a === "string") {
2211
- return a;
2212
- }
2213
- return "";
2214
- }
2215
- function compareAlphanumeric(aStr, bStr) {
2216
- const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
2217
- const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);
2218
- while (a.length && b.length) {
2219
- const aa = a.shift();
2220
- const bb = b.shift();
2221
- const an = parseInt(aa, 10);
2222
- const bn = parseInt(bb, 10);
2223
- const combo = [an, bn].sort();
2224
- if (isNaN(combo[0])) {
2225
- if (aa > bb) {
2226
- return 1;
2227
- }
2228
- if (bb > aa) {
2229
- return -1;
2230
- }
2231
- continue;
2232
- }
2233
- if (isNaN(combo[1])) {
2234
- return isNaN(an) ? -1 : 1;
2235
- }
2236
- if (an > bn) {
2237
- return 1;
2238
- }
2239
- if (bn > an) {
2240
- return -1;
2241
- }
2242
- }
2243
- return a.length - b.length;
2244
- }
2245
- var sortingFns = {
2246
- alphanumeric,
2247
- alphanumericCaseSensitive,
2248
- text,
2249
- textCaseSensitive,
2250
- datetime,
2251
- basic
2252
- };
2253
- var RowSorting = {
2254
- getInitialState: (state) => {
2255
- return {
2256
- sorting: [],
2257
- ...state
2258
- };
2259
- },
2260
- getDefaultColumnDef: () => {
2261
- return {
2262
- sortingFn: "auto",
2263
- sortUndefined: 1
2264
- };
2265
- },
2266
- getDefaultOptions: (table) => {
2267
- return {
2268
- onSortingChange: makeStateUpdater("sorting", table),
2269
- isMultiSortEvent: (e) => {
2270
- return e.shiftKey;
2271
- }
2272
- };
2273
- },
2274
- createColumn: (column, table) => {
2275
- column.getAutoSortingFn = () => {
2276
- const firstRows = table.getFilteredRowModel().flatRows.slice(10);
2277
- let isString = false;
2278
- for (const row of firstRows) {
2279
- const value = row == null ? void 0 : row.getValue(column.id);
2280
- if (Object.prototype.toString.call(value) === "[object Date]") {
2281
- return sortingFns.datetime;
2282
- }
2283
- if (typeof value === "string") {
2284
- isString = true;
2285
- if (value.split(reSplitAlphaNumeric).length > 1) {
2286
- return sortingFns.alphanumeric;
2287
- }
2288
- }
2289
- }
2290
- if (isString) {
2291
- return sortingFns.text;
2292
- }
2293
- return sortingFns.basic;
2294
- };
2295
- column.getAutoSortDir = () => {
2296
- const firstRow = table.getFilteredRowModel().flatRows[0];
2297
- const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
2298
- if (typeof value === "string") {
2299
- return "asc";
2300
- }
2301
- return "desc";
2302
- };
2303
- column.getSortingFn = () => {
2304
- var _table$options$sortin, _table$options$sortin2;
2305
- if (!column) {
2306
- throw new Error();
2307
- }
2308
- return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === "auto" ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];
2309
- };
2310
- column.toggleSorting = (desc, multi) => {
2311
- const nextSortingOrder = column.getNextSortingOrder();
2312
- const hasManualValue = typeof desc !== "undefined" && desc !== null;
2313
- table.setSorting((old) => {
2314
- const existingSorting = old == null ? void 0 : old.find((d) => d.id === column.id);
2315
- const existingIndex = old == null ? void 0 : old.findIndex((d) => d.id === column.id);
2316
- let newSorting = [];
2317
- let sortAction;
2318
- let nextDesc = hasManualValue ? desc : nextSortingOrder === "desc";
2319
- if (old != null && old.length && column.getCanMultiSort() && multi) {
2320
- if (existingSorting) {
2321
- sortAction = "toggle";
2322
- } else {
2323
- sortAction = "add";
2324
- }
2325
- } else {
2326
- if (old != null && old.length && existingIndex !== old.length - 1) {
2327
- sortAction = "replace";
2328
- } else if (existingSorting) {
2329
- sortAction = "toggle";
2330
- } else {
2331
- sortAction = "replace";
2332
- }
2333
- }
2334
- if (sortAction === "toggle") {
2335
- if (!hasManualValue) {
2336
- if (!nextSortingOrder) {
2337
- sortAction = "remove";
2338
- }
2339
- }
2340
- }
2341
- if (sortAction === "add") {
2342
- var _table$options$maxMul;
2343
- newSorting = [...old, {
2344
- id: column.id,
2345
- desc: nextDesc
2346
- }];
2347
- newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));
2348
- } else if (sortAction === "toggle") {
2349
- newSorting = old.map((d) => {
2350
- if (d.id === column.id) {
2351
- return {
2352
- ...d,
2353
- desc: nextDesc
2354
- };
2355
- }
2356
- return d;
2357
- });
2358
- } else if (sortAction === "remove") {
2359
- newSorting = old.filter((d) => d.id !== column.id);
2360
- } else {
2361
- newSorting = [{
2362
- id: column.id,
2363
- desc: nextDesc
2364
- }];
2365
- }
2366
- return newSorting;
2367
- });
2368
- };
2369
- column.getFirstSortDir = () => {
2370
- var _ref, _column$columnDef$sor;
2371
- const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === "desc";
2372
- return sortDescFirst ? "desc" : "asc";
2373
- };
2374
- column.getNextSortingOrder = (multi) => {
2375
- var _table$options$enable, _table$options$enable2;
2376
- const firstSortDirection = column.getFirstSortDir();
2377
- const isSorted = column.getIsSorted();
2378
- if (!isSorted) {
2379
- return firstSortDirection;
2380
- }
2381
- if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && // If enableSortRemove, enable in general
2382
- (multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true)) {
2383
- return false;
2384
- }
2385
- return isSorted === "desc" ? "asc" : "desc";
2386
- };
2387
- column.getCanSort = () => {
2388
- var _column$columnDef$ena, _table$options$enable3;
2389
- return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;
2390
- };
2391
- column.getCanMultiSort = () => {
2392
- var _ref2, _column$columnDef$ena2;
2393
- return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;
2394
- };
2395
- column.getIsSorted = () => {
2396
- var _table$getState$sorti;
2397
- const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find((d) => d.id === column.id);
2398
- return !columnSort ? false : columnSort.desc ? "desc" : "asc";
2399
- };
2400
- column.getSortIndex = () => {
2401
- var _table$getState$sorti2, _table$getState$sorti3;
2402
- return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex((d) => d.id === column.id)) != null ? _table$getState$sorti2 : -1;
2403
- };
2404
- column.clearSorting = () => {
2405
- table.setSorting((old) => old != null && old.length ? old.filter((d) => d.id !== column.id) : []);
2406
- };
2407
- column.getToggleSortingHandler = () => {
2408
- const canSort = column.getCanSort();
2409
- return (e) => {
2410
- if (!canSort) return;
2411
- e.persist == null || e.persist();
2412
- column.toggleSorting == null || column.toggleSorting(void 0, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);
2413
- };
2414
- };
2415
- },
2416
- createTable: (table) => {
2417
- table.setSorting = (updater) => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);
2418
- table.resetSorting = (defaultState) => {
2419
- var _table$initialState$s, _table$initialState;
2420
- table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);
2421
- };
2422
- table.getPreSortedRowModel = () => table.getGroupedRowModel();
2423
- table.getSortedRowModel = () => {
2424
- if (!table._getSortedRowModel && table.options.getSortedRowModel) {
2425
- table._getSortedRowModel = table.options.getSortedRowModel(table);
2426
- }
2427
- if (table.options.manualSorting || !table._getSortedRowModel) {
2428
- return table.getPreSortedRowModel();
2429
- }
2430
- return table._getSortedRowModel();
2431
- };
2432
- }
2433
- };
2434
- var builtInFeatures = [
2435
- Headers,
2436
- ColumnVisibility,
2437
- ColumnOrdering,
2438
- ColumnPinning,
2439
- ColumnFaceting,
2440
- ColumnFiltering,
2441
- GlobalFaceting,
2442
- //depends on ColumnFaceting
2443
- GlobalFiltering,
2444
- //depends on ColumnFiltering
2445
- RowSorting,
2446
- ColumnGrouping,
2447
- //depends on RowSorting
2448
- RowExpanding,
2449
- RowPagination,
2450
- RowPinning,
2451
- RowSelection,
2452
- ColumnSizing
2453
- ];
2454
- function createTable(options) {
2455
- var _options$_features, _options$initialState;
2456
- if (process.env.NODE_ENV !== "production" && (options.debugAll || options.debugTable)) {
2457
- console.info("Creating Table Instance...");
2458
- }
2459
- const _features = [...builtInFeatures, ...(_options$_features = options._features) != null ? _options$_features : []];
2460
- let table = {
2461
- _features
2462
- };
2463
- const defaultOptions = table._features.reduce((obj, feature) => {
2464
- return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));
2465
- }, {});
2466
- const mergeOptions = (options2) => {
2467
- if (table.options.mergeOptions) {
2468
- return table.options.mergeOptions(defaultOptions, options2);
2469
- }
2470
- return {
2471
- ...defaultOptions,
2472
- ...options2
2473
- };
2474
- };
2475
- const coreInitialState = {};
2476
- let initialState = {
2477
- ...coreInitialState,
2478
- ...(_options$initialState = options.initialState) != null ? _options$initialState : {}
2479
- };
2480
- table._features.forEach((feature) => {
2481
- var _feature$getInitialSt;
2482
- initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;
2483
- });
2484
- const queued = [];
2485
- let queuedTimeout = false;
2486
- const coreInstance = {
2487
- _features,
2488
- options: {
2489
- ...defaultOptions,
2490
- ...options
2491
- },
2492
- initialState,
2493
- _queue: (cb) => {
2494
- queued.push(cb);
2495
- if (!queuedTimeout) {
2496
- queuedTimeout = true;
2497
- Promise.resolve().then(() => {
2498
- while (queued.length) {
2499
- queued.shift()();
2500
- }
2501
- queuedTimeout = false;
2502
- }).catch((error) => setTimeout(() => {
2503
- throw error;
2504
- }));
2505
- }
2506
- },
2507
- reset: () => {
2508
- table.setState(table.initialState);
2509
- },
2510
- setOptions: (updater) => {
2511
- const newOptions = functionalUpdate(updater, table.options);
2512
- table.options = mergeOptions(newOptions);
2513
- },
2514
- getState: () => {
2515
- return table.options.state;
2516
- },
2517
- setState: (updater) => {
2518
- table.options.onStateChange == null || table.options.onStateChange(updater);
2519
- },
2520
- _getRowId: (row, index, parent) => {
2521
- var _table$options$getRow;
2522
- return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join(".") : index}`;
2523
- },
2524
- getCoreRowModel: () => {
2525
- if (!table._getCoreRowModel) {
2526
- table._getCoreRowModel = table.options.getCoreRowModel(table);
2527
- }
2528
- return table._getCoreRowModel();
2529
- },
2530
- // The final calls start at the bottom of the model,
2531
- // expanded rows, which then work their way up
2532
- getRowModel: () => {
2533
- return table.getPaginationRowModel();
2534
- },
2535
- //in next version, we should just pass in the row model as the optional 2nd arg
2536
- getRow: (id, searchAll) => {
2537
- let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];
2538
- if (!row) {
2539
- row = table.getCoreRowModel().rowsById[id];
2540
- if (!row) {
2541
- if (process.env.NODE_ENV !== "production") {
2542
- throw new Error(`getRow could not find row with ID: ${id}`);
2543
- }
2544
- throw new Error();
2545
- }
2546
- }
2547
- return row;
2548
- },
2549
- _getDefaultColumnDef: memo(() => [table.options.defaultColumn], (defaultColumn) => {
2550
- var _defaultColumn;
2551
- defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
2552
- return {
2553
- header: (props) => {
2554
- const resolvedColumnDef = props.header.column.columnDef;
2555
- if (resolvedColumnDef.accessorKey) {
2556
- return resolvedColumnDef.accessorKey;
2557
- }
2558
- if (resolvedColumnDef.accessorFn) {
2559
- return resolvedColumnDef.id;
2560
- }
2561
- return null;
2562
- },
2563
- // footer: props => props.header.column.id,
2564
- cell: (props) => {
2565
- var _props$renderValue$to, _props$renderValue;
2566
- return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;
2567
- },
2568
- ...table._features.reduce((obj, feature) => {
2569
- return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());
2570
- }, {}),
2571
- ...defaultColumn
2572
- };
2573
- }, getMemoOptions(options, "debugColumns", "_getDefaultColumnDef")),
2574
- _getColumnDefs: () => table.options.columns,
2575
- getAllColumns: memo(() => [table._getColumnDefs()], (columnDefs) => {
2576
- const recurseColumns = function(columnDefs2, parent, depth) {
2577
- if (depth === void 0) {
2578
- depth = 0;
2579
- }
2580
- return columnDefs2.map((columnDef) => {
2581
- const column = createColumn(table, columnDef, depth, parent);
2582
- const groupingColumnDef = columnDef;
2583
- column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];
2584
- return column;
2585
- });
2586
- };
2587
- return recurseColumns(columnDefs);
2588
- }, getMemoOptions(options, "debugColumns", "getAllColumns")),
2589
- getAllFlatColumns: memo(() => [table.getAllColumns()], (allColumns) => {
2590
- return allColumns.flatMap((column) => {
2591
- return column.getFlatColumns();
2592
- });
2593
- }, getMemoOptions(options, "debugColumns", "getAllFlatColumns")),
2594
- _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], (flatColumns) => {
2595
- return flatColumns.reduce((acc, column) => {
2596
- acc[column.id] = column;
2597
- return acc;
2598
- }, {});
2599
- }, getMemoOptions(options, "debugColumns", "getAllFlatColumnsById")),
2600
- getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns2) => {
2601
- let leafColumns = allColumns.flatMap((column) => column.getLeafColumns());
2602
- return orderColumns2(leafColumns);
2603
- }, getMemoOptions(options, "debugColumns", "getAllLeafColumns")),
2604
- getColumn: (columnId) => {
2605
- const column = table._getAllFlatColumnsById()[columnId];
2606
- if (process.env.NODE_ENV !== "production" && !column) {
2607
- console.error(`[Table] Column with id '${columnId}' does not exist.`);
2608
- }
2609
- return column;
2610
- }
2611
- };
2612
- Object.assign(table, coreInstance);
2613
- for (let index = 0; index < table._features.length; index++) {
2614
- const feature = table._features[index];
2615
- feature == null || feature.createTable == null || feature.createTable(table);
2616
- }
2617
- return table;
2618
- }
2619
- function getCoreRowModel() {
2620
- return (table) => memo(() => [table.options.data], (data) => {
2621
- const rowModel = {
2622
- rows: [],
2623
- flatRows: [],
2624
- rowsById: {}
2625
- };
2626
- const accessRows = function(originalRows, depth, parentRow) {
2627
- if (depth === void 0) {
2628
- depth = 0;
2629
- }
2630
- const rows = [];
2631
- for (let i = 0; i < originalRows.length; i++) {
2632
- const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, void 0, parentRow == null ? void 0 : parentRow.id);
2633
- rowModel.flatRows.push(row);
2634
- rowModel.rowsById[row.id] = row;
2635
- rows.push(row);
2636
- if (table.options.getSubRows) {
2637
- var _row$originalSubRows;
2638
- row.originalSubRows = table.options.getSubRows(originalRows[i], i);
2639
- if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {
2640
- row.subRows = accessRows(row.originalSubRows, depth + 1, row);
2641
- }
2642
- }
2643
- }
2644
- return rows;
2645
- };
2646
- rowModel.rows = accessRows(data);
2647
- return rowModel;
2648
- }, getMemoOptions(table.options, "debugTable", "getRowModel", () => table._autoResetPageIndex()));
2649
- }
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
2650
14
 
2651
- // ../../node_modules/.pnpm/@tanstack+react-table@8.21.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-table/build/lib/index.mjs
2652
- function flexRender(Comp, props) {
2653
- return !Comp ? null : isReactComponent(Comp) ? /* @__PURE__ */ React2__namespace.createElement(Comp, props) : Comp;
2654
- }
2655
- function isReactComponent(component) {
2656
- return isClassComponent(component) || typeof component === "function" || isExoticComponent(component);
2657
- }
2658
- function isClassComponent(component) {
2659
- return typeof component === "function" && (() => {
2660
- const proto = Object.getPrototypeOf(component);
2661
- return proto.prototype && proto.prototype.isReactComponent;
2662
- })();
2663
- }
2664
- function isExoticComponent(component) {
2665
- return typeof component === "object" && typeof component.$$typeof === "symbol" && ["react.memo", "react.forward_ref"].includes(component.$$typeof.description);
2666
- }
2667
- function useReactTable(options) {
2668
- const resolvedOptions = {
2669
- state: {},
2670
- // Dummy state
2671
- onStateChange: () => {
2672
- },
2673
- // noop
2674
- renderFallbackValue: null,
2675
- ...options
2676
- };
2677
- const [tableRef] = React2__namespace.useState(() => ({
2678
- current: createTable(resolvedOptions)
2679
- }));
2680
- const [state, setState] = React2__namespace.useState(() => tableRef.current.initialState);
2681
- tableRef.current.setOptions((prev) => ({
2682
- ...prev,
2683
- ...options,
2684
- state: {
2685
- ...state,
2686
- ...options.state
2687
- },
2688
- // Similarly, we'll maintain both our internal state and any user-provided
2689
- // state.
2690
- onStateChange: (updater) => {
2691
- setState(updater);
2692
- options.onStateChange == null || options.onStateChange(updater);
2693
- }
2694
- }));
2695
- return tableRef.current;
2696
- }
15
+ var React5__default = /*#__PURE__*/_interopDefault(React5);
16
+ var classnames__default = /*#__PURE__*/_interopDefault(classnames);
17
+
18
+ // src/object-table/ObjectTable.tsx
2697
19
  function useColumnDefs(objectType, columnDefinitions) {
2698
20
  const {
2699
21
  metadata,
2700
22
  loading,
2701
23
  error
2702
24
  } = react.useOsdkMetadata(objectType);
2703
- const columns = React2.useMemo(() => {
25
+ const columns = React5.useMemo(() => {
2704
26
  const objectProperties = metadata?.properties;
2705
27
  if (columnDefinitions) {
2706
28
  return getColumnsFromColumnDefinitions(columnDefinitions, objectProperties);
@@ -2759,7 +81,7 @@ function getDefaultColumns(objectProperties) {
2759
81
  var useDefaultTableStates = ({
2760
82
  columnDefinitions
2761
83
  }) => {
2762
- const columnVisibility = React2.useMemo(() => {
84
+ const columnVisibility = React5.useMemo(() => {
2763
85
  if (columnDefinitions) {
2764
86
  const colVisibility = columnDefinitions.reduce((acc, colDef) => {
2765
87
  if (colDef.isVisible !== void 0) {
@@ -2783,7 +105,7 @@ var useDefaultTableStates = ({
2783
105
  };
2784
106
  var PAGE_SIZE = 50;
2785
107
  function useObjectTableData(objectSet, columnDefinitions, filter) {
2786
- const withProperties = React2.useMemo(() => {
108
+ const withProperties = React5.useMemo(() => {
2787
109
  if (!columnDefinitions) {
2788
110
  return;
2789
111
  }
@@ -2817,11 +139,11 @@ function useRowSelection({
2817
139
  onRowSelection,
2818
140
  data
2819
141
  }) {
2820
- const [internalRowSelection, setInternalRowSelection] = React2.useState({});
2821
- const [lastSelectedRowIndex, setLastSelectedRowIndex] = React2.useState(null);
142
+ const [internalRowSelection, setInternalRowSelection] = React5.useState({});
143
+ const [lastSelectedRowIndex, setLastSelectedRowIndex] = React5.useState(null);
2822
144
  const isControlled = selectedRows !== void 0;
2823
145
  const isSelectionEnabled = selectionMode !== "none";
2824
- const rowSelectionState = React2.useMemo(() => {
146
+ const rowSelectionState = React5.useMemo(() => {
2825
147
  if (!isSelectionEnabled) return {};
2826
148
  if (isControlled && selectedRows) {
2827
149
  return getRowSelectionState(selectedRows);
@@ -2832,7 +154,7 @@ function useRowSelection({
2832
154
  const totalCount = data?.length ?? 0;
2833
155
  const isAllSelected = totalCount > 0 && selectedCount === totalCount;
2834
156
  const hasSelection = selectedCount > 0;
2835
- const onToggleAll = React2.useCallback(() => {
157
+ const onToggleAll = React5.useCallback(() => {
2836
158
  if (!isSelectionEnabled || !data) return;
2837
159
  const newSelectedRows = isAllSelected ? [] : data.map((item) => item.$primaryKey);
2838
160
  if (!isControlled) {
@@ -2840,7 +162,7 @@ function useRowSelection({
2840
162
  }
2841
163
  onRowSelection?.(newSelectedRows);
2842
164
  }, [isSelectionEnabled, data, isAllSelected, isControlled, onRowSelection]);
2843
- const onToggleRow = React2.useCallback((rowId, rowIndex, isShiftClick = false) => {
165
+ const onToggleRow = React5.useCallback((rowId, rowIndex, isShiftClick = false) => {
2844
166
  if (!isSelectionEnabled || !data) return;
2845
167
  let newSelectedRows = [];
2846
168
  if (selectionMode === "single") {
@@ -2942,53 +264,64 @@ function getRowSelectionState(primaryKeys) {
2942
264
  function getSelectedPrimaryKeys(selectionState, data) {
2943
265
  return data.filter((item) => selectionState[getRowId(item)]).map((item) => item.$primaryKey);
2944
266
  }
267
+
268
+ // src/base-components/checkbox/Checkbox.module.css
269
+ var Checkbox_default = {};
270
+
271
+ // src/base-components/checkbox/Checkbox.tsx
272
+ function _extends() {
273
+ return _extends = Object.assign ? Object.assign.bind() : function(n) {
274
+ for (var e = 1; e < arguments.length; e++) {
275
+ var t = arguments[e];
276
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
277
+ }
278
+ return n;
279
+ }, _extends.apply(null, arguments);
280
+ }
281
+ function Checkbox({
282
+ indeterminate,
283
+ className,
284
+ indicatorProps,
285
+ ...rest
286
+ }) {
287
+ return /* @__PURE__ */ React5__default.default.createElement(checkbox.Checkbox.Root, _extends({
288
+ className: classnames__default.default(Checkbox_default.osdkCheckboxRoot, className),
289
+ indeterminate
290
+ }, rest), /* @__PURE__ */ React5__default.default.createElement(checkbox.Checkbox.Indicator, _extends({}, indicatorProps, {
291
+ className: classnames__default.default(Checkbox_default.osdkCheckboxIndicator, indicatorProps?.className)
292
+ }), indeterminate ? /* @__PURE__ */ React5__default.default.createElement(icons.Minus, {
293
+ color: "currentColor"
294
+ }) : /* @__PURE__ */ React5__default.default.createElement(icons.Tick, {
295
+ color: "currentColor"
296
+ })));
297
+ }
298
+
299
+ // src/object-table/SelectionCells.tsx
2945
300
  function SelectionHeaderCell({
2946
301
  isAllSelected,
2947
302
  hasSelection,
2948
303
  onToggleAll
2949
304
  }) {
2950
- return /* @__PURE__ */ React2__namespace.default.createElement("div", {
2951
- style: {
2952
- display: "flex",
2953
- alignItems: "center",
2954
- justifyContent: "center",
2955
- width: "100%"
2956
- }
2957
- }, /* @__PURE__ */ React2__namespace.default.createElement("input", {
2958
- type: "checkbox",
305
+ return /* @__PURE__ */ React5__default.default.createElement(Checkbox, {
306
+ indeterminate: hasSelection && !isAllSelected,
2959
307
  checked: isAllSelected,
2960
- ref: (input) => {
2961
- if (input) input.indeterminate = hasSelection && !isAllSelected;
2962
- },
2963
- onChange: onToggleAll,
308
+ onCheckedChange: onToggleAll,
2964
309
  "aria-label": "Select all rows"
2965
- }));
310
+ });
2966
311
  }
2967
- var noop = () => {
2968
- };
2969
312
  function SelectionCell({
2970
313
  row,
2971
314
  onToggleRow
2972
315
  }) {
2973
- const isSelected = row.getIsSelected();
2974
- const handleClick = React2.useCallback((e) => {
2975
- e.stopPropagation();
2976
- onToggleRow(row.id, row.index, e.shiftKey);
316
+ const handleClick = React5.useCallback((event) => {
317
+ const isShiftClick = event.shiftKey;
318
+ onToggleRow(row.id, row.index, isShiftClick);
2977
319
  }, [row, onToggleRow]);
2978
- return /* @__PURE__ */ React2__namespace.default.createElement("div", {
2979
- style: {
2980
- display: "flex",
2981
- alignItems: "center",
2982
- justifyContent: "center",
2983
- width: "100%"
2984
- }
2985
- }, /* @__PURE__ */ React2__namespace.default.createElement("input", {
2986
- type: "checkbox",
2987
- checked: isSelected,
320
+ return /* @__PURE__ */ React5__default.default.createElement(Checkbox, {
321
+ checked: row.getIsSelected(),
2988
322
  onClick: handleClick,
2989
- onChange: noop,
2990
323
  "aria-label": `Select row ${row.index + 1}`
2991
- }));
324
+ });
2992
325
  }
2993
326
 
2994
327
  // src/object-table/hooks/useSelectionColumn.tsx
@@ -3000,18 +333,18 @@ var useSelectionColumn = ({
3000
333
  onToggleAll,
3001
334
  onToggleRow
3002
335
  }) => {
3003
- const selectionColumn = React2.useMemo(() => {
336
+ const selectionColumn = React5.useMemo(() => {
3004
337
  if (selectionMode === "none") return null;
3005
338
  return {
3006
339
  id: SELECTION_COLUMN_ID,
3007
- header: () => selectionMode === "multiple" ? /* @__PURE__ */ React2__namespace.default.createElement(SelectionHeaderCell, {
340
+ header: () => selectionMode === "multiple" ? /* @__PURE__ */ React5__default.default.createElement(SelectionHeaderCell, {
3008
341
  isAllSelected,
3009
342
  hasSelection,
3010
343
  onToggleAll
3011
344
  }) : null,
3012
345
  cell: ({
3013
346
  row
3014
- }) => /* @__PURE__ */ React2__namespace.default.createElement(SelectionCell, {
347
+ }) => /* @__PURE__ */ React5__default.default.createElement(SelectionCell, {
3015
348
  row,
3016
349
  onToggleRow
3017
350
  }),
@@ -3025,883 +358,24 @@ var useSelectionColumn = ({
3025
358
  return selectionColumn;
3026
359
  };
3027
360
 
3028
- // ../../node_modules/.pnpm/@tanstack+virtual-core@3.13.17/node_modules/@tanstack/virtual-core/dist/esm/utils.js
3029
- function memo2(getDeps, fn, opts) {
3030
- let deps = opts.initialDeps ?? [];
3031
- let result;
3032
- let isInitial = true;
3033
- function memoizedFunction() {
3034
- var _a, _b, _c;
3035
- let depTime;
3036
- if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();
3037
- const newDeps = getDeps();
3038
- const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);
3039
- if (!depsChanged) {
3040
- return result;
3041
- }
3042
- deps = newDeps;
3043
- let resultTime;
3044
- if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();
3045
- result = fn(...newDeps);
3046
- if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {
3047
- const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
3048
- const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
3049
- const resultFpsPercentage = resultEndTime / 16;
3050
- const pad = (str, num) => {
3051
- str = String(str);
3052
- while (str.length < num) {
3053
- str = " " + str;
3054
- }
3055
- return str;
3056
- };
3057
- console.info(`%c\u23F1 ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `
3058
- font-size: .6rem;
3059
- font-weight: bold;
3060
- color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);
3061
- }
3062
- if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {
3063
- opts.onChange(result);
3064
- }
3065
- isInitial = false;
3066
- return result;
3067
- }
3068
- memoizedFunction.updateDeps = (newDeps) => {
3069
- deps = newDeps;
3070
- };
3071
- return memoizedFunction;
3072
- }
3073
- function notUndefined(value, msg) {
3074
- if (value === void 0) {
3075
- throw new Error(`Unexpected undefined${""}`);
3076
- } else {
3077
- return value;
3078
- }
3079
- }
3080
- var approxEqual = (a, b) => Math.abs(a - b) < 1.01;
3081
- var debounce = (targetWindow, fn, ms) => {
3082
- let timeoutId;
3083
- return function(...args) {
3084
- targetWindow.clearTimeout(timeoutId);
3085
- timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);
3086
- };
3087
- };
361
+ // src/object-table/Table.module.css
362
+ var Table_default = {};
3088
363
 
3089
- // ../../node_modules/.pnpm/@tanstack+virtual-core@3.13.17/node_modules/@tanstack/virtual-core/dist/esm/index.js
3090
- var getRect = (element) => {
3091
- const {
3092
- offsetWidth,
3093
- offsetHeight
3094
- } = element;
3095
- return {
3096
- width: offsetWidth,
3097
- height: offsetHeight
3098
- };
3099
- };
3100
- var defaultKeyExtractor = (index) => index;
3101
- var defaultRangeExtractor = (range) => {
3102
- const start = Math.max(range.startIndex - range.overscan, 0);
3103
- const end = Math.min(range.endIndex + range.overscan, range.count - 1);
3104
- const arr = [];
3105
- for (let i = start; i <= end; i++) {
3106
- arr.push(i);
3107
- }
3108
- return arr;
3109
- };
3110
- var observeElementRect = (instance, cb) => {
3111
- const element = instance.scrollElement;
3112
- if (!element) {
3113
- return;
3114
- }
3115
- const targetWindow = instance.targetWindow;
3116
- if (!targetWindow) {
3117
- return;
3118
- }
3119
- const handler = (rect) => {
3120
- const {
3121
- width,
3122
- height
3123
- } = rect;
3124
- cb({
3125
- width: Math.round(width),
3126
- height: Math.round(height)
3127
- });
3128
- };
3129
- handler(getRect(element));
3130
- if (!targetWindow.ResizeObserver) {
3131
- return () => {
3132
- };
3133
- }
3134
- const observer = new targetWindow.ResizeObserver((entries) => {
3135
- const run = () => {
3136
- const entry = entries[0];
3137
- if (entry == null ? void 0 : entry.borderBoxSize) {
3138
- const box = entry.borderBoxSize[0];
3139
- if (box) {
3140
- handler({
3141
- width: box.inlineSize,
3142
- height: box.blockSize
3143
- });
3144
- return;
3145
- }
3146
- }
3147
- handler(getRect(element));
3148
- };
3149
- instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();
3150
- });
3151
- observer.observe(element, {
3152
- box: "border-box"
3153
- });
3154
- return () => {
3155
- observer.unobserve(element);
3156
- };
3157
- };
3158
- var addEventListenerOptions = {
3159
- passive: true
3160
- };
3161
- var supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window;
3162
- var observeElementOffset = (instance, cb) => {
3163
- const element = instance.scrollElement;
3164
- if (!element) {
3165
- return;
3166
- }
3167
- const targetWindow = instance.targetWindow;
3168
- if (!targetWindow) {
3169
- return;
3170
- }
3171
- let offset = 0;
3172
- const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(targetWindow, () => {
3173
- cb(offset, false);
3174
- }, instance.options.isScrollingResetDelay);
3175
- const createHandler = (isScrolling) => () => {
3176
- const {
3177
- horizontal,
3178
- isRtl
3179
- } = instance.options;
3180
- offset = horizontal ? element["scrollLeft"] * (isRtl && -1 || 1) : element["scrollTop"];
3181
- fallback();
3182
- cb(offset, isScrolling);
3183
- };
3184
- const handler = createHandler(true);
3185
- const endHandler = createHandler(false);
3186
- element.addEventListener("scroll", handler, addEventListenerOptions);
3187
- const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
3188
- if (registerScrollendEvent) {
3189
- element.addEventListener("scrollend", endHandler, addEventListenerOptions);
3190
- }
3191
- return () => {
3192
- element.removeEventListener("scroll", handler);
3193
- if (registerScrollendEvent) {
3194
- element.removeEventListener("scrollend", endHandler);
3195
- }
3196
- };
3197
- };
3198
- var measureElement = (element, entry, instance) => {
3199
- if (entry == null ? void 0 : entry.borderBoxSize) {
3200
- const box = entry.borderBoxSize[0];
3201
- if (box) {
3202
- const size = Math.round(box[instance.options.horizontal ? "inlineSize" : "blockSize"]);
3203
- return size;
3204
- }
3205
- }
3206
- return element[instance.options.horizontal ? "offsetWidth" : "offsetHeight"];
3207
- };
3208
- var elementScroll = (offset, {
3209
- adjustments = 0,
3210
- behavior
3211
- }, instance) => {
3212
- var _a, _b;
3213
- const toOffset = offset + adjustments;
3214
- (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {
3215
- [instance.options.horizontal ? "left" : "top"]: toOffset,
3216
- behavior
3217
- });
3218
- };
3219
- var Virtualizer = class {
3220
- constructor(opts) {
3221
- this.unsubs = [];
3222
- this.scrollElement = null;
3223
- this.targetWindow = null;
3224
- this.isScrolling = false;
3225
- this.currentScrollToIndex = null;
3226
- this.measurementsCache = [];
3227
- this.itemSizeCache = /* @__PURE__ */ new Map();
3228
- this.laneAssignments = /* @__PURE__ */ new Map();
3229
- this.pendingMeasuredCacheIndexes = [];
3230
- this.prevLanes = void 0;
3231
- this.lanesChangedFlag = false;
3232
- this.lanesSettling = false;
3233
- this.scrollRect = null;
3234
- this.scrollOffset = null;
3235
- this.scrollDirection = null;
3236
- this.scrollAdjustments = 0;
3237
- this.elementsCache = /* @__PURE__ */ new Map();
3238
- this.observer = /* @__PURE__ */ (() => {
3239
- let _ro = null;
3240
- const get = () => {
3241
- if (_ro) {
3242
- return _ro;
3243
- }
3244
- if (!this.targetWindow || !this.targetWindow.ResizeObserver) {
3245
- return null;
3246
- }
3247
- return _ro = new this.targetWindow.ResizeObserver((entries) => {
3248
- entries.forEach((entry) => {
3249
- const run = () => {
3250
- this._measureElement(entry.target, entry);
3251
- };
3252
- this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();
3253
- });
3254
- });
3255
- };
3256
- return {
3257
- disconnect: () => {
3258
- var _a;
3259
- (_a = get()) == null ? void 0 : _a.disconnect();
3260
- _ro = null;
3261
- },
3262
- observe: (target) => {
3263
- var _a;
3264
- return (_a = get()) == null ? void 0 : _a.observe(target, {
3265
- box: "border-box"
3266
- });
3267
- },
3268
- unobserve: (target) => {
3269
- var _a;
3270
- return (_a = get()) == null ? void 0 : _a.unobserve(target);
3271
- }
3272
- };
3273
- })();
3274
- this.range = null;
3275
- this.setOptions = (opts2) => {
3276
- Object.entries(opts2).forEach(([key, value]) => {
3277
- if (typeof value === "undefined") delete opts2[key];
3278
- });
3279
- this.options = {
3280
- debug: false,
3281
- initialOffset: 0,
3282
- overscan: 1,
3283
- paddingStart: 0,
3284
- paddingEnd: 0,
3285
- scrollPaddingStart: 0,
3286
- scrollPaddingEnd: 0,
3287
- horizontal: false,
3288
- getItemKey: defaultKeyExtractor,
3289
- rangeExtractor: defaultRangeExtractor,
3290
- onChange: () => {
3291
- },
3292
- measureElement,
3293
- initialRect: {
3294
- width: 0,
3295
- height: 0
3296
- },
3297
- scrollMargin: 0,
3298
- gap: 0,
3299
- indexAttribute: "data-index",
3300
- initialMeasurementsCache: [],
3301
- lanes: 1,
3302
- isScrollingResetDelay: 150,
3303
- enabled: true,
3304
- isRtl: false,
3305
- useScrollendEvent: false,
3306
- useAnimationFrameWithResizeObserver: false,
3307
- ...opts2
3308
- };
3309
- };
3310
- this.notify = (sync) => {
3311
- var _a, _b;
3312
- (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);
3313
- };
3314
- this.maybeNotify = memo2(() => {
3315
- this.calculateRange();
3316
- return [this.isScrolling, this.range ? this.range.startIndex : null, this.range ? this.range.endIndex : null];
3317
- }, (isScrolling) => {
3318
- this.notify(isScrolling);
3319
- }, {
3320
- key: process.env.NODE_ENV !== "production" && "maybeNotify",
3321
- debug: () => this.options.debug,
3322
- initialDeps: [this.isScrolling, this.range ? this.range.startIndex : null, this.range ? this.range.endIndex : null]
3323
- });
3324
- this.cleanup = () => {
3325
- this.unsubs.filter(Boolean).forEach((d) => d());
3326
- this.unsubs = [];
3327
- this.observer.disconnect();
3328
- this.scrollElement = null;
3329
- this.targetWindow = null;
3330
- };
3331
- this._didMount = () => {
3332
- return () => {
3333
- this.cleanup();
3334
- };
3335
- };
3336
- this._willUpdate = () => {
3337
- var _a;
3338
- const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
3339
- if (this.scrollElement !== scrollElement) {
3340
- this.cleanup();
3341
- if (!scrollElement) {
3342
- this.maybeNotify();
3343
- return;
3344
- }
3345
- this.scrollElement = scrollElement;
3346
- if (this.scrollElement && "ownerDocument" in this.scrollElement) {
3347
- this.targetWindow = this.scrollElement.ownerDocument.defaultView;
3348
- } else {
3349
- this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;
3350
- }
3351
- this.elementsCache.forEach((cached) => {
3352
- this.observer.observe(cached);
3353
- });
3354
- this.unsubs.push(this.options.observeElementRect(this, (rect) => {
3355
- this.scrollRect = rect;
3356
- this.maybeNotify();
3357
- }));
3358
- this.unsubs.push(this.options.observeElementOffset(this, (offset, isScrolling) => {
3359
- this.scrollAdjustments = 0;
3360
- this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
3361
- this.scrollOffset = offset;
3362
- this.isScrolling = isScrolling;
3363
- this.maybeNotify();
3364
- }));
3365
- this._scrollToOffset(this.getScrollOffset(), {
3366
- adjustments: void 0,
3367
- behavior: void 0
3368
- });
3369
- }
3370
- };
3371
- this.getSize = () => {
3372
- if (!this.options.enabled) {
3373
- this.scrollRect = null;
3374
- return 0;
3375
- }
3376
- this.scrollRect = this.scrollRect ?? this.options.initialRect;
3377
- return this.scrollRect[this.options.horizontal ? "width" : "height"];
3378
- };
3379
- this.getScrollOffset = () => {
3380
- if (!this.options.enabled) {
3381
- this.scrollOffset = null;
3382
- return 0;
3383
- }
3384
- this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
3385
- return this.scrollOffset;
3386
- };
3387
- this.getFurthestMeasurement = (measurements, index) => {
3388
- const furthestMeasurementsFound = /* @__PURE__ */ new Map();
3389
- const furthestMeasurements = /* @__PURE__ */ new Map();
3390
- for (let m = index - 1; m >= 0; m--) {
3391
- const measurement = measurements[m];
3392
- if (furthestMeasurementsFound.has(measurement.lane)) {
3393
- continue;
3394
- }
3395
- const previousFurthestMeasurement = furthestMeasurements.get(measurement.lane);
3396
- if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {
3397
- furthestMeasurements.set(measurement.lane, measurement);
3398
- } else if (measurement.end < previousFurthestMeasurement.end) {
3399
- furthestMeasurementsFound.set(measurement.lane, true);
3400
- }
3401
- if (furthestMeasurementsFound.size === this.options.lanes) {
3402
- break;
3403
- }
3404
- }
3405
- return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {
3406
- if (a.end === b.end) {
3407
- return a.index - b.index;
3408
- }
3409
- return a.end - b.end;
3410
- })[0] : void 0;
3411
- };
3412
- this.getMeasurementOptions = memo2(() => [this.options.count, this.options.paddingStart, this.options.scrollMargin, this.options.getItemKey, this.options.enabled, this.options.lanes], (count2, paddingStart, scrollMargin, getItemKey, enabled, lanes) => {
3413
- const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;
3414
- if (lanesChanged) {
3415
- this.lanesChangedFlag = true;
3416
- }
3417
- this.prevLanes = lanes;
3418
- this.pendingMeasuredCacheIndexes = [];
3419
- return {
3420
- count: count2,
3421
- paddingStart,
3422
- scrollMargin,
3423
- getItemKey,
3424
- enabled,
3425
- lanes
3426
- };
3427
- }, {
3428
- key: false,
3429
- skipInitialOnChange: true,
3430
- onChange: () => {
3431
- this.notify(this.isScrolling);
3432
- }
3433
- });
3434
- this.getMeasurements = memo2(() => [this.getMeasurementOptions(), this.itemSizeCache], ({
3435
- count: count2,
3436
- paddingStart,
3437
- scrollMargin,
3438
- getItemKey,
3439
- enabled,
3440
- lanes
3441
- }, itemSizeCache) => {
3442
- if (!enabled) {
3443
- this.measurementsCache = [];
3444
- this.itemSizeCache.clear();
3445
- this.laneAssignments.clear();
3446
- return [];
3447
- }
3448
- if (this.laneAssignments.size > count2) {
3449
- for (const index of this.laneAssignments.keys()) {
3450
- if (index >= count2) {
3451
- this.laneAssignments.delete(index);
3452
- }
3453
- }
3454
- }
3455
- if (this.lanesChangedFlag) {
3456
- this.lanesChangedFlag = false;
3457
- this.lanesSettling = true;
3458
- this.measurementsCache = [];
3459
- this.itemSizeCache.clear();
3460
- this.laneAssignments.clear();
3461
- this.pendingMeasuredCacheIndexes = [];
3462
- }
3463
- if (this.measurementsCache.length === 0 && !this.lanesSettling) {
3464
- this.measurementsCache = this.options.initialMeasurementsCache;
3465
- this.measurementsCache.forEach((item) => {
3466
- this.itemSizeCache.set(item.key, item.size);
3467
- });
3468
- }
3469
- const min2 = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
3470
- this.pendingMeasuredCacheIndexes = [];
3471
- if (this.lanesSettling && this.measurementsCache.length === count2) {
3472
- this.lanesSettling = false;
3473
- }
3474
- const measurements = this.measurementsCache.slice(0, min2);
3475
- const laneLastIndex = new Array(lanes).fill(void 0);
3476
- for (let m = 0; m < min2; m++) {
3477
- const item = measurements[m];
3478
- if (item) {
3479
- laneLastIndex[item.lane] = m;
3480
- }
3481
- }
3482
- for (let i = min2; i < count2; i++) {
3483
- const key = getItemKey(i);
3484
- const cachedLane = this.laneAssignments.get(i);
3485
- let lane;
3486
- let start;
3487
- if (cachedLane !== void 0 && this.options.lanes > 1) {
3488
- lane = cachedLane;
3489
- const prevIndex = laneLastIndex[lane];
3490
- const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;
3491
- start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;
3492
- } else {
3493
- const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
3494
- start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
3495
- lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;
3496
- if (this.options.lanes > 1) {
3497
- this.laneAssignments.set(i, lane);
3498
- }
3499
- }
3500
- const measuredSize = itemSizeCache.get(key);
3501
- const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i);
3502
- const end = start + size;
3503
- measurements[i] = {
3504
- index: i,
3505
- start,
3506
- size,
3507
- end,
3508
- key,
3509
- lane
3510
- };
3511
- laneLastIndex[lane] = i;
3512
- }
3513
- this.measurementsCache = measurements;
3514
- return measurements;
3515
- }, {
3516
- key: process.env.NODE_ENV !== "production" && "getMeasurements",
3517
- debug: () => this.options.debug
3518
- });
3519
- this.calculateRange = memo2(() => [this.getMeasurements(), this.getSize(), this.getScrollOffset(), this.options.lanes], (measurements, outerSize, scrollOffset, lanes) => {
3520
- return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
3521
- measurements,
3522
- outerSize,
3523
- scrollOffset,
3524
- lanes
3525
- }) : null;
3526
- }, {
3527
- key: process.env.NODE_ENV !== "production" && "calculateRange",
3528
- debug: () => this.options.debug
3529
- });
3530
- this.getVirtualIndexes = memo2(() => {
3531
- let startIndex = null;
3532
- let endIndex = null;
3533
- const range = this.calculateRange();
3534
- if (range) {
3535
- startIndex = range.startIndex;
3536
- endIndex = range.endIndex;
3537
- }
3538
- this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);
3539
- return [this.options.rangeExtractor, this.options.overscan, this.options.count, startIndex, endIndex];
3540
- }, (rangeExtractor, overscan, count2, startIndex, endIndex) => {
3541
- return startIndex === null || endIndex === null ? [] : rangeExtractor({
3542
- startIndex,
3543
- endIndex,
3544
- overscan,
3545
- count: count2
3546
- });
3547
- }, {
3548
- key: process.env.NODE_ENV !== "production" && "getVirtualIndexes",
3549
- debug: () => this.options.debug
3550
- });
3551
- this.indexFromElement = (node) => {
3552
- const attributeName = this.options.indexAttribute;
3553
- const indexStr = node.getAttribute(attributeName);
3554
- if (!indexStr) {
3555
- console.warn(`Missing attribute name '${attributeName}={index}' on measured element.`);
3556
- return -1;
3557
- }
3558
- return parseInt(indexStr, 10);
3559
- };
3560
- this._measureElement = (node, entry) => {
3561
- const index = this.indexFromElement(node);
3562
- const item = this.measurementsCache[index];
3563
- if (!item) {
3564
- return;
3565
- }
3566
- const key = item.key;
3567
- const prevNode = this.elementsCache.get(key);
3568
- if (prevNode !== node) {
3569
- if (prevNode) {
3570
- this.observer.unobserve(prevNode);
3571
- }
3572
- this.observer.observe(node);
3573
- this.elementsCache.set(key, node);
3574
- }
3575
- if (node.isConnected) {
3576
- this.resizeItem(index, this.options.measureElement(node, entry, this));
3577
- }
3578
- };
3579
- this.resizeItem = (index, size) => {
3580
- const item = this.measurementsCache[index];
3581
- if (!item) {
3582
- return;
3583
- }
3584
- const itemSize = this.itemSizeCache.get(item.key) ?? item.size;
3585
- const delta = size - itemSize;
3586
- if (delta !== 0) {
3587
- if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {
3588
- if (process.env.NODE_ENV !== "production" && this.options.debug) {
3589
- console.info("correction", delta);
3590
- }
3591
- this._scrollToOffset(this.getScrollOffset(), {
3592
- adjustments: this.scrollAdjustments += delta,
3593
- behavior: void 0
3594
- });
3595
- }
3596
- this.pendingMeasuredCacheIndexes.push(item.index);
3597
- this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));
3598
- this.notify(false);
3599
- }
3600
- };
3601
- this.measureElement = (node) => {
3602
- if (!node) {
3603
- this.elementsCache.forEach((cached, key) => {
3604
- if (!cached.isConnected) {
3605
- this.observer.unobserve(cached);
3606
- this.elementsCache.delete(key);
3607
- }
3608
- });
3609
- return;
3610
- }
3611
- this._measureElement(node, void 0);
3612
- };
3613
- this.getVirtualItems = memo2(() => [this.getVirtualIndexes(), this.getMeasurements()], (indexes, measurements) => {
3614
- const virtualItems = [];
3615
- for (let k = 0, len = indexes.length; k < len; k++) {
3616
- const i = indexes[k];
3617
- const measurement = measurements[i];
3618
- virtualItems.push(measurement);
3619
- }
3620
- return virtualItems;
3621
- }, {
3622
- key: process.env.NODE_ENV !== "production" && "getVirtualItems",
3623
- debug: () => this.options.debug
3624
- });
3625
- this.getVirtualItemForOffset = (offset) => {
3626
- const measurements = this.getMeasurements();
3627
- if (measurements.length === 0) {
3628
- return void 0;
3629
- }
3630
- return notUndefined(measurements[findNearestBinarySearch(0, measurements.length - 1, (index) => notUndefined(measurements[index]).start, offset)]);
3631
- };
3632
- this.getMaxScrollOffset = () => {
3633
- if (!this.scrollElement) return 0;
3634
- if ("scrollHeight" in this.scrollElement) {
3635
- return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;
3636
- } else {
3637
- const doc = this.scrollElement.document.documentElement;
3638
- return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;
3639
- }
3640
- };
3641
- this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {
3642
- if (!this.scrollElement) return 0;
3643
- const size = this.getSize();
3644
- const scrollOffset = this.getScrollOffset();
3645
- if (align === "auto") {
3646
- align = toOffset >= scrollOffset + size ? "end" : "start";
3647
- }
3648
- if (align === "center") {
3649
- toOffset += (itemSize - size) / 2;
3650
- } else if (align === "end") {
3651
- toOffset -= size;
3652
- }
3653
- const maxOffset = this.getMaxScrollOffset();
3654
- return Math.max(Math.min(maxOffset, toOffset), 0);
3655
- };
3656
- this.getOffsetForIndex = (index, align = "auto") => {
3657
- index = Math.max(0, Math.min(index, this.options.count - 1));
3658
- const item = this.measurementsCache[index];
3659
- if (!item) {
3660
- return void 0;
3661
- }
3662
- const size = this.getSize();
3663
- const scrollOffset = this.getScrollOffset();
3664
- if (align === "auto") {
3665
- if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {
3666
- align = "end";
3667
- } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {
3668
- align = "start";
3669
- } else {
3670
- return [scrollOffset, align];
3671
- }
3672
- }
3673
- if (align === "end" && index === this.options.count - 1) {
3674
- return [this.getMaxScrollOffset(), align];
3675
- }
3676
- const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;
3677
- return [this.getOffsetForAlignment(toOffset, align, item.size), align];
3678
- };
3679
- this.isDynamicMode = () => this.elementsCache.size > 0;
3680
- this.scrollToOffset = (toOffset, {
3681
- align = "start",
3682
- behavior
3683
- } = {}) => {
3684
- if (behavior === "smooth" && this.isDynamicMode()) {
3685
- console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");
3686
- }
3687
- this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {
3688
- adjustments: void 0,
3689
- behavior
3690
- });
3691
- };
3692
- this.scrollToIndex = (index, {
3693
- align: initialAlign = "auto",
3694
- behavior
3695
- } = {}) => {
3696
- if (behavior === "smooth" && this.isDynamicMode()) {
3697
- console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");
3698
- }
3699
- index = Math.max(0, Math.min(index, this.options.count - 1));
3700
- this.currentScrollToIndex = index;
3701
- let attempts = 0;
3702
- const maxAttempts = 10;
3703
- const tryScroll = (currentAlign) => {
3704
- if (!this.targetWindow) return;
3705
- const offsetInfo = this.getOffsetForIndex(index, currentAlign);
3706
- if (!offsetInfo) {
3707
- console.warn("Failed to get offset for index:", index);
3708
- return;
3709
- }
3710
- const [offset, align] = offsetInfo;
3711
- this._scrollToOffset(offset, {
3712
- adjustments: void 0,
3713
- behavior
3714
- });
3715
- this.targetWindow.requestAnimationFrame(() => {
3716
- const verify = () => {
3717
- if (this.currentScrollToIndex !== index) return;
3718
- const currentOffset = this.getScrollOffset();
3719
- const afterInfo = this.getOffsetForIndex(index, align);
3720
- if (!afterInfo) {
3721
- console.warn("Failed to get offset for index:", index);
3722
- return;
3723
- }
3724
- if (!approxEqual(afterInfo[0], currentOffset)) {
3725
- scheduleRetry(align);
3726
- }
3727
- };
3728
- if (this.isDynamicMode()) {
3729
- this.targetWindow.requestAnimationFrame(verify);
3730
- } else {
3731
- verify();
3732
- }
3733
- });
3734
- };
3735
- const scheduleRetry = (align) => {
3736
- if (!this.targetWindow) return;
3737
- if (this.currentScrollToIndex !== index) return;
3738
- attempts++;
3739
- if (attempts < maxAttempts) {
3740
- if (process.env.NODE_ENV !== "production" && this.options.debug) {
3741
- console.info("Schedule retry", attempts, maxAttempts);
3742
- }
3743
- this.targetWindow.requestAnimationFrame(() => tryScroll(align));
3744
- } else {
3745
- console.warn(`Failed to scroll to index ${index} after ${maxAttempts} attempts.`);
3746
- }
3747
- };
3748
- tryScroll(initialAlign);
3749
- };
3750
- this.scrollBy = (delta, {
3751
- behavior
3752
- } = {}) => {
3753
- if (behavior === "smooth" && this.isDynamicMode()) {
3754
- console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");
3755
- }
3756
- this._scrollToOffset(this.getScrollOffset() + delta, {
3757
- adjustments: void 0,
3758
- behavior
3759
- });
3760
- };
3761
- this.getTotalSize = () => {
3762
- var _a;
3763
- const measurements = this.getMeasurements();
3764
- let end;
3765
- if (measurements.length === 0) {
3766
- end = this.options.paddingStart;
3767
- } else if (this.options.lanes === 1) {
3768
- end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;
3769
- } else {
3770
- const endByLane = Array(this.options.lanes).fill(null);
3771
- let endIndex = measurements.length - 1;
3772
- while (endIndex >= 0 && endByLane.some((val) => val === null)) {
3773
- const item = measurements[endIndex];
3774
- if (endByLane[item.lane] === null) {
3775
- endByLane[item.lane] = item.end;
3776
- }
3777
- endIndex--;
3778
- }
3779
- end = Math.max(...endByLane.filter((val) => val !== null));
3780
- }
3781
- return Math.max(end - this.options.scrollMargin + this.options.paddingEnd, 0);
3782
- };
3783
- this._scrollToOffset = (offset, {
3784
- adjustments,
3785
- behavior
3786
- }) => {
3787
- this.options.scrollToFn(offset, {
3788
- behavior,
3789
- adjustments
3790
- }, this);
3791
- };
3792
- this.measure = () => {
3793
- this.itemSizeCache = /* @__PURE__ */ new Map();
3794
- this.laneAssignments = /* @__PURE__ */ new Map();
3795
- this.notify(false);
3796
- };
3797
- this.setOptions(opts);
3798
- }
3799
- };
3800
- var findNearestBinarySearch = (low, high, getCurrentValue, value) => {
3801
- while (low <= high) {
3802
- const middle = (low + high) / 2 | 0;
3803
- const currentValue = getCurrentValue(middle);
3804
- if (currentValue < value) {
3805
- low = middle + 1;
3806
- } else if (currentValue > value) {
3807
- high = middle - 1;
3808
- } else {
3809
- return middle;
3810
- }
3811
- }
3812
- if (low > 0) {
3813
- return low - 1;
3814
- } else {
3815
- return 0;
3816
- }
3817
- };
3818
- function calculateRange({
3819
- measurements,
3820
- outerSize,
3821
- scrollOffset,
3822
- lanes
3823
- }) {
3824
- const lastIndex = measurements.length - 1;
3825
- const getOffset = (index) => measurements[index].start;
3826
- if (measurements.length <= lanes) {
3827
- return {
3828
- startIndex: 0,
3829
- endIndex: lastIndex
3830
- };
3831
- }
3832
- let startIndex = findNearestBinarySearch(0, lastIndex, getOffset, scrollOffset);
3833
- let endIndex = startIndex;
3834
- if (lanes === 1) {
3835
- while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {
3836
- endIndex++;
3837
- }
3838
- } else if (lanes > 1) {
3839
- const endPerLane = Array(lanes).fill(0);
3840
- while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {
3841
- const item = measurements[endIndex];
3842
- endPerLane[item.lane] = item.end;
3843
- endIndex++;
3844
- }
3845
- const startPerLane = Array(lanes).fill(scrollOffset + outerSize);
3846
- while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {
3847
- const item = measurements[startIndex];
3848
- startPerLane[item.lane] = item.start;
3849
- startIndex--;
3850
- }
3851
- startIndex = Math.max(0, startIndex - startIndex % lanes);
3852
- endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));
3853
- }
3854
- return {
3855
- startIndex,
3856
- endIndex
3857
- };
3858
- }
364
+ // src/object-table/TableBody.module.css
365
+ var TableBody_default = {};
3859
366
 
3860
- // ../../node_modules/.pnpm/@tanstack+react-virtual@3.13.17_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-virtual/dist/esm/index.js
3861
- var useIsomorphicLayoutEffect = typeof document !== "undefined" ? React2__namespace.useLayoutEffect : React2__namespace.useEffect;
3862
- function useVirtualizerBase({
3863
- useFlushSync = true,
3864
- ...options
3865
- }) {
3866
- const rerender = React2__namespace.useReducer(() => ({}), {})[1];
3867
- const resolvedOptions = {
3868
- ...options,
3869
- onChange: (instance2, sync) => {
3870
- var _a;
3871
- if (useFlushSync && sync) {
3872
- reactDom.flushSync(rerender);
3873
- } else {
3874
- rerender();
3875
- }
3876
- (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);
3877
- }
3878
- };
3879
- const [instance] = React2__namespace.useState(() => new Virtualizer(resolvedOptions));
3880
- instance.setOptions(resolvedOptions);
3881
- useIsomorphicLayoutEffect(() => {
3882
- return instance._didMount();
3883
- }, []);
3884
- useIsomorphicLayoutEffect(() => {
3885
- return instance._willUpdate();
3886
- });
3887
- return instance;
3888
- }
3889
- function useVirtualizer(options) {
3890
- return useVirtualizerBase({
3891
- observeElementRect,
3892
- observeElementOffset,
3893
- scrollToFn: elementScroll,
3894
- ...options
3895
- });
3896
- }
367
+ // src/object-table/CellContextMenu.module.css
368
+ var CellContextMenu_default = {};
369
+
370
+ // src/object-table/CellContextMenu.tsx
3897
371
  function CellContextMenu({
3898
372
  cell,
3899
373
  position,
3900
374
  onClose,
3901
375
  renderContent
3902
376
  }) {
3903
- const ref = React2.useRef(null);
3904
- React2.useEffect(() => {
377
+ const ref = React5.useRef(null);
378
+ React5.useEffect(() => {
3905
379
  const handleClickOutside = (event) => {
3906
380
  if (ref.current && !ref.current.contains(event.target)) {
3907
381
  onClose();
@@ -3912,11 +386,10 @@ function CellContextMenu({
3912
386
  document.removeEventListener("mousedown", handleClickOutside);
3913
387
  };
3914
388
  }, [onClose]);
3915
- return /* @__PURE__ */ reactDom.createPortal(/* @__PURE__ */ React2__namespace.default.createElement("div", {
389
+ return /* @__PURE__ */ reactDom.createPortal(/* @__PURE__ */ React5__default.default.createElement("div", {
3916
390
  ref,
391
+ className: CellContextMenu_default.osdkCellContextMenu,
3917
392
  style: {
3918
- position: "fixed",
3919
- zIndex: 9999,
3920
393
  left: position.left,
3921
394
  top: position.top,
3922
395
  minWidth: position.width
@@ -3926,9 +399,9 @@ function CellContextMenu({
3926
399
  var useCellContextMenu = ({
3927
400
  tdRef
3928
401
  }) => {
3929
- const [popoverPosition, setPopoverPosition] = React2.useState(null);
3930
- const [isContextMenuOpen, setIsContextMenuOpen] = React2.useState(false);
3931
- const handleOpenContextMenu = React2.useCallback((event) => {
402
+ const [popoverPosition, setPopoverPosition] = React5.useState(null);
403
+ const [isContextMenuOpen, setIsContextMenuOpen] = React5.useState(false);
404
+ const handleOpenContextMenu = React5.useCallback((event) => {
3932
405
  event.preventDefault();
3933
406
  event.stopPropagation();
3934
407
  if (tdRef.current) {
@@ -3942,7 +415,7 @@ var useCellContextMenu = ({
3942
415
  setIsContextMenuOpen(true);
3943
416
  }
3944
417
  }, [tdRef]);
3945
- const handleCloseContextMenu = React2.useCallback(() => {
418
+ const handleCloseContextMenu = React5.useCallback(() => {
3946
419
  setIsContextMenuOpen(false);
3947
420
  setPopoverPosition(null);
3948
421
  }, []);
@@ -3954,12 +427,15 @@ var useCellContextMenu = ({
3954
427
  };
3955
428
  };
3956
429
 
430
+ // src/object-table/TableCell.module.css
431
+ var TableCell_default = {};
432
+
3957
433
  // src/object-table/TableCell.tsx
3958
434
  function TableCell({
3959
435
  cell,
3960
436
  renderCellContextMenu
3961
437
  }) {
3962
- const tdRef = React2.useRef(null);
438
+ const tdRef = React5.useRef(null);
3963
439
  const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID;
3964
440
  const {
3965
441
  isContextMenuOpen,
@@ -3970,15 +446,16 @@ function TableCell({
3970
446
  tdRef
3971
447
  });
3972
448
  const shouldRenderContextMenu = !isSelectColumn && isContextMenuOpen && !!popoverPosition && !!renderCellContextMenu;
3973
- return /* @__PURE__ */ React2__namespace.default.createElement(React2__namespace.default.Fragment, null, /* @__PURE__ */ React2__namespace.default.createElement("td", {
449
+ return /* @__PURE__ */ React5__default.default.createElement(React5__default.default.Fragment, null, /* @__PURE__ */ React5__default.default.createElement("td", {
3974
450
  ref: tdRef,
451
+ className: TableCell_default.osdkTableCell,
3975
452
  style: {
3976
- display: "flex",
3977
- alignItems: "center",
3978
453
  width: cell.column.getSize()
3979
454
  },
3980
455
  onContextMenu: handleOpenContextMenu
3981
- }, flexRender(cell.column.columnDef.cell, cell.getContext())), shouldRenderContextMenu && /* @__PURE__ */ React2__namespace.default.createElement(CellContextMenu, {
456
+ }, /* @__PURE__ */ React5__default.default.createElement("div", {
457
+ className: TableCell_default.osdkTableCellContent
458
+ }, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /* @__PURE__ */ React5__default.default.createElement(CellContextMenu, {
3982
459
  cell,
3983
460
  position: popoverPosition,
3984
461
  onClose: handleCloseContextMenu,
@@ -3986,6 +463,9 @@ function TableCell({
3986
463
  }));
3987
464
  }
3988
465
 
466
+ // src/object-table/TableRow.module.css
467
+ var TableRow_default = {};
468
+
3989
469
  // src/object-table/TableRow.tsx
3990
470
  function TableRow({
3991
471
  row,
@@ -3993,18 +473,18 @@ function TableRow({
3993
473
  onRowClick,
3994
474
  renderCellContextMenu
3995
475
  }) {
3996
- const handleClick = React2.useCallback(() => {
476
+ const handleClick = React5.useCallback(() => {
3997
477
  onRowClick?.(row.original);
3998
478
  }, [onRowClick, row.original]);
3999
- return /* @__PURE__ */ React2__namespace.default.createElement("tr", {
479
+ return /* @__PURE__ */ React5__default.default.createElement("tr", {
480
+ "data-selected": row.getIsSelected(),
481
+ className: TableRow_default.osdkTableRow,
4000
482
  style: {
4001
- position: "absolute",
4002
483
  height: `${virtualRow.size}px`,
4003
- transform: `translateY(${virtualRow.start}px)`,
4004
- display: "flex"
484
+ transform: `translateY(${virtualRow.start}px)`
4005
485
  },
4006
486
  onClick: handleClick
4007
- }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React2__namespace.default.createElement(TableCell, {
487
+ }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React5__default.default.createElement(TableCell, {
4008
488
  key: cell.id,
4009
489
  cell,
4010
490
  renderCellContextMenu
@@ -4019,24 +499,23 @@ function TableBody({
4019
499
  renderCellContextMenu,
4020
500
  rowHeight = 40
4021
501
  }) {
4022
- const rowVirtualizer = useVirtualizer({
502
+ const rowVirtualizer = reactVirtual.useVirtualizer({
4023
503
  count: rows.length,
4024
504
  estimateSize: () => rowHeight,
4025
505
  getScrollElement: () => tableContainerRef.current,
4026
506
  overscan: 5
4027
507
  });
4028
- React2.useLayoutEffect(() => {
508
+ React5.useLayoutEffect(() => {
4029
509
  rowVirtualizer.measure();
4030
510
  }, [rowVirtualizer, rows.length]);
4031
- return /* @__PURE__ */ React2__namespace.default.createElement("tbody", {
511
+ return /* @__PURE__ */ React5__default.default.createElement("tbody", {
512
+ className: TableBody_default.osdkTableBody,
4032
513
  style: {
4033
- display: "grid",
4034
- position: "relative",
4035
514
  height: `${rowVirtualizer.getTotalSize()}px`
4036
515
  }
4037
516
  }, rowVirtualizer.getVirtualItems().map((virtualRow) => {
4038
517
  const row = rows[virtualRow.index];
4039
- return /* @__PURE__ */ React2__namespace.default.createElement(TableRow, {
518
+ return /* @__PURE__ */ React5__default.default.createElement(TableRow, {
4040
519
  key: row.id,
4041
520
  row,
4042
521
  virtualRow,
@@ -4045,49 +524,33 @@ function TableBody({
4045
524
  });
4046
525
  }));
4047
526
  }
527
+
528
+ // src/object-table/TableHeader.module.css
529
+ var TableHeader_default = {};
530
+
531
+ // src/object-table/TableHeader.tsx
4048
532
  function TableHeader({
4049
533
  table
4050
534
  }) {
4051
- return /* @__PURE__ */ React2__namespace.default.createElement("thead", {
4052
- style: {
4053
- display: "grid",
4054
- position: "sticky",
4055
- top: 0,
4056
- zIndex: 1
4057
- }
4058
- }, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React2__namespace.default.createElement("tr", {
535
+ const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;
536
+ return /* @__PURE__ */ React5__default.default.createElement("thead", {
537
+ className: TableHeader_default.osdkTableHeader,
538
+ "data-resizing": isResizing
539
+ }, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React5__default.default.createElement("tr", {
4059
540
  key: headerGroup.id,
541
+ className: TableHeader_default.osdkTableHeaderRow
542
+ }, headerGroup.headers.map((header) => /* @__PURE__ */ React5__default.default.createElement("th", {
543
+ key: header.id,
544
+ className: TableHeader_default.osdkTableHeaderCell,
4060
545
  style: {
4061
- display: "flex"
546
+ width: header.getSize()
4062
547
  }
4063
- }, headerGroup.headers.map((header) => (
4064
- // TODO: Move inline styling to CSS file
4065
- /* @__PURE__ */ React2__namespace.default.createElement("th", {
4066
- key: header.id,
4067
- style: {
4068
- display: "flex",
4069
- width: header.getSize(),
4070
- justifyContent: "flex-start",
4071
- alignItems: "center",
4072
- position: "relative"
4073
- }
4074
- }, header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()), header.column.getCanResize() && /* @__PURE__ */ React2__namespace.default.createElement("div", {
4075
- onDoubleClick: () => header.column.resetSize(),
4076
- onMouseDown: header.getResizeHandler(),
4077
- onTouchStart: header.getResizeHandler(),
4078
- style: {
4079
- position: "absolute",
4080
- right: 0,
4081
- top: 0,
4082
- height: "100%",
4083
- width: "3px",
4084
- cursor: "col-resize",
4085
- touchAction: "none",
4086
- zIndex: 11,
4087
- transform: header.column.getIsResizing() ? `translateX(${table.getState().columnSizingInfo.deltaOffset ?? 0}px)` : ""
4088
- }
4089
- }))
4090
- )))));
548
+ }, header.isPlaceholder ? null : reactTable.flexRender(header.column.columnDef.header, header.getContext()), header.column.getCanResize() && /* @__PURE__ */ React5__default.default.createElement("div", {
549
+ className: TableHeader_default.osdkTableHeaderResizer,
550
+ onDoubleClick: () => header.column.resetSize(),
551
+ onMouseDown: header.getResizeHandler(),
552
+ onTouchStart: header.getResizeHandler()
553
+ }))))));
4091
554
  }
4092
555
 
4093
556
  // src/object-table/Table.tsx
@@ -4097,11 +560,12 @@ function Table({
4097
560
  fetchNextPage,
4098
561
  onRowClick,
4099
562
  rowHeight,
4100
- renderCellContextMenu
563
+ renderCellContextMenu,
564
+ className
4101
565
  }) {
4102
- const tableContainerRef = React2.useRef(null);
4103
- const fetchingRef = React2.useRef(false);
4104
- const fetchMoreOnEndReached = React2.useCallback(async (containerRefElement) => {
566
+ const tableContainerRef = React5.useRef(null);
567
+ const fetchingRef = React5.useRef(false);
568
+ const fetchMoreOnEndReached = React5.useCallback(async (containerRefElement) => {
4105
569
  if (containerRefElement && !fetchingRef.current) {
4106
570
  const {
4107
571
  scrollHeight,
@@ -4118,28 +582,16 @@ function Table({
4118
582
  }
4119
583
  }
4120
584
  }, [fetchNextPage, isLoading]);
4121
- const handleScroll = React2.useCallback(async (e) => {
585
+ const handleScroll = React5.useCallback(async (e) => {
4122
586
  await fetchMoreOnEndReached(e.currentTarget);
4123
587
  }, [fetchMoreOnEndReached]);
4124
- return /* @__PURE__ */ React2__namespace.default.createElement("div", {
588
+ return /* @__PURE__ */ React5__default.default.createElement("div", {
4125
589
  ref: tableContainerRef,
4126
- style: {
4127
- position: "relative",
4128
- // needed for sticky header
4129
- height: "100%",
4130
- // needed for scrolling
4131
- overflow: "auto",
4132
- cursor: table.getState().columnSizingInfo?.isResizingColumn ? "col-resize" : "default",
4133
- userSelect: table.getState().columnSizingInfo?.isResizingColumn ? "none" : "auto"
4134
- },
590
+ className: classnames__default.default(Table_default.osdkTableContainer, className),
4135
591
  onScroll: handleScroll
4136
- }, /* @__PURE__ */ React2__namespace.default.createElement("table", {
4137
- style: {
4138
- display: "grid"
4139
- }
4140
- }, /* @__PURE__ */ React2__namespace.default.createElement(TableHeader, {
592
+ }, /* @__PURE__ */ React5__default.default.createElement("table", null, /* @__PURE__ */ React5__default.default.createElement(TableHeader, {
4141
593
  table
4142
- }), /* @__PURE__ */ React2__namespace.default.createElement(TableBody, {
594
+ }), /* @__PURE__ */ React5__default.default.createElement(TableBody, {
4143
595
  rows: table.getRowModel().rows,
4144
596
  tableContainerRef,
4145
597
  onRowClick,
@@ -4174,7 +626,7 @@ function ObjectTable({
4174
626
  } = useDefaultTableStates({
4175
627
  columnDefinitions
4176
628
  });
4177
- const [columnSizing, setColumnSizing] = React2.useState({});
629
+ const [columnSizing, setColumnSizing] = React5.useState({});
4178
630
  const {
4179
631
  rowSelection,
4180
632
  isAllSelected,
@@ -4194,13 +646,13 @@ function ObjectTable({
4194
646
  onToggleAll,
4195
647
  onToggleRow
4196
648
  });
4197
- const allColumns = React2.useMemo(() => {
649
+ const allColumns = React5.useMemo(() => {
4198
650
  return selectionColumn ? [selectionColumn, ...columns] : columns;
4199
651
  }, [selectionColumn, columns]);
4200
- const table = useReactTable({
652
+ const table = reactTable.useReactTable({
4201
653
  data: data ?? [],
4202
654
  columns: allColumns,
4203
- getCoreRowModel: getCoreRowModel(),
655
+ getCoreRowModel: reactTable.getCoreRowModel(),
4204
656
  state: {
4205
657
  columnVisibility,
4206
658
  rowSelection,
@@ -4215,45 +667,20 @@ function ObjectTable({
4215
667
  },
4216
668
  getRowId
4217
669
  });
4218
- const onRenderCellContextMenu = React2.useCallback((row, cell) => {
670
+ const onRenderCellContextMenu = React5.useCallback((row, cell) => {
4219
671
  return renderCellContextMenu?.(row, cell.getValue());
4220
672
  }, [renderCellContextMenu]);
4221
673
  const isTableLoading = isLoading || isColumnsLoading;
4222
- return /* @__PURE__ */ React2__namespace.default.createElement(Table, {
674
+ return /* @__PURE__ */ React5__default.default.createElement(Table, {
4223
675
  table,
4224
676
  isLoading: isTableLoading,
4225
677
  fetchNextPage: fetchMore,
4226
678
  onRowClick: props.onRowClick,
4227
679
  rowHeight: props.rowHeight,
4228
- renderCellContextMenu: onRenderCellContextMenu
680
+ renderCellContextMenu: onRenderCellContextMenu,
681
+ className: props.className
4229
682
  });
4230
683
  }
4231
- /*! Bundled license information:
4232
-
4233
- @tanstack/table-core/build/lib/index.mjs:
4234
- (**
4235
- * table-core
4236
- *
4237
- * Copyright (c) TanStack
4238
- *
4239
- * This source code is licensed under the MIT license found in the
4240
- * LICENSE.md file in the root directory of this source tree.
4241
- *
4242
- * @license MIT
4243
- *)
4244
-
4245
- @tanstack/react-table/build/lib/index.mjs:
4246
- (**
4247
- * react-table
4248
- *
4249
- * Copyright (c) TanStack
4250
- *
4251
- * This source code is licensed under the MIT license found in the
4252
- * LICENSE.md file in the root directory of this source tree.
4253
- *
4254
- * @license MIT
4255
- *)
4256
- */
4257
684
 
4258
685
  exports.ObjectTable = ObjectTable;
4259
686
  //# sourceMappingURL=experimental.cjs.map