@tanstack/table-core 8.0.0-alpha.45 → 8.0.0-alpha.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +6 -6
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +2 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/RowSelection.js +2 -2
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +2 -2
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/esm/index.js +12 -12
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +296 -296
- package/build/types/aggregationFns.d.ts +1 -1
- package/build/types/createTable.d.ts +7 -7
- package/build/types/features/Expanding.d.ts +1 -1
- package/build/types/features/Filters.d.ts +6 -6
- package/build/types/features/Grouping.d.ts +6 -6
- package/build/types/features/RowSelection.d.ts +1 -1
- package/build/types/features/Sorting.d.ts +7 -7
- package/build/types/filterFns.d.ts +1 -1
- package/build/types/sortingFns.d.ts +1 -1
- package/build/umd/index.development.js +12 -12
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/aggregationFns.ts +1 -1
- package/src/createTable.ts +9 -11
- package/src/features/ColumnSizing.ts +4 -4
- package/src/features/Expanding.ts +3 -3
- package/src/features/Filters.ts +18 -18
- package/src/features/Grouping.ts +11 -11
- package/src/features/RowSelection.ts +13 -11
- package/src/features/Sorting.ts +18 -14
- package/src/features/Visibility.ts +4 -2
- package/src/filterFns.ts +1 -1
- package/src/sortingFns.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationType, aggregationFns } from '../aggregationFns'\nimport {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n PartialGenerics,\n Renderable,\n UseRenderer,\n AnyGenerics,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends AnyGenerics> = (\n getLeafValues: () => TGenerics['Row'][],\n getChildValues: () => TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationTypes<TGenerics extends AnyGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInAggregationType\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell<TGenerics extends AnyGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends AnyGenerics> = {\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n getGroupedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type GroupingInstance<TGenerics extends AnyGenerics> = {\n _notifyGroupingReset: () => void\n getColumnAutoAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (): GroupingTableState => {\n return {\n grouping: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n aggregationFn: column.aggregationFn,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyGroupingReset: () => {\n instance._notifyExpandedReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetGrouping\n ) {\n instance.resetGrouping()\n }\n },\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n\n return aggregationFns.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationTypes = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? instance.getColumnAutoAggregationFn(columnId)\n : (userAggregationTypes as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationType\n ] as AggregationFn<TGenerics>)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: MouseEvent | TouchEvent) => {\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (!instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n },\n\n createCell: <TGenerics extends AnyGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\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 > 1,\n renderAggregatedCell: () => {\n const template = column.aggregatedCell ?? column.cell\n\n return template\n ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n value: cell.value,\n })\n : null\n },\n }\n },\n\n orderColumns: <TGenerics extends AnyGenerics>(\n leafColumns: Column<TGenerics>[],\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}\n"],"names":["Grouping","getDefaultColumn","aggregationFn","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","registered","_notifyGroupingReset","_notifyExpandedReset","options","autoResetAll","resetGrouping","getColumnAutoAggregationFn","columnId","firstRow","getCoreRowModel","flatRows","value","values","aggregationFns","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationTypes","Error","isFunction","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","initialState","canGroup","initialProps","title","undefined","onClick","e","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","createRow","row","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","render","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 {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n PartialGenerics,\n Renderable,\n UseRenderer,\n AnyGenerics,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends AnyGenerics> = (\n getLeafValues: () => TGenerics['Row'][],\n getChildValues: () => TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationFns<TGenerics extends AnyGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationFnOption<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInAggregationFn\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell<TGenerics extends AnyGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends AnyGenerics> = {\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n getGroupedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type GroupingInstance<TGenerics extends AnyGenerics> = {\n _notifyGroupingReset: () => void\n getColumnAutoAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (): GroupingTableState => {\n return {\n grouping: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n aggregationFn: column.aggregationFn,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyGroupingReset: () => {\n instance._notifyExpandedReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetGrouping\n ) {\n instance.resetGrouping()\n }\n },\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n\n return aggregationFns.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationFns = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? instance.getColumnAutoAggregationFn(columnId)\n : (userAggregationFns as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TGenerics>)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: unknown) => {\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (!instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n },\n\n createCell: <TGenerics extends AnyGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\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 > 1,\n renderAggregatedCell: () => {\n const template = column.aggregatedCell ?? column.cell\n\n return template\n ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n value: cell.value,\n })\n : null\n },\n }\n },\n\n orderColumns: <TGenerics extends AnyGenerics>(\n leafColumns: Column<TGenerics>[],\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}\n"],"names":["Grouping","getDefaultColumn","aggregationFn","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","registered","_notifyGroupingReset","_notifyExpandedReset","options","autoResetAll","resetGrouping","getColumnAutoAggregationFn","columnId","firstRow","getCoreRowModel","flatRows","value","values","aggregationFns","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationFns","Error","isFunction","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","initialState","canGroup","initialProps","title","undefined","onClick","e","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","createRow","row","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -29,8 +29,8 @@ var RowSelection = {
|
|
|
29
29
|
enableRowSelection: true,
|
|
30
30
|
enableMultiRowSelection: true,
|
|
31
31
|
enableSubRowSelection: true // enableGroupingRowSelection: false,
|
|
32
|
-
// isAdditiveSelectEvent: (e:
|
|
33
|
-
// isInclusiveSelectEvent: (e:
|
|
32
|
+
// isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,
|
|
33
|
+
// isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,
|
|
34
34
|
|
|
35
35
|
};
|
|
36
36
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance._notifyExpandedReset())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: unknown) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance._notifyExpandedReset())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: unknown) => {\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
@@ -123,13 +123,13 @@ var Sorting = {
|
|
|
123
123
|
var _ref;
|
|
124
124
|
|
|
125
125
|
var column = instance.getColumn(columnId);
|
|
126
|
-
var
|
|
126
|
+
var userSortingFn = instance.options.sortingFns;
|
|
127
127
|
|
|
128
128
|
if (!column) {
|
|
129
129
|
throw new Error();
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
return utils.isFunction(column.sortingFn) ? column.sortingFn : column.sortingFn === 'auto' ? instance.getColumnAutoSortingFn(columnId) : (_ref =
|
|
132
|
+
return utils.isFunction(column.sortingFn) ? column.sortingFn : column.sortingFn === 'auto' ? instance.getColumnAutoSortingFn(columnId) : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.sortingFn]) != null ? _ref : sortingFns.sortingFns[column.sortingFn];
|
|
133
133
|
},
|
|
134
134
|
setSorting: function setSorting(updater) {
|
|
135
135
|
return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater, utils.functionalUpdate(updater, instance.getState().sorting));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInSortType, reSplitAlphaNumeric, sortingFns } from '../sortingFns'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} 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 SortingFn<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingTypes<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortType\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortingFn?: SortType<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortingFn: SortType<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n instance._notifyGroupingReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\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 getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortTypes as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortType\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (!instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","_notifyGroupingReset","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortTypes","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} 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 SortingFn<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n instance._notifyGroupingReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\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 getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: unknown) => {\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (!instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","_notifyGroupingReset","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends AnyGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends AnyGenerics> = {\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: MouseEvent | TouchEvent) => {\n column.toggleVisibility?.((e.target as HTMLInputElement).checked)\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","debugAll","debugColumns","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends AnyGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends AnyGenerics> = {\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","debugAll","debugColumns","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
|