@tanstack/react-table 8.0.0-beta.6 → 8.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../../table-core/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {//\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return { ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n\n if (!depsChanged) {\n return result;\n }\n\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n\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\n const pad = (str, num) => {\n str = String(str);\n\n while (str.length < num) {\n str = ' ' + str;\n }\n\n return str;\n };\n\n console.info(\"%c\\u23F1 \" + 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\n return result;\n };\n}\n\nfunction createColumn(instance, columnDef, depth, parent) {\n var _ref, _columnDef$id;\n\n const defaultColumn = instance._getDefaultColumnDef();\n\n columnDef = { ...defaultColumn,\n ...columnDef\n };\n let id = (_ref = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref : typeof columnDef.header === 'string' ? columnDef.header : undefined;\n let accessorFn;\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn;\n } else if (columnDef.accessorKey) {\n accessorFn = originalRow => originalRow[columnDef.accessorKey];\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(columnDef.accessorFn ? \"Columns require an id when using an accessorFn\" : \"Columns require an id when using a non-string header\");\n }\n\n throw new Error();\n }\n\n let column = {\n id: \"\" + id,\n accessorFn,\n parent: parent,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;\n }\n }),\n getLeafColumns: memo(() => [instance._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n\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\n return [column];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;\n }\n })\n };\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, instance));\n }, column); // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n\n return column;\n}\n\n//\nfunction createHeader(instance, column, options) {\n var _options$id;\n\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\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n\n leafHeaders.push(h);\n };\n\n recurseHeader(header);\n return leafHeaders;\n },\n renderHeader: () => column.columnDef.header ? instance._render(column.columnDef.header, {\n instance,\n header: header,\n column\n }) : null,\n renderFooter: () => column.columnDef.footer ? instance._render(column.columnDef.footer, {\n instance,\n header: header,\n column\n }) : null\n };\n\n instance._features.forEach(feature => {\n Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, instance));\n });\n\n return header;\n}\n\nconst Headers = {\n createInstance: instance => {\n return {\n // Header Groups\n getHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n\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], instance);\n return headerGroups;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugHeaders;\n }\n }),\n getCenterHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.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, instance, 'center');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugHeaders;\n }\n }),\n getLeftHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n\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, instance, 'left');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugHeaders;\n }\n }),\n getRightHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n\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, instance, 'right');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _instance$options$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugHeaders;\n }\n }),\n // Footer Groups\n getFooterGroups: memo(() => [instance.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _instance$options$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [instance.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _instance$options$deb6;\n\n return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [instance.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _instance$options$deb7;\n\n return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : instance.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [instance.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _instance$options$deb8;\n\n return (_instance$options$deb8 = instance.options.debugAll) != null ? _instance$options$deb8 : instance.options.debugHeaders;\n }\n }),\n // Flat Headers\n getFlatHeaders: memo(() => [instance.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _instance$options$deb9;\n\n return (_instance$options$deb9 = instance.options.debugAll) != null ? _instance$options$deb9 : instance.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [instance.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _instance$options$deb10;\n\n return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [instance.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _instance$options$deb11;\n\n return (_instance$options$deb11 = instance.options.debugAll) != null ? _instance$options$deb11 : instance.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [instance.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _instance$options$deb12;\n\n return (_instance$options$deb12 = instance.options.debugAll) != null ? _instance$options$deb12 : instance.options.debugHeaders;\n }\n }),\n // Leaf Headers\n getCenterLeafHeaders: memo(() => [instance.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _instance$options$deb13;\n\n return (_instance$options$deb13 = instance.options.debugAll) != null ? _instance$options$deb13 : instance.options.debugHeaders;\n }\n }),\n getLeftLeafHeaders: memo(() => [instance.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _instance$options$deb14;\n\n return (_instance$options$deb14 = instance.options.debugAll) != null ? _instance$options$deb14 : instance.options.debugHeaders;\n }\n }),\n getRightLeafHeaders: memo(() => [instance.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _instance$options$deb15;\n\n return (_instance$options$deb15 = instance.options.debugAll) != null ? _instance$options$deb15 : instance.options.debugHeaders;\n }\n }),\n getLeafHeaders: memo(() => [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _instance$options$deb16;\n\n return (_instance$options$deb16 = instance.options.debugAll) != null ? _instance$options$deb16 : instance.options.debugHeaders;\n }\n })\n };\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n\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 let maxDepth = 0;\n\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n\n findMaxDepth(allColumns);\n let headerGroups = [];\n\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 }; // The parent columns we're going to scan next\n\n const pendingParentHeaders = []; // Scan each column for parents\n\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n\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\n if ((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(instance, 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 }); // Add the headerToGroup as a subHeader of the new header\n\n header.subHeaders.push(headerToGroup); // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n\n pendingParentHeaders.push(header);\n }\n\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(instance, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse(); // 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\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\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\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\n//\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\n\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\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: instance => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance)\n };\n },\n createColumn: (column, instance) => {\n return {\n getSize: () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n\n const columnSize = instance.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n },\n getStart: position => {\n const columns = !position ? instance.getVisibleLeafColumns() : position === 'left' ? instance.getLeftVisibleLeafColumns() : instance.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n\n return 0;\n },\n resetSize: () => {\n instance.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n getCanResize: () => {\n var _column$columnDef$ena, _instance$options$ena;\n\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_instance$options$ena = instance.options.enableColumnResizing) != null ? _instance$options$ena : true);\n },\n getIsResizing: () => {\n return instance.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, instance) => {\n return {\n getSize: () => {\n let sum = 0;\n\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n\n recurse(header);\n return sum;\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n\n return 0;\n },\n getResizeHandler: () => {\n const column = instance.getColumn(header.column.id);\n const canResize = column.getCanResize();\n return e => {\n if (!canResize) {\n return;\n }\n e.persist == null ? void 0 : e.persist();\n\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\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\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n\n let newColumnSizing = {};\n instance.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n\n const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return { ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n\n if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {\n instance.setColumnSizing(old => ({ ...old,\n ...newColumnSizing\n }));\n }\n };\n\n const onMove = clientXPos => updateOffset('move', clientXPos);\n\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n instance.setColumnSizingInfo(old => ({ ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n\n if (isTouchStartEvent(e)) ; else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n\n instance.setColumnSizingInfo(old => ({ ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n }\n };\n },\n createInstance: instance => {\n return {\n setColumnSizing: updater => instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _instance$initialStat;\n\n instance.setColumnSizing(defaultState ? {} : (_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});\n },\n resetHeaderSizeInfo: defaultState => {\n var _instance$initialStat2;\n\n instance.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : getDefaultColumnSizingInfoState());\n },\n getTotalSize: () => {\n var _instance$getHeaderGr, _instance$getHeaderGr2;\n\n return (_instance$getHeaderGr = (_instance$getHeaderGr2 = instance.getHeaderGroups()[0]) == null ? void 0 : _instance$getHeaderGr2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getHeaderGr : 0;\n },\n getLeftTotalSize: () => {\n var _instance$getLeftHead, _instance$getLeftHead2;\n\n return (_instance$getLeftHead = (_instance$getLeftHead2 = instance.getLeftHeaderGroups()[0]) == null ? void 0 : _instance$getLeftHead2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getLeftHead : 0;\n },\n getCenterTotalSize: () => {\n var _instance$getCenterHe, _instance$getCenterHe2;\n\n return (_instance$getCenterHe = (_instance$getCenterHe2 = instance.getCenterHeaderGroups()[0]) == null ? void 0 : _instance$getCenterHe2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getCenterHe : 0;\n },\n getRightTotalSize: () => {\n var _instance$getRightHea, _instance$getRightHea2;\n\n return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getRightHea : 0;\n }\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n\n };\n\n const noop = () => {};\n\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n\n passiveSupported = supported;\n return passiveSupported;\n}\n\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\nconst Expanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n paginateExpandedRows: true\n };\n },\n createInstance: instance => {\n let registered = false;\n let queued = false;\n return {\n _autoResetExpanded: () => {\n var _ref, _instance$options$aut;\n\n if (!registered) {\n instance._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_instance$options$aut = instance.options.autoResetAll) != null ? _instance$options$aut : instance.options.autoResetExpanded) != null ? _ref : !instance.options.manualExpanding) {\n if (queued) return;\n queued = true;\n\n instance._queue(() => {\n instance.resetExpanded();\n queued = false;\n });\n }\n },\n setExpanded: updater => instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true);\n } else {\n instance.setExpanded({});\n }\n },\n resetExpanded: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setExpanded(defaultState ? {} : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.expanded) != null ? _instance$initialStat : {});\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n instance.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true\n\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n\n if (!Object.keys(expanded).length) {\n return false;\n } // If any row is not expanded, return false\n\n\n if (instance.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false;\n } // They must all be expanded :shrug:\n\n\n return true;\n },\n getExpandedDepth: () => {\n let maxDepth = 0;\n const rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowModel().rowsById) : Object.keys(instance.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n },\n getPreExpandedRowModel: () => instance.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {\n instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);\n }\n\n if (instance.options.manualExpanding || !instance._getExpandedRowModel) {\n return instance.getPreExpandedRowModel();\n }\n\n return instance._getExpandedRowModel();\n }\n };\n },\n createRow: (row, instance) => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n var _expanded;\n\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n\n if (!exists && expanded) {\n return { ...oldExpanded,\n [row.id]: true\n };\n }\n\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n\n return old;\n });\n },\n getIsExpanded: () => {\n var _instance$options$get;\n\n const expanded = instance.getState().expanded;\n return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n },\n getCanExpand: () => {\n var _instance$options$get2, _instance$options$ena, _row$subRows;\n\n return ((_instance$options$get2 = instance.options.getRowCanExpand == null ? void 0 : instance.options.getRowCanExpand(row)) != null ? _instance$options$get2 : true) && ((_instance$options$ena = instance.options.enableExpanding) != null ? _instance$options$ena : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n const search = filterValue.toLowerCase();\n return row.getValue(columnId).toLowerCase().includes(search);\n};\n\nincludesString.autoRemove = val => testFalsey(val);\n\nconst includesStringSensitive = (row, columnId, filterValue) => {\n return row.getValue(columnId).includes(filterValue);\n};\n\nincludesStringSensitive.autoRemove = val => testFalsey(val);\n\nconst equalsString = (row, columnId, filterValue) => {\n return row.getValue(columnId).toLowerCase() === filterValue.toLowerCase();\n};\n\nequalsString.autoRemove = val => testFalsey(val);\n\nconst arrIncludes = (row, columnId, filterValue) => {\n return row.getValue(columnId).includes(filterValue);\n};\n\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => !row.getValue(columnId).includes(val));\n};\n\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => row.getValue(columnId).includes(val));\n};\n\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\n\nequals.autoRemove = val => testFalsey(val);\n\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\n\nweakEquals.autoRemove = val => testFalsey(val);\n\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\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\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n\n return [min, max];\n};\n\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]); // Export\n\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n\n// Utils\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\nconst Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _instance$getCoreRowM, _instance$getCoreRowM2;\n\n const value = (_instance$getCoreRowM = instance.getCoreRowModel().flatRows[0]) == null ? void 0 : (_instance$getCoreRowM2 = _instance$getCoreRowM._getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreRowM2.getValue();\n return typeof value === 'string';\n }\n };\n },\n createColumn: (column, instance) => {\n return {\n getAutoFilterFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n\n return filterFns.weakEquals;\n },\n getFilterFn: () => {\n var _ref;\n\n const userFilterFns = instance.options.filterFns;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.columnDef.filterFn]) != null ? _ref : filterFns[column.columnDef.filterFn];\n },\n getCanFilter: () => {\n var _column$columnDef$ena, _instance$options$ena, _instance$options$ena2;\n\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_instance$options$ena = instance.options.enableColumnFilters) != null ? _instance$options$ena : true) && ((_instance$options$ena2 = instance.options.enableFilters) != null ? _instance$options$ena2 : true) && !!column.accessorFn;\n },\n getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _instance$options$ena3, _instance$options$ena4, _instance$options$get;\n\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_instance$options$ena3 = instance.options.enableGlobalFilter) != null ? _instance$options$ena3 : true) && ((_instance$options$ena4 = instance.options.enableFilters) != null ? _instance$options$ena4 : true) && ((_instance$options$get = instance.options.getColumnCanGlobalFilter == null ? void 0 : instance.options.getColumnCanGlobalFilter(column)) != null ? _instance$options$get : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _instance$getState$co, _instance$getState$co2;\n\n return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(d => d.id === column.id)) == null ? void 0 : _instance$getState$co2.value;\n },\n getFilterIndex: () => {\n var _instance$getState$co3, _instance$getState$co4;\n\n return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(d => d.id === column.id)) != null ? _instance$getState$co3 : -1;\n },\n setFilterValue: value => {\n instance.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 if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n\n if (previousfilter) {\n var _old$map;\n\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n\n return d;\n })) != null ? _old$map : [];\n }\n\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n\n return [newFilterObj];\n });\n },\n _getFacetedRowModel: instance.options.getFacetedRowModel && instance.options.getFacetedRowModel(instance, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return instance.getPreFilteredRowModel();\n }\n\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: instance.options.getFacetedUniqueValues && instance.options.getFacetedUniqueValues(instance, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: instance.options.getFacetedMinMaxValues && instance.options.getFacetedMinMaxValues(instance, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n\n return column._getFacetedMinMaxValues();\n } // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n\n };\n },\n createRow: (row, instance) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createInstance: instance => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n var _ref2;\n\n const {\n filterFns: userFilterFns,\n globalFilterFn: globalFilterFn\n } = instance.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterFns == null ? void 0 : userFilterFns[globalFilterFn]) != null ? _ref2 : filterFns[globalFilterFn];\n },\n setColumnFilters: updater => {\n const leafColumns = instance.getAllLeafColumns();\n\n const updateFn = old => {\n var _functionalUpdate;\n\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n\n if (column) {\n const filterFn = column.getFilterFn();\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n instance.setGlobalFilter(defaultState ? undefined : instance.initialState.globalFilter);\n },\n resetColumnFilters: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setColumnFilters(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);\n },\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n _getFilteredRowModel: instance.options.getFilteredRowModel && instance.options.getFilteredRowModel(instance),\n getFilteredRowModel: () => {\n if (instance.options.manualFiltering || !instance._getFilteredRowModel) {\n return instance.getPreFilteredRowModel();\n }\n\n return instance._getFilteredRowModel();\n },\n _getGlobalFacetedRowModel: instance.options.getFacetedRowModel && instance.options.getFacetedRowModel(instance, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (instance.options.manualFiltering || !instance._getGlobalFacetedRowModel) {\n return instance.getPreFilteredRowModel();\n }\n\n return instance._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: instance.options.getFacetedUniqueValues && instance.options.getFacetedUniqueValues(instance, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!instance._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n\n return instance._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: instance.options.getFacetedMinMaxValues && instance.options.getFacetedMinMaxValues(instance, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!instance._getGlobalFacetedMinMaxValues) {\n return;\n }\n\n return instance._getGlobalFacetedMinMaxValues();\n }\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => sum + (typeof next === 'number' ? next : 0), 0);\n};\n\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\n\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\n\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\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};\n\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\n\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n\n let min = 0;\n let max = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (typeof value === 'number') {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n });\n return (min + max) / 2;\n};\n\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\n\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\n\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\n\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\nconst Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _props$getValue$toStr, _props$getValue;\n\n return (_props$getValue$toStr = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _props$getValue$toStr : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, instance) => {\n return {\n toggleGrouping: () => {\n instance.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\n return [...(old != null ? old : []), column.id];\n });\n },\n getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : instance.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n getIsGrouped: () => {\n var _instance$getState$gr;\n\n return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(column.id);\n },\n getGroupedIndex: () => {\n var _instance$getState$gr2;\n\n return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(column.id);\n },\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n getAutoAggregationFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n },\n getAggregationFn: () => {\n var _ref4;\n\n const userAggregationFns = instance.options.aggregationFns;\n\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.columnDef.aggregationFn]) != null ? _ref4 : aggregationFns[column.columnDef.aggregationFn];\n }\n };\n },\n createInstance: instance => {\n return {\n setGrouping: updater => instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater),\n resetGrouping: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setGrouping(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);\n },\n getPreGroupedRowModel: () => instance.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {\n instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel();\n }\n\n return instance._getGroupedRowModel();\n }\n };\n },\n createRow: row => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, instance) => {\n const getRenderValue = () => {\n var _cell$getValue;\n\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : instance.options.renderFallbackValue;\n };\n\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;\n },\n renderAggregatedCell: () => {\n if (process.env.NODE_ENV === 'development') {\n if (!column.columnDef.aggregatedCell) {\n console.warn('A columnDef.aggregatedCell template is recommended for displaying aggregated values.');\n }\n }\n\n const template = column.columnDef.aggregatedCell || column.columnDef.cell;\n return template ? instance._render(template, {\n instance,\n column,\n row,\n cell,\n getValue: getRenderValue\n }) : null;\n }\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\nconst Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance)\n };\n },\n createInstance: instance => {\n return {\n setColumnOrder: updater => instance.options.onColumnOrderChange == null ? void 0 : instance.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _instance$initialStat;\n\n instance.setColumnOrder(defaultState ? [] : (_instance$initialStat = instance.initialState.columnOrder) != null ? _instance$initialStat : []);\n },\n _getOrderColumnsFn: memo(() => [instance.getState().columnOrder, instance.getState().grouping, instance.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 = []; // If there is no order, return the normal columns\n\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder]; // If there is an order, make a copy of the columns\n\n const columnsCopy = [...columns]; // And make a new ordered array of the columns\n // Loop over the columns and place them in order into the new array\n\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n } // If there are any columns left, add them to the end\n\n\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn' // debug: () => instance.options.debugAll ?? instance.options.debugTable,\n\n })\n };\n }\n};\n\n//\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\n\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\n\nconst Pagination = {\n getInitialState: state => {\n return { ...state,\n pagination: { ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: instance => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance)\n };\n },\n createInstance: instance => {\n let registered = false;\n let queued = false;\n return {\n _autoResetPageIndex: () => {\n var _ref, _instance$options$aut;\n\n if (!registered) {\n instance._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_instance$options$aut = instance.options.autoResetAll) != null ? _instance$options$aut : instance.options.autoResetPageIndex) != null ? _ref : !instance.options.manualPagination) {\n if (queued) return;\n queued = true;\n\n instance._queue(() => {\n instance.resetPageIndex();\n queued = false;\n });\n }\n },\n setPagination: updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n\n return instance.options.onPaginationChange == null ? void 0 : instance.options.onPaginationChange(safeUpdater);\n },\n resetPagination: defaultState => {\n var _instance$initialStat;\n\n instance.setPagination(defaultState ? getDefaultPaginationState() : (_instance$initialStat = instance.initialState.pagination) != null ? _instance$initialStat : getDefaultPaginationState());\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof old.pageCount !== 'undefined' ? old.pageCount - 1 : Number.MAX_SAFE_INTEGER;\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);\n return { ...old,\n pageIndex\n };\n });\n },\n resetPageIndex: defaultState => {\n var _instance$initialStat2, _instance$initialStat3, _instance$initialStat4;\n\n instance.setPageIndex(defaultState ? defaultPageIndex : (_instance$initialStat2 = (_instance$initialStat3 = instance.initialState) == null ? void 0 : (_instance$initialStat4 = _instance$initialStat3.pagination) == null ? void 0 : _instance$initialStat4.pageIndex) != null ? _instance$initialStat2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _instance$initialStat5, _instance$initialStat6, _instance$initialStat7;\n\n instance.setPageSize(defaultState ? defaultPageSize : (_instance$initialStat5 = (_instance$initialStat6 = instance.initialState) == null ? void 0 : (_instance$initialStat7 = _instance$initialStat6.pagination) == null ? void 0 : _instance$initialStat7.pageSize) != null ? _instance$initialStat5 : defaultPageSize);\n },\n setPageSize: updater => {\n instance.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 { ...old,\n pageIndex,\n pageSize\n };\n });\n },\n setPageCount: updater => instance.setPagination(old => {\n var _old$pageCount;\n\n let newPageCount = functionalUpdate(updater, (_old$pageCount = old.pageCount) != null ? _old$pageCount : -1);\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n\n return { ...old,\n pageCount: newPageCount\n };\n }),\n getPageOptions: memo(() => [instance.getState().pagination.pageSize, instance.getState().pagination.pageCount], (pageSize, pageCount) => {\n let pageOptions = [];\n\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n\n return pageOptions;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n }),\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n getCanNextPage: () => {\n const {\n pageIndex\n } = instance.getState().pagination;\n const pageCount = instance.getPageCount();\n\n if (pageCount === -1) {\n return true;\n }\n\n if (pageCount === 0) {\n return false;\n }\n\n return pageIndex < pageCount - 1;\n },\n previousPage: () => {\n return instance.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (!instance._getPaginationRowModel && instance.options.getPaginationRowModel) {\n instance._getPaginationRowModel = instance.options.getPaginationRowModel(instance);\n }\n\n if (instance.options.manualPagination || !instance._getPaginationRowModel) {\n return instance.getPrePaginationRowModel();\n }\n\n return instance._getPaginationRowModel();\n },\n getPageCount: () => {\n const {\n pageCount\n } = instance.getState().pagination;\n\n if (typeof pageCount !== 'undefined') {\n return pageCount;\n }\n\n return Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\n\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance)\n };\n },\n createColumn: (column, instance) => {\n return {\n pin: position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n instance.setColumnPinning(old => {\n var _old$left3, _old$right3;\n\n if (position === 'right') {\n var _old$left, _old$right;\n\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\n if (position === 'left') {\n var _old$left2, _old$right2;\n\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\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n },\n getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _instance$options$ena;\n\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_instance$options$ena = instance.options.enablePinning) != null ? _instance$options$ena : true);\n });\n },\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = instance.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n },\n getPinnedIndex: () => {\n var _instance$getState$co, _instance$getState$co2, _instance$getState$co3;\n\n const position = column.getIsPinned();\n return position ? (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnPinning) == null ? void 0 : (_instance$getState$co3 = _instance$getState$co2[position]) == null ? void 0 : _instance$getState$co3.indexOf(column.id)) != null ? _instance$getState$co : -1 : 0;\n }\n };\n },\n createRow: (row, instance) => {\n return {\n getCenterVisibleCells: memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;\n }\n }),\n getLeftVisibleCells: memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;\n }\n }),\n getRightVisibleCells: memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugRows;\n }\n })\n };\n },\n createInstance: instance => {\n return {\n setColumnPinning: updater => instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n return instance.setColumnPinning(defaultState ? getDefaultPinningState() : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnPinning) != null ? _instance$initialStat : getDefaultPinningState());\n },\n getIsSomeColumnsPinned: position => {\n var _pinningState$positio;\n\n const pinningState = instance.getState().columnPinning;\n\n if (!position) {\n var _pinningState$left, _pinningState$right;\n\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\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n },\n getLeftLeafColumns: memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _instance$options$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;\n }\n }),\n getRightLeafColumns: memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _instance$options$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;\n }\n }),\n getCenterLeafColumns: memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _instance$options$deb6;\n\n return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;\n }\n })\n };\n }\n};\n\n//\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n\n };\n },\n createInstance: instance => {\n return {\n setRowSelection: updater => instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _instance$initialStat;\n\n return instance.setRowSelection(defaultState ? {} : (_instance$initialStat = instance.initialState.rowSelection) != null ? _instance$initialStat : {});\n },\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();\n const rowSelection = { ...old\n };\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // 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\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n\n return rowSelection;\n });\n },\n toggleAllPageRowsSelected: value => instance.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();\n const rowSelection = { ...old\n };\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, instance);\n });\n return rowSelection;\n }),\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\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 // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n // let include = false\n // const selectedRowIds = {}\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n // if (include) {\n // addRow(row)\n // }\n // })\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(() => [instance.getState().rowSelection, instance.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(instance, rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n }),\n getFilteredSelectedRowModel: memo(() => [instance.getState().rowSelection, instance.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(instance, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;\n }\n }),\n getGroupedSelectedRowModel: memo(() => [instance.getState().rowSelection, instance.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(instance, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;\n }\n }),\n ///\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n // if (!row) {\n // throw new Error()\n // }\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows;\n const {\n rowSelection\n } = instance.getState();\n let isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n\n return isAllRowsSelected;\n },\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows;\n const {\n rowSelection\n } = instance.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n\n return isAllPageRowsSelected;\n },\n getIsSomeRowsSelected: () => {\n var _instance$getState$ro;\n\n return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;\n },\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows;\n return instance.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());\n },\n getToggleAllRowsSelectedHandler: () => {\n return e => {\n instance.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n instance.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, instance) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n\n if (isSelected === value) {\n return old;\n }\n\n const selectedRowIds = { ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, instance);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = instance.getState();\n return isRowSelected(row, rowSelection) === true;\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = instance.getState();\n return isRowSelected(row, rowSelection) === 'some';\n },\n getCanSelect: () => {\n var _instance$options$ena;\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row);\n }\n\n return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;\n },\n getCanSelectSubRows: () => {\n var _instance$options$ena2;\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row);\n }\n\n return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;\n },\n getCanMultiSelect: () => {\n var _instance$options$ena3;\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row);\n }\n\n return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst mutateRowIsSelected = (selectedRowIds, id, value, instance) => {\n var _row$subRows;\n\n const row = instance.getRow(id);\n row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n\n if (value) {\n selectedRowIds[id] = true;\n } else {\n delete selectedRowIds[id];\n } // }\n\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, instance));\n }\n};\n\nfunction selectRowsFn(instance, rowModel) {\n const rowSelection = instance.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {}; // Filters top level and nested rows\n\n const recurseRows = function (rows, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n return rows.map(row => {\n var _row$subRows2;\n\n const isSelected = isRowSelected(row, rowSelection) === true;\n\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = { ...row,\n subRows: recurseRows(row.subRows, depth + 1)\n };\n }\n\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection, instance) {\n if (selection[row.id]) {\n return true;\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? true : someSelected ? 'some' : false;\n }\n\n return false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\n\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\nconst datetime = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());\n};\n\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n}; // Utils\n\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n\n return String(a);\n }\n\n if (typeof a === 'string') {\n return a;\n }\n\n return '';\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\n\n\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); // While\n\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(); // Both are string\n\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n\n if (bb > aa) {\n return -1;\n }\n\n continue;\n } // One is a string, one is a number\n\n\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n } // Both are numbers\n\n\n if (an > bn) {\n return 1;\n }\n\n if (bn > an) {\n return -1;\n }\n }\n\n return a.length - b.length;\n} // Exports\n\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\nconst Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\n };\n },\n getDefaultOptions: instance => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, instance) => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n\n if (typeof value === 'string') {\n isString = true;\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n\n if (isString) {\n return sortingFns.text;\n }\n\n return sortingFns.basic;\n },\n getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return 'asc';\n }\n\n return 'desc';\n },\n getSortingFn: () => {\n var _ref;\n\n const userSortingFn = instance.options.sortingFns;\n\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.columnDef.sortingFn]) != null ? _ref : sortingFns[column.columnDef.sortingFn];\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n // this needs to be outside of instance.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n instance.setSorting(old => {\n var _instance$options$ena, _instance$options$ena2;\n\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 const hasDescDefined = typeof desc !== 'undefined' && desc !== null;\n let newSorting = []; // What should we do with this sort action?\n\n let sortAction;\n\n if (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 } // Handle toggle states that will remove the sorting\n\n\n if (sortAction === 'toggle' && ( // Must be toggling\n (_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general\n !hasDescDefined && ( // Must not be setting desc\n multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) && // If multi, don't allow if enableMultiRemove\n !nextSortingOrder // Finally, detect if it should indeed be removed\n ) {\n sortAction = 'remove';\n }\n\n if (sortAction === 'replace') {\n newSorting = [{\n id: column.id,\n desc: hasDescDefined ? desc : nextSortingOrder === 'desc'\n }];\n } else if (sortAction === 'add' && old != null && old.length) {\n var _instance$options$max;\n\n newSorting = [...old, {\n id: column.id,\n desc: hasDescDefined ? desc : nextSortingOrder === 'desc'\n }]; // Take latest n columns\n\n newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle' && old != null && old.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return { ...d,\n desc: hasDescDefined ? desc : nextSortingOrder === 'desc'\n };\n }\n\n return d;\n });\n } else if (sortAction === 'remove' && old != null && old.length) {\n newSorting = old.filter(d => d.id !== column.id);\n }\n\n return newSorting;\n });\n },\n getNextSortingOrder: () => {\n var _ref2, _column$columnDef$sor;\n\n const sortDescFirst = (_ref2 = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc';\n const firstSortDirection = sortDescFirst ? 'desc' : 'asc';\n const isSorted = column.getIsSorted();\n\n if (!isSorted) {\n return firstSortDirection;\n }\n\n if (isSorted === firstSortDirection) {\n return isSorted === 'desc' ? 'asc' : 'desc';\n } else {\n return false;\n }\n },\n getCanSort: () => {\n var _column$columnDef$ena, _instance$options$ena3;\n\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_instance$options$ena3 = instance.options.enableSorting) != null ? _instance$options$ena3 : true) && !!column.accessorFn;\n },\n getCanMultiSort: () => {\n var _ref3, _column$columnDef$ena2;\n\n return (_ref3 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : instance.options.enableMultiSort) != null ? _ref3 : !!column.accessorFn;\n },\n getIsSorted: () => {\n var _instance$getState$so;\n\n const columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n },\n getSortIndex: () => {\n var _instance$getState$so2, _instance$getState$so3;\n\n return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(d => d.id === column.id)) != null ? _instance$getState$so2 : -1;\n },\n clearSorting: () => {\n //clear sorting for just 1 column\n instance.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n },\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createInstance: instance => {\n return {\n setSorting: updater => instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater),\n resetSorting: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setSorting(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);\n },\n getPreSortedRowModel: () => instance.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {\n instance._getSortedRowModel = instance.options.getSortedRowModel(instance);\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel();\n }\n\n return instance._getSortedRowModel();\n }\n };\n }\n};\n\n//\nconst Visibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance)\n };\n },\n createColumn: (column, instance) => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({ ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _instance$getState$co, _instance$getState$co2;\n\n return (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnVisibility) == null ? void 0 : _instance$getState$co2[column.id]) != null ? _instance$getState$co : true;\n },\n getCanHide: () => {\n var _column$columnDef$ena, _instance$options$ena;\n\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_instance$options$ena = instance.options.enableHiding) != null ? _instance$options$ena : true);\n },\n getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, instance) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), instance.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;\n }\n })\n };\n },\n createInstance: instance => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, {\n key,\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;\n }\n });\n };\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => instance.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => instance.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => instance.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => instance.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => instance.getCenterLeafColumns()),\n setColumnVisibility: updater => instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _instance$initialStat;\n\n instance.setColumnVisibility(defaultState ? {} : (_instance$initialStat = instance.initialState.columnVisibility) != null ? _instance$initialStat : {});\n },\n toggleAllColumnsVisible: value => {\n var _value;\n\n value = (_value = value) != null ? _value : !instance.getIsAllColumnsVisible();\n instance.setColumnVisibility(instance.getAllLeafColumns().reduce((obj, column) => ({ ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n },\n getIsAllColumnsVisible: () => !instance.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => instance.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n\n instance.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing]; //\n\nfunction createTableInstance(options) {\n var _options$initialState;\n\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n\n let instance = {\n _features: features\n };\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));\n }, {});\n\n const mergeOptions = options => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options);\n }\n\n return { ...defaultOptions,\n ...options\n };\n };\n\n const coreInitialState = {};\n let initialState = { ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n\n instance._features.forEach(feature => {\n var _feature$getInitialSt;\n\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features: features,\n options: { ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n\n if (!queuedTimeout) {\n queuedTimeout = true; // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n instance.setState(instance.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options);\n instance.options = mergeOptions(newOptions);\n },\n _render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props);\n }\n\n if (typeof template === 'function') {\n return template(props);\n }\n\n return template;\n },\n getState: () => {\n return instance.options.state;\n },\n setState: updater => {\n instance.options.onStateChange == null ? void 0 : instance.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _instance$options$get;\n\n return (_instance$options$get = instance.options.getRowId == null ? void 0 : instance.options.getRowId(row, index, parent)) != null ? _instance$options$get : \"\" + (parent ? [parent.id, index].join('.') : index);\n },\n getCoreRowModel: () => {\n if (!instance._getCoreRowModel) {\n instance._getCoreRowModel = instance.options.getCoreRowModel(instance);\n }\n\n return instance._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n getRowModel: () => {\n return instance.getPaginationRowModel();\n },\n getRow: id => {\n const row = instance.getRowModel().rowsById[id];\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"getRow expected an ID, but got \" + id);\n }\n\n throw new Error();\n }\n\n return row;\n },\n _getDefaultColumnDef: memo(() => [instance.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => {\n var _props$getValue$toStr, _props$getValue;\n\n return (_props$getValue$toStr = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _props$getValue$toStr : null;\n },\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\n _getColumnDefs: () => instance.options.columns,\n getAllColumns: memo(() => [instance._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n return columnDefs.map(columnDef => {\n const column = createColumn(instance, columnDef, depth, parent);\n column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n\n return recurseColumns(columnDefs);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [instance.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [instance.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _instance$options$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [instance.getAllColumns(), instance._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _instance$options$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;\n }\n }),\n getColumn: columnId => {\n const column = instance._getAllFlatColumnsById()[columnId];\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"[Table] Column with id \" + columnId + \" does not exist.\");\n }\n\n throw new Error();\n }\n\n return column;\n }\n };\n Object.assign(instance, coreInstance);\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance == null ? void 0 : feature.createInstance(instance));\n });\n\n return instance;\n}\n\n//\nfunction createTableFactory(opts) {\n return () => createTable(undefined, undefined, opts);\n} // A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\n\nfunction createTable(_, __, options) {\n const table = {\n generics: undefined,\n options: options != null ? options : {\n render: (() => {\n throw new Error('');\n })()\n },\n // setGenerics: () => table as any,\n setRowType: () => table,\n setTableMetaType: () => table,\n setColumnMetaType: () => table,\n setFilterMetaType: () => table,\n setOptions: newOptions => createTable(_, __, { ...options,\n ...newOptions\n }),\n createDisplayColumn: column => ({ ...column,\n columnDefType: 'display'\n }),\n createGroup: column => ({ ...column,\n columnDefType: 'group'\n }),\n createDataColumn: (accessor, column) => {\n column = { ...column,\n columnDefType: 'data',\n id: column.id\n };\n\n if (typeof accessor === 'string') {\n var _column$id;\n\n return { ...column,\n id: (_column$id = column.id) != null ? _column$id : accessor,\n accessorKey: accessor\n };\n }\n\n if (typeof accessor === 'function') {\n return { ...column,\n accessorFn: accessor\n };\n }\n\n throw new Error('Invalid accessor');\n },\n createOptions: options => options\n };\n return table;\n}\n\nfunction createCell(instance, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : instance.options.renderFallbackValue;\n };\n\n const cell = {\n id: row.id + \"_\" + column.id,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: () => {\n return column.columnDef.cell ? instance._render(column.columnDef.cell, {\n instance,\n column,\n row,\n cell: cell,\n getValue: getRenderValue\n }) : null;\n }\n };\n\n instance._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, instance));\n }, {});\n\n return cell;\n}\n\nconst createRow = (instance, id, original, rowIndex, depth, subRows) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n\n const column = instance.getColumn(columnId);\n\n if (!column.accessorFn) {\n return undefined;\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(() => [instance.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(instance, row, column, column.id);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;\n }\n })\n };\n\n for (let i = 0; i < instance._features.length; i++) {\n const feature = instance._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, instance));\n }\n\n return row;\n};\n\nfunction getCoreRowModel() {\n return instance => memo(() => [instance.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n\n const accessRows = function (originalRows, depth, parent) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const rows = [];\n\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 // Make the row\n const row = createRow(instance, instance._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array\n\n rowModel.flatRows.push(row); // Also keep track of every row by its ID\n\n rowModel.rowsById[row.id] = row; // Push instance row into parent\n\n rows.push(row); // Get the original subrows\n\n if (instance.options.getSubRows) {\n var _row$originalSubRows;\n\n row.originalSubRows = instance.options.getSubRows(originalRows[i], i); // Then recursively access them\n\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n\n return rows;\n };\n\n rowModel.rows = accessRows(data);\n return rowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._autoResetPageIndex();\n }\n });\n}\n\nfunction filterRows(rows, filterRowImpl, instance) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance);\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n let row;\n let newRow;\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const rows = []; // Filter from children up first\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n\n row = rowsToFilter[i];\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n newRow = createRow(instance, row.id, row.original, row.index, row.depth);\n newRow.columnFilters = row.columnFilters;\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n\n if (!newRow.subRows.length) {\n continue;\n }\n\n row = newRow;\n }\n\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, instance) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n let rows;\n let row;\n let newRow; // Filters top level and nested rows\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n // Filter from parents downward first\n rows = []; // Apply the filter to any subRows\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i];\n const pass = filterRow(row);\n\n if (pass) {\n var _row$subRows2;\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n newRow = createRow(instance, row.id, row.original, row.index, row.depth);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFilteredRowModel() {\n return instance => memo(() => [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.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\n return rowModel;\n }\n\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n\n const column = instance.getColumn(d.id);\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Table: Could not find a column to filter with columnId: \" + d.id);\n }\n }\n\n const filterFn = column.getFilterFn();\n\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\n return;\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = columnFilters.map(d => d.id);\n const globalFilterFn = instance.getGlobalFilterFn();\n const globallyFilterableColumns = instance.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n\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\n let currentColumnFilter;\n let currentGlobalFilter; // Flag the prefiltered row model with each filter state\n\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id; // Tag the row with the column filter state\n\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\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; // Tag the row with the first truthy global filter state\n\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\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\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\n return true;\n }; // Filter final rows using all of the active filters\n\n\n return filterRows(rowModel.rows, filterRowsImpl, instance);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._autoResetPageIndex();\n }\n });\n}\n\nfunction getFacetedRowModel() {\n return (instance, columnId) => memo(() => [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, instance.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\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\n return true;\n };\n\n return filterRows(preRowModel.rows, filterRowsImpl, instance);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedUniqueValues() {\n return (instance, columnId) => memo(() => [instance.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n let facetedUniqueValues = new Map();\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat;\n\n const value = (_facetedRowModel$flat = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n\n return facetedUniqueValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedMinMaxValues() {\n return (instance, columnId) => memo(() => [instance.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n var _facetedRowModel$flat;\n\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n\n let facetedMinMaxValues = [firstValue, firstValue];\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat2;\n\n const value = (_facetedRowModel$flat2 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId);\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getSortedRowModel() {\n return instance => memo(() => [instance.getState().sorting, instance.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n\n const sortingState = instance.getState().sorting;\n const sortedFlatRows = []; // Filter out sortings that correspond to non existing columns\n\n const availableSorting = sortingState.filter(sort => instance.getColumn(sort.id).getCanSort());\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id);\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\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.slice();\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n } // This function should always return in ascending order\n\n\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n\n return sortInt;\n }\n }\n\n return rowA.index - rowB.index;\n }); // If there are sub-rows, sort them\n\n sortedData.forEach(row => {\n sortedFlatRows.push(row);\n\n if (!row.subRows || row.subRows.length <= 1) {\n return;\n }\n\n row.subRows = sortData(row.subRows);\n });\n return sortedData;\n };\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return instance => memo(() => [instance.getState().grouping, instance.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel;\n } // Filter the grouping list down to columns that exist\n\n\n const existingGrouping = grouping.filter(columnId => instance.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n // Recursively group the data\n\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows;\n }\n\n const columnId = existingGrouping[depth]; // Group the rows together for this level\n\n const rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group\n\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; // First, Recurse to group sub rows before aggregation\n\n const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group\n\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(instance, id, undefined, index, depth);\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\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n\n return row._valuesCache[columnId];\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n } // Aggregate the values\n\n\n const column = instance.getColumn(columnId);\n const aggregateFn = column.getAggregationFn();\n\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; // 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\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '');\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._queue(() => {\n instance._autoResetExpanded();\n\n instance._autoResetPageIndex();\n });\n }\n });\n}\n\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = \"\" + row.getValue(columnId);\n const previous = map.get(resKey);\n\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n map.set(resKey, [...previous, row]);\n }\n\n return map;\n }, groupMap);\n}\n\nfunction getExpandedRowModel() {\n return instance => memo(() => [instance.getState().expanded, instance.getPreExpandedRowModel(), instance.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || // Do not expand if rows are not included in pagination\n !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n\n return expandRows(rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n });\n}\nfunction expandRows(rowModel, instance) {\n const expandedRows = [];\n\n const handleRow = row => {\n var _row$subRows;\n\n expandedRows.push(row);\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getPaginationRowModel(opts) {\n return instance => memo(() => [instance.getState().pagination, instance.getPrePaginationRowModel()], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\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\n if (!instance.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\n paginatedRowModel.flatRows = [];\n\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createColumn, createRow, createTableFactory, createTableInstance, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.js.map\n","import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n createTableInstance,\n TableOptions,\n TableInstance,\n Table,\n TableGenerics,\n createTableFactory,\n Overwrite,\n PartialKeys,\n TableOptionsResolved,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> =\n | React.ReactNode\n | React.FunctionComponent<TProps>\n | React.Component<TProps>\n\nexport type Render = <TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n) => React.ReactNode | JSX.Element\n\nexport type ReactTableGenerics = Overwrite<\n TableGenerics,\n { Renderer: Render; Rendered: ReturnType<Render> }\n>\n\n//\n\nexport const render: Render = (Comp, props) =>\n !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\nexport const createTable = createTableFactory({ render })\n\n// const useIsomorphicLayoutEffect =\n// typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport type UseTableInstanceOptions<TGenerics extends ReactTableGenerics> =\n TableOptions<TGenerics>\n\nexport function useTableInstance<TGenerics extends ReactTableGenerics>(\n table: Table<TGenerics>,\n options: UseTableInstanceOptions<TGenerics>\n): TableInstance<TGenerics> {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n renderFallbackValue: null,\n ...options,\n }\n\n // Create a new table instance and store it in state\n const [instanceRef] = React.useState(() => ({\n current: createTableInstance<TGenerics>(resolvedOptions),\n }))\n\n // By default, manage table state here using the instance's initial state\n const [state, setState] = React.useState(\n () => instanceRef.current.initialState\n )\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 instanceRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return instanceRef.current\n}\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","result","deps","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","createColumn","columnDef","depth","parent","_ref","_columnDef$id","defaultColumn","_getDefaultColumnDef","accessorFn","id","accessorKey","header","undefined","originalRow","Error","column","columnDefType","columns","getFlatColumns","_column$columns","flatMap","_instance$options$deb","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_instance$options$deb2","_features","reduce","obj","feature","Object","assign","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","renderHeader","_render","renderFooter","footer","Headers","createInstance","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","includes","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","_instance$options$deb3","getRightHeaderGroups","_right$map$filter2","_instance$options$deb4","getFooterGroups","headerGroups","reverse","_instance$options$deb5","getLeftFooterGroups","_instance$options$deb6","getCenterFooterGroups","_instance$options$deb7","getRightFooterGroups","_instance$options$deb8","getFlatHeaders","headers","_instance$options$deb9","getLeftFlatHeaders","_instance$options$deb10","getCenterFlatHeaders","_instance$options$deb11","getRightFlatHeaders","_instance$options$deb12","getCenterLeafHeaders","flatHeaders","_header$subHeaders","_instance$options$deb13","getLeftLeafHeaders","_header$subHeaders2","_instance$options$deb14","getRightLeafHeaders","_header$subHeaders3","_instance$options$deb15","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_instance$options$deb16","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_instance$options$ena","enableResizing","enableColumnResizing","getIsResizing","sum","_header$column$getSiz","prevSiblingHeader","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","mouseEvents","moveHandler","onMove","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","defaultState","_instance$initialStat","initialState","resetHeaderSizeInfo","_instance$initialStat2","getTotalSize","_instance$getHeaderGr","_instance$getHeaderGr2","getLeftTotalSize","_instance$getLeftHead","_instance$getLeftHead2","getCenterTotalSize","_instance$getCenterHe","_instance$getCenterHe2","getRightTotalSize","_instance$getRightHea","_instance$getRightHea2","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_instance$options$aut","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","getCanSomeRowsExpand","getRowModel","flatRows","row","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","keys","getIsExpanded","getExpandedDepth","rowsById","splitId","split","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","_expanded","exists","oldExpanded","rowId","_instance$options$get","getIsRowExpanded","_instance$options$get2","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand","includesString","filterValue","search","toLowerCase","getValue","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","arrIncludesAll","arrIncludesSome","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","isNaN","Infinity","temp","filterFns","Filters","filterFn","columnFilters","globalFilter","onColumnFiltersChange","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","_instance$getCoreRowM","_instance$getCoreRowM2","getCoreRowModel","_getAllCellsByColumnId","getAutoFilterFn","firstRow","value","Array","isArray","getFilterFn","userFilterFns","getCanFilter","_instance$options$ena2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$columnDef$ena2","_instance$options$ena3","_instance$options$ena4","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_instance$getState$co","_instance$getState$co2","_instance$getState$co3","_instance$getState$co4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","columnFiltersMeta","getGlobalAutoFilterFn","getGlobalFilterFn","getAllLeafColumns","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_leafRows","childRows","next","extent","mean","leafRows","count","median","unique","from","Set","uniqueCount","_columnId","Grouping","aggregatedCell","props","_props$getValue$toStr","_props$getValue","toString","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getIsGrouped","_instance$getState$gr","getGroupedIndex","_instance$getState$gr2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","prototype","call","getAggregationFn","_ref4","userAggregationFns","resetGrouping","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","createCell","cell","getRenderValue","_cell$getValue","renderFallbackValue","getIsPlaceholder","getIsAggregated","renderAggregatedCell","template","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","setPageIndex","maxPageIndex","pageCount","_instance$initialStat3","_instance$initialStat4","resetPageSize","_instance$initialStat5","_instance$initialStat6","_instance$initialStat7","setPageSize","topRowIndex","floor","setPageCount","_old$pageCount","newPageCount","getPageOptions","pageOptions","fill","i","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","previousPage","nextPage","getPrePaginationRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","Pinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","preFilteredFlatRows","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_instance$getState$ro","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","selectedRowIds","isRowSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","getRow","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","compareBasic","a","b","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sort","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","getTime","basic","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","userSortingFn","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","setSorting","existingSorting","existingIndex","hasDescDefined","sortAction","newSorting","getCanMultiSort","enableSortingRemoval","enableMultiRemove","_instance$options$max","maxMultiSortColCount","_column$columnDef$sor","firstSortDirection","sortDescFirst","isSorted","getIsSorted","getCanSort","enableSorting","enableMultiSort","_instance$getState$so","columnSort","getSortIndex","_instance$getState$so2","_instance$getState$so3","clearSorting","getToggleSortingHandler","canSort","resetSorting","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","enableHiding","getToggleVisibilityHandler","getAllCells","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","createTableInstance","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","render","onStateChange","_getRowId","getRowId","_getCoreRowModel","_defaultColumn","_getColumnDefs","columnDefs","recurseColumns","_getAllFlatColumnsById","flatColumns","acc","createTableFactory","createTable","__","table","generics","setRowType","setTableMetaType","setColumnMetaType","setFilterMetaType","createDisplayColumn","createGroup","createDataColumn","accessor","_column$id","createOptions","original","rowIndex","_valuesCache","hasOwnProperty","getLeafRows","renderCell","filterRows","filterRowImpl","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","newRow","recurseFilterRows","filterRowModelFromLeafs","filterRowModelFromRoot","expandRows","expandedRows","handleRow","Comp","component","proto","getPrototypeOf","isReactComponent","isClassComponent","$$typeof","description","isExoticComponent","React","createElement","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","facetedRowModel","_facetedRowModel$flat","firstValue","facetedMinMaxValues","_facetedRowModel$flat2","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","j","filterMeta","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","_groupedRows$0$getVal","aggregateFn","pageStart","pageEnd","paginatedRowModel","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","sortUndefined","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","aUndefined","bUndefined","sortInt","resolvedOptions","instanceRef","useState","current","prev"],"mappings":"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"}
1
+ {"version":3,"file":"index.production.js","sources":["../../../table-core/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {//\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return { ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n\n if (!depsChanged) {\n return result;\n }\n\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n\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\n const pad = (str, num) => {\n str = String(str);\n\n while (str.length < num) {\n str = ' ' + str;\n }\n\n return str;\n };\n\n console.info(\"%c\\u23F1 \" + 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\n return result;\n };\n}\n\nfunction createColumn(instance, columnDef, depth, parent) {\n var _ref, _columnDef$id;\n\n const defaultColumn = instance._getDefaultColumnDef();\n\n columnDef = { ...defaultColumn,\n ...columnDef\n };\n let id = (_ref = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref : typeof columnDef.header === 'string' ? columnDef.header : undefined;\n let accessorFn;\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn;\n } else if (columnDef.accessorKey) {\n accessorFn = originalRow => originalRow[columnDef.accessorKey];\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(columnDef.accessorFn ? \"Columns require an id when using an accessorFn\" : \"Columns require an id when using a non-string header\");\n }\n\n throw new Error();\n }\n\n let column = {\n id: \"\" + id,\n accessorFn,\n parent: parent,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;\n }\n }),\n getLeafColumns: memo(() => [instance._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n\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\n return [column];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;\n }\n })\n };\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, instance));\n }, column); // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n\n return column;\n}\n\n//\nfunction createHeader(instance, column, options) {\n var _options$id;\n\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\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n\n leafHeaders.push(h);\n };\n\n recurseHeader(header);\n return leafHeaders;\n },\n renderHeader: () => column.columnDef.header ? instance._render(column.columnDef.header, {\n instance,\n header: header,\n column\n }) : null,\n renderFooter: () => column.columnDef.footer ? instance._render(column.columnDef.footer, {\n instance,\n header: header,\n column\n }) : null\n };\n\n instance._features.forEach(feature => {\n Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, instance));\n });\n\n return header;\n}\n\nconst Headers = {\n createInstance: instance => {\n return {\n // Header Groups\n getHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n\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], instance);\n return headerGroups;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugHeaders;\n }\n }),\n getCenterHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.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, instance, 'center');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugHeaders;\n }\n }),\n getLeftHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n\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, instance, 'left');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugHeaders;\n }\n }),\n getRightHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n\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, instance, 'right');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _instance$options$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugHeaders;\n }\n }),\n // Footer Groups\n getFooterGroups: memo(() => [instance.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _instance$options$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [instance.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _instance$options$deb6;\n\n return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [instance.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _instance$options$deb7;\n\n return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : instance.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [instance.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _instance$options$deb8;\n\n return (_instance$options$deb8 = instance.options.debugAll) != null ? _instance$options$deb8 : instance.options.debugHeaders;\n }\n }),\n // Flat Headers\n getFlatHeaders: memo(() => [instance.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _instance$options$deb9;\n\n return (_instance$options$deb9 = instance.options.debugAll) != null ? _instance$options$deb9 : instance.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [instance.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _instance$options$deb10;\n\n return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [instance.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _instance$options$deb11;\n\n return (_instance$options$deb11 = instance.options.debugAll) != null ? _instance$options$deb11 : instance.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [instance.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _instance$options$deb12;\n\n return (_instance$options$deb12 = instance.options.debugAll) != null ? _instance$options$deb12 : instance.options.debugHeaders;\n }\n }),\n // Leaf Headers\n getCenterLeafHeaders: memo(() => [instance.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _instance$options$deb13;\n\n return (_instance$options$deb13 = instance.options.debugAll) != null ? _instance$options$deb13 : instance.options.debugHeaders;\n }\n }),\n getLeftLeafHeaders: memo(() => [instance.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _instance$options$deb14;\n\n return (_instance$options$deb14 = instance.options.debugAll) != null ? _instance$options$deb14 : instance.options.debugHeaders;\n }\n }),\n getRightLeafHeaders: memo(() => [instance.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _instance$options$deb15;\n\n return (_instance$options$deb15 = instance.options.debugAll) != null ? _instance$options$deb15 : instance.options.debugHeaders;\n }\n }),\n getLeafHeaders: memo(() => [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _instance$options$deb16;\n\n return (_instance$options$deb16 = instance.options.debugAll) != null ? _instance$options$deb16 : instance.options.debugHeaders;\n }\n })\n };\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n\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 let maxDepth = 0;\n\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n\n findMaxDepth(allColumns);\n let headerGroups = [];\n\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 }; // The parent columns we're going to scan next\n\n const pendingParentHeaders = []; // Scan each column for parents\n\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n\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\n if ((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(instance, 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 }); // Add the headerToGroup as a subHeader of the new header\n\n header.subHeaders.push(headerToGroup); // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n\n pendingParentHeaders.push(header);\n }\n\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(instance, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse(); // 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\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\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\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\n//\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\n\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\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: instance => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance)\n };\n },\n createColumn: (column, instance) => {\n return {\n getSize: () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n\n const columnSize = instance.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n },\n getStart: position => {\n const columns = !position ? instance.getVisibleLeafColumns() : position === 'left' ? instance.getLeftVisibleLeafColumns() : instance.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n\n return 0;\n },\n resetSize: () => {\n instance.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n getCanResize: () => {\n var _column$columnDef$ena, _instance$options$ena;\n\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_instance$options$ena = instance.options.enableColumnResizing) != null ? _instance$options$ena : true);\n },\n getIsResizing: () => {\n return instance.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, instance) => {\n return {\n getSize: () => {\n let sum = 0;\n\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n\n recurse(header);\n return sum;\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n\n return 0;\n },\n getResizeHandler: () => {\n const column = instance.getColumn(header.column.id);\n const canResize = column.getCanResize();\n return e => {\n if (!canResize) {\n return;\n }\n e.persist == null ? void 0 : e.persist();\n\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\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\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n\n let newColumnSizing = {};\n instance.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n\n const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return { ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n\n if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {\n instance.setColumnSizing(old => ({ ...old,\n ...newColumnSizing\n }));\n }\n };\n\n const onMove = clientXPos => updateOffset('move', clientXPos);\n\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n instance.setColumnSizingInfo(old => ({ ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n\n if (isTouchStartEvent(e)) ; else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n\n instance.setColumnSizingInfo(old => ({ ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n }\n };\n },\n createInstance: instance => {\n return {\n setColumnSizing: updater => instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _instance$initialStat;\n\n instance.setColumnSizing(defaultState ? {} : (_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});\n },\n resetHeaderSizeInfo: defaultState => {\n var _instance$initialStat2;\n\n instance.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : getDefaultColumnSizingInfoState());\n },\n getTotalSize: () => {\n var _instance$getHeaderGr, _instance$getHeaderGr2;\n\n return (_instance$getHeaderGr = (_instance$getHeaderGr2 = instance.getHeaderGroups()[0]) == null ? void 0 : _instance$getHeaderGr2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getHeaderGr : 0;\n },\n getLeftTotalSize: () => {\n var _instance$getLeftHead, _instance$getLeftHead2;\n\n return (_instance$getLeftHead = (_instance$getLeftHead2 = instance.getLeftHeaderGroups()[0]) == null ? void 0 : _instance$getLeftHead2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getLeftHead : 0;\n },\n getCenterTotalSize: () => {\n var _instance$getCenterHe, _instance$getCenterHe2;\n\n return (_instance$getCenterHe = (_instance$getCenterHe2 = instance.getCenterHeaderGroups()[0]) == null ? void 0 : _instance$getCenterHe2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getCenterHe : 0;\n },\n getRightTotalSize: () => {\n var _instance$getRightHea, _instance$getRightHea2;\n\n return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _instance$getRightHea : 0;\n }\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n\n };\n\n const noop = () => {};\n\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n\n passiveSupported = supported;\n return passiveSupported;\n}\n\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\nconst Expanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n paginateExpandedRows: true\n };\n },\n createInstance: instance => {\n let registered = false;\n let queued = false;\n return {\n _autoResetExpanded: () => {\n var _ref, _instance$options$aut;\n\n if (!registered) {\n instance._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_instance$options$aut = instance.options.autoResetAll) != null ? _instance$options$aut : instance.options.autoResetExpanded) != null ? _ref : !instance.options.manualExpanding) {\n if (queued) return;\n queued = true;\n\n instance._queue(() => {\n instance.resetExpanded();\n queued = false;\n });\n }\n },\n setExpanded: updater => instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true);\n } else {\n instance.setExpanded({});\n }\n },\n resetExpanded: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setExpanded(defaultState ? {} : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.expanded) != null ? _instance$initialStat : {});\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n instance.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true\n\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n\n if (!Object.keys(expanded).length) {\n return false;\n } // If any row is not expanded, return false\n\n\n if (instance.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false;\n } // They must all be expanded :shrug:\n\n\n return true;\n },\n getExpandedDepth: () => {\n let maxDepth = 0;\n const rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowModel().rowsById) : Object.keys(instance.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n },\n getPreExpandedRowModel: () => instance.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {\n instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);\n }\n\n if (instance.options.manualExpanding || !instance._getExpandedRowModel) {\n return instance.getPreExpandedRowModel();\n }\n\n return instance._getExpandedRowModel();\n }\n };\n },\n createRow: (row, instance) => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n var _expanded;\n\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n\n if (!exists && expanded) {\n return { ...oldExpanded,\n [row.id]: true\n };\n }\n\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n\n return old;\n });\n },\n getIsExpanded: () => {\n var _instance$options$get;\n\n const expanded = instance.getState().expanded;\n return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n },\n getCanExpand: () => {\n var _instance$options$get2, _instance$options$ena, _row$subRows;\n\n return ((_instance$options$get2 = instance.options.getRowCanExpand == null ? void 0 : instance.options.getRowCanExpand(row)) != null ? _instance$options$get2 : true) && ((_instance$options$ena = instance.options.enableExpanding) != null ? _instance$options$ena : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue;\n\n const search = filterValue.toLowerCase();\n return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);\n};\n\nincludesString.autoRemove = val => testFalsey(val);\n\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n\n return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);\n};\n\nincludesStringSensitive.autoRemove = val => testFalsey(val);\n\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n\n return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : _row$getValue3.toLowerCase()) === filterValue.toLowerCase();\n};\n\nequalsString.autoRemove = val => testFalsey(val);\n\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\n\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\n\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\n\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\n\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\n\nequals.autoRemove = val => testFalsey(val);\n\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\n\nweakEquals.autoRemove = val => testFalsey(val);\n\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\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\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n\n return [min, max];\n};\n\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]); // Export\n\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n\n// Utils\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\nconst Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _instance$getCoreRowM, _instance$getCoreRowM2;\n\n const value = (_instance$getCoreRowM = instance.getCoreRowModel().flatRows[0]) == null ? void 0 : (_instance$getCoreRowM2 = _instance$getCoreRowM._getAllCellsByColumnId()[column.id]) == null ? void 0 : _instance$getCoreRowM2.getValue();\n return typeof value === 'string';\n }\n };\n },\n createColumn: (column, instance) => {\n return {\n getAutoFilterFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n\n return filterFns.weakEquals;\n },\n getFilterFn: () => {\n var _ref;\n\n const userFilterFns = instance.options.filterFns;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.columnDef.filterFn]) != null ? _ref : filterFns[column.columnDef.filterFn];\n },\n getCanFilter: () => {\n var _column$columnDef$ena, _instance$options$ena, _instance$options$ena2;\n\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_instance$options$ena = instance.options.enableColumnFilters) != null ? _instance$options$ena : true) && ((_instance$options$ena2 = instance.options.enableFilters) != null ? _instance$options$ena2 : true) && !!column.accessorFn;\n },\n getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _instance$options$ena3, _instance$options$ena4, _instance$options$get;\n\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_instance$options$ena3 = instance.options.enableGlobalFilter) != null ? _instance$options$ena3 : true) && ((_instance$options$ena4 = instance.options.enableFilters) != null ? _instance$options$ena4 : true) && ((_instance$options$get = instance.options.getColumnCanGlobalFilter == null ? void 0 : instance.options.getColumnCanGlobalFilter(column)) != null ? _instance$options$get : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _instance$getState$co, _instance$getState$co2;\n\n return (_instance$getState$co = instance.getState().columnFilters) == null ? void 0 : (_instance$getState$co2 = _instance$getState$co.find(d => d.id === column.id)) == null ? void 0 : _instance$getState$co2.value;\n },\n getFilterIndex: () => {\n var _instance$getState$co3, _instance$getState$co4;\n\n return (_instance$getState$co3 = (_instance$getState$co4 = instance.getState().columnFilters) == null ? void 0 : _instance$getState$co4.findIndex(d => d.id === column.id)) != null ? _instance$getState$co3 : -1;\n },\n setFilterValue: value => {\n instance.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 if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n\n if (previousfilter) {\n var _old$map;\n\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n\n return d;\n })) != null ? _old$map : [];\n }\n\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n\n return [newFilterObj];\n });\n },\n _getFacetedRowModel: instance.options.getFacetedRowModel && instance.options.getFacetedRowModel(instance, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return instance.getPreFilteredRowModel();\n }\n\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: instance.options.getFacetedUniqueValues && instance.options.getFacetedUniqueValues(instance, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: instance.options.getFacetedMinMaxValues && instance.options.getFacetedMinMaxValues(instance, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n\n return column._getFacetedMinMaxValues();\n } // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n\n };\n },\n createRow: (row, instance) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createInstance: instance => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n var _ref2;\n\n const {\n filterFns: userFilterFns,\n globalFilterFn: globalFilterFn\n } = instance.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? instance.getGlobalAutoFilterFn() : (_ref2 = userFilterFns == null ? void 0 : userFilterFns[globalFilterFn]) != null ? _ref2 : filterFns[globalFilterFn];\n },\n setColumnFilters: updater => {\n const leafColumns = instance.getAllLeafColumns();\n\n const updateFn = old => {\n var _functionalUpdate;\n\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n\n if (column) {\n const filterFn = column.getFilterFn();\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n instance.options.onColumnFiltersChange == null ? void 0 : instance.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n instance.setGlobalFilter(defaultState ? undefined : instance.initialState.globalFilter);\n },\n resetColumnFilters: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setColumnFilters(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);\n },\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n _getFilteredRowModel: instance.options.getFilteredRowModel && instance.options.getFilteredRowModel(instance),\n getFilteredRowModel: () => {\n if (instance.options.manualFiltering || !instance._getFilteredRowModel) {\n return instance.getPreFilteredRowModel();\n }\n\n return instance._getFilteredRowModel();\n },\n _getGlobalFacetedRowModel: instance.options.getFacetedRowModel && instance.options.getFacetedRowModel(instance, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (instance.options.manualFiltering || !instance._getGlobalFacetedRowModel) {\n return instance.getPreFilteredRowModel();\n }\n\n return instance._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: instance.options.getFacetedUniqueValues && instance.options.getFacetedUniqueValues(instance, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!instance._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n\n return instance._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: instance.options.getFacetedMinMaxValues && instance.options.getFacetedMinMaxValues(instance, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!instance._getGlobalFacetedMinMaxValues) {\n return;\n }\n\n return instance._getGlobalFacetedMinMaxValues();\n }\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => sum + (typeof next === 'number' ? next : 0), 0);\n};\n\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\n\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\n\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n\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};\n\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\n\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n\n let min = 0;\n let max = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n\n if (typeof value === 'number') {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n });\n return (min + max) / 2;\n};\n\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\n\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\n\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\n\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\nconst Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _props$getValue$toStr, _props$getValue;\n\n return (_props$getValue$toStr = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _props$getValue$toStr : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, instance) => {\n return {\n toggleGrouping: () => {\n instance.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\n return [...(old != null ? old : []), column.id];\n });\n },\n getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : instance.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n getIsGrouped: () => {\n var _instance$getState$gr;\n\n return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(column.id);\n },\n getGroupedIndex: () => {\n var _instance$getState$gr2;\n\n return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(column.id);\n },\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n getAutoAggregationFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n },\n getAggregationFn: () => {\n var _ref4;\n\n const userAggregationFns = instance.options.aggregationFns;\n\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.columnDef.aggregationFn]) != null ? _ref4 : aggregationFns[column.columnDef.aggregationFn];\n }\n };\n },\n createInstance: instance => {\n return {\n setGrouping: updater => instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater),\n resetGrouping: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setGrouping(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);\n },\n getPreGroupedRowModel: () => instance.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {\n instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel();\n }\n\n return instance._getGroupedRowModel();\n }\n };\n },\n createRow: row => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, instance) => {\n const getRenderValue = () => {\n var _cell$getValue;\n\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : instance.options.renderFallbackValue;\n };\n\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n },\n renderAggregatedCell: () => {\n if (process.env.NODE_ENV === 'development') {\n if (!column.columnDef.aggregatedCell) {\n console.warn('A columnDef.aggregatedCell template is recommended for displaying aggregated values.');\n }\n }\n\n const template = column.columnDef.aggregatedCell || column.columnDef.cell;\n return template ? instance._render(template, {\n instance,\n column,\n row,\n cell,\n getValue: getRenderValue\n }) : null;\n }\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\nconst Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance)\n };\n },\n createInstance: instance => {\n return {\n setColumnOrder: updater => instance.options.onColumnOrderChange == null ? void 0 : instance.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _instance$initialStat;\n\n instance.setColumnOrder(defaultState ? [] : (_instance$initialStat = instance.initialState.columnOrder) != null ? _instance$initialStat : []);\n },\n _getOrderColumnsFn: memo(() => [instance.getState().columnOrder, instance.getState().grouping, instance.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 = []; // If there is no order, return the normal columns\n\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder]; // If there is an order, make a copy of the columns\n\n const columnsCopy = [...columns]; // And make a new ordered array of the columns\n // Loop over the columns and place them in order into the new array\n\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n } // If there are any columns left, add them to the end\n\n\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn' // debug: () => instance.options.debugAll ?? instance.options.debugTable,\n\n })\n };\n }\n};\n\n//\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\n\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\n\nconst Pagination = {\n getInitialState: state => {\n return { ...state,\n pagination: { ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: instance => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance)\n };\n },\n createInstance: instance => {\n let registered = false;\n let queued = false;\n return {\n _autoResetPageIndex: () => {\n var _ref, _instance$options$aut;\n\n if (!registered) {\n instance._queue(() => {\n registered = true;\n });\n\n return;\n }\n\n if ((_ref = (_instance$options$aut = instance.options.autoResetAll) != null ? _instance$options$aut : instance.options.autoResetPageIndex) != null ? _ref : !instance.options.manualPagination) {\n if (queued) return;\n queued = true;\n\n instance._queue(() => {\n instance.resetPageIndex();\n queued = false;\n });\n }\n },\n setPagination: updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n\n return instance.options.onPaginationChange == null ? void 0 : instance.options.onPaginationChange(safeUpdater);\n },\n resetPagination: defaultState => {\n var _instance$initialStat;\n\n instance.setPagination(defaultState ? getDefaultPaginationState() : (_instance$initialStat = instance.initialState.pagination) != null ? _instance$initialStat : getDefaultPaginationState());\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof instance.options.pageCount === 'undefined' || instance.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : instance.options.pageCount - 1;\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);\n return { ...old,\n pageIndex\n };\n });\n },\n resetPageIndex: defaultState => {\n var _instance$initialStat2, _instance$initialStat3, _instance$initialStat4;\n\n instance.setPageIndex(defaultState ? defaultPageIndex : (_instance$initialStat2 = (_instance$initialStat3 = instance.initialState) == null ? void 0 : (_instance$initialStat4 = _instance$initialStat3.pagination) == null ? void 0 : _instance$initialStat4.pageIndex) != null ? _instance$initialStat2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _instance$initialStat5, _instance$initialStat6, _instance$initialStat7;\n\n instance.setPageSize(defaultState ? defaultPageSize : (_instance$initialStat5 = (_instance$initialStat6 = instance.initialState) == null ? void 0 : (_instance$initialStat7 = _instance$initialStat6.pagination) == null ? void 0 : _instance$initialStat7.pageSize) != null ? _instance$initialStat5 : defaultPageSize);\n },\n setPageSize: updater => {\n instance.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 { ...old,\n pageIndex,\n pageSize\n };\n });\n },\n setPageCount: updater => instance.setPagination(old => {\n var _instance$options$pag;\n\n let newPageCount = functionalUpdate(updater, (_instance$options$pag = instance.options.pageCount) != null ? _instance$options$pag : -1);\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n\n return { ...old,\n pageCount: newPageCount\n };\n }),\n getPageOptions: memo(() => [instance.getPageCount()], pageCount => {\n let pageOptions = [];\n\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n\n return pageOptions;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n }),\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n getCanNextPage: () => {\n const {\n pageIndex\n } = instance.getState().pagination;\n const pageCount = instance.getPageCount();\n\n if (pageCount === -1) {\n return true;\n }\n\n if (pageCount === 0) {\n return false;\n }\n\n return pageIndex < pageCount - 1;\n },\n previousPage: () => {\n return instance.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (!instance._getPaginationRowModel && instance.options.getPaginationRowModel) {\n instance._getPaginationRowModel = instance.options.getPaginationRowModel(instance);\n }\n\n if (instance.options.manualPagination || !instance._getPaginationRowModel) {\n return instance.getPrePaginationRowModel();\n }\n\n return instance._getPaginationRowModel();\n },\n getPageCount: () => {\n var _instance$options$pag2;\n\n return (_instance$options$pag2 = instance.options.pageCount) != null ? _instance$options$pag2 : Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\n\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance)\n };\n },\n createColumn: (column, instance) => {\n return {\n pin: position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n instance.setColumnPinning(old => {\n var _old$left3, _old$right3;\n\n if (position === 'right') {\n var _old$left, _old$right;\n\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\n if (position === 'left') {\n var _old$left2, _old$right2;\n\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\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n },\n getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _instance$options$ena;\n\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_instance$options$ena = instance.options.enablePinning) != null ? _instance$options$ena : true);\n });\n },\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = instance.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n },\n getPinnedIndex: () => {\n var _instance$getState$co, _instance$getState$co2, _instance$getState$co3;\n\n const position = column.getIsPinned();\n return position ? (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnPinning) == null ? void 0 : (_instance$getState$co3 = _instance$getState$co2[position]) == null ? void 0 : _instance$getState$co3.indexOf(column.id)) != null ? _instance$getState$co : -1 : 0;\n }\n };\n },\n createRow: (row, instance) => {\n return {\n getCenterVisibleCells: memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;\n }\n }),\n getLeftVisibleCells: memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;\n }\n }),\n getRightVisibleCells: memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugRows;\n }\n })\n };\n },\n createInstance: instance => {\n return {\n setColumnPinning: updater => instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n return instance.setColumnPinning(defaultState ? getDefaultPinningState() : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnPinning) != null ? _instance$initialStat : getDefaultPinningState());\n },\n getIsSomeColumnsPinned: position => {\n var _pinningState$positio;\n\n const pinningState = instance.getState().columnPinning;\n\n if (!position) {\n var _pinningState$left, _pinningState$right;\n\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\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n },\n getLeftLeafColumns: memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _instance$options$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;\n }\n }),\n getRightLeafColumns: memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _instance$options$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;\n }\n }),\n getCenterLeafColumns: memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _instance$options$deb6;\n\n return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;\n }\n })\n };\n }\n};\n\n//\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n\n };\n },\n createInstance: instance => {\n return {\n setRowSelection: updater => instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _instance$initialStat;\n\n return instance.setRowSelection(defaultState ? {} : (_instance$initialStat = instance.initialState.rowSelection) != null ? _instance$initialStat : {});\n },\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();\n const rowSelection = { ...old\n };\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // 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\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n\n return rowSelection;\n });\n },\n toggleAllPageRowsSelected: value => instance.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();\n const rowSelection = { ...old\n };\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, instance);\n });\n return rowSelection;\n }),\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\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 // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n // let include = false\n // const selectedRowIds = {}\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n // if (include) {\n // addRow(row)\n // }\n // })\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(() => [instance.getState().rowSelection, instance.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(instance, rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n }),\n getFilteredSelectedRowModel: memo(() => [instance.getState().rowSelection, instance.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(instance, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;\n }\n }),\n getGroupedSelectedRowModel: memo(() => [instance.getState().rowSelection, instance.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n\n return selectRowsFn(instance, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;\n }\n }),\n ///\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n // if (!row) {\n // throw new Error()\n // }\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows;\n const {\n rowSelection\n } = instance.getState();\n let isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n\n return isAllRowsSelected;\n },\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows;\n const {\n rowSelection\n } = instance.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n\n return isAllPageRowsSelected;\n },\n getIsSomeRowsSelected: () => {\n var _instance$getState$ro;\n\n return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;\n },\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows;\n return instance.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());\n },\n getToggleAllRowsSelectedHandler: () => {\n return e => {\n instance.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n instance.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, instance) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n\n if (isSelected === value) {\n return old;\n }\n\n const selectedRowIds = { ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, instance);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = instance.getState();\n return isRowSelected(row, rowSelection) === true;\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = instance.getState();\n return isRowSelected(row, rowSelection) === 'some';\n },\n getCanSelect: () => {\n var _instance$options$ena;\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row);\n }\n\n return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;\n },\n getCanSelectSubRows: () => {\n var _instance$options$ena2;\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row);\n }\n\n return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;\n },\n getCanMultiSelect: () => {\n var _instance$options$ena3;\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row);\n }\n\n return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst mutateRowIsSelected = (selectedRowIds, id, value, instance) => {\n var _row$subRows;\n\n const row = instance.getRow(id);\n row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n\n if (value) {\n selectedRowIds[id] = true;\n } else {\n delete selectedRowIds[id];\n } // }\n\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, instance));\n }\n};\n\nfunction selectRowsFn(instance, rowModel) {\n const rowSelection = instance.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {}; // Filters top level and nested rows\n\n const recurseRows = function (rows, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n return rows.map(row => {\n var _row$subRows2;\n\n const isSelected = isRowSelected(row, rowSelection) === true;\n\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = { ...row,\n subRows: recurseRows(row.subRows, depth + 1)\n };\n }\n\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection, instance) {\n if (selection[row.id]) {\n return true;\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? true : someSelected ? 'some' : false;\n }\n\n return false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\n\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n}; // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\nconst datetime = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());\n};\n\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n}; // Utils\n\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n\n return String(a);\n }\n\n if (typeof a === 'string') {\n return a;\n }\n\n return '';\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\n\n\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); // While\n\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(); // Both are string\n\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n\n if (bb > aa) {\n return -1;\n }\n\n continue;\n } // One is a string, one is a number\n\n\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n } // Both are numbers\n\n\n if (an > bn) {\n return 1;\n }\n\n if (bn > an) {\n return -1;\n }\n }\n\n return a.length - b.length;\n} // Exports\n\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\nconst Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\n };\n },\n getDefaultOptions: instance => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, instance) => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n\n if (typeof value === 'string') {\n isString = true;\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n\n if (isString) {\n return sortingFns.text;\n }\n\n return sortingFns.basic;\n },\n getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n\n if (typeof value === 'string') {\n return 'asc';\n }\n\n return 'desc';\n },\n getSortingFn: () => {\n var _ref;\n\n const userSortingFn = instance.options.sortingFns;\n\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.columnDef.sortingFn]) != null ? _ref : sortingFns[column.columnDef.sortingFn];\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n // this needs to be outside of instance.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n instance.setSorting(old => {\n var _instance$options$ena, _instance$options$ena2;\n\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 const hasDescDefined = typeof desc !== 'undefined' && desc !== null;\n let newSorting = []; // What should we do with this sort action?\n\n let sortAction;\n\n if (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 } // Handle toggle states that will remove the sorting\n\n\n if (sortAction === 'toggle' && ( // Must be toggling\n (_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general\n !hasDescDefined && ( // Must not be setting desc\n multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) && // If multi, don't allow if enableMultiRemove\n !nextSortingOrder // Finally, detect if it should indeed be removed\n ) {\n sortAction = 'remove';\n }\n\n if (sortAction === 'replace') {\n newSorting = [{\n id: column.id,\n desc: hasDescDefined ? desc : nextSortingOrder === 'desc'\n }];\n } else if (sortAction === 'add' && old != null && old.length) {\n var _instance$options$max;\n\n newSorting = [...old, {\n id: column.id,\n desc: hasDescDefined ? desc : nextSortingOrder === 'desc'\n }]; // Take latest n columns\n\n newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle' && old != null && old.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return { ...d,\n desc: hasDescDefined ? desc : nextSortingOrder === 'desc'\n };\n }\n\n return d;\n });\n } else if (sortAction === 'remove' && old != null && old.length) {\n newSorting = old.filter(d => d.id !== column.id);\n }\n\n return newSorting;\n });\n },\n getNextSortingOrder: () => {\n var _ref2, _column$columnDef$sor;\n\n const sortDescFirst = (_ref2 = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc';\n const firstSortDirection = sortDescFirst ? 'desc' : 'asc';\n const isSorted = column.getIsSorted();\n\n if (!isSorted) {\n return firstSortDirection;\n }\n\n if (isSorted === firstSortDirection) {\n return isSorted === 'desc' ? 'asc' : 'desc';\n } else {\n return false;\n }\n },\n getCanSort: () => {\n var _column$columnDef$ena, _instance$options$ena3;\n\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_instance$options$ena3 = instance.options.enableSorting) != null ? _instance$options$ena3 : true) && !!column.accessorFn;\n },\n getCanMultiSort: () => {\n var _ref3, _column$columnDef$ena2;\n\n return (_ref3 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : instance.options.enableMultiSort) != null ? _ref3 : !!column.accessorFn;\n },\n getIsSorted: () => {\n var _instance$getState$so;\n\n const columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n },\n getSortIndex: () => {\n var _instance$getState$so2, _instance$getState$so3;\n\n return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(d => d.id === column.id)) != null ? _instance$getState$so2 : -1;\n },\n clearSorting: () => {\n //clear sorting for just 1 column\n instance.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n },\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createInstance: instance => {\n return {\n setSorting: updater => instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater),\n resetSorting: defaultState => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setSorting(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);\n },\n getPreSortedRowModel: () => instance.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {\n instance._getSortedRowModel = instance.options.getSortedRowModel(instance);\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel();\n }\n\n return instance._getSortedRowModel();\n }\n };\n }\n};\n\n//\nconst Visibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: instance => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance)\n };\n },\n createColumn: (column, instance) => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({ ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _instance$getState$co, _instance$getState$co2;\n\n return (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnVisibility) == null ? void 0 : _instance$getState$co2[column.id]) != null ? _instance$getState$co : true;\n },\n getCanHide: () => {\n var _column$columnDef$ena, _instance$options$ena;\n\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_instance$options$ena = instance.options.enableHiding) != null ? _instance$options$ena : true);\n },\n getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, instance) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), instance.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;\n }\n })\n };\n },\n createInstance: instance => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, {\n key,\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;\n }\n });\n };\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => instance.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => instance.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => instance.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => instance.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => instance.getCenterLeafColumns()),\n setColumnVisibility: updater => instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _instance$initialStat;\n\n instance.setColumnVisibility(defaultState ? {} : (_instance$initialStat = instance.initialState.columnVisibility) != null ? _instance$initialStat : {});\n },\n toggleAllColumnsVisible: value => {\n var _value;\n\n value = (_value = value) != null ? _value : !instance.getIsAllColumnsVisible();\n instance.setColumnVisibility(instance.getAllLeafColumns().reduce((obj, column) => ({ ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n },\n getIsAllColumnsVisible: () => !instance.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => instance.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n\n instance.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing]; //\n\nfunction createTableInstance(options) {\n var _options$initialState;\n\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n\n let instance = {\n _features: features\n };\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));\n }, {});\n\n const mergeOptions = options => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options);\n }\n\n return { ...defaultOptions,\n ...options\n };\n };\n\n const coreInitialState = {};\n let initialState = { ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n\n instance._features.forEach(feature => {\n var _feature$getInitialSt;\n\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features: features,\n options: { ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n\n if (!queuedTimeout) {\n queuedTimeout = true; // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n instance.setState(instance.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options);\n instance.options = mergeOptions(newOptions);\n },\n _render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props);\n }\n\n if (typeof template === 'function') {\n return template(props);\n }\n\n return template;\n },\n getState: () => {\n return instance.options.state;\n },\n setState: updater => {\n instance.options.onStateChange == null ? void 0 : instance.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _instance$options$get;\n\n return (_instance$options$get = instance.options.getRowId == null ? void 0 : instance.options.getRowId(row, index, parent)) != null ? _instance$options$get : \"\" + (parent ? [parent.id, index].join('.') : index);\n },\n getCoreRowModel: () => {\n if (!instance._getCoreRowModel) {\n instance._getCoreRowModel = instance.options.getCoreRowModel(instance);\n }\n\n return instance._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n getRowModel: () => {\n return instance.getPaginationRowModel();\n },\n getRow: id => {\n const row = instance.getRowModel().rowsById[id];\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"getRow expected an ID, but got \" + id);\n }\n\n throw new Error();\n }\n\n return row;\n },\n _getDefaultColumnDef: memo(() => [instance.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => {\n var _props$getValue$toStr, _props$getValue;\n\n return (_props$getValue$toStr = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _props$getValue$toStr : null;\n },\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\n _getColumnDefs: () => instance.options.columns,\n getAllColumns: memo(() => [instance._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n return columnDefs.map(columnDef => {\n const column = createColumn(instance, columnDef, depth, parent);\n column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n\n return recurseColumns(columnDefs);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [instance.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _instance$options$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [instance.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _instance$options$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [instance.getAllColumns(), instance._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _instance$options$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;\n }\n }),\n getColumn: columnId => {\n const column = instance._getAllFlatColumnsById()[columnId];\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"[Table] Column with id \" + columnId + \" does not exist.\");\n }\n\n throw new Error();\n }\n\n return column;\n }\n };\n Object.assign(instance, coreInstance);\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance == null ? void 0 : feature.createInstance(instance));\n });\n\n return instance;\n}\n\n//\nfunction createTableFactory(opts) {\n return () => createTable(undefined, undefined, opts);\n} // A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\n\nfunction createTable(_, __, options) {\n const table = {\n generics: undefined,\n options: options != null ? options : {\n render: (() => {\n throw new Error('');\n })()\n },\n // setGenerics: () => table as any,\n setRowType: () => table,\n setTableMetaType: () => table,\n setColumnMetaType: () => table,\n setFilterMetaType: () => table,\n setOptions: newOptions => createTable(_, __, { ...options,\n ...newOptions\n }),\n createDisplayColumn: column => ({ ...column,\n columnDefType: 'display'\n }),\n createGroup: column => ({ ...column,\n columnDefType: 'group'\n }),\n createDataColumn: (accessor, column) => {\n column = { ...column,\n columnDefType: 'data',\n id: column.id\n };\n\n if (typeof accessor === 'string') {\n var _column$id;\n\n return { ...column,\n id: (_column$id = column.id) != null ? _column$id : accessor,\n accessorKey: accessor\n };\n }\n\n if (typeof accessor === 'function') {\n return { ...column,\n accessorFn: accessor\n };\n }\n\n throw new Error('Invalid accessor');\n },\n createOptions: options => options\n };\n return table;\n}\n\nfunction createCell(instance, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : instance.options.renderFallbackValue;\n };\n\n const cell = {\n id: row.id + \"_\" + column.id,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: () => {\n return column.columnDef.cell ? instance._render(column.columnDef.cell, {\n instance,\n column,\n row,\n cell: cell,\n getValue: getRenderValue\n }) : null;\n }\n };\n\n instance._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, instance));\n }, {});\n\n return cell;\n}\n\nconst createRow = (instance, id, original, rowIndex, depth, subRows) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n\n const column = instance.getColumn(columnId);\n\n if (!column.accessorFn) {\n return undefined;\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(() => [instance.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(instance, row, column, column.id);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _instance$options$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;\n }\n })\n };\n\n for (let i = 0; i < instance._features.length; i++) {\n const feature = instance._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, instance));\n }\n\n return row;\n};\n\nfunction getCoreRowModel() {\n return instance => memo(() => [instance.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n\n const accessRows = function (originalRows, depth, parent) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const rows = [];\n\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 // Make the row\n const row = createRow(instance, instance._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array\n\n rowModel.flatRows.push(row); // Also keep track of every row by its ID\n\n rowModel.rowsById[row.id] = row; // Push instance row into parent\n\n rows.push(row); // Get the original subrows\n\n if (instance.options.getSubRows) {\n var _row$originalSubRows;\n\n row.originalSubRows = instance.options.getSubRows(originalRows[i], i); // Then recursively access them\n\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n\n return rows;\n };\n\n rowModel.rows = accessRows(data);\n return rowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._autoResetPageIndex();\n }\n });\n}\n\nfunction filterRows(rows, filterRowImpl, instance) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance);\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const rows = []; // Filter from children up first\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n\n let row = rowsToFilter[i];\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n const newRow = createRow(instance, row.id, row.original, row.index, row.depth);\n newRow.columnFilters = row.columnFilters;\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n\n if (!newRow.subRows.length) {\n continue;\n }\n\n row = newRow;\n }\n\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, instance) {\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {}; // Filters top level and nested rows\n\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n\n // Filter from parents downward first\n const rows = []; // Apply the filter to any subRows\n\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n\n if (pass) {\n var _row$subRows2;\n\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n const newRow = createRow(instance, row.id, row.original, row.index, row.depth);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n\n return rows;\n };\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFilteredRowModel() {\n return instance => memo(() => [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.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\n return rowModel;\n }\n\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n\n const column = instance.getColumn(d.id);\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Table: Could not find a column to filter with columnId: \" + d.id);\n }\n }\n\n const filterFn = column.getFilterFn();\n\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\n return;\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = columnFilters.map(d => d.id);\n const globalFilterFn = instance.getGlobalFilterFn();\n const globallyFilterableColumns = instance.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n\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\n let currentColumnFilter;\n let currentGlobalFilter; // Flag the prefiltered row model with each filter state\n\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id; // Tag the row with the column filter state\n\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\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; // Tag the row with the first truthy global filter state\n\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\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\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\n return true;\n }; // Filter final rows using all of the active filters\n\n\n return filterRows(rowModel.rows, filterRowsImpl, instance);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._autoResetPageIndex();\n }\n });\n}\n\nfunction getFacetedRowModel() {\n return (instance, columnId) => memo(() => [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, instance.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\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\n return true;\n };\n\n return filterRows(preRowModel.rows, filterRowsImpl, instance);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedUniqueValues() {\n return (instance, columnId) => memo(() => [instance.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n let facetedUniqueValues = new Map();\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat;\n\n const value = (_facetedRowModel$flat = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n\n return facetedUniqueValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedMinMaxValues() {\n return (instance, columnId) => memo(() => [instance.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {\n var _facetedRowModel$flat;\n\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);\n\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n\n let facetedMinMaxValues = [firstValue, firstValue];\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat2;\n\n const value = (_facetedRowModel$flat2 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId);\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getSortedRowModel() {\n return instance => memo(() => [instance.getState().sorting, instance.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n\n const sortingState = instance.getState().sorting;\n const sortedFlatRows = []; // Filter out sortings that correspond to non existing columns\n\n const availableSorting = sortingState.filter(sort => instance.getColumn(sort.id).getCanSort());\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id);\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\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.slice();\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n } // This function should always return in ascending order\n\n\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n\n return sortInt;\n }\n }\n\n return rowA.index - rowB.index;\n }); // If there are sub-rows, sort them\n\n sortedData.forEach(row => {\n sortedFlatRows.push(row);\n\n if (!row.subRows || row.subRows.length <= 1) {\n return;\n }\n\n row.subRows = sortData(row.subRows);\n });\n return sortedData;\n };\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return instance => memo(() => [instance.getState().grouping, instance.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel;\n } // Filter the grouping list down to columns that exist\n\n\n const existingGrouping = grouping.filter(columnId => instance.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {}; // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n // Recursively group the data\n\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows;\n }\n\n const columnId = existingGrouping[depth]; // Group the rows together for this level\n\n const rowGroupsMap = groupBy(rows, columnId); // Peform aggregations for each group\n\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; // First, Recurse to group sub rows before aggregation\n\n const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group\n\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(instance, id, undefined, index, depth);\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\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n\n return row._valuesCache[columnId];\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n } // Aggregate the values\n\n\n const column = instance.getColumn(columnId);\n const aggregateFn = column.getAggregationFn();\n\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; // 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\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '');\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow; // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n },\n onChange: () => {\n instance._queue(() => {\n instance._autoResetExpanded();\n\n instance._autoResetPageIndex();\n });\n }\n });\n}\n\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = \"\" + row.getValue(columnId);\n const previous = map.get(resKey);\n\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n map.set(resKey, [...previous, row]);\n }\n\n return map;\n }, groupMap);\n}\n\nfunction getExpandedRowModel() {\n return instance => memo(() => [instance.getState().expanded, instance.getPreExpandedRowModel(), instance.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || // Do not expand if rows are not included in pagination\n !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n\n return expandRows(rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n });\n}\nfunction expandRows(rowModel, instance) {\n const expandedRows = [];\n\n const handleRow = row => {\n var _row$subRows;\n\n expandedRows.push(row);\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getPaginationRowModel(opts) {\n return instance => memo(() => [instance.getState().pagination, instance.getPrePaginationRowModel()], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\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\n if (!instance.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\n paginatedRowModel.flatRows = [];\n\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _instance$options$deb;\n\n return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createColumn, createRow, createTableFactory, createTableInstance, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.js.map\n","import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n createTableInstance,\n TableOptions,\n TableInstance,\n Table,\n TableGenerics,\n createTableFactory,\n Overwrite,\n PartialKeys,\n TableOptionsResolved,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> =\n | React.ReactNode\n | React.FunctionComponent<TProps>\n | React.Component<TProps>\n\nexport type Render = <TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n) => React.ReactNode | JSX.Element\n\nexport type ReactTableGenerics = Overwrite<\n TableGenerics,\n { Renderer: Render; Rendered: ReturnType<Render> }\n>\n\n//\n\nexport const render: Render = (Comp, props) =>\n !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\nexport const createTable = createTableFactory({ render })\n\n// const useIsomorphicLayoutEffect =\n// typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport type UseTableInstanceOptions<TGenerics extends ReactTableGenerics> =\n TableOptions<TGenerics>\n\nexport function useTableInstance<TGenerics extends ReactTableGenerics>(\n table: Table<TGenerics>,\n options: UseTableInstanceOptions<TGenerics>\n): TableInstance<TGenerics> {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n renderFallbackValue: null,\n ...options,\n }\n\n // Create a new table instance and store it in state\n const [instanceRef] = React.useState(() => ({\n current: createTableInstance<TGenerics>(resolvedOptions),\n }))\n\n // By default, manage table state here using the instance's initial state\n const [state, setState] = React.useState(\n () => instanceRef.current.initialState\n )\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 instanceRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return instanceRef.current\n}\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","result","deps","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","createColumn","columnDef","depth","parent","_ref","_columnDef$id","defaultColumn","_getDefaultColumnDef","accessorFn","id","accessorKey","header","undefined","originalRow","Error","column","columnDefType","columns","getFlatColumns","_column$columns","flatMap","_instance$options$deb","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_instance$options$deb2","_features","reduce","obj","feature","Object","assign","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","renderHeader","_render","renderFooter","footer","Headers","createInstance","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","find","filter","Boolean","rightColumns","buildHeaderGroups","includes","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","_instance$options$deb3","getRightHeaderGroups","_right$map$filter2","_instance$options$deb4","getFooterGroups","headerGroups","reverse","_instance$options$deb5","getLeftFooterGroups","_instance$options$deb6","getCenterFooterGroups","_instance$options$deb7","getRightFooterGroups","_instance$options$deb8","getFlatHeaders","headers","_instance$options$deb9","getLeftFlatHeaders","_instance$options$deb10","getCenterFlatHeaders","_instance$options$deb11","getRightFlatHeaders","_instance$options$deb12","getCenterLeafHeaders","flatHeaders","_header$subHeaders","_instance$options$deb13","getLeftLeafHeaders","_header$subHeaders2","_instance$options$deb14","getRightLeafHeaders","_header$subHeaders3","_instance$options$deb15","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_instance$options$deb16","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_instance$options$ena","enableResizing","enableColumnResizing","getIsResizing","sum","_header$column$getSiz","prevSiblingHeader","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","clientX","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","mouseEvents","moveHandler","onMove","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","defaultState","_instance$initialStat","initialState","resetHeaderSizeInfo","_instance$initialStat2","getTotalSize","_instance$getHeaderGr","_instance$getHeaderGr2","getLeftTotalSize","_instance$getLeftHead","_instance$getLeftHead2","getCenterTotalSize","_instance$getCenterHe","_instance$getCenterHe2","getRightTotalSize","_instance$getRightHea","_instance$getRightHea2","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_instance$options$aut","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","getCanSomeRowsExpand","getRowModel","flatRows","row","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","keys","getIsExpanded","getExpandedDepth","rowsById","splitId","split","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","_expanded","exists","oldExpanded","rowId","_instance$options$get","getIsRowExpanded","_instance$options$get2","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand","includesString","filterValue","_row$getValue","search","toLowerCase","getValue","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","isNaN","Infinity","temp","filterFns","Filters","filterFn","columnFilters","globalFilter","onColumnFiltersChange","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","_instance$getCoreRowM","_instance$getCoreRowM2","getCoreRowModel","_getAllCellsByColumnId","getAutoFilterFn","firstRow","value","Array","isArray","getFilterFn","userFilterFns","getCanFilter","_instance$options$ena2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$columnDef$ena2","_instance$options$ena3","_instance$options$ena4","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_instance$getState$co","_instance$getState$co2","_instance$getState$co3","_instance$getState$co4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","columnFiltersMeta","getGlobalAutoFilterFn","getGlobalFilterFn","getAllLeafColumns","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_leafRows","childRows","next","extent","mean","leafRows","count","median","unique","from","Set","uniqueCount","_columnId","Grouping","aggregatedCell","props","_props$getValue$toStr","_props$getValue","toString","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getIsGrouped","_instance$getState$gr","getGroupedIndex","_instance$getState$gr2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","prototype","call","getAggregationFn","_ref4","userAggregationFns","resetGrouping","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","createCell","cell","getRenderValue","_cell$getValue","renderFallbackValue","getIsPlaceholder","getIsAggregated","renderAggregatedCell","template","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","setPageIndex","maxPageIndex","pageCount","_instance$initialStat3","_instance$initialStat4","resetPageSize","_instance$initialStat5","_instance$initialStat6","_instance$initialStat7","setPageSize","topRowIndex","floor","setPageCount","_instance$options$pag","newPageCount","getPageOptions","getPageCount","pageOptions","fill","i","debugTable","getCanPreviousPage","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getPaginationRowModel","_getPaginationRowModel","_instance$options$pag2","ceil","rows","Pinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","allCells","leftAndRight","debugRows","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","preFilteredFlatRows","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_instance$getState$ro","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","selectedRowIds","isRowSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","getRow","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","compareBasic","a","b","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sort","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","getTime","basic","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","userSortingFn","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","setSorting","existingSorting","existingIndex","hasDescDefined","sortAction","newSorting","getCanMultiSort","enableSortingRemoval","enableMultiRemove","_instance$options$max","maxMultiSortColCount","_column$columnDef$sor","firstSortDirection","sortDescFirst","isSorted","getIsSorted","getCanSort","enableSorting","enableMultiSort","_instance$getState$so","columnSort","getSortIndex","_instance$getState$so2","_instance$getState$so3","clearSorting","getToggleSortingHandler","canSort","resetSorting","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","enableHiding","getToggleVisibilityHandler","getAllCells","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","features","createTableInstance","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","render","onStateChange","_getRowId","getRowId","_getCoreRowModel","_defaultColumn","_getColumnDefs","columnDefs","recurseColumns","_getAllFlatColumnsById","flatColumns","acc","createTableFactory","createTable","__","table","generics","setRowType","setTableMetaType","setColumnMetaType","setFilterMetaType","createDisplayColumn","createGroup","createDataColumn","accessor","_column$id","createOptions","original","rowIndex","_valuesCache","hasOwnProperty","getLeafRows","renderCell","filterRows","filterRowImpl","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","filterRowModelFromLeafs","filterRowModelFromRoot","expandRows","expandedRows","handleRow","Comp","component","proto","getPrototypeOf","isReactComponent","isClassComponent","$$typeof","description","isExoticComponent","React","createElement","data","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","facetedRowModel","_facetedRowModel$flat","firstValue","facetedMinMaxValues","_facetedRowModel$flat2","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","j","filterMeta","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","_groupedRows$0$getVal","aggregateFn","pageStart","pageEnd","paginatedRowModel","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","sortUndefined","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","aUndefined","bUndefined","sortInt","resolvedOptions","instanceRef","useState","current","prev"],"mappings":"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"}