@tanstack/react-table 8.0.0-alpha.64 → 8.0.0-alpha.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/react-table/src/index.js +133 -0
- package/build/cjs/react-table/src/index.js.map +1 -0
- package/build/cjs/table-core/build/esm/index.js +4018 -0
- package/build/cjs/table-core/build/esm/index.js.map +1 -0
- package/build/esm/index.js +3990 -52
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +29 -38
- package/build/umd/index.development.js +4021 -59
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +11 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +3 -2
- package/src/index.tsx +10 -12
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -34
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/index.js +0 -113
- package/build/cjs/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.production.js","sources":["../../src/index.tsx"],"sourcesContent":["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} 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\nconst useIsomorphicLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport type UseTableInstanceOptions<TGenerics extends ReactTableGenerics> =\n PartialKeys<\n Omit<TableOptions<TGenerics>, 'render'>,\n 'state' | 'onStateChange'\n >\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: TableOptions<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n ...options,\n }\n\n // Create a new table instance and store it in state\n const [instance] = React.useState(() =>\n createTableInstance<TGenerics>(resolvedOptions)\n )\n\n // By default, manage table state here using the instance's initial state\n const [state, setState] = React.useState(() => instance.initialState)\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n instance.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 // useIsomorphicLayoutEffect(() => {\n // instance.willUpdate()\n // })\n\n return instance\n}\n"],"names":["render","Comp","props","component","proto","Object","getPrototypeOf","prototype","isReactComponent","isClassComponent","$$typeof","includes","description","isExoticComponent","React","createTable","createTableFactory","table","options","resolvedOptions","_extends","state","onStateChange","instance","useState","createTableInstance","initialState","_React$useState2","setState","setOptions","prev","updater"],"mappings":";;;;;;;;;;o1BA+BaA,IAAAA,EAAiB,SAACC,EAAMC,GAAP,OAC3BD,EAUH,SAA0BE,GACxB,MACuB,mBAAdA,KAECC,EAAQC,OAAOC,eAAeH,IACvBI,WAAaH,EAAMG,UAAUC,kBAF3C,IACOJ,EAVRK,CAFsBN,EAFQF,IAKT,mBAAdE,GAeX,SAA2BA,GAEvB,MAAqB,iBAAdA,GACuB,iBAAvBA,EAAUO,UACjB,CAAC,aAAc,qBAAqBC,SAASR,EAAUO,SAASE,aAlBhEC,CAAkBV,GANoBW,gBAACb,EAASC,GAAYD,EAAtD,KAEV,IAA0BE,GA0BbY,IAAAA,EAAcC,EAAAA,mBAAmB,CAAEhB,OAAAA,kDAWzC,SACLiB,EACAC,GAGA,IAAMC,EAAwCC,EAAA,GACzCH,EAAMC,QADmC,CAE5CG,MAAO,GACPC,cAAe,aACftB,OAAAA,GACGkB,GAIEK,EAAYT,EAAMU,UAAS,WAChCC,OAAAA,EAAAA,oBAA+BN,SAIPL,EAAAA,EAAMU,UAAS,WAAMD,OAAAA,EAASG,gBAAjDL,EAAPM,EAAA,GAAcC,OAuBd,OAnBAL,EAASM,YAAW,SAAAC,GACfA,OAAAA,EAAAA,GAAAA,EACAZ,EAFmB,CAGtBG,MACKA,EAAAA,GAAAA,EACAH,EAAQG,OAIbC,cAAe,SAAAS,GACbH,EAASG,GACT,MAAAb,EAAQI,eAARJ,EAAQI,cAAgBS,SAQrBR"}
|
|
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\n//\nconst Columns = {\n createInstance: instance => {\n return {\n getDefaultColumn: 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$toStr2, _props$getValue;\n\n return (_props$getValue$toStr = (_props$getValue$toStr2 = (_props$getValue = props.getValue()).toString) == null ? void 0 : _props$getValue$toStr2.call(_props$getValue)) != null ? _props$getValue$toStr : null;\n },\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());\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' && 'getDefaultColumn'\n }),\n getColumnDefs: () => instance.options.columns,\n createColumn: (columnDef, depth, parent) => {\n var _ref, _columnDef$id;\n\n const defaultColumn = instance.getDefaultColumn();\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 = { ...defaultColumn,\n ...columnDef,\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$deb2;\n\n return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : 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$deb3;\n\n return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : 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 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 = instance.createColumn(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$deb4;\n\n return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : 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$deb5;\n\n return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : 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$deb6;\n\n return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : 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$deb7;\n\n return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : 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 }\n};\n\n//\nconst Rows = {\n // createRow: <TGenerics extends TableGenerics>(\n // row: Row<TGenerics>,\n // instance: TableInstance<TGenerics>\n // ): CellsRow<TGenerics> => {\n // return {}\n // },\n createInstance: instance => {\n return {\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 createRow: (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 throw new Error();\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 };\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 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 };\n }\n};\n\n//\nconst Cells = {\n createRow: (row, instance) => {\n return {\n getAllCells: memo(() => [instance.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(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.columnId] = 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 createInstance: instance => {\n return {\n createCell: (row, column, columnId) => {\n const cell = {\n id: row.id + \"_\" + column.id,\n rowId: row.id,\n columnId,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: () => column.cell ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell,\n getValue: cell.getValue\n }) : null\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 getCell: (rowId, columnId) => {\n const row = instance.getRow(rowId);\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"[Table] could not find row with id \" + rowId);\n }\n\n throw new Error();\n }\n\n const cell = row.getAllCellsByColumnId()[columnId];\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"[Table] could not find cell \" + columnId + \" in row \" + rowId);\n }\n\n throw new Error();\n }\n\n return cell;\n }\n };\n }\n};\n\n//\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst ColumnSizing = {\n getDefaultColumn: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n },\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$minSize, _ref, _column$maxSize;\n\n const columnSize = instance.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$minSize = column.minSize) != null ? _column$minSize : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.size) != null ? _ref : defaultColumnSizing.size), (_column$maxSize = column.maxSize) != null ? _column$maxSize : 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$enableResizin, _instance$options$ena;\n\n return ((_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : 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 = column.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: () => {\n var _instance$initialStat;\n\n instance.setColumnSizing((_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});\n },\n resetHeaderSizeInfo: () => {\n var _instance$initialStat2;\n\n instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : {});\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.column.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.column.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.column.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.column.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 autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true\n };\n },\n createInstance: instance => {\n let registered = false;\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n registered = true;\n return;\n }\n\n if (instance.options.autoResetAll === false) {\n return;\n }\n\n if (instance.options.autoResetAll === true || instance.options.autoResetExpanded) {\n instance.resetExpanded();\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: () => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setExpanded((_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 (expanded === true) {\n return true;\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.getGroupedRowModel(),\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 getDefaultColumn: () => {\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 filterFn: column.filterFn,\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 (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.filterFn) ? column.filterFn : column.filterFn === 'auto' ? column.getAutoFilterFn() : (_ref = userFilterFns == null ? void 0 : userFilterFns[column.filterFn]) != null ? _ref : filterFns[column.filterFn];\n },\n getCanFilter: () => {\n var _column$enableColumnF, _instance$options$ena, _instance$options$ena2;\n\n return ((_column$enableColumnF = column.enableColumnFilter) != null ? _column$enableColumnF : 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$enableGlobalF, _instance$options$ena3, _instance$options$ena4, _instance$options$get;\n\n return ((_column$enableGlobalF = column.enableGlobalFilter) != null ? _column$enableGlobalF : 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 [NaN, NaN];\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 columnFilterMap: {},\n subRowsByFacetId: {}\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: () => {\n instance.setGlobalFilter(instance.initialState.globalFilter);\n },\n resetColumnFilters: () => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setColumnFilters((_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 [NaN, NaN];\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 aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\nfunction sum(_getLeafValues, getChildValues) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return getChildValues().reduce((sum, next) => sum + (typeof next === 'number' ? next : 0), 0);\n}\n\nfunction min(_getLeafValues, getChildValues) {\n let min;\n\n for (const value of getChildValues()) {\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n }\n\n return min;\n}\n\nfunction max(_getLeafValues, getChildValues) {\n let max;\n\n for (const value of getChildValues()) {\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n }\n\n return max;\n}\n\nfunction extent(_getLeafValues, getChildValues) {\n let min;\n let max;\n\n for (const value of getChildValues()) {\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\n return [min, max];\n}\n\nfunction mean(getLeafValues) {\n let count = 0;\n let sum = 0;\n\n for (let value of getLeafValues()) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n\n if (count) return sum / count;\n return;\n}\n\nfunction median(getLeafValues) {\n const leafValues = getLeafValues();\n\n if (!leafValues.length) {\n return;\n }\n\n let min = 0;\n let max = 0;\n leafValues.forEach(value => {\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\nfunction unique(getLeafValues) {\n return Array.from(new Set(getLeafValues()).values());\n}\n\nfunction uniqueCount(getLeafValues) {\n return new Set(getLeafValues()).size;\n}\n\nfunction count(getLeafValues) {\n return getLeafValues().length;\n}\n\n//\nconst Grouping = {\n getDefaultColumn: () => {\n return {\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$enableGroupin;\n\n return (_ref = (_ref2 = (_ref3 = (_column$enableGroupin = column.enableGrouping) != null ? _column$enableGroupin : 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 getColumnAutoAggregationFn: () => {\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 return aggregationFns.count;\n },\n getColumnAggregationFn: () => {\n var _ref4;\n\n const userAggregationFns = instance.options.aggregationFns;\n\n if (!column) {\n throw new Error();\n }\n\n return isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ? column.getColumnAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.aggregationFn]) != null ? _ref4 : aggregationFns[column.aggregationFn];\n }\n };\n },\n createInstance: instance => {\n return {\n setGrouping: updater => instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater),\n resetGrouping: () => {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setGrouping((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);\n },\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\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, instance) => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, instance) => {\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 var _column$aggregatedCel;\n\n const template = (_column$aggregatedCel = column.aggregatedCell) != null ? _column$aggregatedCel : column.cell;\n return template ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n getValue: cell.getValue\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: () => {\n var _instance$initialStat;\n\n instance.setColumnOrder((_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 Pagination = {\n getInitialState: state => {\n return { ...state,\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: instance => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true\n };\n },\n createInstance: instance => {\n let registered = false;\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n registered = true;\n return;\n }\n\n if (instance.options.autoResetAll === false) {\n return;\n }\n\n if (instance.options.autoResetAll === true || instance.options.autoResetPageIndex) {\n instance.resetPageIndex();\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: () => {\n var _instance$initialStat;\n\n instance.setPagination((_instance$initialStat = instance.initialState.pagination) != null ? _instance$initialStat : {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1\n });\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = old.pageCount && old.pageCount > 0 ? 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: () => {\n instance.setPageIndex(0);\n },\n resetPageSize: () => {\n var _instance$initialStat2, _instance$initialStat3, _instance$initialStat4;\n\n instance.setPageSize((_instance$initialStat2 = (_instance$initialStat3 = instance.initialState) == null ? void 0 : (_instance$initialStat4 = _instance$initialStat3.pagination) == null ? void 0 : _instance$initialStat4.pageSize) != null ? _instance$initialStat2 : 10);\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 let newPageCount = functionalUpdate(updater, old.pageCount);\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 (pageCount > 0) {\n return pageCount;\n }\n\n return Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: {\n left: [],\n right: []\n },\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$enablePinning, _instance$options$ena;\n\n return ((_d$enablePinning = d.enablePinning) != null ? _d$enablePinning : 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.columnId));\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.columnId === 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.columnId === 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: () => {\n var _instance$initialStat, _instance$initialStat2;\n\n return instance.setColumnPinning((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnPinning) != null ? _instance$initialStat : {});\n },\n getIsSomeColumnsPinned: () => {\n const {\n left,\n right\n } = instance.getState().columnPinning;\n return Boolean((left == null ? void 0 : left.length) || (right == null ? void 0 : right.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: () => {\n var _instance$initialStat;\n\n return instance.setRowSelection((_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 typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();\n const rowSelection = { ...old\n };\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, 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.getGroupedRowModel()], (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 != null && paginationFlatRows.length);\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;\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\nfunction alphanumeric(rowA, rowB, columnId) {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n}\n\nfunction alphanumericCaseSensitive(rowA, rowB, columnId) {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\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} // The text filter is more basic (less numeric support)\n// but is much faster\n\n\nfunction 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\nfunction textCaseSensitive(rowA, rowB, columnId) {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n}\n\nfunction datetime(rowA, rowB, columnId) {\n return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());\n}\n\nfunction 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}\n\n//\nconst Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumn: () => {\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(100);\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.sortingFn) ? column.sortingFn : column.sortingFn === 'auto' ? column.getAutoSortingFn() : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.sortingFn]) != null ? _ref : sortingFns[column.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 instance.setSorting(old => {\n var _ref2, _column$sortDescFirst, _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 }\n\n const sortDescFirst = (_ref2 = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc'; // Handle toggle states that will remove the sorting\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 existingSorting != null && existingSorting.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst : sortDescFirst)) {\n sortAction = 'remove';\n }\n\n if (sortAction === 'replace') {\n newSorting = [{\n id: column.id,\n desc: hasDescDefined ? desc : !!sortDescFirst\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 : !!sortDescFirst\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 : !(existingSorting != null && existingSorting.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 getCanSort: () => {\n var _column$enableSorting, _instance$options$ena3;\n\n return ((_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : true) && ((_instance$options$ena3 = instance.options.enableSorting) != null ? _instance$options$ena3 : true) && !!column.accessorFn;\n },\n getCanMultiSort: () => {\n var _ref3, _column$enableMultiSo;\n\n return (_ref3 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : 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 resetSorting: columnId => {\n if (columnId) {\n instance.setSorting(old => old != null && old.length ? old.filter(d => d.id !== columnId) : []);\n } else {\n var _instance$initialStat, _instance$initialStat2;\n\n instance.setSorting((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);\n }\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 getPreSortedRowModel: () => instance.getFilteredRowModel(),\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 getDefaultColumn: () => {\n return {\n defaultIsVisible: true\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$enableHiding, _instance$options$ena;\n\n return ((_column$enableHiding = column.enableHiding) != null ? _column$enableHiding : 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().filter(cell => cell.column.getIsVisible()).map(d => d.id).join('_')], _ => {\n return row.getAllCells().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 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\n//\nconst Headers = {\n createInstance: instance => {\n return {\n createHeader: (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.header ? instance.render(column.header, {\n instance,\n header: header,\n column\n }) : null,\n renderFooter: () => column.footer ? instance.render(column.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 // Header Groups\n getHeaderGroups: memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column => left == null ? void 0 : left.includes(column.id));\n const rightColumns = leafColumns.filter(column => right == null ? void 0 : right.includes(column.id));\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 leafColumns = leafColumns.filter(column => left == null ? void 0 : left.includes(column.id));\n return buildHeaderGroups(allColumns, leafColumns, 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 leafColumns = leafColumns.filter(column => right == null ? void 0 : right.includes(column.id));\n return buildHeaderGroups(allColumns, leafColumns, 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 getHeader: id => {\n const header = [...instance.getFlatHeaders(), ...instance.getCenterFlatHeaders(), ...instance.getLeftFlatHeaders(), ...instance.getRightFlatHeaders()].find(d => d.id === id);\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Could not find header with id: \" + id);\n }\n\n throw new Error();\n }\n\n return header;\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 = instance.createHeader(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) => instance.createHeader(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 > 0 ? colSpan : undefined;\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined;\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// export type Batch = {\n// id: number\n// priority: keyof CoreBatches\n// tasks: (() => void)[]\n// schedule: (cb: () => void) => void\n// cancel: () => void\n// }\n// type CoreBatches = {\n// data: Batch[]\n// facets: Batch[]\n// }\n// export type TaskPriority = keyof CoreBatches\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: [Columns, Rows, Cells, Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing]\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 = {// coreProgress: 1,\n };\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; // let workScheduled = false\n // let working = false\n // let latestCallback: ReturnType<typeof requestIdleCallback>\n // let batchUid = 0\n // const onProgress = () => {}\n // const getBatch = () => {\n // instance.batches.data = instance.batches.data.filter(d => d.tasks.length)\n // instance.batches.facets = instance.batches.facets.filter(\n // d => d.tasks.length\n // )\n // return (\n // instance.batches.data.find(d => d.tasks.length) ??\n // instance.batches.facets.find(d => d.tasks.length)\n // )\n // }\n // const startWorkLoop = () => {\n // working = true\n // const workLoop = (deadline: IdleDeadline) => {\n // const batch = getBatch()\n // if (!batch) {\n // working = false\n // return\n // }\n // // Prioritize tasks\n // while (deadline.timeRemaining() > 0 && batch.tasks.length) {\n // batch.tasks.shift()!()\n // }\n // onProgress()\n // if (working) {\n // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })\n // }\n // }\n // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })\n // }\n // const startWork = () => {\n // if (getBatch() && !working) {\n // if (\n // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??\n // instance.options.debugTable\n // ) {\n // console.info('Starting work...')\n // }\n // startWorkLoop()\n // }\n // }\n // const stopWork = () => {\n // if (working) {\n // if (\n // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??\n // instance.options.debugTable\n // ) {\n // console.info('Stopping work...')\n // }\n // working = false\n // cancelIdleCallback(latestCallback)\n // }\n // }\n\n const midInstance = { ...instance,\n // init: () => {\n // startWork()\n // },\n // willUpdate: () => {\n // startWork()\n // },\n // destroy: () => {\n // stopWork()\n // },\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 // batches: {\n // data: [],\n // facets: [],\n // },\n // createBatch: priority => {\n // const batchId = batchUid++\n // let canceled: boolean\n // const batch: Batch = {\n // id: batchId,\n // priority,\n // tasks: [],\n // schedule: cb => {\n // if (canceled) return\n // batch.tasks.push(cb)\n // if (!working && !workScheduled) {\n // workScheduled = true\n // instance.queue(() => {\n // workScheduled = false\n // instance.setState(old => ({ ...old }))\n // })\n // }\n // },\n // cancel: () => {\n // canceled = true\n // batch.tasks = []\n // instance.batches[priority] = instance.batches[priority].filter(\n // b => b.id !== batchId\n // )\n // },\n // }\n // instance.batches[priority].push(batch)\n // return batch\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 } // getOverallProgress: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n // return mean(() =>\n // [coreProgress, filtersProgress].filter(d => d < 1)\n // ) as number\n // },\n // getProgressStage: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n // if (coreProgress < 1) {\n // return 'coreRowModel'\n // }\n // if (filtersProgress < 1) {\n // return 'filteredRowModel'\n // }\n // if (Object.values(facetProgress).some(d => d < 1)) {\n // return 'facetedRowModel'\n // }\n // },\n\n };\n instance = Object.assign(instance, midInstance);\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,\n setRowType: () => table,\n setTableMetaType: () => table,\n setColumnMetaType: () => 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 };\n return table;\n}\n\nfunction getCoreRowModel() {\n return instance => memo(() => [instance.options.data], data => {\n // Access the row model using initial columns\n const rows = [];\n const flatRows = [];\n const rowsById = {};\n const leafColumns = instance.getAllLeafColumns();\n\n const accessRow = function (originalRow, rowIndex, depth, parentRows, parent) {\n if (depth === void 0) {\n depth = 0;\n }\n\n const id = instance.getRowId(originalRow, rowIndex, parent);\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"getRowId expected an ID, but got \" + id);\n }\n }\n\n const values = {};\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i];\n\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex);\n }\n } // Make the row\n\n\n const row = instance.createRow(id, originalRow, rowIndex, depth); // Push instance row into the parentRows array\n\n parentRows.push(row); // Keep track of every row in a flat array\n\n flatRows.push(row); // Also keep track of every row by its ID\n\n rowsById[id] = row; // Get the original subrows\n\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them\n\n if (originalSubRows != null && originalSubRows.length) {\n row.originalSubRows = originalSubRows;\n const subRows = [];\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(row.originalSubRows[i], i, depth + 1, subRows, row);\n }\n\n row.subRows = subRows;\n }\n }\n };\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i], i, 0, rows);\n }\n\n return {\n rows,\n flatRows,\n rowsById\n };\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.queue(() => {\n instance._autoResetPageIndex();\n });\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 = instance.createRow(row.id, row.original, row.index, row.depth);\n newRow.columnFilterMap = row.columnFilterMap;\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 = instance.createRow(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 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.columnFilterMap = {};\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i]; // Tag the row with the column filter state\n\n row.columnFilterMap[currentColumnFilter.id] = currentColumnFilter.filterFn(row, currentColumnFilter.id, currentColumnFilter.resolvedValue);\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i]; // Tag the row with the first truthy global filter state\n\n if (currentGlobalFilter.filterFn(row, currentGlobalFilter.id, currentGlobalFilter.resolvedValue)) {\n row.columnFilterMap.__global__ = true;\n break;\n }\n }\n\n if (row.columnFilterMap.__global__ !== true) {\n row.columnFilterMap.__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.columnFilterMap[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.queue(() => {\n instance._autoResetPageIndex();\n });\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.columnFilterMap[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, _facetedRowModel$flat2, _facetedRowModel$flat3, _facetedRowModel$flat4;\n\n let facetedMinMaxValues = [(_facetedRowModel$flat = (_facetedRowModel$flat2 = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId)) != null ? _facetedRowModel$flat : null, (_facetedRowModel$flat3 = (_facetedRowModel$flat4 = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat4.getValue(columnId)) != null ? _facetedRowModel$flat3 : null];\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n var _facetedRowModel$flat5;\n\n const value = (_facetedRowModel$flat5 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat5.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.sortUndefined,\n invertSorting: column.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.queue(() => {\n instance._autoResetPageIndex();\n });\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 = instance.createRow(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.getColumnAggregationFn();\n\n if (aggregateFn) {\n row.groupingValuesCache[columnId] = aggregateFn(() => leafRows.map(row => {\n let columnValue = row.getValue(columnId);\n\n if (!depth && column.aggregateValue) {\n columnValue = column.aggregateValue(columnValue);\n }\n\n return columnValue;\n }), () => groupedRows.map(row => row.getValue(columnId)));\n return row.groupingValuesCache[columnId];\n } else if (column.aggregationFn) {\n console.info({\n column\n });\n throw new Error(process.env.NODE_ENV !== 'production' ? \"Table: Invalid column.aggregateType option for column listed above\" : '');\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, instance);\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 (instance.options.expandSubRows && (_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\n if (!instance.options.paginateExpandedRows) {\n return expandRows({\n rows,\n flatRows,\n rowsById\n }, instance);\n }\n\n return {\n rows,\n flatRows,\n rowsById\n };\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, buildHeaderGroups, createTableFactory, createTableInstance, defaultColumnSizing, expandRows, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, selectRowsFn, shouldAutoRemoveFilter };\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} 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 PartialKeys<\n Omit<TableOptions<TGenerics>, 'render'>,\n 'state' | 'onStateChange'\n >\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: TableOptions<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\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","Columns","createInstance","getDefaultColumn","options","defaultColumn","_defaultColumn","header","props","column","id","footer","cell","_props$getValue$toStr","_props$getValue$toStr2","_props$getValue","getValue","toString","call","_features","reduce","obj","feature","Object","assign","_instance$options$deb","debugAll","debugColumns","getColumnDefs","columns","createColumn","columnDef","depth","parent","_ref","_columnDef$id","accessorFn","accessorKey","undefined","originalRow","Error","columnDefType","getFlatColumns","_column$columns","flatMap","_instance$options$deb2","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","_instance$options$deb3","getAllColumns","columnDefs","recurseColumns","map","_instance$options$deb4","getAllFlatColumns","allColumns","_instance$options$deb5","getAllFlatColumnsById","flatColumns","acc","_instance$options$deb6","getAllLeafColumns","_instance$options$deb7","getColumn","columnId","Rows","getRowId","row","_instance$options$get","join","createRow","original","rowIndex","subRows","valuesCache","hasOwnProperty","getLeafRows","i","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","Cells","getAllCells","createCell","debugRows","getAllCellsByColumnId","allCells","rowId","renderCell","render","getCell","defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getInitialState","state","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","columnResizeMode","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$minSize","_column$maxSize","columnSize","getState","getStart","position","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","getVisibleLeafColumns","findIndex","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$enableResizin","_instance$options$ena","enableResizing","enableColumnResizing","getIsResizing","createHeader","sum","_header$column$getSiz","subHeaders","prevSiblingHeader","headerGroup","headers","getResizeHandler","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","clientX","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","_old$startOffset","_old$startSize","_ref3","headerSize","mouseEvents","moveHandler","onMove","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","_instance$initialStat","initialState","resetHeaderSizeInfo","_instance$initialStat2","getTotalSize","_instance$getHeaderGr","_instance$getHeaderGr2","getHeaderGroups","getLeftTotalSize","_instance$getLeftHead","_instance$getLeftHead2","getLeftHeaderGroups","getCenterTotalSize","_instance$getCenterHe","_instance$getCenterHe2","getCenterHeaderGroups","getRightTotalSize","_instance$getRightHea","_instance$getRightHea2","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type","Expanding","expanded","onExpandedChange","autoResetExpanded","expandSubRows","paginateExpandedRows","registered","_autoResetExpanded","autoResetAll","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","getCanSomeRowsExpand","flatRows","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","values","Boolean","getIsExpanded","getExpandedDepth","maxDepth","keys","splitId","split","getPreExpandedRowModel","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","toggleExpanded","_expanded","exists","oldExpanded","getIsRowExpanded","_instance$options$get2","_row$subRows","getRowCanExpand","enableExpanding","getToggleExpandedHandler","canExpand","includesString","filterValue","search","toLowerCase","includes","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","getAutoFilterFn","firstRow","value","Array","isArray","getFilterFn","userFilterFns","getCanFilter","_column$enableColumnF","_instance$options$ena2","enableColumnFilter","enableColumnFilters","enableFilters","getCanGlobalFilter","_column$enableGlobalF","_instance$options$ena3","_instance$options$ena4","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_instance$getState$co","_instance$getState$co2","find","_instance$getState$co3","_instance$getState$co4","setFilterValue","setColumnFilters","previousfilter","newFilter","_old$filter","shouldAutoRemoveFilter","filter","newFilterObj","_old$map","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","NaN","columnFilterMap","subRowsByFacetId","getGlobalAutoFilterFn","getGlobalFilterFn","_functionalUpdate","setGlobalFilter","resetGlobalFilter","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","aggregationFns","_getLeafValues","getChildValues","next","extent","mean","getLeafValues","count","median","leafValues","unique","from","Set","uniqueCount","Grouping","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","_column$enableGroupin","enableGrouping","getIsGrouped","_instance$getState$gr","getGroupedIndex","_instance$getState$gr2","indexOf","getToggleGroupingHandler","canGroup","getColumnAutoAggregationFn","prototype","getColumnAggregationFn","_ref4","userAggregationFns","resetGrouping","getPreGroupedRowModel","getSortedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","groupingValuesCache","getIsPlaceholder","getIsAggregated","renderAggregatedCell","_column$aggregatedCel","template","aggregatedCell","nonGroupingColumns","col","g","Ordering","columnOrder","onColumnOrderChange","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","Pagination","pagination","pageCount","pageIndex","pageSize","onPaginationChange","autoResetPageIndex","_autoResetPageIndex","resetPageIndex","setPagination","resetPagination","setPageIndex","maxPageIndex","resetPageSize","_instance$initialStat3","_instance$initialStat4","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","pageOptions","fill","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","previousPage","nextPage","getPrePaginationRowModel","_getPaginationRowModel","manualPagination","ceil","rows","Pinning","columnPinning","left","right","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$enablePinning","enablePinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","leftAndRight","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","toggleAllPageRowsSelected","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","preFilteredFlatRows","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_instance$getState$ro","getIsSomePageRowsSelected","getToggleAllRowsSelectedHandler","target","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","getIsSelected","selectedRowIds","isRowSelected","getIsSomeSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","_target","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","allChildrenSelected","someSelected","subRow","reSplitAlphaNumeric","sortingFns","alphanumeric","rowA","rowB","compareAlphanumeric","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","getTime","basic","aStr","bStr","a","b","aa","bb","an","parseInt","bn","combo","sort","Sorting","sorting","sortingFn","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","slice","isString","getAutoSortDir","getSortingFn","userSortingFn","toggleSorting","desc","multi","setSorting","_column$sortDescFirst","existingSorting","existingIndex","hasDescDefined","sortAction","newSorting","getCanMultiSort","sortDescFirst","enableSortingRemoval","enableMultiRemove","_instance$options$max","maxMultiSortColCount","getCanSort","_column$enableSorting","enableSorting","_column$enableMultiSo","enableMultiSort","getIsSorted","_instance$getState$so","columnSort","getSortIndex","_instance$getState$so2","_instance$getState$so3","resetSorting","getToggleSortingHandler","canSort","getPreSortedRowModel","_getSortedRowModel","manualSorting","Visibility","columnVisibility","onColumnVisibilityChange","defaultIsVisible","toggleVisibility","getCanHide","setColumnVisibility","getIsVisible","_column$enableHiding","enableHiding","getToggleVisibilityHandler","getVisibleCells","center","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getCenterVisibleLeafColumns","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","Headers","_options$id","isPlaceholder","placeholderId","colSpan","rowSpan","leafHeaders","recurseHeader","h","renderHeader","renderFooter","leftColumns","rightColumns","buildHeaderGroups","debugHeaders","getFooterGroups","headerGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","_instance$options$deb8","getFlatHeaders","_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","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","_instance$options$deb16","getHeader","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","findMaxDepth","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","createTableInstance","_options$initialState","defaultOptions","_feature$getInitialSt","queued","queuedTimeout","midInstance","queue","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","mergeOptions","onStateChange","createTableFactory","createTable","__","table","generics","setGenerics","setRowType","setTableMetaType","setColumnMetaType","createDisplayColumn","createGroup","createDataColumn","accessor","_column$id","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","accessRow","parentRows","getSubRows","originalSubRows","facetedRowModel","_facetedRowModel$flat","_facetedRowModel$flat2","_facetedRowModel$flat3","_facetedRowModel$flat4","facetedMinMaxValues","_facetedRowModel$flat5","preRowModel","filterableIds","facetedUniqueValues","_facetedUniqueValues$","has","set","get","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","resolvedValue","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","j","__global__","existingGrouping","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupMap","resKey","previous","groupBy","aggregatedGroupedRows","entries","groupingValue","groupedRows","leafRows","_groupedRows$0$getVal","aggregateFn","columnValue","aggregateValue","pageStart","pageEnd","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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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-table",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.68",
|
|
5
5
|
"description": "Hooks for building lightweight, fast and extendable datagrids for React",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/tanstack/react-table#readme",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"main": "build/cjs/index.js",
|
|
27
27
|
"browser": "build/umd/index.production.min.js",
|
|
28
28
|
"types": "build/types/index.d.ts",
|
|
29
|
+
"sideEffects": false,
|
|
29
30
|
"engines": {
|
|
30
31
|
"node": ">=12"
|
|
31
32
|
},
|
|
@@ -34,7 +35,7 @@
|
|
|
34
35
|
"src"
|
|
35
36
|
],
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"@tanstack/table-core": "8.0.0-alpha.
|
|
38
|
+
"@tanstack/table-core": "8.0.0-alpha.68"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
41
|
"react": ">=16",
|