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