@tanstack/table-core 8.4.0 → 8.5.2

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.
@@ -55,7 +55,8 @@ function createColumnHelper() {
55
55
  accessorKey: accessor
56
56
  };
57
57
  },
58
- display: column => column
58
+ display: column => column,
59
+ group: column => column
59
60
  };
60
61
  }
61
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"columnHelper.js","sources":["../../src/columnHelper.ts"],"sourcesContent":["import { AccessorFn, ColumnDef, RowData } from './types'\nimport { DeepKeys, DeepValue, RequiredKeys } from './utils'\n\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nexport type ColumnHelper<TData extends RowData> = {\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: Omit<ColumnDef<TData, TValue>, 'accessorKey'>\n ) => ColumnDef<TData, TValue>\n display: (\n column: RequiredKeys<\n Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'accessorFn'>,\n 'id'\n >\n ) => ColumnDef<TData, unknown>\n}\n\nexport function createColumnHelper<\n TData extends RowData\n>(): ColumnHelper<TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n display: column => column as ColumnDef<TData, unknown>,\n }\n}\n"],"names":["createColumnHelper","accessor","column","accessorFn","accessorKey","display"],"mappings":";;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAsBO,SAASA,kBAAT,GAEkB;EACvB,OAAO;AACLC,IAAAA,QAAQ,EAAE,CAACA,QAAD,EAAWC,MAAX,KAAsB;AAC9B,MAAA,OAAO,OAAOD,QAAP,KAAoB,UAApB,GACF,EACC,GAAGC,MADJ;AAECC,QAAAA,UAAU,EAAEF,QAAAA;OAHX,GAKH,EACE,GAAGC,MADL;AAEEE,QAAAA,WAAW,EAAEH,QAAAA;OAPnB,CAAA;KAFG;IAYLI,OAAO,EAAEH,MAAM,IAAIA,MAAAA;GAZrB,CAAA;AAcD;;;;"}
1
+ {"version":3,"file":"columnHelper.js","sources":["../../src/columnHelper.ts"],"sourcesContent":["import {\n CoreColumnDefDisplay,\n CoreColumnDefDisplayWithStringHeader,\n} from './core/column'\nimport { GroupingColumnDef } from './features/Grouping'\nimport { AccessorFn, ColumnDef, RowData } from './types'\nimport { DeepKeys, DeepValue, RequiredKeys } from './utils'\n\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nexport type ColumnHelper<TData extends RowData> = {\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: Omit<ColumnDef<TData, TValue>, 'accessorKey'>\n ) => ColumnDef<TData, TValue>\n display: (\n column: RequiredKeys<\n Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'accessorFn'>,\n 'id'\n >\n ) => ColumnDef<TData, unknown>\n group: (\n column: Omit<\n ColumnDef<TData, unknown>,\n 'id' | 'header' | 'accessorKey' | 'accessorFn' | 'columns'\n > &\n (\n | CoreColumnDefDisplayWithStringHeader<TData, unknown>\n | CoreColumnDefDisplay<TData, unknown>\n ) & { columns: ColumnDef<TData, any>[] }\n ) => ColumnDef<TData, unknown>\n}\n\nexport function createColumnHelper<\n TData extends RowData\n>(): ColumnHelper<TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n display: column => column as ColumnDef<TData, unknown>,\n group: column => column as ColumnDef<TData, unknown>,\n }\n}\n"],"names":["createColumnHelper","accessor","column","accessorFn","accessorKey","display","group"],"mappings":";;;;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAgCO,SAASA,kBAAT,GAEkB;EACvB,OAAO;AACLC,IAAAA,QAAQ,EAAE,CAACA,QAAD,EAAWC,MAAX,KAAsB;AAC9B,MAAA,OAAO,OAAOD,QAAP,KAAoB,UAApB,GACF,EACC,GAAGC,MADJ;AAECC,QAAAA,UAAU,EAAEF,QAAAA;OAHX,GAKH,EACE,GAAGC,MADL;AAEEE,QAAAA,WAAW,EAAEH,QAAAA;OAPnB,CAAA;KAFG;IAYLI,OAAO,EAAEH,MAAM,IAAIA,MAZd;IAaLI,KAAK,EAAEJ,MAAM,IAAIA,MAAAA;GAbnB,CAAA;AAeD;;;;"}
@@ -138,8 +138,20 @@ function createTable(options) {
138
138
 
139
139
  defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
140
140
  return {
141
- header: props => props.header.column.id,
142
- footer: props => props.header.column.id,
141
+ header: props => {
142
+ const resolvedColumnDef = props.header.column.columnDef;
143
+
144
+ if (resolvedColumnDef.accessorKey) {
145
+ return resolvedColumnDef.accessorKey;
146
+ }
147
+
148
+ if (resolvedColumnDef.accessorFn) {
149
+ return resolvedColumnDef.id;
150
+ }
151
+
152
+ return null;
153
+ },
154
+ // footer: props => props.header.column.id,
143
155
  cell: props => {
144
156
  var _props$renderValue$to, _props$renderValue;
145
157
 
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\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'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._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 table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.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 _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, 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: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._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\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","column","footer","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n} from '../types'\n\n//\nimport { CoreColumnDefResolved, createColumn } from './column'\nimport { Headers } from './headers'\n//\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'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._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 table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.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 _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => {\n const resolvedColumnDef = props.header.column\n .columnDef as CoreColumnDefResolved<TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n // footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, 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: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._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\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","resolvedColumnDef","column","columnDef","accessorKey","accessorFn","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
@@ -74,7 +74,9 @@ const Filters = {
74
74
  return filterFns.filterFns.weakEquals;
75
75
  },
76
76
  getFilterFn: () => {
77
- return utils.isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : filterFns.filterFns[column.columnDef.filterFn];
77
+ var _table$options$filter, _table$options$filter2;
78
+
79
+ return utils.isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns.filterFns[column.columnDef.filterFn];
78
80
  },
79
81
  getCanFilter: () => {
80
82
  var _column$columnDef$ena, _table$options$enable, _table$options$enable2;
@@ -173,10 +175,12 @@ const Filters = {
173
175
  return filterFns.filterFns.includesString;
174
176
  },
175
177
  getGlobalFilterFn: () => {
178
+ var _table$options$filter3, _table$options$filter4;
179
+
176
180
  const {
177
181
  globalFilterFn: globalFilterFn
178
182
  } = table.options;
179
- return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : filterFns.filterFns[globalFilterFn];
183
+ return utils.isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter3 = (_table$options$filter4 = table.options.filterFns) == null ? void 0 : _table$options$filter4[globalFilterFn]) != null ? _table$options$filter3 : filterFns.filterFns[globalFilterFn];
180
184
  },
181
185
  setColumnFilters: updater => {
182
186
  const leafColumns = table.getAllLeafColumns();
@@ -213,8 +217,11 @@ const Filters = {
213
217
  table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);
214
218
  },
215
219
  getPreFilteredRowModel: () => table.getCoreRowModel(),
216
- _getFilteredRowModel: table.options.getFilteredRowModel && table.options.getFilteredRowModel(table),
217
220
  getFilteredRowModel: () => {
221
+ if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {
222
+ table._getFilteredRowModel = table.options.getFilteredRowModel(table);
223
+ }
224
+
218
225
  if (table.options.manualFiltering || !table._getFilteredRowModel) {
219
226
  return table.getPreFilteredRowModel();
220
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type FilterFn<TData extends RowData> = {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TData extends RowData> = {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\nexport type FiltersInstance<TData extends RowData> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : (filterFns[\n column.columnDef.filterFn as BuiltInFilterFn\n ] as FilterFn<TData>)\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : (filterFns[globalFilterFn as BuiltInFilterFn] as FilterFn<TData>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n _getFilteredRowModel:\n table.options.getFilteredRowModel &&\n table.options.getFilteredRowModel(table),\n getFilteredRowModel: () => {\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","getCanFilter","enableColumnFilter","options","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type FilterFn<TData extends RowData> = {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TData extends RowData> = {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n} & (keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n })\n\nexport type FiltersInstance<TData extends RowData> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
@@ -86,11 +86,13 @@ const Grouping = {
86
86
  }
87
87
  },
88
88
  getAggregationFn: () => {
89
+ var _table$options$aggreg, _table$options$aggreg2;
90
+
89
91
  if (!column) {
90
92
  throw new Error();
91
93
  }
92
94
 
93
- return utils.isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : aggregationFns.aggregationFns[column.columnDef.aggregationFn];
95
+ return utils.isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns.aggregationFns[column.columnDef.aggregationFn];
94
96
  }
95
97
  };
96
98
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type GroupingColumnDef<TData extends RowData, TValue> = {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TData extends RowData> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TData extends RowData> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : (aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TData>)\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type GroupingColumnDef<TData extends RowData, TValue> = {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TData extends RowData> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n} & (keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n })\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TData extends RowData> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
@@ -75,11 +75,13 @@ const Sorting = {
75
75
  return 'desc';
76
76
  },
77
77
  getSortingFn: () => {
78
+ var _table$options$sortin, _table$options$sortin2;
79
+
78
80
  if (!column) {
79
81
  throw new Error();
80
82
  }
81
83
 
82
- return utils.isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : sortingFns.sortingFns[column.columnDef.sortingFn];
84
+ return utils.isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns.sortingFns[column.columnDef.sortingFn];
83
85
  },
84
86
  toggleSorting: (desc, multi) => {
85
87
  // if (column.columns.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport { Column, OnChangeFn, Table, Row, Updater, RowData } from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFn<TData extends RowData> = {\n (rowA: Row<TData>, rowB: Row<TData>, columnId: string): number\n}\n\nexport type CustomSortingFns<TData extends RowData> = Record<\n string,\n SortingFn<TData>\n>\n\nexport type SortingFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInSortingFn\n | SortingFn<TData>\n\nexport type SortingColumnDef<TData extends RowData> = {\n sortingFn?: SortingFnOption<TData>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TData extends RowData> = {\n getAutoSortingFn: () => SortingFn<TData>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TData>\n getFirstSortDir: () => SortDirection\n getNextSortingOrder: () => SortDirection | false\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TData extends RowData> = {\n manualSorting?: boolean\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (table: Table<any>) => () => RowModel<any>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type SortingInstance<TData extends RowData> = {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TData>\n getSortedRowModel: () => RowModel<TData>\n _getSortedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <TData extends RowData>(): SortingColumnDef<TData> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): SortingOptions<TData> => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): SortingColumn<TData> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : (sortingFns[\n column.columnDef.sortingFn as BuiltInSortingFn\n ] as SortingFn<TData>)\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder()\n const hasManualValue = typeof desc !== 'undefined' && desc !== null\n\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction: 'add' | 'remove' | 'toggle' | 'replace'\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old?.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove'\n }\n }\n }\n\n if (sortAction === 'add') {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id)\n } else {\n newSorting = [\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n }\n\n return newSorting\n })\n },\n\n getFirstSortDir: () => {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n table.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n },\n\n getNextSortingOrder: (multi?: boolean) => {\n const firstSortDirection = column.getFirstSortDir()\n const isSorted = column.getIsSorted()\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false\n }\n return isSorted === 'desc' ? 'asc' : 'desc'\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n table.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = table\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n table.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? table.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): SortingInstance<TData> => {\n return {\n setSorting: updater => table.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n table.setSorting(defaultState ? [] : table.initialState?.sorting ?? [])\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table)\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","getDefaultOptions","table","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","Error","isFunction","columnDef","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","old","existingSorting","find","d","existingIndex","findIndex","newSorting","sortAction","nextDesc","getCanMultiSort","splice","options","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getFirstSortDir","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","accessorFn","enableMultiSort","columnSort","getState","getSortIndex","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createTable","updater","resetSorting","defaultState","initialState","getPreSortedRowModel","getGroupedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n SortingFns,\n} from '../types'\n\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFn<TData extends RowData> = {\n (rowA: Row<TData>, rowB: Row<TData>, columnId: string): number\n}\n\nexport type CustomSortingFns<TData extends RowData> = Record<\n string,\n SortingFn<TData>\n>\n\nexport type SortingFnOption<TData extends RowData> =\n | 'auto'\n | keyof SortingFns\n | BuiltInSortingFn\n | SortingFn<TData>\n\nexport type SortingColumnDef<TData extends RowData> = {\n sortingFn?: SortingFnOption<TData>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TData extends RowData> = {\n getAutoSortingFn: () => SortingFn<TData>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TData>\n getFirstSortDir: () => SortDirection\n getNextSortingOrder: () => SortDirection | false\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TData extends RowData> = {\n manualSorting?: boolean\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (table: Table<any>) => () => RowModel<any>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n} & (keyof SortingFns extends never\n ? {\n sortingFns?: Record<string, SortingFn<any>>\n }\n : {\n sortingFns: Record<keyof SortingFns, SortingFn<any>>\n })\n\nexport type SortingInstance<TData extends RowData> = {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TData>\n getSortedRowModel: () => RowModel<TData>\n _getSortedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <TData extends RowData>(): SortingColumnDef<TData> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): SortingOptions<TData> => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): SortingColumn<TData> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : table.options.sortingFns?.[column.columnDef.sortingFn as string] ??\n sortingFns[column.columnDef.sortingFn as BuiltInSortingFn]\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder()\n const hasManualValue = typeof desc !== 'undefined' && desc !== null\n\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction: 'add' | 'remove' | 'toggle' | 'replace'\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old?.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove'\n }\n }\n }\n\n if (sortAction === 'add') {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id)\n } else {\n newSorting = [\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n }\n\n return newSorting\n })\n },\n\n getFirstSortDir: () => {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n table.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n },\n\n getNextSortingOrder: (multi?: boolean) => {\n const firstSortDirection = column.getFirstSortDir()\n const isSorted = column.getIsSorted()\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false\n }\n return isSorted === 'desc' ? 'asc' : 'desc'\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n table.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = table\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n table.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? table.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): SortingInstance<TData> => {\n return {\n setSorting: updater => table.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n table.setSorting(defaultState ? [] : table.initialState?.sorting ?? [])\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table)\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","getDefaultOptions","table","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","Error","isFunction","columnDef","options","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","old","existingSorting","find","d","existingIndex","findIndex","newSorting","sortAction","nextDesc","getCanMultiSort","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getFirstSortDir","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","accessorFn","enableMultiSort","columnSort","getState","getSortIndex","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createTable","updater","resetSorting","defaultState","initialState","getPreSortedRowModel","getGroupedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}