@osdk/react-components 0.0.0 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +56 -6
  3. package/build/browser/object-table/ObjectTable.js +70 -0
  4. package/build/browser/object-table/ObjectTable.js.map +1 -0
  5. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  6. package/build/browser/object-table/Table.js +77 -0
  7. package/build/browser/object-table/Table.js.map +1 -0
  8. package/build/browser/object-table/TableBody.js +54 -0
  9. package/build/browser/object-table/TableBody.js.map +1 -0
  10. package/build/browser/object-table/TableHeader.js +47 -0
  11. package/build/browser/object-table/TableHeader.js.map +1 -0
  12. package/build/browser/object-table/TableRow.js +44 -0
  13. package/build/browser/object-table/TableRow.js.map +1 -0
  14. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +508 -0
  15. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -0
  16. package/build/browser/object-table/hooks/__tests__/useDefaultTableStates.test.js +178 -0
  17. package/build/browser/object-table/hooks/__tests__/useDefaultTableStates.test.js.map +1 -0
  18. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +217 -0
  19. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -0
  20. package/build/browser/object-table/hooks/useColumnDefs.js +87 -0
  21. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -0
  22. package/build/browser/object-table/hooks/useDefaultTableStates.js +43 -0
  23. package/build/browser/object-table/hooks/useDefaultTableStates.js.map +1 -0
  24. package/build/browser/object-table/hooks/useObjectTableData.js +48 -0
  25. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -0
  26. package/build/browser/public/experimental.js +17 -1
  27. package/build/browser/public/experimental.js.map +1 -1
  28. package/build/cjs/public/experimental.cjs +3880 -0
  29. package/build/cjs/public/experimental.cjs.map +1 -1
  30. package/build/cjs/public/experimental.d.cts +36 -9
  31. package/build/esm/object-table/ObjectTable.js +70 -0
  32. package/build/esm/object-table/ObjectTable.js.map +1 -0
  33. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  34. package/build/esm/object-table/Table.js +77 -0
  35. package/build/esm/object-table/Table.js.map +1 -0
  36. package/build/esm/object-table/TableBody.js +54 -0
  37. package/build/esm/object-table/TableBody.js.map +1 -0
  38. package/build/esm/object-table/TableHeader.js +47 -0
  39. package/build/esm/object-table/TableHeader.js.map +1 -0
  40. package/build/esm/object-table/TableRow.js +44 -0
  41. package/build/esm/object-table/TableRow.js.map +1 -0
  42. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +508 -0
  43. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -0
  44. package/build/esm/object-table/hooks/__tests__/useDefaultTableStates.test.js +178 -0
  45. package/build/esm/object-table/hooks/__tests__/useDefaultTableStates.test.js.map +1 -0
  46. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +217 -0
  47. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -0
  48. package/build/esm/object-table/hooks/useColumnDefs.js +87 -0
  49. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -0
  50. package/build/esm/object-table/hooks/useDefaultTableStates.js +43 -0
  51. package/build/esm/object-table/hooks/useDefaultTableStates.js.map +1 -0
  52. package/build/esm/object-table/hooks/useObjectTableData.js +48 -0
  53. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -0
  54. package/build/esm/public/experimental.js +17 -1
  55. package/build/esm/public/experimental.js.map +1 -1
  56. package/build/types/object-table/ObjectTable.d.ts +16 -0
  57. package/build/types/object-table/ObjectTable.d.ts.map +1 -0
  58. package/build/types/object-table/ObjectTableApi.d.ts +27 -12
  59. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  60. package/build/types/object-table/Table.d.ts +11 -0
  61. package/build/types/object-table/Table.d.ts.map +1 -0
  62. package/build/types/object-table/TableBody.d.ts +10 -0
  63. package/build/types/object-table/TableBody.d.ts.map +1 -0
  64. package/build/types/object-table/TableHeader.d.ts +7 -0
  65. package/build/types/object-table/TableHeader.d.ts.map +1 -0
  66. package/build/types/object-table/TableRow.d.ts +10 -0
  67. package/build/types/object-table/TableRow.d.ts.map +1 -0
  68. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +1 -0
  69. package/build/types/object-table/hooks/__tests__/useDefaultTableStates.test.d.ts +1 -0
  70. package/build/types/object-table/hooks/__tests__/useDefaultTableStates.test.d.ts.map +1 -0
  71. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +1 -0
  72. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +1 -0
  73. package/build/types/object-table/hooks/useColumnDefs.d.ts +20 -0
  74. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -0
  75. package/build/types/object-table/hooks/useDefaultTableStates.d.ts +19 -0
  76. package/build/types/object-table/hooks/useDefaultTableStates.d.ts.map +1 -0
  77. package/build/types/object-table/hooks/useObjectTableData.d.ts +13 -0
  78. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -0
  79. package/build/types/public/experimental.d.ts +2 -1
  80. package/build/types/public/experimental.d.ts.map +1 -1
  81. package/package.json +9 -4
  82. package/build/browser/junk.test.js +0 -23
  83. package/build/browser/junk.test.js.map +0 -1
  84. package/build/esm/junk.test.js +0 -23
  85. package/build/esm/junk.test.js.map +0 -1
  86. package/build/types/junk.test.d.ts.map +0 -1
  87. /package/build/types/{junk.test.d.ts → object-table/hooks/__tests__/useColumnDefs.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"experimental.cjs"}
1
+ {"version":3,"sources":["../../../../../node_modules/.pnpm/@tanstack+table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.mjs","../../../../../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","../../../src/object-table/hooks/useColumnDefs.ts","../../../src/object-table/hooks/useDefaultTableStates.ts","../../../src/object-table/hooks/useObjectTableData.ts","../../../../../node_modules/.pnpm/@tanstack+virtual-core@3.13.17/node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../../../node_modules/.pnpm/@tanstack+virtual-core@3.13.17/node_modules/@tanstack/virtual-core/dist/esm/index.js","../../../../../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","../../../src/object-table/TableRow.tsx","../../../src/object-table/TableBody.tsx","../../../src/object-table/TableHeader.tsx","../../../src/object-table/Table.tsx","../../../src/object-table/ObjectTable.tsx"],"names":["table","column","row","cell","orderColumns","min","max","sum","count","header","e","options","columnDefs","React","useOsdkMetadata","useMemo","useObjectSet","memo","React2","flushSync","useCallback","useLayoutEffect","useRef"],"mappings":"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","file":"experimental.cjs","sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n 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 => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n 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));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() :\n // @ts-ignore\n (_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];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n 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;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n 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;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n 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;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n 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);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n 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];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n 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);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n 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;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n 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);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n 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;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n 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;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n 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];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n 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]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n 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);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n 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);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n 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);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n 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];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n 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;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n 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;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n 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}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };","/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\nexport { flexRender, useReactTable };","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkMetadata } from \"@osdk/react\";\nimport { useMemo } from \"react\";\n/**\n * Hook which builds column definitions for tanstack-table given the objectSet\n */\nexport function useColumnDefs(objectType, columnDefinitions) {\n const {\n metadata,\n loading,\n error\n } = useOsdkMetadata(objectType);\n const columns = useMemo(() => {\n const objectProperties = metadata?.properties;\n // If columnDefinitions is provided, construct colDefs with it\n if (columnDefinitions) {\n return getColumnsFromColumnDefinitions(columnDefinitions, objectProperties);\n }\n\n // If not, return the default columns from the object properties\n return getDefaultColumns(objectProperties);\n }, [columnDefinitions, metadata?.properties]);\n return {\n columns,\n loading,\n error\n };\n}\nfunction getColumnsFromColumnDefinitions(columnDefinitions, objectProperties) {\n return columnDefinitions.map(col => {\n const {\n locator,\n width,\n minWidth,\n maxWidth,\n resizable,\n orderable,\n filterable,\n renderCell,\n renderHeader\n } = col;\n const propertyMetadata = locator.type === \"property\" ? objectProperties?.[locator.id] : undefined;\n const colKey = locator.id;\n const colDef = {\n id: colKey,\n accessorKey: colKey,\n header: renderHeader ?? propertyMetadata?.displayName,\n size: width,\n minSize: minWidth,\n maxSize: maxWidth,\n enableResizing: resizable,\n enableSorting: orderable,\n enableColumnFilter: filterable,\n cell: cellContext => {\n const object = cellContext.row.original;\n return renderCell ? renderCell(object, locator) : cellContext.getValue();\n }\n };\n return colDef;\n });\n}\nfunction getDefaultColumns(objectProperties) {\n if (!objectProperties) return [];\n return Object.entries(objectProperties).map(([key, property]) => {\n const colDef = {\n accessorKey: key,\n header: property.displayName ?? key\n };\n return colDef;\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useMemo } from \"react\";\nexport const useDefaultTableStates = ({\n columnDefinitions\n}) => {\n const columnVisibility = useMemo(() => {\n if (columnDefinitions) {\n const colVisibility = columnDefinitions.reduce((acc, colDef) => {\n if (colDef.isVisible !== undefined) {\n const {\n locator\n } = colDef;\n const colKey = locator.id;\n return {\n ...acc,\n [colKey]: colDef.isVisible\n };\n }\n return acc;\n }, {});\n return colVisibility;\n }\n }, [columnDefinitions]);\n return {\n columnVisibility\n };\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useObjectSet } from \"@osdk/react/experimental\";\nimport { useMemo } from \"react\";\nconst PAGE_SIZE = 50;\n\n/**\n * This hook is a wrapper around useObjectSet\n * It extracts RDP locators from columnDefinitions and calls useObjectSet + withProperties\n * to return data containing the derived properties.\n */\n\nexport function useObjectTableData(objectSet, columnDefinitions) {\n // Extract derived properties definition to be passed to useObjectSet hook\n const withProperties = useMemo(() => {\n if (!columnDefinitions) {\n return;\n }\n const rdpColumns = columnDefinitions.map(colDef => colDef.locator).filter(colLocator => {\n return colLocator.type === \"rdp\";\n });\n return rdpColumns.reduce((acc, cur) => {\n return {\n ...acc,\n [cur.id]: cur.creator\n };\n }, {});\n }, [columnDefinitions]);\n return useObjectSet(objectSet, {\n withProperties,\n pageSize: PAGE_SIZE\n });\n}","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a, _b, _c;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = newDeps => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function (...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport { approxEqual, debounce, memo, notUndefined };","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = element => {\n const {\n offsetWidth,\n offsetHeight\n } = element;\n return {\n width: offsetWidth,\n height: offsetHeight\n };\n};\nconst defaultKeyExtractor = index => index;\nconst defaultRangeExtractor = range => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = rect => {\n const {\n width,\n height\n } = rect;\n cb({\n width: Math.round(width),\n height: Math.round(height)\n });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {};\n }\n const observer = new targetWindow.ResizeObserver(entries => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({\n width: box.inlineSize,\n height: box.blockSize\n });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, {\n box: \"border-box\"\n });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({\n width: element.innerWidth,\n height: element.innerHeight\n });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(targetWindow, () => {\n cb(offset, false);\n }, instance.options.isScrollingResetDelay);\n const createHandler = isScrolling => () => {\n const {\n horizontal,\n isRtl\n } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(targetWindow, () => {\n cb(offset, false);\n }, instance.options.isScrollingResetDelay);\n const createHandler = isScrolling => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]);\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.currentScrollToIndex = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */new Map();\n this.laneAssignments = /* @__PURE__ */new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */new Map();\n this.observer = /* @__PURE__ */(() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver(entries => {\n entries.forEach(entry => {\n const run = () => {\n this._measureElement(entry.target, entry);\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: target => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, {\n box: \"border-box\"\n });\n },\n unobserve: target => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = opts2 => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {},\n measureElement,\n initialRect: {\n width: 0,\n height: 0\n },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n ...opts2\n };\n };\n this.notify = sync => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(() => {\n this.calculateRange();\n return [this.isScrolling, this.range ? this.range.startIndex : null, this.range ? this.range.endIndex : null];\n }, isScrolling => {\n this.notify(isScrolling);\n }, {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [this.isScrolling, this.range ? this.range.startIndex : null, this.range ? this.range.endIndex : null]\n });\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach(d => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach(cached => {\n this.observer.observe(cached);\n });\n this.unsubs.push(this.options.observeElementRect(this, rect => {\n this.scrollRect = rect;\n this.maybeNotify();\n }));\n this.unsubs.push(this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n }));\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */new Map();\n const furthestMeasurements = /* @__PURE__ */new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(measurement.lane);\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(() => [this.options.count, this.options.paddingStart, this.options.scrollMargin, this.options.getItemKey, this.options.enabled, this.options.lanes], (count, paddingStart, scrollMargin, getItemKey, enabled, lanes) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes\n };\n }, {\n key: false,\n skipInitialOnChange: true,\n onChange: () => {\n this.notify(this.isScrolling);\n }\n });\n this.getMeasurements = memo(() => [this.getMeasurementOptions(), this.itemSizeCache], ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes\n }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMeasuredCacheIndexes = [];\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach(item => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(void 0);\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n }, {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n });\n this.calculateRange = memo(() => [this.getMeasurements(), this.getSize(), this.getScrollOffset(), this.options.lanes], (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n }, {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n });\n this.getVirtualIndexes = memo(() => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [this.options.rangeExtractor, this.options.overscan, this.options.count, startIndex, endIndex];\n }, (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n }, {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n });\n this.indexFromElement = node => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(`Missing attribute name '${attributeName}={index}' on measured element.`);\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = node => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(() => [this.getVirtualIndexes(), this.getMeasurements()], (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n }, {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n });\n this.getVirtualItemForOffset = offset => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(measurements[findNearestBinarySearch(0, measurements.length - 1, index => notUndefined(measurements[index]).start, offset)]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [this.getOffsetForAlignment(toOffset, align, item.size), align];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.scrollToOffset = (toOffset, {\n align = \"start\",\n behavior\n } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\"The `smooth` scroll behavior is not fully supported with dynamic size.\");\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior\n } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\"The `smooth` scroll behavior is not fully supported with dynamic size.\");\n }\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.currentScrollToIndex = index;\n let attempts = 0;\n const maxAttempts = 10;\n const tryScroll = currentAlign => {\n if (!this.targetWindow) return;\n const offsetInfo = this.getOffsetForIndex(index, currentAlign);\n if (!offsetInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n const [offset, align] = offsetInfo;\n this._scrollToOffset(offset, {\n adjustments: void 0,\n behavior\n });\n this.targetWindow.requestAnimationFrame(() => {\n const verify = () => {\n if (this.currentScrollToIndex !== index) return;\n const currentOffset = this.getScrollOffset();\n const afterInfo = this.getOffsetForIndex(index, align);\n if (!afterInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n if (!approxEqual(afterInfo[0], currentOffset)) {\n scheduleRetry(align);\n }\n };\n if (this.isDynamicMode()) {\n this.targetWindow.requestAnimationFrame(verify);\n } else {\n verify();\n }\n });\n };\n const scheduleRetry = align => {\n if (!this.targetWindow) return;\n if (this.currentScrollToIndex !== index) return;\n attempts++;\n if (attempts < maxAttempts) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"Schedule retry\", attempts, maxAttempts);\n }\n this.targetWindow.requestAnimationFrame(() => tryScroll(align));\n } else {\n console.warn(`Failed to scroll to index ${index} after ${maxAttempts} attempts.`);\n }\n };\n tryScroll(initialAlign);\n };\n this.scrollBy = (delta, {\n behavior\n } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\"The `smooth` scroll behavior is not fully supported with dynamic size.\");\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some(val => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter(val => val !== null));\n }\n return Math.max(end - this.options.scrollMargin + this.options.paddingEnd, 0);\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, {\n behavior,\n adjustments\n }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */new Map();\n this.laneAssignments = /* @__PURE__ */new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = index => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(0, lastIndex, getOffset, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some(pos => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some(pos => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return {\n startIndex,\n endIndex\n };\n}\nexport { Virtualizer, approxEqual, debounce, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, memo, notUndefined, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, windowScroll };","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n ...options\n}) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(() => new Virtualizer(resolvedOptions));\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport { useVirtualizer, useWindowVirtualizer };","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender } from \"@tanstack/react-table\";\nimport React, { useCallback } from \"react\";\nexport function TableRow({\n row,\n virtualRow,\n onRowClick\n}) {\n const handleClick = useCallback(() => {\n onRowClick?.(row.original);\n }, [onRowClick, row.original]);\n return /*#__PURE__*/React.createElement(\"tr\", {\n style: {\n position: \"absolute\",\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n display: \"flex\"\n },\n onClick: handleClick\n }, row.getVisibleCells().map(cell => /*#__PURE__*/React.createElement(\"td\", {\n key: cell.id,\n style: {\n display: \"flex\",\n alignItems: \"center\",\n width: cell.column.getSize()\n }\n }, flexRender(cell.column.columnDef.cell, cell.getContext()))));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useLayoutEffect } from \"react\";\nimport { TableRow } from \"./TableRow.js\";\nexport function TableBody({\n rows,\n tableContainerRef,\n onRowClick,\n rowHeight = 40\n}) {\n // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders.\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight,\n getScrollElement: () => tableContainerRef.current,\n overscan: 5\n });\n\n // Measure the virtualizer after the DOM has been laid out to ensure proper dimensions\n useLayoutEffect(() => {\n rowVirtualizer.measure();\n }, [rowVirtualizer, rows.length]);\n return /*#__PURE__*/React.createElement(\"tbody\", {\n style: {\n display: \"grid\",\n position: \"relative\",\n height: `${rowVirtualizer.getTotalSize()}px`\n }\n }, rowVirtualizer.getVirtualItems().map(virtualRow => {\n const row = rows[virtualRow.index];\n return /*#__PURE__*/React.createElement(TableRow, {\n key: row.id,\n row: row,\n virtualRow: virtualRow,\n onRowClick: onRowClick\n });\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender } from \"@tanstack/react-table\";\nimport React from \"react\";\nexport function TableHeader({\n headerGroups\n}) {\n return /*#__PURE__*/React.createElement(\"thead\", {\n style: {\n display: \"grid\",\n position: \"sticky\",\n top: 0,\n zIndex: 1\n }\n }, headerGroups.map(headerGroup => /*#__PURE__*/React.createElement(\"tr\", {\n key: headerGroup.id,\n style: {\n display: \"flex\"\n }\n }, headerGroup.headers.map(header =>\n /*#__PURE__*/\n // TODO: Move inline styling to CSS file\n React.createElement(\"th\", {\n key: header.id,\n style: {\n display: \"flex\",\n width: header.getSize(),\n justifyContent: \"flex-start\",\n alignItems: \"center\"\n }\n }, header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()))))));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback, useRef } from \"react\";\nimport { TableBody } from \"./TableBody.js\";\nimport { TableHeader } from \"./TableHeader.js\";\nexport function Table({\n table,\n isLoading,\n fetchNextPage,\n onRowClick,\n rowHeight\n}) {\n const tableContainerRef = useRef(null);\n\n // Using a ref to prevent duplicate fetches from rapid scroll events while a fetch is in-flight\n const fetchingRef = useRef(false);\n const fetchMoreOnEndReached = useCallback(async containerRefElement => {\n if (containerRefElement && !fetchingRef.current) {\n const {\n scrollHeight,\n scrollTop,\n clientHeight\n } = containerRefElement;\n if (scrollHeight - scrollTop - clientHeight < 100 && !isLoading) {\n fetchingRef.current = true;\n try {\n await fetchNextPage?.();\n } finally {\n fetchingRef.current = false;\n }\n }\n }\n }, [fetchNextPage, isLoading]);\n const handleScroll = useCallback(async e => {\n await fetchMoreOnEndReached(e.currentTarget);\n }, [fetchMoreOnEndReached]);\n\n // TODO: Handle error, loading and empty states\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: tableContainerRef,\n style: {\n position: \"relative\",\n // needed for sticky header\n height: \"100%\",\n // needed for scrolling\n overflow: \"auto\"\n },\n onScroll: handleScroll\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: {\n display: \"grid\"\n }\n }, /*#__PURE__*/React.createElement(TableHeader, {\n headerGroups: table.getHeaderGroups()\n }), /*#__PURE__*/React.createElement(TableBody, {\n rows: table.getRowModel().rows,\n tableContainerRef: tableContainerRef,\n onRowClick: onRowClick,\n rowHeight: rowHeight\n })));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\nimport React from \"react\";\nimport { useColumnDefs } from \"./hooks/useColumnDefs.js\";\nimport { useDefaultTableStates } from \"./hooks/useDefaultTableStates.js\";\nimport { useObjectTableData } from \"./hooks/useObjectTableData.js\";\nimport { Table } from \"./Table.js\";\n\n/**\n * ObjectTable - A headless table component for displaying OSDK object sets\n *\n * @example\n * ```tsx\n * <ObjectTable objectSet={myObjectSet} objectType={MyObjectType} />\n * ```\n */\n\nexport function ObjectTable({\n objectSet,\n objectType,\n columnDefinitions,\n onRowClick,\n rowHeight\n}) {\n const {\n data,\n fetchMore,\n isLoading\n } = useObjectTableData(objectSet, columnDefinitions);\n const {\n columns,\n loading: isColumnsLoading\n } = useColumnDefs(objectType, columnDefinitions);\n const {\n columnVisibility\n } = useDefaultTableStates({\n columnDefinitions\n });\n const table = useReactTable({\n data: data ?? [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n state: {\n columnVisibility\n }\n });\n const isTableLoading = isLoading || isColumnsLoading;\n return /*#__PURE__*/React.createElement(Table, {\n table: table,\n isLoading: isTableLoading,\n fetchNextPage: fetchMore,\n onRowClick: onRowClick,\n rowHeight: rowHeight\n });\n}"]}