@tanstack/table-core 8.5.27 → 8.5.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/build/cjs/core/cell.js.map +1 -1
  2. package/build/cjs/core/column.js.map +1 -1
  3. package/build/cjs/core/headers.js.map +1 -1
  4. package/build/cjs/core/row.js.map +1 -1
  5. package/build/cjs/core/table.js.map +1 -1
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js.map +1 -1
  8. package/build/cjs/features/Filters.js.map +1 -1
  9. package/build/cjs/features/Grouping.js.map +1 -1
  10. package/build/cjs/features/Ordering.js.map +1 -1
  11. package/build/cjs/features/Pagination.js.map +1 -1
  12. package/build/cjs/features/Pinning.js.map +1 -1
  13. package/build/cjs/features/RowSelection.js.map +1 -1
  14. package/build/cjs/features/Sorting.js.map +1 -1
  15. package/build/cjs/features/Visibility.js.map +1 -1
  16. package/build/esm/index.js.map +1 -1
  17. package/build/stats-html.html +1 -1
  18. package/build/stats-react.json +310 -310
  19. package/build/types/index.d.ts +265 -238
  20. package/build/umd/index.development.js.map +1 -1
  21. package/build/umd/index.production.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/core/cell.ts +3 -3
  24. package/src/core/column.ts +2 -5
  25. package/src/core/headers.ts +5 -5
  26. package/src/core/row.ts +1 -1
  27. package/src/core/table.ts +6 -7
  28. package/src/features/ColumnSizing.ts +8 -8
  29. package/src/features/Expanding.ts +4 -4
  30. package/src/features/Filters.ts +17 -11
  31. package/src/features/Grouping.ts +16 -10
  32. package/src/features/Ordering.ts +5 -5
  33. package/src/features/Pagination.ts +6 -6
  34. package/src/features/Pinning.ts +8 -8
  35. package/src/features/RowSelection.ts +4 -4
  36. package/src/features/Sorting.ts +15 -9
  37. package/src/features/Visibility.ts +7 -7
  38. package/src/types.ts +133 -110
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type FilterFn<TData extends RowData> = {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TData extends RowData> = {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n} & (keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n })\n\nexport type FiltersInstance<TData extends RowData> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type GroupingColumnDef<TData extends RowData, TValue> = {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TData extends RowData> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n} & (keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n })\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TData extends RowData> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { Grouping, orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TData extends RowData> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAChCR,QAAAA,KAAK,CAACI,cAAc,CAClBI,YAAY,GAAG,EAAE,GAAGR,KAAK,CAACS,YAAY,CAACX,WAAW,IAAI,EAAE,CACzD,CAAA;OACF;AACDY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,KAAK,CAACY,QAAQ,EAAE,CAACd,WAAW,EAC5BE,KAAK,CAACY,QAAQ,EAAE,CAACC,QAAQ,EACzBb,KAAK,CAACM,OAAO,CAACQ,iBAAiB,CAChC,EACD,CAAChB,WAAW,EAAEe,QAAQ,EAAEC,iBAAiB,KAAKC,OAAO,IAAI;AACvD;AACA;QACA,IAAIC,cAAwC,GAAG,EAAE,CAAA;;AAEjD;AACA,QAAA,IAAI,EAAClB,WAAW,IAAA,IAAA,IAAXA,WAAW,CAAEmB,MAAM,CAAE,EAAA;AACxBD,UAAAA,cAAc,GAAGD,OAAO,CAAA;AAC1B,SAAC,MAAM;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGpB,WAAW,CAAC,CAAA;;AAExC;AACA,UAAA,MAAMqB,WAAW,GAAG,CAAC,GAAGJ,OAAO,CAAC,CAAA;;AAEhC;;AAEA;AACA,UAAA,OAAOI,WAAW,CAACF,MAAM,IAAIC,eAAe,CAACD,MAAM,EAAE;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAK,EAAE,CAAA;AAC9C,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAS,CACtCC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKL,cAAc,CAC7B,CAAA;AACD,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAC,EAAE;AACnBN,cAAAA,cAAc,CAACU,IAAI,CAACP,WAAW,CAACQ,MAAM,CAACL,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;AAC5D,aAAA;AACF,WAAA;;AAEA;AACAN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGG,WAAW,CAAC,CAAA;AACtD,SAAA;AAEA,QAAA,OAAOS,qBAAY,CAACZ,cAAc,EAAEH,QAAQ,EAAEC,iBAAiB,CAAC,CAAA;AAClE,OAAC,EACD;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,mBAAA;AAC/C;OACD,CAAA;KAEJ,CAAA;AACH,GAAA;AACF;;;;"}
1
+ {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAChCR,QAAAA,KAAK,CAACI,cAAc,CAClBI,YAAY,GAAG,EAAE,GAAGR,KAAK,CAACS,YAAY,CAACX,WAAW,IAAI,EAAE,CACzD,CAAA;OACF;AACDY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,KAAK,CAACY,QAAQ,EAAE,CAACd,WAAW,EAC5BE,KAAK,CAACY,QAAQ,EAAE,CAACC,QAAQ,EACzBb,KAAK,CAACM,OAAO,CAACQ,iBAAiB,CAChC,EACD,CAAChB,WAAW,EAAEe,QAAQ,EAAEC,iBAAiB,KAAKC,OAAO,IAAI;AACvD;AACA;QACA,IAAIC,cAAwC,GAAG,EAAE,CAAA;;AAEjD;AACA,QAAA,IAAI,EAAClB,WAAW,IAAA,IAAA,IAAXA,WAAW,CAAEmB,MAAM,CAAE,EAAA;AACxBD,UAAAA,cAAc,GAAGD,OAAO,CAAA;AAC1B,SAAC,MAAM;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGpB,WAAW,CAAC,CAAA;;AAExC;AACA,UAAA,MAAMqB,WAAW,GAAG,CAAC,GAAGJ,OAAO,CAAC,CAAA;;AAEhC;;AAEA;AACA,UAAA,OAAOI,WAAW,CAACF,MAAM,IAAIC,eAAe,CAACD,MAAM,EAAE;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAK,EAAE,CAAA;AAC9C,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAS,CACtCC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKL,cAAc,CAC7B,CAAA;AACD,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAC,EAAE;AACnBN,cAAAA,cAAc,CAACU,IAAI,CAACP,WAAW,CAACQ,MAAM,CAACL,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;AAC5D,aAAA;AACF,WAAA;;AAEA;AACAN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGG,WAAW,CAAC,CAAA;AACtD,SAAA;AAEA,QAAA,OAAOS,qBAAY,CAACZ,cAAc,EAAEH,QAAQ,EAAEC,iBAAiB,CAAC,CAAA;AAClE,OAAC,EACD;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,mBAAA;AAC/C;OACD,CAAA;KAEJ,CAAA;AACH,GAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions = {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TData extends RowData> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":";;;;;;;;;;;;;;;;AAiDA;;AAEA,MAAMA,gBAAgB,GAAG,CAAC,CAAA;AAC1B,MAAMC,eAAe,GAAG,EAAE,CAAA;AAE1B,MAAMC,yBAAyB,GAAG,OAAwB;AACxDC,EAAAA,SAAS,EAAEH,gBAAgB;AAC3BI,EAAAA,QAAQ,EAAEH,eAAAA;AACZ,CAAC,CAAC,CAAA;AAEK,MAAMI,UAAwB,GAAG;EACtCC,eAAe,EAAGC,KAAK,IAA2B;IAChD,OAAO;AACL,MAAA,GAAGA,KAAK;AACRC,MAAAA,UAAU,EAAE;AACV,QAAA,GAAGN,yBAAyB,EAAE;AAC9B,QAAA,IAAGK,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEC,UAAU,CAAA;AACtB,OAAA;KACD,CAAA;GACF;EAEDC,iBAAiB,EACfC,KAAmB,IACU;IAC7B,OAAO;AACLC,MAAAA,kBAAkB,EAAEC,sBAAgB,CAAC,YAAY,EAAEF,KAAK,CAAA;KACzD,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACW;IAC9B,IAAII,UAAU,GAAG,KAAK,CAAA;IACtB,IAAIC,MAAM,GAAG,KAAK,CAAA;IAElB,OAAO;AACLC,MAAAA,mBAAmB,EAAE,MAAM;QACzB,IAAI,CAACF,UAAU,EAAE;UACfJ,KAAK,CAACO,MAAM,CAAC,MAAM;AACjBH,YAAAA,UAAU,GAAG,IAAI,CAAA;AACnB,WAAC,CAAC,CAAA;AACF,UAAA,OAAA;AACF,SAAA;AAEA,QAAA,IACEJ,KAAK,CAACQ,OAAO,CAACC,YAAY,IAC1BT,KAAK,CAACQ,OAAO,CAACE,kBAAkB,IAChC,CAACV,KAAK,CAACQ,OAAO,CAACG,gBAAgB,EAC/B;AACA,UAAA,IAAIN,MAAM,EAAE,OAAA;AACZA,UAAAA,MAAM,GAAG,IAAI,CAAA;UACbL,KAAK,CAACO,MAAM,CAAC,MAAM;YACjBP,KAAK,CAACY,cAAc,EAAE,CAAA;AACtBP,YAAAA,MAAM,GAAG,KAAK,CAAA;AAChB,WAAC,CAAC,CAAA;AACJ,SAAA;OACD;MACDQ,aAAa,EAAEC,OAAO,IAAI;QACxB,MAAMC,WAAqC,GAAGC,GAAG,IAAI;AACnD,UAAA,IAAIC,QAAQ,GAAGC,sBAAgB,CAACJ,OAAO,EAAEE,GAAG,CAAC,CAAA;AAE7C,UAAA,OAAOC,QAAQ,CAAA;SAChB,CAAA;AAED,QAAA,OAAOjB,KAAK,CAACQ,OAAO,CAACP,kBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhCD,KAAK,CAACQ,OAAO,CAACP,kBAAkB,CAAGc,WAAW,CAAC,CAAA;OACvD;MACDI,eAAe,EAAEC,YAAY,IAAI;AAC/BpB,QAAAA,KAAK,CAACa,aAAa,CACjBO,YAAY,GACR5B,yBAAyB,EAAE,GAC3BQ,KAAK,CAACqB,YAAY,CAACvB,UAAU,IAAIN,yBAAyB,EAAE,CACjE,CAAA;OACF;MACD8B,YAAY,EAAER,OAAO,IAAI;AACvBd,QAAAA,KAAK,CAACa,aAAa,CAACG,GAAG,IAAI;UACzB,IAAIvB,SAAS,GAAGyB,sBAAgB,CAACJ,OAAO,EAAEE,GAAG,CAACvB,SAAS,CAAC,CAAA;AAExD,UAAA,MAAM8B,YAAY,GAChB,OAAOvB,KAAK,CAACQ,OAAO,CAACgB,SAAS,KAAK,WAAW,IAC9CxB,KAAK,CAACQ,OAAO,CAACgB,SAAS,KAAK,CAAC,CAAC,GAC1BC,MAAM,CAACC,gBAAgB,GACvB1B,KAAK,CAACQ,OAAO,CAACgB,SAAS,GAAG,CAAC,CAAA;AAEjC/B,UAAAA,SAAS,GAAGkC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACpC,SAAS,EAAE8B,YAAY,CAAC,CAAC,CAAA;UAE1D,OAAO;AACL,YAAA,GAAGP,GAAG;AACNvB,YAAAA,SAAAA;WACD,CAAA;AACH,SAAC,CAAC,CAAA;OACH;MACDmB,cAAc,EAAEQ,YAAY,IAAI;AAAA,QAAA,IAAA,mBAAA,EAAA,qBAAA,CAAA;AAC9BpB,QAAAA,KAAK,CAACsB,YAAY,CAChBF,YAAY,GACR9B,gBAAgB,GAChB,CAAAU,CAAAA,mBAAAA,GAAAA,KAAK,CAACqB,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAlB,oBAAoBvB,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAA9B,sBAAgCL,SAAS,KAAIH,gBAAgB,CAClE,CAAA;OACF;MACDwC,aAAa,EAAEV,YAAY,IAAI;AAAA,QAAA,IAAA,oBAAA,EAAA,qBAAA,CAAA;AAC7BpB,QAAAA,KAAK,CAAC+B,WAAW,CACfX,YAAY,GACR7B,eAAe,GACf,CAAAS,CAAAA,oBAAAA,GAAAA,KAAK,CAACqB,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAlB,qBAAoBvB,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAA9B,sBAAgCJ,QAAQ,KAAIH,eAAe,CAChE,CAAA;OACF;MACDwC,WAAW,EAAEjB,OAAO,IAAI;AACtBd,QAAAA,KAAK,CAACa,aAAa,CAACG,GAAG,IAAI;AACzB,UAAA,MAAMtB,QAAQ,GAAGiC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEV,sBAAgB,CAACJ,OAAO,EAAEE,GAAG,CAACtB,QAAQ,CAAC,CAAC,CAAA;UACrE,MAAMsC,WAAW,GAAGhB,GAAG,CAACtB,QAAQ,GAAGsB,GAAG,CAACvB,SAAU,CAAA;UACjD,MAAMA,SAAS,GAAGkC,IAAI,CAACM,KAAK,CAACD,WAAW,GAAGtC,QAAQ,CAAC,CAAA;UAEpD,OAAO;AACL,YAAA,GAAGsB,GAAG;YACNvB,SAAS;AACTC,YAAAA,QAAAA;WACD,CAAA;AACH,SAAC,CAAC,CAAA;OACH;MACDwC,YAAY,EAAEpB,OAAO,IACnBd,KAAK,CAACa,aAAa,CAACG,GAAG,IAAI;AACzB,QAAA,IAAImB,YAAY,GAAGjB,sBAAgB,CACjCJ,OAAO,EACPd,KAAK,CAACQ,OAAO,CAACgB,SAAS,IAAI,CAAC,CAAC,CAC9B,CAAA;AAED,QAAA,IAAI,OAAOW,YAAY,KAAK,QAAQ,EAAE;UACpCA,YAAY,GAAGR,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEO,YAAY,CAAC,CAAA;AAC3C,SAAA;QAEA,OAAO;AACL,UAAA,GAAGnB,GAAG;AACNQ,UAAAA,SAAS,EAAEW,YAAAA;SACZ,CAAA;AACH,OAAC,CAAC;AAEJC,MAAAA,cAAc,EAAEC,UAAI,CAClB,MAAM,CAACrC,KAAK,CAACsC,YAAY,EAAE,CAAC,EAC5Bd,SAAS,IAAI;QACX,IAAIe,WAAqB,GAAG,EAAE,CAAA;AAC9B,QAAA,IAAIf,SAAS,IAAIA,SAAS,GAAG,CAAC,EAAE;UAC9Be,WAAW,GAAG,CAAC,GAAG,IAAIC,KAAK,CAAChB,SAAS,CAAC,CAAC,CAACiB,IAAI,CAAC,IAAI,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CAAA;AACrE,SAAA;AACA,QAAA,OAAOL,WAAW,CAAA;AACpB,OAAC,EACD;QACEM,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,gBAAgB;QAC/DC,KAAK,EAAE,MAAMjD,KAAK,CAACQ,OAAO,CAAC0C,QAAQ,IAAIlD,KAAK,CAACQ,OAAO,CAAC2C,UAAAA;AACvD,OAAC,CACF;MAEDC,kBAAkB,EAAE,MAAMpD,KAAK,CAACqD,QAAQ,EAAE,CAACvD,UAAU,CAACL,SAAS,GAAG,CAAC;AAEnE6D,MAAAA,cAAc,EAAE,MAAM;QACpB,MAAM;AAAE7D,UAAAA,SAAAA;AAAU,SAAC,GAAGO,KAAK,CAACqD,QAAQ,EAAE,CAACvD,UAAU,CAAA;AAEjD,QAAA,MAAM0B,SAAS,GAAGxB,KAAK,CAACsC,YAAY,EAAE,CAAA;AAEtC,QAAA,IAAId,SAAS,KAAK,CAAC,CAAC,EAAE;AACpB,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;QAEA,IAAIA,SAAS,KAAK,CAAC,EAAE;AACnB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AAEA,QAAA,OAAO/B,SAAS,GAAG+B,SAAS,GAAG,CAAC,CAAA;OACjC;AAED+B,MAAAA,YAAY,EAAE,MAAM;QAClB,OAAOvD,KAAK,CAACsB,YAAY,CAACN,GAAG,IAAIA,GAAG,GAAG,CAAC,CAAC,CAAA;OAC1C;AAEDwC,MAAAA,QAAQ,EAAE,MAAM;AACd,QAAA,OAAOxD,KAAK,CAACsB,YAAY,CAACN,GAAG,IAAI;UAC/B,OAAOA,GAAG,GAAG,CAAC,CAAA;AAChB,SAAC,CAAC,CAAA;OACH;AAEDyC,MAAAA,wBAAwB,EAAE,MAAMzD,KAAK,CAAC0D,mBAAmB,EAAE;AAC3DC,MAAAA,qBAAqB,EAAE,MAAM;QAC3B,IACE,CAAC3D,KAAK,CAAC4D,sBAAsB,IAC7B5D,KAAK,CAACQ,OAAO,CAACmD,qBAAqB,EACnC;UACA3D,KAAK,CAAC4D,sBAAsB,GAC1B5D,KAAK,CAACQ,OAAO,CAACmD,qBAAqB,CAAC3D,KAAK,CAAC,CAAA;AAC9C,SAAA;QAEA,IAAIA,KAAK,CAACQ,OAAO,CAACG,gBAAgB,IAAI,CAACX,KAAK,CAAC4D,sBAAsB,EAAE;UACnE,OAAO5D,KAAK,CAACyD,wBAAwB,EAAE,CAAA;AACzC,SAAA;QAEA,OAAOzD,KAAK,CAAC4D,sBAAsB,EAAE,CAAA;OACtC;AAEDtB,MAAAA,YAAY,EAAE,MAAM;QAClB,OACEtC,KAAK,CAACQ,OAAO,CAACgB,SAAS,IACvBG,IAAI,CAACkC,IAAI,CACP7D,KAAK,CAACyD,wBAAwB,EAAE,CAACK,IAAI,CAACC,MAAM,GAC1C/D,KAAK,CAACqD,QAAQ,EAAE,CAACvD,UAAU,CAACJ,QAAQ,CACvC,CAAA;AAEL,OAAA;KACD,CAAA;AACH,GAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningRow<TData extends RowData> = {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport type ColumnPinningInstance<TData extends RowData> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
1
+ {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\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<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.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 const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\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<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\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)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","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 { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport interface RowSelectionTableState {\n rowSelection: RowSelectionState\n}\n\nexport interface RowSelectionOptions<TData extends RowData> {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport interface RowSelectionRow {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport interface RowSelectionInstance<TData extends RowData> {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\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<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.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 const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\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<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\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)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}