@tanstack/react-table 8.8.5 → 8.9.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.
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs.map +1 -1
- package/build/umd/index.development.js +27 -12
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.production.js","sources":["../../../table-core/build/lib/index.mjs","../../src/index.tsx"],"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// 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 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 () => {\n let depTime;\n if (opts.key && opts.debug) 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 && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : 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}\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 ? accessorKey.replace('.', '_') : 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 }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n }\n }),\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 }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n })\n };\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, table));\n }, column);\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column;\n}\n\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 Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, table));\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n return {\n // Header Groups\n\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugHeaders;\n }\n }),\n // Footer Groups\n\n getFooterGroups: memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _table$options$debugA6;\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _table$options$debugA7;\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _table$options$debugA8;\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugHeaders;\n }\n }),\n // Flat Headers\n\n getFlatHeaders: memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _table$options$debugA9;\n return (_table$options$debugA9 = table.options.debugAll) != null ? _table$options$debugA9 : table.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _table$options$debugA10;\n return (_table$options$debugA10 = table.options.debugAll) != null ? _table$options$debugA10 : table.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _table$options$debugA11;\n return (_table$options$debugA11 = table.options.debugAll) != null ? _table$options$debugA11 : table.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _table$options$debugA12;\n return (_table$options$debugA12 = table.options.debugAll) != null ? _table$options$debugA12 : table.options.debugHeaders;\n }\n }),\n // Leaf Headers\n\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _table$options$debugA13;\n return (_table$options$debugA13 = table.options.debugAll) != null ? _table$options$debugA13 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _table$options$debugA14;\n return (_table$options$debugA14 = table.options.debugAll) != null ? _table$options$debugA14 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _table$options$debugA15;\n return (_table$options$debugA15 = table.options.debugAll) != null ? _table$options$debugA15 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _table$options$debugA16;\n return (_table$options$debugA16 = table.options.debugAll) != null ? _table$options$debugA16 : table.options.debugHeaders;\n }\n })\n };\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}\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 onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n return {\n 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 getStart: position => {\n const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n return 0;\n },\n resetSize: () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n 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 getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, table) => {\n return {\n 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 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 getResizeHandler: () => {\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 ? void 0 : 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 deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\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 mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.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 document.removeEventListener('touchmove', touchEvents.moveHandler);\n document.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 document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.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 },\n createTable: table => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n },\n 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 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 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 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 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 }\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 Expanding = {\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 return {\n _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 setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n },\n 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 getCanSomeRowsExpand: () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n table.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n 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 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 getPreExpandedRowModel: () => table.getSortedRowModel(),\n 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 },\n createRow: (row, table) => {\n return {\n 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 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 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 getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue, _row$getValue$toStrin, _row$getValue$toStrin2;\n const search = filterValue.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null ? void 0 : (_row$getValue$toStrin = _row$getValue.toString()) == null ? void 0 : (_row$getValue$toStrin2 = _row$getValue$toStrin.toLowerCase()) == null ? void 0 : _row$getValue$toStrin2.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2, _row$getValue2$toStri;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null ? void 0 : (_row$getValue2$toStri = _row$getValue2.toString()) == null ? void 0 : _row$getValue2$toStri.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3, _row$getValue3$toStri;\n return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : (_row$getValue3$toStri = _row$getValue3.toString()) == null ? void 0 : _row$getValue3$toStri.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) || !(val != null && val.length);\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 Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode, _table$getCoreRowMode2;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null ? void 0 : (_table$getCoreRowMode2 = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode2.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n return {\n 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 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 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 getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _table$options$enable3, _table$options$enable4, _table$options$getCol;\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_table$options$enable3 = table.options.enableGlobalFilter) != null ? _table$options$enable3 : true) && ((_table$options$enable4 = table.options.enableFilters) != null ? _table$options$enable4 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _table$getState$colum, _table$getState$colum2;\n return (_table$getState$colum = table.getState().columnFilters) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum2.value;\n },\n getFilterIndex: () => {\n var _table$getState$colum3, _table$getState$colum4;\n return (_table$getState$colum3 = (_table$getState$colum4 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum4.findIndex(d => d.id === column.id)) != null ? _table$getState$colum3 : -1;\n },\n 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 _getFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n }\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n };\n },\n\n createRow: (row, table) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createTable: table => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n var _table$options$filter3, _table$options$filter4;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : (_table$options$filter3 = (_table$options$filter4 = table.options.filterFns) == null ? void 0 : _table$options$filter4[globalFilterFn]) != null ? _table$options$filter3 : filterFns[globalFilterFn];\n },\n 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 ? void 0 : table.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange == null ? void 0 : table.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n },\n 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 getPreFilteredRowModel: () => table.getCoreRowModel(),\n 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 _getGlobalFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n }\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}\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 let min = 0;\n let max = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (typeof value === 'number') {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n });\n return (min + max) / 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 Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null ? void 0 : _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 return {\n 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 getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : table.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n 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 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 getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n 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 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 },\n createTable: table => {\n return {\n setGrouping: updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater),\n 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 getPreGroupedRowModel: () => table.getFilteredRowModel(),\n 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 },\n createRow: row => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, table) => {\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n }\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 Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createTable: table => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n },\n _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 }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n })\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst Pagination = {\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 return {\n _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 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 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 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 resetPageIndex: defaultState => {\n var _table$initialState$p2, _table$initialState, _table$initialState$p3;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _table$initialState$p4, _table$initialState2, _table$initialState2$;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);\n },\n 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 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 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n 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 previousPage: () => {\n return table.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n 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 getPageCount: () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\n\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n return {\n 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 getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);\n });\n },\n 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 getPinnedIndex: () => {\n var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n }\n };\n },\n createRow: (row, table) => {\n return {\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n return {\n setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());\n },\n 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 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _table$options$debugA6;\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;\n }\n })\n };\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\n createTable: table => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n },\n 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 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, table);\n });\n return rowSelection;\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 getPreSelectedRowModel: () => table.getCoreRowModel(),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;\n }\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 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 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 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 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 getToggleAllRowsSelectedHandler: () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, table);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n },\n getIsAllSubRowsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n },\n 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 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 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 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 }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, table) => {\n var _row$subRows;\n const row = table.getRow(id);\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 ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, 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 if (row.subRows && row.subRows.length) {\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 (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n }\n return false;\n}\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 Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\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 return {\n 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 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 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 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 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 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 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 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 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 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 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 getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createTable: table => {\n return {\n setSorting: updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater),\n 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 getPreSortedRowModel: () => table.getGroupedRowModel(),\n 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 }\n};\n\n//\n\nconst Visibility = {\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 return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _table$getState$colum, _table$getState$colum2;\n return (_table$getState$colum = (_table$getState$colum2 = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum2[column.id]) != null ? _table$getState$colum : true;\n },\n 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 getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\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 }, {\n key,\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n });\n };\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns()),\n setColumnVisibility: updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n },\n 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 getIsAllColumnsVisible: () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$initialState;\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n let table = {\n _features: 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: 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 ? void 0 : 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 getRow: id => {\n const row = table.getRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`);\n }\n throw new Error();\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 ? void 0 : _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 }, {\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\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 table._features.forEach(feature => {\n return Object.assign(table, feature.createTable == null ? void 0 : feature.createTable(table));\n });\n return table;\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 }), {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll\n })\n };\n table._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, table));\n }, {});\n return cell;\n}\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) : 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 }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, table));\n }\n return row;\n};\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// })\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\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\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 newFilteredRowsById[i] = row;\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = 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}\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.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 }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\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 var _facetedRowModel$flat;\n if (!facetedRowModel) return undefined;\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n let facetedMinMaxValues = [firstValue, firstValue];\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 (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n }\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\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];\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 isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\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 // Peform 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\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\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\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }\n });\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getValue(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}\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\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}\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n TableOptions,\n TableOptionsResolved,\n RowData,\n createTable,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> = React.ReactNode | React.ComponentType<TProps>\n\n//\n\nexport function flexRender<TProps extends object>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode | JSX.Element {\n return !Comp ? null : isReactComponent<TProps>(Comp) ? (\n <Comp {...props} />\n ) : (\n Comp\n )\n}\n\nfunction isReactComponent<TProps>(\n component: unknown\n): component is React.ComponentType<TProps> {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\nexport function useReactTable<TData extends RowData>(\n options: TableOptions<TData>\n) {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // 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<TData>(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?.(updater)\n },\n }))\n\n return tableRef.current\n}\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","result","deps","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","createColumn","table","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","_getDefaultColumnDef","accessorKey","accessorFn","id","replace","undefined","header","includes","originalRow","split","_result","Error","column","columns","getFlatColumns","_column$columns","flatMap","_table$options$debugA","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_table$options$debugA2","_features","reduce","obj","feature","Object","assign","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","getContext","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","_table$options$debugA3","getRightHeaderGroups","_right$map$filter2","_table$options$debugA4","getFooterGroups","headerGroups","reverse","_table$options$debugA5","getLeftFooterGroups","_table$options$debugA6","getCenterFooterGroups","_table$options$debugA7","getRightFooterGroups","_table$options$debugA8","getFlatHeaders","headers","_table$options$debugA9","getLeftFlatHeaders","_table$options$debugA10","getCenterFlatHeaders","_table$options$debugA11","getRightFlatHeaders","_table$options$debugA12","getCenterLeafHeaders","flatHeaders","_header$subHeaders","_table$options$debugA13","getLeftLeafHeaders","_header$subHeaders2","_table$options$debugA14","getRightLeafHeaders","_header$subHeaders3","_table$options$debugA15","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_table$options$debugA16","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_table$options$enable","enableResizing","enableColumnResizing","getIsResizing","sum","_header$column$getSiz","prevSiblingHeader","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","_e$touches$","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","defaultState","_table$initialState$c","initialState","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","_table$initialState","getCanSomeRowsExpand","getPrePaginationRowModel","flatRows","row","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","keys","getRowModel","getIsExpanded","getExpandedDepth","rowsById","splitId","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","_row$getValue$toStrin","_row$getValue$toStrin2","search","toLowerCase","getValue","toString","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","_row$getValue2$toStri","equalsString","_row$getValue3","_row$getValue3$toStri","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","isNaN","Infinity","temp","filterFns","Filters","filterFn","columnFilters","globalFilter","onColumnFiltersChange","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","_table$getCoreRowMode2","value","getCoreRowModel","_getAllCellsByColumnId","getAutoFilterFn","firstRow","Array","isArray","getFilterFn","_table$options$filter","_table$options$filter2","getCanFilter","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","_table$getState$colum4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","columnFiltersMeta","getGlobalAutoFilterFn","getGlobalFilterFn","_table$options$filter3","_table$options$filter4","getAllLeafColumns","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","unique","from","Set","uniqueCount","_columnId","Grouping","aggregatedCell","props","_toString","_props$getValue","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","prototype","call","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","fill","i","debugTable","getCanPreviousPage","getCanNextPage","previousPage","nextPage","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","Pinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","_table$initialState$r","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","getRow","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","compareBasic","a","b","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sort","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","_table$options$sortin","_table$options$sortin2","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","sortAction","newSorting","nextDesc","_table$options$maxMul","getCanMultiSort","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","enableHiding","getToggleVisibilityHandler","getAllCells","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","renderValue","_getColumnDefs","columnDefs","recurseColumns","groupingColumnDef","_getAllFlatColumnsById","flatColumns","acc","_cell$getValue","renderFallbackValue","original","rowIndex","parentId","_valuesCache","_uniqueValuesCache","hasOwnProperty","getUniqueValues","getLeafRows","getParentRow","getParentRows","parentRows","currentRow","parentRow","filterRows","filterRowImpl","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","filterRowModelFromLeafs","_table$options$maxLea2","filterRowModelFromRoot","expandRows","expandedRows","handleRow","accessor","display","group","Comp","component","proto","getPrototypeOf","isReactComponent","isClassComponent","$$typeof","description","isExoticComponent","React","createElement","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","_table$getColumn","facetedRowModel","_facetedRowModel$flat","firstValue","facetedMinMaxValues","j","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","filterMeta","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","_groupedRows$0$getVal","aggregateFn","pageStart","pageEnd","paginatedRowModel","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","sortUndefined","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","aUndefined","bUndefined","sortInt","resolvedOptions","tableRef","useState","current","prev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.production.js","sources":["../../../table-core/build/lib/index.mjs","../../src/index.tsx"],"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// 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 () => {\n let depTime;\n if (opts.key && opts.debug) 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 && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : 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}\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 ? accessorKey.replace('.', '_') : 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 }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n }\n }),\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 }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n })\n };\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, table));\n }, column);\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column;\n}\n\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 Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, table));\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n return {\n // Header Groups\n\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugHeaders;\n }\n }),\n // Footer Groups\n\n getFooterGroups: memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _table$options$debugA6;\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _table$options$debugA7;\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _table$options$debugA8;\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugHeaders;\n }\n }),\n // Flat Headers\n\n getFlatHeaders: memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _table$options$debugA9;\n return (_table$options$debugA9 = table.options.debugAll) != null ? _table$options$debugA9 : table.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _table$options$debugA10;\n return (_table$options$debugA10 = table.options.debugAll) != null ? _table$options$debugA10 : table.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _table$options$debugA11;\n return (_table$options$debugA11 = table.options.debugAll) != null ? _table$options$debugA11 : table.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _table$options$debugA12;\n return (_table$options$debugA12 = table.options.debugAll) != null ? _table$options$debugA12 : table.options.debugHeaders;\n }\n }),\n // Leaf Headers\n\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _table$options$debugA13;\n return (_table$options$debugA13 = table.options.debugAll) != null ? _table$options$debugA13 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _table$options$debugA14;\n return (_table$options$debugA14 = table.options.debugAll) != null ? _table$options$debugA14 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _table$options$debugA15;\n return (_table$options$debugA15 = table.options.debugAll) != null ? _table$options$debugA15 : table.options.debugHeaders;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _table$options$debugA16;\n return (_table$options$debugA16 = table.options.debugAll) != null ? _table$options$debugA16 : table.options.debugHeaders;\n }\n })\n };\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}\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 onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n return {\n 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 getStart: position => {\n const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n return 0;\n },\n resetSize: () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n 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 getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, table) => {\n return {\n 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 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 getResizeHandler: () => {\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 ? void 0 : 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 deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\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 mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.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 document.removeEventListener('touchmove', touchEvents.moveHandler);\n document.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 document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.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 },\n createTable: table => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n },\n 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 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 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 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 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 }\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 Expanding = {\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 return {\n _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 setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n },\n 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 getCanSomeRowsExpand: () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n table.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n 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 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 getPreExpandedRowModel: () => table.getSortedRowModel(),\n 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 },\n createRow: (row, table) => {\n return {\n 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 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 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 getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue, _row$getValue$toStrin, _row$getValue$toStrin2;\n const search = filterValue.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null ? void 0 : (_row$getValue$toStrin = _row$getValue.toString()) == null ? void 0 : (_row$getValue$toStrin2 = _row$getValue$toStrin.toLowerCase()) == null ? void 0 : _row$getValue$toStrin2.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2, _row$getValue2$toStri;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null ? void 0 : (_row$getValue2$toStri = _row$getValue2.toString()) == null ? void 0 : _row$getValue2$toStri.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3, _row$getValue3$toStri;\n return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : (_row$getValue3$toStri = _row$getValue3.toString()) == null ? void 0 : _row$getValue3$toStri.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) || !(val != null && val.length);\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 Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode, _table$getCoreRowMode2;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null ? void 0 : (_table$getCoreRowMode2 = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode2.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n return {\n 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 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 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 getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _table$options$enable3, _table$options$enable4, _table$options$getCol;\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_table$options$enable3 = table.options.enableGlobalFilter) != null ? _table$options$enable3 : true) && ((_table$options$enable4 = table.options.enableFilters) != null ? _table$options$enable4 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _table$getState$colum, _table$getState$colum2;\n return (_table$getState$colum = table.getState().columnFilters) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum2.value;\n },\n getFilterIndex: () => {\n var _table$getState$colum3, _table$getState$colum4;\n return (_table$getState$colum3 = (_table$getState$colum4 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum4.findIndex(d => d.id === column.id)) != null ? _table$getState$colum3 : -1;\n },\n 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 _getFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n }\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n };\n },\n\n createRow: (row, table) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createTable: table => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n var _table$options$filter3, _table$options$filter4;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : (_table$options$filter3 = (_table$options$filter4 = table.options.filterFns) == null ? void 0 : _table$options$filter4[globalFilterFn]) != null ? _table$options$filter3 : filterFns[globalFilterFn];\n },\n 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 ? void 0 : table.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange == null ? void 0 : table.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n },\n 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 getPreFilteredRowModel: () => table.getCoreRowModel(),\n 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 _getGlobalFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n }\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}\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 Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null ? void 0 : _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 return {\n 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 getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : table.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n 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 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 getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n 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 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 },\n createTable: table => {\n return {\n setGrouping: updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater),\n 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 getPreGroupedRowModel: () => table.getFilteredRowModel(),\n 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 },\n createRow: (row, table) => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n 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 _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, table) => {\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n }\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 Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createTable: table => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n },\n _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 }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n })\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst Pagination = {\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 return {\n _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 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 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 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 resetPageIndex: defaultState => {\n var _table$initialState$p2, _table$initialState, _table$initialState$p3;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _table$initialState$p4, _table$initialState2, _table$initialState2$;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);\n },\n 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 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 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n 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 previousPage: () => {\n return table.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n 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 getPageCount: () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\n\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n return {\n 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 getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);\n });\n },\n 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 getPinnedIndex: () => {\n var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n }\n };\n },\n createRow: (row, table) => {\n return {\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n return {\n setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());\n },\n 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 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _table$options$debugA6;\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;\n }\n })\n };\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\n createTable: table => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n },\n 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 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, table);\n });\n return rowSelection;\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 getPreSelectedRowModel: () => table.getCoreRowModel(),\n 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 }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;\n }\n }),\n 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 }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;\n }\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 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 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 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 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 getToggleAllRowsSelectedHandler: () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, table);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n },\n getIsAllSubRowsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n },\n 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 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 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 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 }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, table) => {\n var _row$subRows;\n const row = table.getRow(id);\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 ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, 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 if (row.subRows && row.subRows.length) {\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 (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n }\n return false;\n}\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 Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\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 return {\n 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 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 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 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 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 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 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 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 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 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 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 getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createTable: table => {\n return {\n setSorting: updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater),\n 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 getPreSortedRowModel: () => table.getGroupedRowModel(),\n 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 }\n};\n\n//\n\nconst Visibility = {\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 return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _table$getState$colum, _table$getState$colum2;\n return (_table$getState$colum = (_table$getState$colum2 = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum2[column.id]) != null ? _table$getState$colum : true;\n },\n 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 getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\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 }, {\n key,\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n });\n };\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns()),\n setColumnVisibility: updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n },\n 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 getIsAllColumnsVisible: () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$initialState;\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n let table = {\n _features: 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: 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 ? void 0 : 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 getRow: id => {\n const row = table.getRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`);\n }\n throw new Error();\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 ? void 0 : _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 }, {\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\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 table._features.forEach(feature => {\n return Object.assign(table, feature.createTable == null ? void 0 : feature.createTable(table));\n });\n return table;\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 }), {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll\n })\n };\n table._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, table));\n }, {});\n return cell;\n}\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) : 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 }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, table));\n }\n return row;\n};\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// })\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\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\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 newFilteredRowsById[i] = row;\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = 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}\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.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 }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\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 var _facetedRowModel$flat;\n if (!facetedRowModel) return undefined;\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n let facetedMinMaxValues = [firstValue, firstValue];\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 (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n }\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\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];\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 isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\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 // Peform 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\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\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\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\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}\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\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}\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 }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n TableOptions,\n TableOptionsResolved,\n RowData,\n createTable,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> = React.ReactNode | React.ComponentType<TProps>\n\n//\n\nexport function flexRender<TProps extends object>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode | JSX.Element {\n return !Comp ? null : isReactComponent<TProps>(Comp) ? (\n <Comp {...props} />\n ) : (\n Comp\n )\n}\n\nfunction isReactComponent<TProps>(\n component: unknown\n): component is React.ComponentType<TProps> {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\nexport function useReactTable<TData extends RowData>(\n options: TableOptions<TData>\n) {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TData> = {\n state: {}, // Dummy state\n onStateChange: () => {}, // 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<TData>(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?.(updater)\n },\n }))\n\n return tableRef.current\n}\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","isNumberArray","Array","isArray","every","val","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","result","deps","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","createColumn","table","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","_getDefaultColumnDef","accessorKey","accessorFn","id","replace","undefined","header","includes","originalRow","split","_result","Error","column","columns","getFlatColumns","_column$columns","flatMap","_table$options$debugA","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_table$options$debugA2","_features","reduce","obj","feature","Object","assign","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","getContext","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","_table$options$debugA3","getRightHeaderGroups","_right$map$filter2","_table$options$debugA4","getFooterGroups","headerGroups","reverse","_table$options$debugA5","getLeftFooterGroups","_table$options$debugA6","getCenterFooterGroups","_table$options$debugA7","getRightFooterGroups","_table$options$debugA8","getFlatHeaders","headers","_table$options$debugA9","getLeftFlatHeaders","_table$options$debugA10","getCenterFlatHeaders","_table$options$debugA11","getRightFlatHeaders","_table$options$debugA12","getCenterLeafHeaders","flatHeaders","_header$subHeaders","_table$options$debugA13","getLeftLeafHeaders","_header$subHeaders2","_table$options$debugA14","getRightLeafHeaders","_header$subHeaders3","_table$options$debugA15","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_table$options$debugA16","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_table$options$enable","enableResizing","enableColumnResizing","getIsResizing","sum","_header$column$getSiz","prevSiblingHeader","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","_e$touches$","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","defaultState","_table$initialState$c","initialState","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","_table$initialState","getCanSomeRowsExpand","getPrePaginationRowModel","flatRows","row","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","keys","getRowModel","getIsExpanded","getExpandedDepth","rowsById","splitId","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","_row$getValue$toStrin","_row$getValue$toStrin2","search","toLowerCase","getValue","toString","autoRemove","testFalsey","includesStringSensitive","_row$getValue2","_row$getValue2$toStri","equalsString","_row$getValue3","_row$getValue3$toStri","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","isNaN","Infinity","temp","filterFns","Filters","filterFn","columnFilters","globalFilter","onColumnFiltersChange","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","_table$getCoreRowMode2","value","getCoreRowModel","_getAllCellsByColumnId","getAutoFilterFn","firstRow","getFilterFn","_table$options$filter","_table$options$filter2","getCanFilter","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","_table$getState$colum4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","columnFiltersMeta","getGlobalAutoFilterFn","getGlobalFilterFn","_table$options$filter3","_table$options$filter4","getAllLeafColumns","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","mid","floor","nums","sort","a","b","unique","from","Set","uniqueCount","_columnId","Grouping","aggregatedCell","props","_toString","_props$getValue","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","prototype","call","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","getGroupingValue","_groupingValuesCache","hasOwnProperty","original","createCell","cell","getIsPlaceholder","getIsAggregated","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","fill","i","debugTable","getCanPreviousPage","getCanNextPage","previousPage","nextPage","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","Pinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","_table$initialState$r","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","getRow","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","compareBasic","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","_table$options$sortin","_table$options$sortin2","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","sortAction","newSorting","nextDesc","_table$options$maxMul","getCanMultiSort","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","enableHiding","getToggleVisibilityHandler","getAllCells","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","renderValue","_getColumnDefs","columnDefs","recurseColumns","groupingColumnDef","_getAllFlatColumnsById","flatColumns","acc","_cell$getValue","renderFallbackValue","rowIndex","parentId","_valuesCache","_uniqueValuesCache","getUniqueValues","getLeafRows","getParentRow","getParentRows","parentRows","currentRow","parentRow","filterRows","filterRowImpl","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","filterRowModelFromLeafs","_table$options$maxLea2","filterRowModelFromRoot","expandRows","expandedRows","handleRow","accessor","display","group","Comp","component","proto","getPrototypeOf","isReactComponent","isClassComponent","$$typeof","description","isExoticComponent","React","createElement","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","_table$getColumn","facetedRowModel","_facetedRowModel$flat","firstValue","facetedMinMaxValues","j","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","filterMeta","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","_groupedRows$0$getVal","aggregateFn","pageStart","pageEnd","paginatedRowModel","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","sortUndefined","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","aUndefined","bUndefined","sortInt","resolvedOptions","tableRef","useState","current","prev"],"mappings":"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"}
|