@tanstack/react-table 8.11.3 → 8.11.5
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.
|
@@ -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 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 || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\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 for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\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 feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, {\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 table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, {\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 table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, {\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 table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, {\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\n // Footer Groups\n\n table.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 table.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 table.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 table.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\n // Flat Headers\n\n table.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 table.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 table.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 table.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\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\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 table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\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 table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\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 table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\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};\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 columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = 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 column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = () => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const 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 createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst 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 table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue;\n const search = filterValue.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val) || !(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;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.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 column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousfilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n },\n createRow: (row, table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.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() : // @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 table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\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 || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _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 column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst 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 table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'\n // debug: () => table.options.debugAll ?? table.options.debugTable,\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 table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, {\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 table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n };\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref3 => {\n let {\n id\n } = _ref3;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref4;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref4 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref4 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _table$_getPinnedRows, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_table$_getPinnedRows = table._getPinnedRows(position)) == null ? void 0 : _table$_getPinnedRows.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'development' && '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 row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'development' && '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 row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'development' && '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 createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\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 table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\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 table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\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 table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState2;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState2 = table.initialState) == null ? void 0 : _table$initialState2.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio2;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio2 = pinningState[position]) == null ? void 0 : _pinningState$positio2.length);\n };\n table._getPinnedRows = position => memo(() => [table.getRowModel().rows, table.getState().rowPinning[position]], (visibleRows, pinnedRowIds) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n }, {\n key: process.env.NODE_ENV === 'development' && `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,\n debug: () => {\n var _table$options$debugA7;\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugRows;\n }\n })();\n table.getTopRows = () => table._getPinnedRows('top');\n table.getBottomRows = () => table._getPinnedRows('bottom');\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',\n debug: () => {\n var _table$options$debugA8;\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugRows;\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 createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\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 table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\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 table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\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\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\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 sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\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 column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _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 column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\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 row.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 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 table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\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 || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\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 for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\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 feature.createCell == null || 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, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, {\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 feature == null || feature.createRow == null || 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// })\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 newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\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.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\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 return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\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\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\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","feature","_features","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","columnResizeDirection","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","deltaDirection","_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","reduce","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","Object","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","getIsAllParentsExpanded","isFullyExpanded","currentRow","parentId","getRow","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","search","toLowerCase","getValue","toString","autoRemove","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","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","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","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","resetPageSize","_table$initialState$p3","_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","rowPinning","top","bottom","onColumnPinningChange","onRowPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","enableColumnPinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","includeLeafRows","includeParentRows","leafRowIds","getLeafRows","parentRowIds","getParentRows","rowIds","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","has","_ref4","enableRowPinning","isTop","isBottom","_table$_getPinnedRows","_visiblePinnedRowIds$","visiblePinnedRowIds","_getPinnedRows","_ref5","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","resetRowPinning","_table$initialState$r","getIsSomeRowsPinned","_pinningState$positio2","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","getTopRows","getBottomRows","getCenterRows","allRows","topAndBottom","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","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","_opts$selectChildren","selectedRowIds","selectChildren","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","compareBasic","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","Sorting","sorting","sortingFn","sortUndefined","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","obj","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","_options$initialState","defaultOptions","assign","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","renderValue","_getColumnDefs","columnDefs","recurseColumns","groupingColumnDef","_getAllFlatColumnsById","flatColumns","acc","_cell$getValue","renderFallbackValue","rowIndex","_valuesCache","_uniqueValuesCache","getUniqueValues","getParentRow","parentRows","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$","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","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","sortInt","aUndefined","bUndefined","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 || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\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 for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\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 feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, {\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 table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, {\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 table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, {\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 table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, {\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\n // Footer Groups\n\n table.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 table.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 table.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 table.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\n // Flat Headers\n\n table.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 table.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 table.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 table.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\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\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 table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\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 table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\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 table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\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};\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 columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = 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 column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const contextDocument = _contextDocument || document;\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst 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 table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue;\n const search = filterValue.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val) || !(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;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.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 column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousfilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n },\n createRow: (row, table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.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() : // @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 table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\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 || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _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 column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst 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 table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'\n // debug: () => table.options.debugAll ?? table.options.debugTable,\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 table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, {\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 table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n };\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref3 => {\n let {\n id\n } = _ref3;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref4;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref4 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref4 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _table$_getPinnedRows, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_table$_getPinnedRows = table._getPinnedRows(position)) == null ? void 0 : _table$_getPinnedRows.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'development' && '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 row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'development' && '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 row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'development' && '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 createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\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 table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\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 table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\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 table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState2;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState2 = table.initialState) == null ? void 0 : _table$initialState2.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio2;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio2 = pinningState[position]) == null ? void 0 : _pinningState$positio2.length);\n };\n table._getPinnedRows = position => memo(() => [table.getRowModel().rows, table.getState().rowPinning[position]], (visibleRows, pinnedRowIds) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n }, {\n key: process.env.NODE_ENV === 'development' && `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,\n debug: () => {\n var _table$options$debugA7;\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugRows;\n }\n })();\n table.getTopRows = () => table._getPinnedRows('top');\n table.getBottomRows = () => table._getPinnedRows('bottom');\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',\n debug: () => {\n var _table$options$debugA8;\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugRows;\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 createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\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 table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\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 table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\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\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\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 sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\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 column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _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 column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\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 row.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 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 table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\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 || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\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 for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\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 feature.createCell == null || 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, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, {\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 feature == null || feature.createRow == null || 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// })\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 newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\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.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\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 return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\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\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\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","feature","_features","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","columnResizeDirection","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","_contextDocument","contextDocument","document","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","deltaDirection","_ref3","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","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","reduce","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","Object","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","getIsAllParentsExpanded","isFullyExpanded","currentRow","parentId","getRow","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","search","toLowerCase","getValue","toString","autoRemove","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","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","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","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","resetPageSize","_table$initialState$p3","_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","rowPinning","top","bottom","onColumnPinningChange","onRowPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","enableColumnPinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","includeLeafRows","includeParentRows","leafRowIds","getLeafRows","parentRowIds","getParentRows","rowIds","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","has","_ref4","enableRowPinning","isTop","isBottom","_table$_getPinnedRows","_visiblePinnedRowIds$","visiblePinnedRowIds","_getPinnedRows","_ref5","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","resetRowPinning","_table$initialState$r","getIsSomeRowsPinned","_pinningState$positio2","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","getTopRows","getBottomRows","getCenterRows","allRows","topAndBottom","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","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","_opts$selectChildren","selectedRowIds","selectChildren","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","compareBasic","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","Sorting","sorting","sortingFn","sortUndefined","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","obj","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","_options$initialState","defaultOptions","assign","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","renderValue","_getColumnDefs","columnDefs","recurseColumns","groupingColumnDef","_getAllFlatColumnsById","flatColumns","acc","_cell$getValue","renderFallbackValue","rowIndex","_valuesCache","_uniqueValuesCache","getUniqueValues","getParentRow","parentRows","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$","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","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","sortInt","aUndefined","bUndefined","resolvedOptions","tableRef","useState","current","prev"],"mappings":"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"}
|