@tanstack/table-core 8.0.0-alpha.43 → 8.0.0-alpha.46

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.
Files changed (66) hide show
  1. package/build/cjs/{aggregationTypes.js → aggregationFns.js} +3 -3
  2. package/build/cjs/aggregationFns.js.map +1 -0
  3. package/build/cjs/core.js +6 -4
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +25 -18
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/ColumnSizing.js.map +1 -1
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +13 -13
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +8 -8
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/RowSelection.js +2 -2
  14. package/build/cjs/features/RowSelection.js.map +1 -1
  15. package/build/cjs/features/Sorting.js +10 -10
  16. package/build/cjs/features/Sorting.js.map +1 -1
  17. package/build/cjs/features/Visibility.js.map +1 -1
  18. package/build/cjs/{filterTypes.js → filterFns.js} +3 -3
  19. package/build/cjs/filterFns.js.map +1 -0
  20. package/build/cjs/index.js +1 -1
  21. package/build/cjs/{sortTypes.js → sortingFns.js} +3 -3
  22. package/build/cjs/sortingFns.js.map +1 -0
  23. package/build/cjs/utils/getColumnFilteredRowModelSync.js +1 -1
  24. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -1
  25. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  26. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  27. package/build/cjs/utils.js +7 -0
  28. package/build/cjs/utils.js.map +1 -1
  29. package/build/esm/index.js +70 -54
  30. package/build/esm/index.js.map +1 -1
  31. package/build/stats-html.html +1 -1
  32. package/build/stats-react.json +316 -316
  33. package/build/types/{aggregationTypes.d.ts → aggregationFns.d.ts} +2 -2
  34. package/build/types/createTable.d.ts +28 -25
  35. package/build/types/features/Expanding.d.ts +1 -1
  36. package/build/types/features/Filters.d.ts +5 -5
  37. package/build/types/features/Grouping.d.ts +5 -5
  38. package/build/types/features/RowSelection.d.ts +1 -1
  39. package/build/types/features/Sorting.d.ts +6 -6
  40. package/build/types/{filterTypes.d.ts → filterFns.d.ts} +2 -2
  41. package/build/types/{sortTypes.d.ts → sortingFns.d.ts} +2 -2
  42. package/build/types/utils.d.ts +1 -0
  43. package/build/umd/index.development.js +70 -54
  44. package/build/umd/index.development.js.map +1 -1
  45. package/build/umd/index.production.js +1 -1
  46. package/build/umd/index.production.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/{aggregationTypes.ts → aggregationFns.ts} +2 -2
  49. package/src/core.ts +3 -3
  50. package/src/createTable.ts +73 -52
  51. package/src/features/ColumnSizing.ts +4 -4
  52. package/src/features/Expanding.ts +3 -3
  53. package/src/features/Filters.ts +22 -22
  54. package/src/features/Grouping.ts +18 -18
  55. package/src/features/RowSelection.ts +13 -11
  56. package/src/features/Sorting.ts +22 -22
  57. package/src/features/Visibility.ts +4 -2
  58. package/src/{filterTypes.ts → filterFns.ts} +2 -2
  59. package/src/{sortTypes.ts → sortingFns.ts} +2 -2
  60. package/src/utils/getColumnFilteredRowModelAsync.ts +1 -1
  61. package/src/utils/getColumnFilteredRowModelSync.ts +1 -1
  62. package/src/utils/getGroupedRowModel.ts +1 -1
  63. package/src/utils.ts +12 -1
  64. package/build/cjs/aggregationTypes.js.map +0 -1
  65. package/build/cjs/filterTypes.js.map +0 -1
  66. package/build/cjs/sortTypes.js.map +0 -1
@@ -14,7 +14,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
16
 
17
- var aggregationTypes = {
17
+ var aggregationFns = {
18
18
  sum: sum,
19
19
  min: min,
20
20
  max: max,
@@ -128,6 +128,6 @@ function count(getLeafValues) {
128
128
  return getLeafValues().length;
129
129
  }
130
130
 
131
- exports.aggregationTypes = aggregationTypes;
131
+ exports.aggregationFns = aggregationFns;
132
132
  exports.mean = mean;
133
- //# sourceMappingURL=aggregationTypes.js.map
133
+ //# sourceMappingURL=aggregationFns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["export const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationType = keyof typeof aggregationFns\n\nfunction sum(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return getChildValues().reduce(\n (sum: number, next: unknown) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nfunction min(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let min: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n }\n\n return min\n}\n\nfunction max(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n }\n\n return max\n}\n\nfunction extent(\n _getLeafValues: () => unknown[],\n getChildValues: () => unknown[]\n) {\n let min: number | undefined\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n }\n\n return [min, max]\n}\n\nexport function mean(getLeafValues: () => unknown[]) {\n let count = 0\n let sum = 0\n\n for (let value of getLeafValues() as number[]) {\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n }\n\n if (count) return sum / count\n\n return\n}\n\nfunction median(getLeafValues: () => unknown[]) {\n const leafValues = getLeafValues()\n if (!leafValues.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafValues.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return (min + max) / 2\n}\n\nfunction unique<T>(getLeafValues: () => T[]) {\n return Array.from(new Set(getLeafValues()).values())\n}\n\nfunction uniqueCount(getLeafValues: () => unknown[]) {\n return new Set(getLeafValues()).size\n}\n\nfunction count(getLeafValues: () => unknown[]) {\n return getLeafValues().length\n}\n"],"names":["aggregationFns","sum","min","max","extent","mean","median","unique","uniqueCount","count","_getLeafValues","getChildValues","reduce","next","value","undefined","getLeafValues","leafValues","length","forEach","Math","Array","from","Set","values","size"],"mappings":"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"}
package/build/cjs/core.js CHANGED
@@ -25,7 +25,7 @@ var RowSelection = require('./features/RowSelection.js');
25
25
  var Sorting = require('./features/Sorting.js');
26
26
  var Visibility = require('./features/Visibility.js');
27
27
  var Headers = require('./features/Headers.js');
28
- var aggregationTypes = require('./aggregationTypes.js');
28
+ var aggregationFns = require('./aggregationFns.js');
29
29
 
30
30
  var features = [Headers.Headers, Visibility.Visibility, Ordering.Ordering, Pinning.Pinning, Filters.Filters, Sorting.Sorting, Grouping.Grouping, Expanding.Expanding, Pagination.Pagination, RowSelection.RowSelection, ColumnSizing.ColumnSizing];
31
31
  function createTableInstance(options) {
@@ -101,8 +101,10 @@ function createTableInstance(options) {
101
101
 
102
102
  return template;
103
103
  },
104
- getRowId: function getRowId(_, index, parent) {
105
- return "" + (parent ? [parent.id, index].join('.') : index);
104
+ getRowId: function getRowId(row, index, parent) {
105
+ var _instance$options$get;
106
+
107
+ return (_instance$options$get = instance.options.getRowId == null ? void 0 : instance.options.getRowId(row, index, parent)) != null ? _instance$options$get : "" + (parent ? [parent.id, index].join('.') : index);
106
108
  },
107
109
  getState: function getState() {
108
110
  return instance.options.state;
@@ -500,7 +502,7 @@ function createTableInstance(options) {
500
502
  columnFiltersProgress = _instance$getState.columnFiltersProgress,
501
503
  globalFilterProgress = _instance$getState.globalFilterProgress;
502
504
 
503
- return aggregationTypes.mean(function () {
505
+ return aggregationFns.mean(function () {
504
506
  return [coreProgress, columnFiltersProgress, globalFilterProgress].filter(function (d) {
505
507
  return d < 1;
506
508
  });
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n PartialGenerics,\n CoreCell,\n Renderable,\n UseRenderer,\n RowModel,\n TableFeature,\n AnyGenerics,\n} from './types'\n\nimport { ColumnSizing } from './features/ColumnSizing'\nimport { Expanding } from './features/Expanding'\nimport { Filters } from './features/Filters'\nimport { Grouping } from './features/Grouping'\nimport { Ordering } from './features/Ordering'\nimport { Pagination } from './features/Pagination'\nimport { Pinning } from './features/Pinning'\nimport { RowSelection } from './features/RowSelection'\nimport { Sorting } from './features/Sorting'\nimport { Visibility } from './features/Visibility'\nimport { Headers } from './features/Headers'\nimport { mean } from './aggregationTypes'\n\nconst features: TableFeature[] = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n]\n\nexport type CoreTableState = {\n coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends AnyGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n getCoreRowModel: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableFeature,\n options: Partial<Options<TGenerics>>\n ) => Options<TGenerics>\n meta?: TGenerics['TableMeta']\n}\n\nexport type TableCore<TGenerics extends AnyGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n queue: (cb: () => void) => void\n willUpdate: () => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n _getCoreRowModel?: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n getOverallProgress: () => number\n}\n\nexport type CoreRow<TGenerics extends AnyGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n subRows: Row<TGenerics>[]\n getLeafRows: () => Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends AnyGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n// & GeneratedProperties<true>\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumn<TGenerics extends AnyGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends AnyGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const coreInitialState: CoreTableState = {\n coreProgress: 1,\n }\n\n const initialState = {\n ...coreInitialState,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const queued: (() => void)[] = []\n let queuedTimeout: NodeJS.Timeout\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInstance?.(instance))\n }, {}),\n queue: cb => {\n queued.push(cb)\n if (!queuedTimeout) {\n queuedTimeout = setTimeout(() => {\n instance.setState(old => ({ ...old }))\n })\n }\n },\n willUpdate: () => {\n clearTimeout(queuedTimeout)\n while (queued.length) {\n queued.shift()!()\n }\n },\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n if (instance.options.mergeOptions) {\n instance.options = instance.options.mergeOptions(\n defaultOptions,\n newOptions\n )\n } else {\n instance.options = buildOptions(newOptions)\n }\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n\n createCell: (row, column, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\n })\n : null,\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, feature.createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: () => {\n if (!instance._getCoreRowModel) {\n instance._getCoreRowModel = instance.options.getCoreRowModel(instance)\n }\n\n return instance._getCoreRowModel()\n },\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 instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n\n getOverallProgress: () => {\n const { coreProgress, columnFiltersProgress, globalFilterProgress } =\n instance.getState()\n\n return mean(() =>\n [coreProgress, columnFiltersProgress, globalFilterProgress].filter(\n d => d < 1\n )\n ) as number\n },\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","coreInitialState","coreProgress","initialState","_extends","getInitialState","queued","queuedTimeout","finalInstance","getInstance","queue","cb","push","setTimeout","setState","old","willUpdate","clearTimeout","length","shift","reset","setOptions","updater","newOptions","functionalUpdate","mergeOptions","render","template","props","getRowId","_","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","columnDefType","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","createCell","row","rowId","getCellProps","userProps","renderCell","forEach","createRow","original","rowIndex","values","subRows","getLeafRows","flattenBy","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups","getOverallProgress","columnFiltersProgress","globalFilterProgress","mean","filter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,IAAMA,QAAwB,GAAG,CAC/BC,eAD+B,EAE/BC,qBAF+B,EAG/BC,iBAH+B,EAI/BC,eAJ+B,EAK/BC,eAL+B,EAM/BC,eAN+B,EAO/BC,iBAP+B,EAQ/BC,mBAR+B,EAS/BC,qBAT+B,EAU/BC,yBAV+B,EAW/BC,yBAX+B,CAAjC,CAAA;AAqLO,SAASC,mBAAT,CACLC,OADK,EAEqB;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC1B,EAAA,IAAIA,OAAO,CAACC,QAAR,IAAoBD,OAAO,CAACE,UAAhC,EAA4C;AAC1CC,IAAAA,OAAO,CAACC,IAAR,CAAa,4BAAb,CAAA,CAAA;AACD,GAAA;;AAED,EAAIC,IAAAA,QAAQ,GAAG,EAAf,CAAA;AAEA,EAAMC,IAAAA,cAAc,GAAGnB,QAAQ,CAACoB,MAAT,CAAgB,UAACC,GAAD,EAAMC,OAAN,EAAkB;AACvD,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACG,iBAA3B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAmBH,OAAO,CAACG,iBAAR,CAA4BP,QAA5B,CAAnB,CAAP,CAAA;AACD,GAFsB,EAEpB,EAFoB,CAAvB,CAAA;;AAIA,EAAA,IAAMQ,YAAY,GAAG,SAAfA,YAAe,CAACb,OAAD,EAAA;AAAA,IAChBM,OAAAA,oCAAAA,CAAAA,EAAAA,EAAAA,cADgB,EAEhBN,OAFgB,CAAA,CAAA;AAAA,GAArB,CAAA;;AAKAK,EAAAA,QAAQ,CAACL,OAAT,GAAmBa,YAAY,CAACb,OAAD,CAA/B,CAAA;AAEA,EAAA,IAAMc,gBAAgC,GAAG;AACvCC,IAAAA,YAAY,EAAE,CAAA;AADyB,GAAzC,CAAA;;AAIA,EAAA,IAAMC,YAAY,GAAAC,oCAAA,CAAA,EAAA,EACbH,gBADa,EAEb3B,QAAQ,CAACoB,MAAT,CAAgB,UAACC,GAAD,EAAMC,OAAN,EAAkB;AACnC,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACS,eAA3B,IAAmBT,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACS,eAAR,EAAnB,CAAP,CAAA;AACD,GAFE,EAEA,EAFA,CAFa,EAAA,CAAA,qBAAA,GAKZlB,OAAO,CAACgB,YALI,KAKY,IAAA,GAAA,qBAAA,GAAA,EALZ,CAAlB,CAAA;;AAQA,EAAMG,IAAAA,MAAsB,GAAG,EAA/B,CAAA;AACA,EAAA,IAAIC,aAAJ,CAAA;;AAEA,EAAA,IAAMC,aAAuC,GAAAJ,oCAAA,CAAA,EAAA,EACxCZ,QADwC,EAExClB,QAAQ,CAACoB,MAAT,CAAgB,UAACC,GAAD,EAAMC,OAAN,EAAkB;AACnC,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACa,WAA3B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAmBb,OAAO,CAACa,WAAR,CAAsBjB,QAAtB,CAAnB,CAAP,CAAA;AACD,GAFE,EAEA,EAFA,CAFwC,EAAA;AAK3CkB,IAAAA,KAAK,EAAE,SAAAC,KAAAA,CAAAA,EAAE,EAAI;AACXL,MAAAA,MAAM,CAACM,IAAP,CAAYD,EAAZ,CAAA,CAAA;;AACA,MAAI,IAAA,CAACJ,aAAL,EAAoB;AAClBA,QAAAA,aAAa,GAAGM,UAAU,CAAC,YAAM;AAC/BrB,UAAAA,QAAQ,CAACsB,QAAT,CAAkB,UAAAC,GAAG,EAAA;AAAA,YAAA,OAAAX,oCAAA,CAAA,EAAA,EAAUW,GAAV,CAAA,CAAA;AAAA,WAArB,CAAA,CAAA;AACD,SAFyB,CAA1B,CAAA;AAGD,OAAA;AACF,KAZ0C;AAa3CC,IAAAA,UAAU,EAAE,SAAM,UAAA,GAAA;AAChBC,MAAAA,YAAY,CAACV,aAAD,CAAZ,CAAA;;AACA,MAAOD,OAAAA,MAAM,CAACY,MAAd,EAAsB;AACpBZ,QAAAA,MAAM,CAACa,KAAP,EAAA,EAAA,CAAA;AACD,OAAA;AACF,KAlB0C;AAmB3ChB,IAAAA,YAAY,EAAZA,YAnB2C;AAoB3CiB,IAAAA,KAAK,EAAE,SAAM,KAAA,GAAA;AACX5B,MAAAA,QAAQ,CAACsB,QAAT,CAAkBtB,QAAQ,CAACW,YAA3B,CAAA,CAAA;AACD,KAtB0C;AAuB3CkB,IAAAA,UAAU,EAAE,SAAAC,UAAAA,CAAAA,OAAO,EAAI;AACrB,MAAMC,IAAAA,UAAU,GAAGC,sBAAgB,CAACF,OAAD,EAAU9B,QAAQ,CAACL,OAAnB,CAAnC,CAAA;;AACA,MAAA,IAAIK,QAAQ,CAACL,OAAT,CAAiBsC,YAArB,EAAmC;AACjCjC,QAAAA,QAAQ,CAACL,OAAT,GAAmBK,QAAQ,CAACL,OAAT,CAAiBsC,YAAjB,CACjBhC,cADiB,EAEjB8B,UAFiB,CAAnB,CAAA;AAID,OALD,MAKO;AACL/B,QAAAA,QAAQ,CAACL,OAAT,GAAmBa,YAAY,CAACuB,UAAD,CAA/B,CAAA;AACD,OAAA;AACF,KAjC0C;AAkC3CG,IAAAA,MAAM,EAAE,SAAA,MAAA,CAACC,QAAD,EAAWC,KAAX,EAAqB;AAC3B,MAAI,IAAA,OAAOpC,QAAQ,CAACL,OAAT,CAAiBuC,MAAxB,KAAmC,UAAvC,EAAmD;AACjD,QAAOlC,OAAAA,QAAQ,CAACL,OAAT,CAAiBuC,MAAjB,CAAwBC,QAAxB,EAAkCC,KAAlC,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAQA,OAAAA,QAAD,CAAuBC,KAAvB,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,OAAOD,QAAP,CAAA;AACD,KA5C0C;AA8C3CE,IAAAA,QAAQ,EAAE,SAAA,QAAA,CAACC,CAAD,EAAsBC,KAAtB,EAAqCC,MAArC,EAAA;AAAA,MAAA,OAAA,EAAA,IACLA,MAAM,GAAG,CAACA,MAAM,CAACC,EAAR,EAAYF,KAAZ,CAAA,CAAmBG,IAAnB,CAAwB,GAAxB,CAAH,GAAkCH,KADnC,CAAA,CAAA;AAAA,KA9CiC;AAiD3CI,IAAAA,QAAQ,EAAE,SAAM,QAAA,GAAA;AACd,MAAA,OAAO3C,QAAQ,CAACL,OAAT,CAAiBiD,KAAxB,CAAA;AACD,KAnD0C;AAqD3CtB,IAAAA,QAAQ,EAAE,SAACQ,QAAAA,CAAAA,OAAD,EAAkC;AAC1C9B,MAAAA,QAAQ,CAACL,OAAT,CAAiBkD,aAAjB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA7C,QAAQ,CAACL,OAAT,CAAiBkD,aAAjB,CAAiCf,OAAjC,CAAA,CAAA;AACD,KAvD0C;AAyD3CgB,IAAAA,gBAAgB,EAAEC,UAAI,CACpB,YAAA;AAAA,MAAA,OAAM,CAAC/C,QAAQ,CAACL,OAAT,CAAiBqD,aAAlB,CAAN,CAAA;AAAA,KADoB,EAEpB,UAAAA,aAAa,EAAI;AAAA,MAAA,IAAA,cAAA,CAAA;;AACfA,MAAAA,aAAa,GAAA,CAAA,cAAA,GAAIA,aAAJ,KAAA,IAAA,GAAA,cAAA,GAAqB,EAAlC,CAAA;AAEA,MAAA,OAAApC,oCAAA,CAAA;AACEqC,QAAAA,MAAM,EAAE,SAAA,MAAA,CAACb,KAAD,EAAA;AAAA,UAAA,OACNA,KAAK,CAACa,MAAN,CAAaC,MAAb,CAAoBT,EADd,CAAA;AAAA,SADV;AAGEU,QAAAA,MAAM,EAAE,SAAA,MAAA,CAACf,KAAD,EAAA;AAAA,UAAA,OACNA,KAAK,CAACa,MAAN,CAAaC,MAAb,CAAoBT,EADd,CAAA;AAAA,SAHV;AAKEW,QAAAA,IAAI,EAAE,SAAA,IAAA,CAAA,IAAA,EAAA;AAAA,UAAA,IAAA,UAAA,GAAA,IAAA,CAAGC,KAAH;AAAA,cAAGA,KAAH,2BAAW,EAAX,GAAA,UAAA,CAAA;AAAA,UACJ,OAAA,OAAOA,KAAP,KAAiB,SAAjB,GAA6BA,KAAK,CAACC,QAAN,EAA7B,GAAgDD,KAD5C,CAAA;AAAA,SAAA;AALR,OAOKvE,EAAAA,QAAQ,CAACoB,MAAT,CAAgB,UAACC,GAAD,EAAMC,OAAN,EAAkB;AACnC,QAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAAC0C,gBAA3B,IAAmB1C,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAC0C,gBAAR,EAAnB,CAAP,CAAA;AACD,OAFE,EAEA,EAFA,CAPL,EAUKE,aAVL,CAAA,CAAA;AAYD,KAjBmB,EAkBpB;AACEO,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAAA,QAAMvD,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,oCAAmCI,QAAQ,CAACL,OAAT,CAAiB6D,YAApD,CAAA;AAAA,OADT;AAEEC,MAAAA,GAAG,EAAE,kBAAA;AAFP,KAlBoB,CAzDqB;AAiF3CC,IAAAA,aAAa,EAAE,SAAA,aAAA,GAAA;AAAA,MAAA,OAAM1D,QAAQ,CAACL,OAAT,CAAiBgE,OAAvB,CAAA;AAAA,KAjF4B;AAmF3CC,IAAAA,YAAY,EAAE,SACZC,YAAAA,CAAAA,SADY,EAEZC,KAFY,EAGZtB,MAHY,EAIT;AAAA,MAAA,IAAA,KAAA,EAAA,aAAA,CAAA;;AACH,MAAA,IAAMQ,aAAa,GAAGhD,QAAQ,CAAC8C,gBAAT,EAAtB,CAAA;AAEA,MAAIL,IAAAA,EAAE,6BACJoB,SAAS,CAACpB,EADN,KAEJoB,IAAAA,GAAAA,aAAAA,GAAAA,SAAS,CAACE,WAFN,KAAA,IAAA,GAAA,KAAA,GAGH,OAAOF,SAAS,CAACZ,MAAjB,KAA4B,QAA5B,GAAuCY,SAAS,CAACZ,MAAjD,GAA0De,SAH7D,CAAA;AAKA,MAAA,IAAIC,UAAJ,CAAA;;AAEA,MAAIJ,IAAAA,SAAS,CAACI,UAAd,EAA0B;AACxBA,QAAAA,UAAU,GAAGJ,SAAS,CAACI,UAAvB,CAAA;AACD,OAFD,MAEO,IAAIJ,SAAS,CAACE,WAAd,EAA2B;AAChCE,QAAAA,UAAU,GAAG,SAAA,UAAA,CAACC,WAAD,EAAA;AAAA,UAAA,OACVA,WAAD,CAAqBL,SAAS,CAACE,WAA/B,CADW,CAAA;AAAA,SAAb,CAAA;AAED,OAAA;;AAED,MAAI,IAAA,CAACtB,EAAL,EAAS;AACP,QAAA,IAAI0B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,UAAA,MAAM,IAAIC,KAAJ,CACJT,SAAS,CAACI,UAAV,4GADI,CAAN,CAAA;AAKD,SAAA;;AACD,QAAM,MAAA,IAAIK,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAIpB,MAA6B,GAAAtC,oCAAA,CAAA,EAAA,EAC5BoC,aAD4B,EAE5Ba,SAF4B,EAAA;AAG/BpB,QAAAA,EAAE,OAAKA,EAHwB;AAI/BwB,QAAAA,UAAU,EAAVA,UAJ+B;AAK/BzB,QAAAA,MAAM,EAAEA,MALuB;AAM/BsB,QAAAA,KAAK,EAALA,KAN+B;AAO/BD,QAAAA,SAAS,EAATA,SAP+B;AAQ/BU,QAAAA,aAAa,EAAEV,SAAS,CAACU,aARM;AAS/BZ,QAAAA,OAAO,EAAE,EATsB;AAU/Ba,QAAAA,QAAQ,EAAE,SAAA,QAAA,GAAA;AAAA,UAAA,OAAMxE,QAAQ,CAACyE,cAAT,CAAwBvB,MAAM,CAACT,EAA/B,CAAN,CAAA;AAAA,SAVqB;AAW/BiC,QAAAA,cAAc,EAAE3B,UAAI,CAClB,YAAA;AAAA,UAAM,OAAA,CAAC,IAAD,CAAN,CAAA;AAAA,SADkB,EAElB,YAAM;AAAA,UAAA,IAAA,eAAA,CAAA;;AACJ,UACEG,OAAAA,CAAAA,MADF,CAEKA,CAAAA,MAAAA,CAAAA,CAAAA,eAAAA,GAAAA,MAAM,CAACS,OAFZ,qBAEK,eAAgBgB,CAAAA,OAAhB,CAAwB,UAAAC,CAAC,EAAA;AAAA,YAAIA,OAAAA,CAAC,CAACF,cAAF,EAAJ,CAAA;AAAA,WAAzB,CAFL,CAAA,CAAA;AAID,SAPiB,EAQlB;AACEjB,UAAAA,GAAG,EAAE,uBADP;AAEEF,UAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,YAAA,IAAA,sBAAA,CAAA;;AAAA,YACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QADZ,qCACwBI,QAAQ,CAACL,OAAT,CAAiB6D,YADzC,CAAA;AAAA,WAAA;AAFT,SARkB,CAXW;AAyB/BqB,QAAAA,cAAc,EAAE9B,UAAI,CAClB,YAAA;AAAA,UAAA,OAAM,CAAC/C,QAAQ,CAAC8E,iBAAT,EAAD,CAAN,CAAA;AAAA,SADkB,EAElB,UAAAC,YAAY,EAAI;AAAA,UAAA,IAAA,gBAAA,CAAA;;AACd,UAAA,IAAA,CAAA,gBAAA,GAAI7B,MAAM,CAACS,OAAX,KAAI,IAAA,IAAA,gBAAA,CAAgBjC,MAApB,EAA4B;AAC1B,YAAIsD,IAAAA,WAAW,GAAG9B,MAAM,CAACS,OAAP,CAAegB,OAAf,CAAuB,UAAAzB,MAAM,EAAA;AAAA,cAC7CA,OAAAA,MAAM,CAAC2B,cAAP,EAD6C,CAAA;AAAA,aAA7B,CAAlB,CAAA;AAIA,YAAOE,OAAAA,YAAY,CAACC,WAAD,CAAnB,CAAA;AACD,WAAA;;AAED,UAAO,OAAA,CAAC9B,MAAD,CAAP,CAAA;AACD,SAZiB,EAalB;AACEO,UAAAA,GAAG,EAAE,uBADP;AAEEF,UAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,YAAA,IAAA,sBAAA,CAAA;;AAAA,YACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QADZ,qCACwBI,QAAQ,CAACL,OAAT,CAAiB6D,YADzC,CAAA;AAAA,WAAA;AAFT,SAbkB,CAAA;AAzBW,OAAjC,CAAA,CAAA;;AA8CAN,MAAAA,MAAM,GAAGpE,QAAQ,CAACoB,MAAT,CAAgB,UAACC,GAAD,EAAMC,OAAN,EAAkB;AACzC,QAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACwD,YAA3B,IAAmBxD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACwD,YAAR,CAAuBV,MAAvB,EAA+BlD,QAA/B,CAAnB,CAAP,CAAA;AACD,OAFQ,EAENkD,MAFM,CAAT,CA1EG;;AA+EH,MAAA,OAAOA,MAAP,CAAA;AACD,KAvK0C;AAyK3C+B,IAAAA,aAAa,EAAElC,UAAI,CACjB,YAAA;AAAA,MAAA,OAAM,CAAC/C,QAAQ,CAAC0D,aAAT,EAAD,CAAN,CAAA;AAAA,KADiB,EAEjB,UAAAwB,UAAU,EAAI;AACZ,MAAMC,IAAAA,cAAc,GAAG,SAAjBA,cAAiB,CACrBD,UADqB,EAErB1C,MAFqB,EAGrBsB,KAHqB,EAIG;AAAA,QAAA,IADxBA,KACwB,KAAA,KAAA,CAAA,EAAA;AADxBA,UAAAA,KACwB,GADhB,CACgB,CAAA;AAAA,SAAA;;AACxB,QAAA,OAAOoB,UAAU,CAACE,GAAX,CAAe,UAAAvB,SAAS,EAAI;AACjC,UAAMX,IAAAA,MAAM,GAAGlD,QAAQ,CAAC4D,YAAT,CAAsBC,SAAtB,EAAiCC,KAAjC,EAAwCtB,MAAxC,CAAf,CAAA;AAEAU,UAAAA,MAAM,CAACS,OAAP,GAAiBE,SAAS,CAACF,OAAV,GACbwB,cAAc,CAACtB,SAAS,CAACF,OAAX,EAAoBT,MAApB,EAA4BY,KAAK,GAAG,CAApC,CADD,GAEb,EAFJ,CAAA;AAIA,UAAA,OAAOZ,MAAP,CAAA;AACD,SARM,CAAP,CAAA;AASD,OAdD,CAAA;;AAgBA,MAAOiC,OAAAA,cAAc,CAACD,UAAD,CAArB,CAAA;AACD,KApBgB,EAqBjB;AACEzB,MAAAA,GAAG,EAAE,eADP;AAEEF,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAAA,QAAMvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,qCAAmCI,QAAQ,CAACL,OAAT,CAAiB6D,YAApD,CAAA;AAAA,OAAA;AAFT,KArBiB,CAzKwB;AAoM3C6B,IAAAA,iBAAiB,EAAEtC,UAAI,CACrB,YAAA;AAAA,MAAA,OAAM,CAAC/C,QAAQ,CAACiF,aAAT,EAAD,CAAN,CAAA;AAAA,KADqB,EAErB,UAAAK,UAAU,EAAI;AACZ,MAAA,OAAOA,UAAU,CAACX,OAAX,CAAmB,UAAAzB,MAAM,EAAI;AAClC,QAAOA,OAAAA,MAAM,CAACwB,cAAP,EAAP,CAAA;AACD,OAFM,CAAP,CAAA;AAGD,KANoB,EAOrB;AACEjB,MAAAA,GAAG,EAAE,mBADP;AAEEF,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAAA,QAAMvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,qCAAmCI,QAAQ,CAACL,OAAT,CAAiB6D,YAApD,CAAA;AAAA,OAAA;AAFT,KAPqB,CApMoB;AAiN3C+B,IAAAA,qBAAqB,EAAExC,UAAI,CACzB,YAAA;AAAA,MAAA,OAAM,CAAC/C,QAAQ,CAACqF,iBAAT,EAAD,CAAN,CAAA;AAAA,KADyB,EAEzB,UAAAG,WAAW,EAAI;AACb,MAAOA,OAAAA,WAAW,CAACtF,MAAZ,CAAmB,UAACuF,GAAD,EAAMvC,MAAN,EAAiB;AACzCuC,QAAAA,GAAG,CAACvC,MAAM,CAACT,EAAR,CAAH,GAAiBS,MAAjB,CAAA;AACA,QAAA,OAAOuC,GAAP,CAAA;AACD,OAHM,EAGJ,EAHI,CAAP,CAAA;AAID,KAPwB,EAQzB;AACEhC,MAAAA,GAAG,EAAE,uBADP;AAEEF,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAAA,QAAMvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,qCAAmCI,QAAQ,CAACL,OAAT,CAAiB6D,YAApD,CAAA;AAAA,OAAA;AAFT,KARyB,CAjNgB;AA+N3CkC,IAAAA,iBAAiB,EAAE3C,UAAI,CACrB,YAAA;AAAA,MAAM,OAAA,CAAC/C,QAAQ,CAACiF,aAAT,EAAD,EAA2BjF,QAAQ,CAAC8E,iBAAT,EAA3B,CAAN,CAAA;AAAA,KADqB,EAErB,UAACQ,UAAD,EAAaP,YAAb,EAA8B;AAC5B,MAAA,IAAIC,WAAW,GAAGM,UAAU,CAACX,OAAX,CAAmB,UAAAzB,MAAM,EAAA;AAAA,QAAIA,OAAAA,MAAM,CAAC2B,cAAP,EAAJ,CAAA;AAAA,OAAzB,CAAlB,CAAA;AACA,MAAOE,OAAAA,YAAY,CAACC,WAAD,CAAnB,CAAA;AACD,KALoB,EAMrB;AACEvB,MAAAA,GAAG,EAAE,mBADP;AAEEF,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAAA,QAAMvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,qCAAmCI,QAAQ,CAACL,OAAT,CAAiB6D,YAApD,CAAA;AAAA,OAAA;AAFT,KANqB,CA/NoB;AA2O3CmC,IAAAA,SAAS,EAAE,SAAAC,SAAAA,CAAAA,QAAQ,EAAI;AACrB,MAAA,IAAM1C,MAAM,GAAGlD,QAAQ,CAACuF,qBAAT,EAAA,CAAiCK,QAAjC,CAAf,CAAA;;AAEA,MAAI,IAAA,CAAC1C,MAAL,EAAa;AACX,QAAA,IAAIiB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCvE,UAAAA,OAAO,CAAC+F,IAAR,CAAA,yBAAA,GAAuCD,QAAvC,GAAA,kBAAA,CAAA,CAAA;AACD,SAAA;;AACD,QAAM,MAAA,IAAItB,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,OAAOpB,MAAP,CAAA;AACD,KAtP0C;AAwP3C4C,IAAAA,UAAU,EAAE,SAACC,UAAAA,CAAAA,GAAD,EAAM7C,MAAN,EAAcG,KAAd,EAAwB;AAClC,MAAA,IAAMD,IAAyB,GAAG;AAChCX,QAAAA,EAAE,EAAKsD,GAAG,CAACtD,EAAT,GAAeS,GAAAA,GAAAA,MAAM,CAACT,EADQ;AAEhCuD,QAAAA,KAAK,EAAED,GAAG,CAACtD,EAFqB;AAGhCmD,QAAAA,QAAQ,EAAE1C,MAAM,CAACT,EAHe;AAIhCsD,QAAAA,GAAG,EAAHA,GAJgC;AAKhC7C,QAAAA,MAAM,EAANA,MALgC;AAMhCG,QAAAA,KAAK,EAALA,KANgC;AAOhC4C,QAAAA,YAAY,EAAE,SAAA,YAAA,CAAAC,SAAS,EAAA;AAAA,UAAA,OACrBlG,QAAQ,CAACiG,YAAT,CAAsBF,GAAG,CAACtD,EAA1B,EAA8BS,MAAM,CAACT,EAArC,EAAyCyD,SAAzC,CADqB,CAAA;AAAA,SAPS;AAShCC,QAAAA,UAAU,EAAE,SAAA,UAAA,GAAA;AAAA,UACVjD,OAAAA,MAAM,CAACE,IAAP,GACIpD,QAAQ,CAACkC,MAAT,CAAgBgB,MAAM,CAACE,IAAvB,EAA6B;AAC3BpD,YAAAA,QAAQ,EAARA,QAD2B;AAE3BkD,YAAAA,MAAM,EAANA,MAF2B;AAG3B6C,YAAAA,GAAG,EAAHA,GAH2B;AAI3B3C,YAAAA,IAAI,EAAEA,IAJqB;AAK3BC,YAAAA,KAAK,EAALA,KAAAA;AAL2B,WAA7B,CADJ,GAQI,IATM,CAAA;AAAA,SAAA;AAToB,OAAlC,CAAA;AAqBAvE,MAAAA,QAAQ,CAACsH,OAAT,CAAiB,UAAAhG,OAAO,EAAI;AAC1BC,QAAAA,MAAM,CAACC,MAAP,CACE8C,IADF,EAEEhD,OAAO,CAAC0F,UAFV,IAAA,IAAA,GAAA,KAAA,CAAA,GAEE1F,OAAO,CAAC0F,UAAR,CACE1C,IADF,EAEEF,MAFF,EAGE6C,GAHF,EAIE/F,QAJF,CAFF,CAAA,CAAA;AASD,OAVD,EAUG,EAVH,CAAA,CAAA;AAYA,MAAA,OAAOoD,IAAP,CAAA;AACD,KA3R0C;AA6R3CiD,IAAAA,SAAS,EAAE,SAAC5D,SAAAA,CAAAA,EAAD,EAAK6D,QAAL,EAAeC,QAAf,EAAyBzC,KAAzB,EAAgC0C,MAAhC,EAA2C;AACpD,MAAA,IAAIT,GAAuB,GAAG;AAC5BtD,QAAAA,EAAE,EAAFA,EAD4B;AAE5BF,QAAAA,KAAK,EAAEgE,QAFqB;AAG5BD,QAAAA,QAAQ,EAARA,QAH4B;AAI5BxC,QAAAA,KAAK,EAALA,KAJ4B;AAK5B0C,QAAAA,MAAM,EAANA,MAL4B;AAM5BC,QAAAA,OAAO,EAAE,EANmB;AAO5BC,QAAAA,WAAW,EAAE,SAAA,WAAA,GAAA;AAAA,UAAA,OAAMC,eAAS,CAACZ,GAAG,CAACU,OAAL,EAAc,UAAA7B,CAAC,EAAA;AAAA,YAAIA,OAAAA,CAAC,CAAC6B,OAAN,CAAA;AAAA,WAAf,CAAf,CAAA;AAAA,SAPe;AAQ5BG,QAAAA,WAAW,EAAE,SAAA,WAAA,CAAAV,SAAS,EAAA;AAAA,UAAIlG,OAAAA,QAAQ,CAAC4G,WAAT,CAAqBb,GAAG,CAACtD,EAAzB,EAA6ByD,SAA7B,CAAJ,CAAA;AAAA,SARM;AAS5BW,QAAAA,WAAW,EAAE7C,SATe;AAU5B8C,QAAAA,qBAAqB,EAAE9C,SAAAA;AAVK,OAA9B,CAAA;AAaA+B,MAAAA,GAAG,CAACc,WAAJ,GAAkB9D,UAAI,CACpB,YAAA;AAAA,QAAA,OAAM,CAAC/C,QAAQ,CAAC0F,iBAAT,EAAD,CAAN,CAAA;AAAA,OADoB,EAEpB,UAAAV,WAAW,EAAI;AACb,QAAA,OAAOA,WAAW,CAACI,GAAZ,CAAgB,UAAAlC,MAAM,EAAI;AAC/B,UAAA,OAAOlD,QAAQ,CAAC8F,UAAT,CACLC,GADK,EAEL7C,MAFK,EAGL6C,GAAG,CAACS,MAAJ,CAAWtD,MAAM,CAACT,EAAlB,CAHK,CAAP,CAAA;AAKD,SANM,CAAP,CAAA;AAOD,OAVmB,EAWpB;AACEgB,QAAAA,GAAG,EAAEU,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC,iBAAxC,GAA4D,EADnE;AAEEd,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UAAMvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,qCAAmCI,QAAQ,CAACL,OAAT,CAAiBoH,SAApD,CAAA;AAAA,SAAA;AAFT,OAXoB,CAAtB,CAAA;AAiBAhB,MAAAA,GAAG,CAACe,qBAAJ,GAA4B/D,UAAI,CAC9B,YAAA;AAAA,QAAA,OAAM,CAACgD,GAAG,CAACc,WAAJ,EAAD,CAAN,CAAA;AAAA,OAD8B,EAE9B,UAAAG,QAAQ,EAAI;AACV,QAAOA,OAAAA,QAAQ,CAAC9G,MAAT,CAAgB,UAACuF,GAAD,EAAMrC,IAAN,EAAe;AACpCqC,UAAAA,GAAG,CAACrC,IAAI,CAACwC,QAAN,CAAH,GAAqBxC,IAArB,CAAA;AACA,UAAA,OAAOqC,GAAP,CAAA;AACD,SAHM,EAGJ,EAHI,CAAP,CAAA;AAID,OAP6B,EAQ9B;AACEhC,QAAAA,GAAG,EAAE,2BADP;AAEEF,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UAAMvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACL,OAAT,CAAiBC,QAAvB,qCAAmCI,QAAQ,CAACL,OAAT,CAAiBoH,SAApD,CAAA;AAAA,SAAA;AAFT,OAR8B,CAAhC,CAAA;;AAcA,MAAA,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGnI,QAAQ,CAAC4C,MAA7B,EAAqCuF,CAAC,EAAtC,EAA0C;AACxC,QAAA,IAAM7G,OAAO,GAAGtB,QAAQ,CAACmI,CAAD,CAAxB,CAAA;AACA5G,QAAAA,MAAM,CAACC,MAAP,CAAcyF,GAAd,EAAmB3F,OAAO,CAACiG,SAA3B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAmBjG,OAAO,CAACiG,SAAR,CAAoBN,GAApB,EAAyB/F,QAAzB,CAAnB,CAAA,CAAA;AACD,OAAA;;AAED,MAAA,OAAO+F,GAAP,CAAA;AACD,KAhV0C;AAkV3CmB,IAAAA,eAAe,EAAE,SAAM,eAAA,GAAA;AACrB,MAAA,IAAI,CAAClH,QAAQ,CAACmH,gBAAd,EAAgC;AAC9BnH,QAAAA,QAAQ,CAACmH,gBAAT,GAA4BnH,QAAQ,CAACL,OAAT,CAAiBuH,eAAjB,CAAiClH,QAAjC,CAA5B,CAAA;AACD,OAAA;;AAED,MAAOA,OAAAA,QAAQ,CAACmH,gBAAT,EAAP,CAAA;AACD,KAxV0C;AA0V3C;AACA;AAEAC,IAAAA,WAAW,EAAE,SAAM,WAAA,GAAA;AACjB,MAAOpH,OAAAA,QAAQ,CAACqH,qBAAT,EAAP,CAAA;AACD,KA/V0C;AAiW3CC,IAAAA,MAAM,EAAE,SAAC7E,MAAAA,CAAAA,EAAD,EAAgB;AACtB,MAAMsD,IAAAA,GAAG,GAAG/F,QAAQ,CAACoH,WAAT,EAAuBG,CAAAA,QAAvB,CAAgC9E,EAAhC,CAAZ,CAAA;;AAEA,MAAI,IAAA,CAACsD,GAAL,EAAU;AACR,QAAA,IAAI5B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,UAAA,MAAM,IAAIC,KAAJ,CAA4C7B,iCAAAA,GAAAA,EAA5C,CAAN,CAAA;AACD,SAAA;;AACD,QAAM,MAAA,IAAI6B,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,OAAOyB,GAAP,CAAA;AACD,KA5W0C;AA8W3CyB,IAAAA,OAAO,EAAE,SAAA,OAAA,CAACxB,KAAD,EAAgBJ,QAAhB,EAAqC;AAC5C,MAAA,IAAMG,GAAG,GAAG/F,QAAQ,CAACsH,MAAT,CAAgBtB,KAAhB,CAAZ,CAAA;;AAEA,MAAI,IAAA,CAACD,GAAL,EAAU;AACR,QAAA,IAAI5B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,UAAA,MAAM,IAAIC,KAAJ,CAAgD0B,qCAAAA,GAAAA,KAAhD,CAAN,CAAA;AACD,SAAA;;AACD,QAAM,MAAA,IAAI1B,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAMlB,IAAI,GAAG2C,GAAG,CAACe,qBAAJ,EAAA,CAA4BlB,QAA5B,CAAb,CAAA;;AAEA,MAAI,IAAA,CAACxC,IAAL,EAAW;AACT,QAAA,IAAIe,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,UAAA,MAAM,IAAIC,KAAJ,CAAA,8BAAA,GAC2BsB,QAD3B,GAAA,UAAA,GAC8CI,KAD9C,CAAN,CAAA;AAGD,SAAA;;AACD,QAAM,MAAA,IAAI1B,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,OAAOlB,IAAP,CAAA;AACD,KApY0C;AAsY3CqE,IAAAA,aAAa,EAAE,SAAAvB,aAAAA,CAAAA,SAAS,EAAI;AAC1B,MAAA,OAAOwB,gBAAU,CACf;AACEC,QAAAA,IAAI,EAAE,OAAA;AADR,OADe,EAIfzB,SAJe,CAAjB,CAAA;AAMD,KA7Y0C;AA+Y3C0B,IAAAA,iBAAiB,EAAE,SAAA1B,iBAAAA,CAAAA,SAAS,EAAI;AAC9B,MAAA,OAAOwB,gBAAU,CACf;AACEC,QAAAA,IAAI,EAAE,UAAA;AADR,OADe,EAIfzB,SAJe,CAAjB,CAAA;AAMD,KAtZ0C;AAwZ3CU,IAAAA,WAAW,EAAE,SAAA,WAAA,CAACZ,KAAD,EAAQE,SAAR,EAAsB;AACjC,MAAA,IAAMH,GAAG,GAAG/F,QAAQ,CAACsH,MAAT,CAAgBtB,KAAhB,CAAZ,CAAA;;AACA,MAAI,IAAA,CAACD,GAAL,EAAU;AACR,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,OAAO2B,gBAAU,CACf;AACEjE,QAAAA,GAAG,EAAEsC,GAAG,CAACtD,EADX;AAEEkF,QAAAA,IAAI,EAAE,KAAA;AAFR,OADe,EAKfzB,SALe,CAAjB,CAAA;AAOD,KAra0C;AAua3CD,IAAAA,YAAY,EAAE,SAACD,YAAAA,CAAAA,KAAD,EAAQJ,QAAR,EAAkBM,SAAlB,EAAgC;AAC5C,MAAM9C,IAAAA,IAAI,GAAGpD,QAAQ,CAACwH,OAAT,CAAiBxB,KAAjB,EAAwBJ,QAAxB,CAAb,CAAA;;AAEA,MAAI,IAAA,CAACxC,IAAL,EAAW;AACT,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,OAAOsE,gBAAU,CACf;AACEjE,QAAAA,GAAG,EAAEL,IAAI,CAACX,EADZ;AAEEkF,QAAAA,IAAI,EAAE,UAAA;AAFR,OADe,EAKfzB,SALe,CAAjB,CAAA;AAOD,KArb0C;AAub3C2B,IAAAA,aAAa,EAAE,SAAA,aAAA,GAAA;AAAA,MAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,MAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GACb7H,QAAQ,CAAC8H,eAAT,EAA2B,CAAA,CAA3B,CADa,KACb,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA+BC,OAA/B,CAAuC7H,MAAvC,CAA8C,UAAC8H,GAAD,EAAM/E,MAAN,EAAiB;AAC7D,QAAA,OAAO+E,GAAG,GAAG/E,MAAM,CAACuB,QAAP,EAAb,CAAA;AACD,OAFD,EAEG,CAFH,CADa,KAAA,IAAA,GAAA,qBAAA,GAGJ,CAHI,CAAA;AAAA,KAvb4B;AA2b3CyD,IAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,MAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,MAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GACjBjI,QAAQ,CAACkI,mBAAT,EAA+B,CAAA,CAA/B,CADiB,KACjB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAmCH,OAAnC,CAA2C7H,MAA3C,CAAkD,UAAC8H,GAAD,EAAM/E,MAAN,EAAiB;AACjE,QAAA,OAAO+E,GAAG,GAAG/E,MAAM,CAACuB,QAAP,EAAb,CAAA;AACD,OAFD,EAEG,CAFH,CADiB,KAAA,IAAA,GAAA,qBAAA,GAGR,CAHQ,CAAA;AAAA,KA3bwB;AA+b3C2D,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,GAAA;AAAA,MAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,MAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GACnBnI,QAAQ,CAACoI,qBAAT,EAAiC,CAAA,CAAjC,CADmB,KACnB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAqCL,OAArC,CAA6C7H,MAA7C,CAAoD,UAAC8H,GAAD,EAAM/E,MAAN,EAAiB;AACnE,QAAA,OAAO+E,GAAG,GAAG/E,MAAM,CAACuB,QAAP,EAAb,CAAA;AACD,OAFD,EAEG,CAFH,CADmB,KAAA,IAAA,GAAA,qBAAA,GAGV,CAHU,CAAA;AAAA,KA/bsB;AAmc3C6D,IAAAA,kBAAkB,EAAE,SAAA,kBAAA,GAAA;AAAA,MAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,MAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GAClBrI,QAAQ,CAACsI,oBAAT,EAAgC,CAAA,CAAhC,CADkB,KAClB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAoCP,OAApC,CAA4C7H,MAA5C,CAAmD,UAAC8H,GAAD,EAAM/E,MAAN,EAAiB;AAClE,QAAA,OAAO+E,GAAG,GAAG/E,MAAM,CAACuB,QAAP,EAAb,CAAA;AACD,OAFD,EAEG,CAFH,CADkB,KAAA,IAAA,GAAA,qBAAA,GAGT,CAHS,CAAA;AAAA,KAncuB;AAwc3C+D,IAAAA,kBAAkB,EAAE,SAAM,kBAAA,GAAA;AACxB,MACEvI,IAAAA,kBAAAA,GAAAA,QAAQ,CAAC2C,QAAT,EADF;AAAA,UAAQjC,YAAR,sBAAQA,YAAR;AAAA,UAAsB8H,qBAAtB,sBAAsBA,qBAAtB;AAAA,UAA6CC,oBAA7C,sBAA6CA,oBAA7C,CAAA;;AAGA,MAAA,OAAOC,qBAAI,CAAC,YAAA;AAAA,QACV,OAAA,CAAChI,YAAD,EAAe8H,qBAAf,EAAsCC,oBAAtC,CAA4DE,CAAAA,MAA5D,CACE,UAAA/D,CAAC,EAAA;AAAA,UAAIA,OAAAA,CAAC,GAAG,CAAR,CAAA;AAAA,SADH,CADU,CAAA;AAAA,OAAD,CAAX,CAAA;AAKD,KAAA;AAjd0C,GAA7C,CAAA,CAAA;;AAodA5E,EAAAA,QAAQ,GAAGK,MAAM,CAACC,MAAP,CAAcN,QAAd,EAAwBgB,aAAxB,CAAX,CAAA;AAEA,EAAA,OAAOhB,QAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n CoreCell,\n Renderable,\n UseRenderer,\n RowModel,\n TableFeature,\n AnyGenerics,\n} from './types'\n\nimport { ColumnSizing } from './features/ColumnSizing'\nimport { Expanding } from './features/Expanding'\nimport { Filters } from './features/Filters'\nimport { Grouping } from './features/Grouping'\nimport { Ordering } from './features/Ordering'\nimport { Pagination } from './features/Pagination'\nimport { Pinning } from './features/Pinning'\nimport { RowSelection } from './features/RowSelection'\nimport { Sorting } from './features/Sorting'\nimport { Visibility } from './features/Visibility'\nimport { Headers } from './features/Headers'\nimport { mean } from './aggregationFns'\n\nconst features: TableFeature[] = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n]\n\nexport type CoreTableState = {\n coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends AnyGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n getCoreRowModel: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableFeature,\n options: Partial<Options<TGenerics>>\n ) => Options<TGenerics>\n meta?: TGenerics['TableMeta']\n}\n\nexport type TableCore<TGenerics extends AnyGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n queue: (cb: () => void) => void\n willUpdate: () => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n _getCoreRowModel?: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n getOverallProgress: () => number\n}\n\nexport type CoreRow<TGenerics extends AnyGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n subRows: Row<TGenerics>[]\n getLeafRows: () => Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends AnyGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n// & GeneratedProperties<true>\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumn<TGenerics extends AnyGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends AnyGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const coreInitialState: CoreTableState = {\n coreProgress: 1,\n }\n\n const initialState = {\n ...coreInitialState,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const queued: (() => void)[] = []\n let queuedTimeout: NodeJS.Timeout\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInstance?.(instance))\n }, {}),\n queue: cb => {\n queued.push(cb)\n if (!queuedTimeout) {\n queuedTimeout = setTimeout(() => {\n instance.setState(old => ({ ...old }))\n })\n }\n },\n willUpdate: () => {\n clearTimeout(queuedTimeout)\n while (queued.length) {\n queued.shift()!()\n }\n },\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n if (instance.options.mergeOptions) {\n instance.options = instance.options.mergeOptions(\n defaultOptions,\n newOptions\n )\n } else {\n instance.options = buildOptions(newOptions)\n }\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getRowId: (row: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n instance.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n\n createCell: (row, column, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\n })\n : null,\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, feature.createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: () => {\n if (!instance._getCoreRowModel) {\n instance._getCoreRowModel = instance.options.getCoreRowModel(instance)\n }\n\n return instance._getCoreRowModel()\n },\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 instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n\n getOverallProgress: () => {\n const { coreProgress, columnFiltersProgress, globalFilterProgress } =\n instance.getState()\n\n return mean(() =>\n [coreProgress, columnFiltersProgress, globalFilterProgress].filter(\n d => d < 1\n )\n ) as number\n },\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","coreInitialState","coreProgress","initialState","_extends","getInitialState","queued","queuedTimeout","finalInstance","getInstance","queue","cb","push","setTimeout","setState","old","willUpdate","clearTimeout","length","shift","reset","setOptions","updater","newOptions","functionalUpdate","mergeOptions","render","template","props","getRowId","row","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","columnDefType","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","createCell","rowId","getCellProps","userProps","renderCell","forEach","createRow","original","rowIndex","values","subRows","getLeafRows","flattenBy","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups","getOverallProgress","columnFiltersProgress","globalFilterProgress","mean","filter"],"mappings":"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"}
@@ -15,26 +15,32 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
16
 
17
17
  //
18
- function init(opts) {
19
- return {
20
- createTableFactory: function createTableFactory(factoryOptions) {
21
- return function () {
22
- return _createTable(undefined, undefined, _rollupPluginBabelHelpers["extends"]({}, factoryOptions, opts));
23
- };
24
- },
25
- createTable: function createTable() {
26
- return _createTable(undefined, undefined, opts);
27
- }
18
+ function createTableFactory(opts) {
19
+ return function () {
20
+ return createTable(undefined, undefined, opts);
28
21
  };
29
- }
22
+ } // A lot of returns in here are `as any` for a reason. Unless you
23
+ // can find a better way to do this, then don't worry about them
30
24
 
31
- function _createTable(_, __, __options) {
32
- return {
25
+ function createTable(_, __, options) {
26
+ var table = {
33
27
  generics: undefined,
34
- __options: __options != null ? __options : {
35
- render: function render() {
36
- throw new Error();
37
- }
28
+ options: options != null ? options : {
29
+ render: function () {
30
+ throw new Error('');
31
+ }()
32
+ },
33
+ setRowType: function setRowType() {
34
+ return table;
35
+ },
36
+ setTableMetaType: function setTableMetaType() {
37
+ return table;
38
+ },
39
+ setColumnMetaType: function setColumnMetaType() {
40
+ return table;
41
+ },
42
+ setOptions: function setOptions(newOptions) {
43
+ return createTable(_, __, _rollupPluginBabelHelpers["extends"]({}, options, newOptions));
38
44
  },
39
45
  createColumns: function createColumns(columns) {
40
46
  return columns;
@@ -73,7 +79,8 @@ function _createTable(_, __, __options) {
73
79
  throw new Error('Invalid accessor');
74
80
  }
75
81
  };
82
+ return table;
76
83
  }
77
84
 
78
- exports.init = init;
85
+ exports.createTableFactory = createTableFactory;
79
86
  //# sourceMappingURL=createTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n PartialGenerics,\n AnyRender,\n AnyGenerics,\n} from './types'\nimport { Overwrite, PartialKeys } from './utils'\n\nexport type CreateTableFactory<TGenerics extends AnyGenerics> = <\n TSubGenerics extends {\n Row: any\n ColumnMeta?: object\n TableMeta?: object\n }\n>() => Table<Overwrite<TGenerics, TSubGenerics>>\n\nexport type CreateTableFactoryOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n> = {\n render: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n}\n\nexport type Table<TGenerics extends AnyGenerics> = {\n generics: TGenerics\n __options: CreateTableFactoryOptions<any, any, any, any>\n createColumns: <TColumnDef extends ColumnDef<any>>(\n columns: TColumnDef[]\n ) => TColumnDef[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Overwrite<\n PartialKeys<ColumnDef<TGenerics>, 'accessorFn' | 'accessorKey'>,\n {\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\ntype InitTable<TRender extends AnyRender> = {\n createTableFactory: <TGenerics extends AnyGenerics>(\n options: CreateTableFactoryOptions<TRender, any, any, any>\n ) => CreateTableFactory<Overwrite<TGenerics, { Render: TRender }>>\n createTable: CreateTableFactory<\n Overwrite<PartialGenerics, { Render: TRender }>\n >\n}\n\n//\n\nexport function init<TRender extends AnyRender>(opts: {\n render: TRender\n}): InitTable<TRender> {\n return {\n createTableFactory: factoryOptions => () =>\n _createTable(undefined, undefined, { ...factoryOptions, ...opts }),\n createTable: () => _createTable(undefined, undefined, opts),\n }\n}\n\nfunction _createTable<TGenerics extends AnyGenerics>(\n _: undefined,\n __: undefined,\n __options: CreateTableFactoryOptions<any, any, any, any>\n): Table<TGenerics> {\n return {\n generics: undefined!,\n __options: __options ?? {\n render: () => {\n throw new Error()\n },\n },\n createColumns: columns => columns,\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n}\n"],"names":["init","opts","createTableFactory","factoryOptions","_createTable","undefined","createTable","_","__","__options","generics","render","Error","createColumns","columns","createDisplayColumn","column","_extends","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AA0GA;AAEO,SAASA,IAAT,CAAyCC,IAAzC,EAEgB;AACrB,EAAO,OAAA;AACLC,IAAAA,kBAAkB,EAAE,SAAA,kBAAA,CAAAC,cAAc,EAAA;AAAA,MAAI,OAAA,YAAA;AAAA,QACpCC,OAAAA,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAA4BF,oCAAAA,CAAAA,EAAAA,EAAAA,cAA5B,EAA+CF,IAA/C,CADwB,CAAA,CAAA;AAAA,OAAJ,CAAA;AAAA,KAD7B;AAGLK,IAAAA,WAAW,EAAE,SAAA,WAAA,GAAA;AAAA,MAAA,OAAMF,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAAuBJ,IAAvB,CAAlB,CAAA;AAAA,KAAA;AAHR,GAAP,CAAA;AAKD,CAAA;;AAED,SAASG,YAAT,CACEG,CADF,EAEEC,EAFF,EAGEC,SAHF,EAIoB;AAClB,EAAO,OAAA;AACLC,IAAAA,QAAQ,EAAEL,SADL;AAELI,IAAAA,SAAS,EAAEA,SAAF,IAAA,IAAA,GAAEA,SAAF,GAAe;AACtBE,MAAAA,MAAM,EAAE,SAAM,MAAA,GAAA;AACZ,QAAM,MAAA,IAAIC,KAAJ,EAAN,CAAA;AACD,OAAA;AAHqB,KAFnB;AAOLC,IAAAA,aAAa,EAAE,SAAA,aAAA,CAAAC,OAAO,EAAA;AAAA,MAAA,OAAIA,OAAJ,CAAA;AAAA,KAPjB;AAQLC,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,CAAAC,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,SAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KARtB;AASLC,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAAH,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,OAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KATd;AAULE,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,CAACC,QAAD,EAAWL,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC,EAAA;AAEJE,QAAAA,aAAa,EAAE,MAFX;AAGJI,QAAAA,EAAE,EAAEN,MAAM,CAACM,EAAAA;AAHP,OAAN,CAAA,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEM,UAAAA,EAAE,EAAEN,CAAAA,UAAAA,GAAAA,MAAM,CAACM,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAAAA;AAHf,SAAA,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEQ,UAAAA,UAAU,EAAEH,QAAAA;AAFd,SAAA,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAIT,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KAAA;AAjCI,GAAP,CAAA;AAmCD;;;;"}
1
+ {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterTypes, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes, SortingFn } from './features/Sorting'\nimport { ColumnDef, AccessorFn, AnyRender, AnyGenerics, Options } from './types'\nimport { IfDefined, Overwrite, PartialKeys } from './utils'\n\nexport type TableFactory<TGenerics extends AnyGenerics> = () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>,\n TGenerics extends AnyGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<Options<TGenerics>, 'filterFns' | 'sortingFns' | 'aggregationFns'>\n>\n\nexport type Table<TGenerics extends AnyGenerics> = {\n generics: TGenerics\n options: Partial<Options<TGenerics>>\n setRowType: <TRow extends object>() => Table<\n Overwrite<TGenerics, { Row: TRow }>\n >\n setTableMetaType: <TTableMeta extends object>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta extends object>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<any>>,\n TSortingFns extends Record<string, SortingFn<any>>,\n TAggregationFns extends Record<string, AggregationFn<any>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createColumns: <TColumnDef extends ColumnDef<any>>(\n columns: TColumnDef[]\n ) => TColumnDef[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Overwrite<\n PartialKeys<ColumnDef<TGenerics>, 'accessorFn' | 'accessorKey'>,\n {\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRender extends AnyRender>(opts: {\n render: TRender\n}): () => Table<{ Render: TRender }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends AnyGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createColumns: columns => columns,\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setRowType","setTableMetaType","setColumnMetaType","setOptions","newOptions","createColumns","columns","createDisplayColumn","column","_extends","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AAuHA;AAEO,SAASA,kBAAT,CAAuDC,IAAvD,EAE8B;AACnC,EAAO,OAAA,YAAA;AAAA,IAAA,OAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAjB,CAAA;AAAA,GAAP,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,IAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAA,IAAA,GAAEA,OAAF,GAAa;AAClBG,MAAAA,MAAM,EAAG,YAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;AACD,OAFO,EAAA;AADU,KAFU;AAO9BC,IAAAA,UAAU,EAAE,SAAA,UAAA,GAAA;AAAA,MAAA,OAAMJ,KAAN,CAAA;AAAA,KAPkB;AAQ9BK,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,MAAA,OAAML,KAAN,CAAA;AAAA,KARY;AAS9BM,IAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,MAAA,OAAMN,KAAN,CAAA;AAAA,KATW;AAU9BO,IAAAA,UAAU,EAAE,SAAA,UAAA,CAAAC,UAAU,EAAA;AAAA,MACpBb,OAAAA,WAAW,CAACE,CAAD,EAAIC,EAAJ,EACNC,oCAAAA,CAAAA,EAAAA,EAAAA,OADM,EAENS,UAFM,CADS,CAAA,CAAA;AAAA,KAVQ;AAe9BC,IAAAA,aAAa,EAAE,SAAA,aAAA,CAAAC,OAAO,EAAA;AAAA,MAAA,OAAIA,OAAJ,CAAA;AAAA,KAfQ;AAgB9BC,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,CAAAC,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,SAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAhBG;AAiB9BC,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAAH,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,OAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAjBW;AAkB9BE,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,CAACC,QAAD,EAAWL,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC,EAAA;AAEJE,QAAAA,aAAa,EAAE,MAFX;AAGJI,QAAAA,EAAE,EAAEN,MAAM,CAACM,EAAAA;AAHP,OAAN,CAAA,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEM,UAAAA,EAAE,EAAEN,CAAAA,UAAAA,GAAAA,MAAM,CAACM,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAAAA;AAHf,SAAA,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEQ,UAAAA,UAAU,EAAEH,QAAAA;AAFd,SAAA,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAId,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KAAA;AAzC6B,GAAhC,CAAA;AA4CA,EAAA,OAAOH,KAAP,CAAA;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends AnyGenerics> = {\n getColumnWidth: (columnId: string) => number\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n width?: number\n minWidth?: number\n maxWidth?: number\n}\n\nexport type ColumnSizingColumn<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: MouseEvent | TouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) *\n 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.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 const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends AnyGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumn","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","getColumnWidth","columnId","column","getColumn","Error","columnSize","getState","id","Math","min","max","setColumnSizing","updater","options","functionalUpdate","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","rest","_toPropertyKey","resetHeaderSize","headerId","header","getHeader","getHeaderCanResize","getColumnCanResize","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","old","forEach","headerWidth","_extends","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends AnyGenerics> = {\n getColumnWidth: (columnId: string) => number\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n width?: number\n minWidth?: number\n maxWidth?: number\n}\n\nexport type ColumnSizingColumn<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: unknown) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) *\n 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.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 const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends AnyGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumn","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","getColumnWidth","columnId","column","getColumn","Error","columnSize","getState","id","Math","min","max","setColumnSizing","updater","options","functionalUpdate","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","rest","_toPropertyKey","resetHeaderSize","headerId","header","getHeader","getHeaderCanResize","getColumnCanResize","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","old","forEach","headerWidth","_extends","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}