{"version":3,"file":"8946a76d6eea6a0830fd8f2b.js?3.6.14.7428b935c.1723600572441","mappings":"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","sources":["webpack://mono-repo/./node_modules/@tanstack/react-table/build/lib/index.mjs","webpack://mono-repo/./node_modules/@tanstack/table-core/build/lib/index.mjs"],"sourcesContent":["/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys = 'nested.foo.0.bar'\n// const test2: DeepKeys = 'nested.bar'\n\n// const helper = createColumnHelper()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\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 }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\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 ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = _contextDocument || typeof document !== 'undefined' ? document : null;\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _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(_ref4 => {\n let {\n id\n } = _ref4;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = memo(position => [table.getRowModel().rows, table.getState().rowPinning[position], position], (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n }, getMemoOptions(table.options, 'debugRows', '_getPinnedRows'));\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 }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\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 }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\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 getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\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 = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record = {};\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 }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n"],"names":["flexRender","Comp","props","component","proto","Object","getPrototypeOf","prototype","isReactComponent","isClassComponent","$$typeof","includes","description","isExoticComponent","useReactTable","options","resolvedOptions","state","onStateChange","renderFallbackValue","tableRef","current","setState","initialState","setOptions","prev","updater","createColumnHelper","accessor","column","accessorFn","accessorKey","display","group","functionalUpdate","input","makeStateUpdater","key","instance","old","isFunction","d","Function","memo","getDeps","fn","opts","result","deps","depArgs","depTime","debug","Date","now","newDeps","length","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","getMemoOptions","tableOptions","debugLevel","_tableOptions$debugAl","debugAll","createHeader","table","_options$id","header","id","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","push","getContext","_features","forEach","feature","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","getRightHeaderGroups","_right$map$filter2","getFooterGroups","headerGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","_header$subHeaders","getLeftLeafHeaders","_header$subHeaders2","getRightLeafHeaders","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","getIsVisible","_column$columns","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","childRowSpans","_ref","childColSpan","childRowSpan","createRow","original","rowIndex","subRows","parentId","row","_valuesCache","_uniqueValuesCache","getValue","hasOwnProperty","getColumn","getUniqueValues","columnDef","renderValue","_row$getValue","getLeafRows","arr","getChildren","recurse","subArr","item","children","flattenBy","getParentRow","getRow","getParentRows","parentRows","currentRow","parentRow","getAllCells","getAllLeafColumns","cell","_cell$getValue","createCell","_getAllCellsByColumnId","allCells","reduce","acc","i","ColumnFaceting","createColumn","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","includesString","filterValue","search","toLowerCase","toString","autoRemove","val","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","Number","isNaN","Infinity","temp","filterFns","ColumnFiltering","getDefaultColumnDef","filterFn","getInitialState","columnFilters","getDefaultOptions","onColumnFiltersChange","filterFromLeafRows","maxLeafRowFilterDepth","getAutoFilterFn","firstRow","getCoreRowModel","flatRows","value","Array","isArray","getFilterFn","_table$options$filter","_table$options$filter2","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","findIndex","setFilterValue","setColumnFilters","previousFilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_table","columnFiltersMeta","_functionalUpdate","resetColumnFilters","defaultState","_table$initialState$c","_table$initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","aggregationFns","sum","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","values","every","mid","floor","nums","sort","a","b","unique","from","Set","uniqueCount","size","_columnId","ColumnGrouping","aggregatedCell","_toString","_props$getValue","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getGroupingValue","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","call","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","Error","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","getIsPlaceholder","getIsAggregated","_row$subRows","ColumnOrdering","columnOrder","onColumnOrderChange","getIndex","position","_getVisibleLeafColumns","getIsFirstColumn","_columns$","getIsLastColumn","_columns","setColumnOrder","resetColumnOrder","_getOrderColumnsFn","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","nonGroupingColumns","col","g","orderColumns","ColumnPinning","onColumnPinningChange","pin","columnIds","getLeafColumns","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","enableColumnPinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","leftAndRight","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","defaultColumnSizing","minSize","maxSize","MAX_SAFE_INTEGER","ColumnSizing","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","columnResizeMode","columnResizeDirection","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","slice","getAfter","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","enableResizing","enableColumnResizing","getIsResizing","_header$column$getSiz","prevSiblingHeader","getResizeHandler","_contextDocument","canResize","e","persist","isTouchStartEvent","touches","clientX","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","deltaDirection","_ref3","headerSize","onMove","onEnd","contextDocument","document","mouseEvents","moveHandler","upHandler","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","_e$touches$","passiveIfSupported","passiveSupported","supported","passive","noop","window","addEventListener","err","passiveEventSupported","resetColumnSizing","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","type","getCenterVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","_table$initialState$r","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","keys","selectRowsFn","rowsById","getFilteredSelectedRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","_opts$selectChildren","selectedRowIds","selectChildren","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","_target","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","compareBasic","compareAlphanumeric","aStr","bStr","split","aa","bb","an","parseInt","bn","combo","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","builtInFeatures","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","childColumns","c","enableHiding","getToggleVisibilityHandler","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","obj","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","globalFilter","onGlobalFilterChange","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","getCanGlobalFilter","_table$options$getCol","enableGlobalFilter","getGlobalAutoFilterFn","getGlobalFilterFn","setGlobalFilter","resetGlobalFilter","sorting","sortingFn","sortUndefined","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","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","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","getCanSomeRowsExpand","getPrePaginationRowModel","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","getIsExpanded","getExpandedDepth","splitId","getPreExpandedRowModel","getExpandedRowModel","_getExpandedRowModel","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","getRowCanExpand","enableExpanding","getIsAllParentsExpanded","isFullyExpanded","getToggleExpandedHandler","canExpand","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","getCanPreviousPage","getCanNextPage","previousPage","nextPage","firstPage","lastPage","_getPaginationRowModel","_table$options$pageCo2","ceil","getRowCount","_table$options$rowCou","rowCount","rowPinning","top","bottom","onRowPinningChange","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","has","enableRowPinning","isTop","isBottom","_table$_getPinnedRows","_visiblePinnedRowIds$","visiblePinnedRowIds","_getPinnedRows","_ref4","resetRowPinning","getIsSomeRowsPinned","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","getTopRows","getBottomRows","getCenterRows","allRows","topAndBottom","_options$_features","_options$initialState","defaultOptions","assign","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","newOptions","mergeOptions","_getRowId","getRowId","_getCoreRowModel","searchAll","_getDefaultColumnDef","defaultColumn","_defaultColumn","resolvedColumnDef","_props$renderValue$to","_props$renderValue","_getColumnDefs","columnDefs","recurseColumns","_resolvedColumnDef$id","replace","originalRow","_result","getFlatColumns","flatMap","_column$columns2","groupingColumnDef","_getAllFlatColumnsById","flatColumns","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows"],"sourceRoot":""}