@tanstack/table-core 8.0.0-alpha.65 → 8.0.0-alpha.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationFns.js +25 -37
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/core.js +167 -48
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +24 -40
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Cells.js +28 -34
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +136 -225
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +57 -84
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +79 -126
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +137 -288
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +71 -117
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +125 -205
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +32 -44
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +79 -82
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +99 -178
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +133 -204
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Rows.js +32 -22
- package/build/cjs/features/Rows.js.map +1 -1
- package/build/cjs/features/Sorting.js +67 -136
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +56 -118
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +48 -72
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/index.js +13 -13
- package/build/cjs/sortingFns.js +21 -21
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +49 -55
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +98 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +18 -22
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
- package/build/cjs/utils/getFacetedRowModel.js +50 -0
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
- package/build/cjs/utils/getFilteredRowModel.js +130 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +126 -136
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +39 -39
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +112 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +36 -207
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2024 -2971
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +421 -481
- package/build/types/core.d.ts +3 -5
- package/build/types/features/Cells.d.ts +1 -1
- package/build/types/features/ColumnSizing.d.ts +4 -15
- package/build/types/features/Columns.d.ts +1 -1
- package/build/types/features/Expanding.d.ts +2 -7
- package/build/types/features/Filters.d.ts +24 -21
- package/build/types/features/Grouping.d.ts +5 -11
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +3 -3
- package/build/types/features/Pinning.d.ts +1 -5
- package/build/types/features/RowSelection.d.ts +2 -8
- package/build/types/features/Rows.d.ts +4 -3
- package/build/types/features/Sorting.d.ts +5 -15
- package/build/types/features/Visibility.d.ts +1 -4
- package/build/types/index.d.ts +6 -4
- package/build/types/types.d.ts +3 -15
- package/build/types/utils/filterRowsUtils.d.ts +3 -3
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
- package/build/types/utils/getFacetedRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
- package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
- package/build/types/utils/getGroupedRowModel.d.ts +1 -1
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +1 -17
- package/build/umd/index.development.js +2053 -3002
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.ts +197 -47
- package/src/features/Cells.ts +7 -11
- package/src/features/ColumnSizing.ts +89 -139
- package/src/features/Columns.ts +10 -13
- package/src/features/Expanding.ts +62 -107
- package/src/features/Filters.ts +201 -308
- package/src/features/Grouping.ts +55 -81
- package/src/features/Headers.ts +18 -40
- package/src/features/Ordering.ts +6 -4
- package/src/features/Pagination.ts +31 -17
- package/src/features/Pinning.ts +79 -96
- package/src/features/RowSelection.ts +68 -118
- package/src/features/Rows.ts +21 -6
- package/src/features/Sorting.ts +47 -103
- package/src/features/Visibility.ts +24 -47
- package/src/filterFns.ts +9 -9
- package/src/index.ts +12 -4
- package/src/sortingFns.ts +11 -11
- package/src/types.ts +3 -18
- package/src/utils/filterRowsUtils.ts +47 -68
- package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +3 -9
- package/src/utils/getExpandedRowModel.ts +2 -2
- package/src/utils/getFacetedMinMaxValues.ts +37 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/getFilteredRowModel.ts +150 -0
- package/src/utils/getGroupedRowModel.ts +53 -62
- package/src/utils/getPaginationRowModel.ts +1 -1
- package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +7 -7
- package/src/utils.ts +28 -236
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
- package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelSync.js +0 -102
- package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
- package/build/cjs/utils/getFilteredRowModelSync.js +0 -130
- package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
- package/build/cjs/utils/getSortedRowModelSync.js +0 -118
- package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
- package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
- package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
- package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
- package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
- package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
- package/src/utils/getCoreRowModelAsync.ts +0 -104
- package/src/utils/getFilteredRowModelAsync.ts +0 -49
- package/src/utils/getFilteredRowModelSync.ts +0 -150
- package/src/utils/getSortedRowModelAsync.ts +0 -200
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n} from '../utils'\nimport { filterRows } from '../utils/filterRowsUtils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n columnFiltersProgress: number\n globalFilterProgress: number\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type FilterFn<TGenerics extends TableGenerics> = {\n (row: Row<TGenerics>, columnId: string, filterValue: any): boolean\n resolveFilterValue?: TransformFilterValueFn<TGenerics>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>\n}\n\nexport type TransformFilterValueFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => boolean\n\nexport type CustomFilterFns<TGenerics extends TableGenerics> = Record<\n string,\n FilterFn<TGenerics>\n>\n\nexport type FilterFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInFilterFn\n | keyof TGenerics['FilterFns']\n | FilterFn<TGenerics>\n\nexport type FiltersColumnDef<TGenerics extends TableGenerics> = {\n filterFn?: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n enableFaceting?: boolean\n}\n\nexport type FiltersColumn<TGenerics extends TableGenerics> = {\n filterFn: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanColumnFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getColumnFilterIndex: () => number\n getColumnIsFiltered: () => boolean\n getColumnFilterValue: () => unknown\n setColumnFilterValue: (updater: Updater<any>) => void\n getFacetedRowModel: () => RowModel<TGenerics>\n getFacetedUniqueValues: () => Map<any, number>\n getFacetedMinMaxValues: () => [any, any]\n}\n\nexport type FiltersRow<TGenerics extends TableGenerics> = {\n columnFilterMap: Record<string, boolean>\n subRowsByFacetId: Record<string, Row<TGenerics>[]>\n}\n\nexport type FiltersOptions<TGenerics extends TableGenerics> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n filterFns?: TGenerics['FilterFns']\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n getFilteredRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n // Global\n globalFilterFn?: FilterFnOption<TGenerics>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TGenerics>) => boolean\n}\n\nexport type FiltersInstance<TGenerics extends TableGenerics> = {\n getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n getColumnFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n setColumnFilterValue: (columnId: string, updater: Updater<any>) => void\n resetColumnFilters: () => void\n getColumnCanColumnFilter: (columnId: string) => boolean\n getColumnFacetedRowModel: (columnId: string) => RowModel<TGenerics>\n\n getColumnIsFiltered: (columnId: string) => boolean\n getColumnFilterValue: (columnId: string) => unknown\n getColumnFilterIndex: (columnId: string) => number\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TGenerics>\n getFilteredRowModel: () => RowModel<TGenerics>\n _getFilteredRowModel?: () => RowModel<TGenerics>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: () => void\n getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFilterFn: () => FilterFn<TGenerics> | undefined\n getColumnCanGlobalFilter: (columnId: string) => boolean\n getGlobalFacetedRowModel: () => RowModel<TGenerics>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): FiltersColumnDef<TGenerics> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n columnFiltersProgress: 1,\n globalFilterProgress: 1,\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersOptions<TGenerics> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: true,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = instance\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()[column.id]?.value\n\n return typeof value === 'string'\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersColumn<TGenerics> => {\n return {\n filterFn: column.filterFn,\n getCanColumnFilter: () => instance.getColumnCanColumnFilter(column.id),\n getCanGlobalFilter: () => instance.getColumnCanGlobalFilter(column.id),\n getColumnFilterIndex: () => instance.getColumnFilterIndex(column.id),\n getColumnIsFiltered: () => instance.getColumnIsFiltered(column.id),\n getColumnFilterValue: () => instance.getColumnFilterValue(column.id),\n setColumnFilterValue: val =>\n instance.setColumnFilterValue(column.id, val),\n getFacetedRowModel: memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n // Include this to force the filtered facet info to be calculated\n instance.getFilteredRowModel(),\n ],\n (rowModel, columnFilters, globalFilter, _) => {\n if (!columnFilters?.length && !globalFilter) {\n return rowModel\n }\n\n return filterRows(\n rowModel.rows,\n [\n ...columnFilters.map(d => d.id).filter(d => d !== column.id),\n globalFilter ? '__global__' : undefined,\n ].filter(Boolean) as string[],\n instance\n )\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFacetedRowModel_' + column.id,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getFacetedUniqueValues: memo(\n () => [column.getFacetedRowModel()],\n facetedRowModel => getRowModelUniqueValues(facetedRowModel, column.id),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFacetedUniqueValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getFacetedMinMaxValues: memo(\n () => [column.getFacetedRowModel()],\n facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFacetedMinMaxValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersRow<TGenerics> => {\n return {\n columnFilterMap: {},\n subRowsByFacetId: {},\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersInstance<TGenerics> => {\n return {\n getColumnAutoFilterFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\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 (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 getColumnFacetedRowModel: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return column.getFacetedRowModel()\n },\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n getColumnFilterFn: columnId => {\n const column = instance.getColumn(columnId)\n const userFilterFns = instance.options.filterFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.filterFn)\n ? column.filterFn\n : column.filterFn === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userFilterFns as Record<string, any>)?.[\n column.filterFn as string\n ] ??\n (filterFns[\n column.filterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n getGlobalFilterFn: () => {\n const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =\n instance.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n globalFilterFn as string\n ] ??\n (filterFns[\n globalFilterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.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 = instance.getColumnFilterFn(column.id)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: () => {\n instance.setGlobalFilter(instance.initialState.globalFilter)\n },\n\n getColumnCanColumnFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n (column.enableColumnFilter ?? true) &&\n (instance.options.enableColumnFilters ?? true) &&\n (instance.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getColumnCanGlobalFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n (column.enableGlobalFilter ?? true) &&\n (instance.options.enableGlobalFilter ?? true) &&\n (instance.options.enableFilters ?? true) &&\n (instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getColumnIsFiltered: columnId =>\n instance.getColumnFilterIndex(columnId) > -1,\n\n getColumnFilterValue: columnId =>\n instance.getState().columnFilters?.find(d => d.id === columnId)?.value,\n\n getColumnFilterIndex: columnId =>\n instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??\n -1,\n\n setColumnFilterValue: (columnId, value) => {\n if (!columnId) return\n\n instance.setColumnFilters(old => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n const previousfilter = old?.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TGenerics>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== columnId) ?? []\n }\n\n const newFilterObj = { id: columnId, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === columnId) {\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\n resetColumnFilters: () => {\n instance.setColumnFilters(instance.initialState?.columnFilters ?? [])\n },\n\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (\n !instance._getFilteredRowModel &&\n instance.options.getFilteredRowModel\n ) {\n instance._getFilteredRowModel =\n instance.options.getFilteredRowModel(instance)\n }\n\n if (\n instance.options.manualFiltering ||\n !instance._getFilteredRowModel\n ) {\n return instance.getPreFilteredRowModel()\n }\n\n return instance._getFilteredRowModel()\n },\n\n getGlobalFacetedRowModel: memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n // Include this to force the filtered facet info to be calculated\n instance.getFilteredRowModel(),\n ],\n (rowModel, columnFilters, globalFilter, _) => {\n if (!columnFilters?.length && !globalFilter) {\n return rowModel\n }\n\n return filterRows(\n rowModel.rows,\n columnFilters.map(d => d.id),\n instance\n )\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'getGlobalFacetedRowModel',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getGlobalFacetedUniqueValues: memo(\n () => [instance.getGlobalFacetedRowModel()],\n facetedRowModel =>\n getRowModelUniqueValues(facetedRowModel, '__global__'),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGlobalFacetedUniqueValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getGlobalFacetedMinMaxValues: memo(\n () => [instance.getGlobalFacetedRowModel()],\n facetedRowModel =>\n getRowModelMinMaxValues(facetedRowModel, '__global__'),\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGlobalFacetedMinMaxValues',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(\n filterFn?: FilterFn<TGenerics>,\n value?: any,\n column?: Column<TGenerics>\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\nexport function getRowModelMinMaxValues<TGenerics extends TableGenerics>(\n rowModel: RowModel<TGenerics>,\n columnId: string\n) {\n let facetedMinMaxValues: [any, any] = [\n rowModel.flatRows[0]?.values[columnId] ?? null,\n rowModel.flatRows[0]?.values[columnId] ?? null,\n ]\n\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n const value = rowModel.flatRows[i]?.values[columnId]\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n\n return facetedMinMaxValues\n}\n\nexport function getRowModelUniqueValues<TGenerics extends TableGenerics>(\n rowModel: RowModel<TGenerics>,\n columnId: string\n) {\n let facetedUniqueValues = new Map<any, number>()\n\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n const value = rowModel.flatRows[i]?.values[columnId]\n\n if (facetedUniqueValues.has(value)) {\n facetedUniqueValues.set(value, (facetedUniqueValues.get(value) ?? 0) + 1)\n } else {\n facetedUniqueValues.set(value, 1)\n }\n }\n\n return facetedUniqueValues\n}\n"],"names":["Filters","getDefaultColumn","filterFn","getInitialState","state","_extends","columnFilters","globalFilter","undefined","columnFiltersProgress","globalFilterProgress","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","getAllCellsByColumnId","id","createColumn","getCanColumnFilter","getColumnCanColumnFilter","getCanGlobalFilter","getColumnFilterIndex","getColumnIsFiltered","getColumnFilterValue","setColumnFilterValue","val","getFacetedRowModel","memo","getPreFilteredRowModel","getState","getFilteredRowModel","rowModel","_","length","filterRows","rows","map","d","filter","Boolean","key","process","env","NODE_ENV","debug","options","debugAll","debugColumns","getFacetedUniqueValues","facetedRowModel","getRowModelUniqueValues","getFacetedMinMaxValues","getRowModelMinMaxValues","createRow","row","columnFilterMap","subRowsByFacetId","createInstance","getColumnAutoFilterFn","columnId","firstRow","values","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getColumnFacetedRowModel","getColumn","Error","getGlobalAutoFilterFn","getColumnFilterFn","userFilterFns","isFunction","getGlobalFilterFn","setColumnFilters","updater","leafColumns","getAllLeafColumns","updateFn","old","functionalUpdate","find","shouldAutoRemoveFilter","setGlobalFilter","resetGlobalFilter","initialState","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","enableGlobalFilter","findIndex","console","warn","previousfilter","newFilter","newFilterObj","resetColumnFilters","_getFilteredRowModel","manualFiltering","getGlobalFacetedRowModel","getGlobalFacetedUniqueValues","getGlobalFacetedMinMaxValues","autoRemove","facetedMinMaxValues","i","facetedUniqueValues","Map","has","set","get"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n} from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n // filtersProgress: number\n // facetProgress: Record<string, number>\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TGenerics extends TableGenerics> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TGenerics>\n}\n\nexport type FilterFn<TGenerics extends TableGenerics> = {\n (row: Row<TGenerics>, columnId: string, filterValue: any): boolean\n resolveFilterValue?: TransformFilterValueFn<TGenerics>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>\n}\n\nexport type TransformFilterValueFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => boolean\n\nexport type CustomFilterFns<TGenerics extends TableGenerics> = Record<\n string,\n FilterFn<TGenerics>\n>\n\nexport type FilterFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInFilterFn\n | keyof TGenerics['FilterFns']\n | FilterFn<TGenerics>\n\nexport type FiltersColumnDef<TGenerics extends TableGenerics> = {\n filterFn?: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n enableFaceting?: boolean\n}\n\nexport type FiltersColumn<TGenerics extends TableGenerics> = {\n filterFn: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n getAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getFilterFn: () => FilterFn<TGenerics> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TGenerics>\n _getFacetedRowModel?: () => RowModel<TGenerics>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => [any, any]\n _getFacetedMinMaxValues?: () => [any, any]\n}\n\nexport type FiltersRow<TGenerics extends TableGenerics> = {\n columnFilterMap: Record<string, boolean>\n subRowsByFacetId: Record<string, Row<TGenerics>[]>\n}\n\nexport type FiltersOptions<TGenerics extends TableGenerics> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n filterFns?: TGenerics['FilterFns']\n getFilteredRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TGenerics>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TGenerics>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n instance: TableInstance<TGenerics>,\n columnId: string\n ) => () => RowModel<TGenerics>\n getFacetedUniqueValues?: (\n instance: TableInstance<TGenerics>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n instance: TableInstance<TGenerics>,\n columnId: string\n ) => () => [number, number]\n}\n\nexport type FiltersInstance<TGenerics extends TableGenerics> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TGenerics>\n getFilteredRowModel: () => RowModel<TGenerics>\n _getFilteredRowModel?: () => RowModel<TGenerics>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFacetedRowModel: () => RowModel<TGenerics>\n _getGlobalFacetedRowModel?: () => RowModel<TGenerics>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => [number, number]\n _getGlobalFacetedMinMaxValues?: () => [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): FiltersColumnDef<TGenerics> => {\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersOptions<TGenerics> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = instance\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string'\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersColumn<TGenerics> => {\n return {\n filterFn: column.filterFn,\n getAutoFilterFn: () => {\n const firstRow = instance.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 (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 const userFilterFns = instance.options.filterFns\n\n return isFunction(column.filterFn)\n ? column.filterFn\n : column.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n column.filterFn as string\n ] ??\n (filterFns[\n column.filterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n getCanFilter: () => {\n return (\n (column.enableColumnFilter ?? true) &&\n (instance.options.enableColumnFilters ?? true) &&\n (instance.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.enableGlobalFilter ?? true) &&\n (instance.options.enableGlobalFilter ?? true) &&\n (instance.options.enableFilters ?? true) &&\n (instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n instance.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n instance.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n instance.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<TGenerics>,\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 instance.options.getFacetedRowModel &&\n instance.options.getFacetedRowModel(instance, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return instance.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n instance.options.getFacetedUniqueValues &&\n instance.options.getFacetedUniqueValues(instance, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n instance.options.getFacetedMinMaxValues &&\n instance.options.getFacetedMinMaxValues(instance, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return [NaN, NaN]\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersRow<TGenerics> => {\n return {\n columnFilterMap: {},\n subRowsByFacetId: {},\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersInstance<TGenerics> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =\n instance.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n globalFilterFn as string\n ] ??\n (filterFns[\n globalFilterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.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 instance.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n instance.setGlobalFilter(\n defaultState ? undefined : instance.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n instance.setColumnFilters(\n defaultState ? [] : instance.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n _getFilteredRowModel:\n instance.options.getFilteredRowModel &&\n instance.options.getFilteredRowModel(instance),\n getFilteredRowModel: () => {\n if (\n instance.options.manualFiltering ||\n !instance._getFilteredRowModel\n ) {\n return instance.getPreFilteredRowModel()\n }\n\n return instance._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n instance.options.getFacetedRowModel &&\n instance.options.getFacetedRowModel(instance, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (\n instance.options.manualFiltering ||\n !instance._getGlobalFacetedRowModel\n ) {\n return instance.getPreFilteredRowModel()\n }\n\n return instance._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n instance.options.getFacetedUniqueValues &&\n instance.options.getFacetedUniqueValues(instance, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!instance._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return instance._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n instance.options.getFacetedMinMaxValues &&\n instance.options.getFacetedMinMaxValues(instance, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!instance._getGlobalFacetedMinMaxValues) {\n return [NaN, NaN]\n }\n\n return instance._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(\n filterFn?: FilterFn<TGenerics>,\n value?: any,\n column?: Column<TGenerics>\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","getDefaultColumn","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","instance","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","userFilterFns","options","isFunction","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","NaN","createRow","row","columnFilterMap","subRowsByFacetId","createInstance","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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"}
|
|
@@ -12,53 +12,65 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
15
|
var aggregationFns = require('../aggregationFns.js');
|
|
17
16
|
var utils = require('../utils.js');
|
|
18
17
|
|
|
19
18
|
//
|
|
20
|
-
|
|
21
|
-
getDefaultColumn:
|
|
19
|
+
const Grouping = {
|
|
20
|
+
getDefaultColumn: () => {
|
|
22
21
|
return {
|
|
23
22
|
aggregationFn: 'auto'
|
|
24
23
|
};
|
|
25
24
|
},
|
|
26
|
-
getInitialState:
|
|
27
|
-
return
|
|
28
|
-
grouping: []
|
|
29
|
-
|
|
25
|
+
getInitialState: state => {
|
|
26
|
+
return {
|
|
27
|
+
grouping: [],
|
|
28
|
+
...state
|
|
29
|
+
};
|
|
30
30
|
},
|
|
31
|
-
getDefaultOptions:
|
|
31
|
+
getDefaultOptions: instance => {
|
|
32
32
|
return {
|
|
33
33
|
onGroupingChange: utils.makeStateUpdater('grouping', instance),
|
|
34
34
|
groupedColumnMode: 'reorder'
|
|
35
35
|
};
|
|
36
36
|
},
|
|
37
|
-
createColumn:
|
|
37
|
+
createColumn: (column, instance) => {
|
|
38
38
|
return {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
toggleGrouping: () => {
|
|
40
|
+
instance.setGrouping(old => {
|
|
41
|
+
// Find any existing grouping for this column
|
|
42
|
+
if (old != null && old.includes(column.id)) {
|
|
43
|
+
return old.filter(d => d !== column.id);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return [...(old != null ? old : []), column.id];
|
|
47
|
+
});
|
|
42
48
|
},
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
getCanGroup: () => {
|
|
50
|
+
var _ref, _ref2, _ref3, _column$enableGroupin;
|
|
51
|
+
|
|
52
|
+
return (_ref = (_ref2 = (_ref3 = (_column$enableGroupin = column.enableGrouping) != null ? _column$enableGroupin : true) != null ? _ref3 : instance.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;
|
|
45
53
|
},
|
|
46
|
-
getIsGrouped:
|
|
47
|
-
|
|
54
|
+
getIsGrouped: () => {
|
|
55
|
+
var _instance$getState$gr;
|
|
56
|
+
|
|
57
|
+
return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(column.id);
|
|
48
58
|
},
|
|
49
|
-
|
|
50
|
-
|
|
59
|
+
getGroupedIndex: () => {
|
|
60
|
+
var _instance$getState$gr2;
|
|
61
|
+
|
|
62
|
+
return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(column.id);
|
|
51
63
|
},
|
|
52
|
-
getToggleGroupingHandler:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
getColumnAutoAggregationFn:
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
getToggleGroupingHandler: () => {
|
|
65
|
+
const canGroup = column.getCanGroup();
|
|
66
|
+
return () => {
|
|
67
|
+
if (!canGroup) return;
|
|
68
|
+
column.toggleGrouping();
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
getColumnAutoAggregationFn: () => {
|
|
72
|
+
const firstRow = instance.getCoreRowModel().flatRows[0];
|
|
73
|
+
const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
|
|
62
74
|
|
|
63
75
|
if (typeof value === 'number') {
|
|
64
76
|
return aggregationFns.aggregationFns.sum;
|
|
@@ -70,76 +82,29 @@ var Grouping = {
|
|
|
70
82
|
|
|
71
83
|
return aggregationFns.aggregationFns.count;
|
|
72
84
|
},
|
|
73
|
-
getColumnAggregationFn:
|
|
74
|
-
var
|
|
85
|
+
getColumnAggregationFn: () => {
|
|
86
|
+
var _ref4;
|
|
75
87
|
|
|
76
|
-
|
|
77
|
-
var userAggregationFns = instance.options.aggregationFns;
|
|
88
|
+
const userAggregationFns = instance.options.aggregationFns;
|
|
78
89
|
|
|
79
90
|
if (!column) {
|
|
80
91
|
throw new Error();
|
|
81
92
|
}
|
|
82
93
|
|
|
83
|
-
return utils.isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ?
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (old != null && old.includes(columnId)) {
|
|
92
|
-
return old.filter(function (d) {
|
|
93
|
-
return d !== columnId;
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return [].concat(old != null ? old : [], [columnId]);
|
|
98
|
-
});
|
|
99
|
-
},
|
|
100
|
-
getColumnCanGroup: function getColumnCanGroup(columnId) {
|
|
101
|
-
var _ref2, _ref3, _column$enableGroupin;
|
|
102
|
-
|
|
103
|
-
var column = instance.getColumn(columnId);
|
|
104
|
-
|
|
105
|
-
if (!column) {
|
|
106
|
-
throw new Error();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return (_ref2 = (_ref3 = (_column$enableGroupin = column.enableGrouping) != null ? _column$enableGroupin : instance.options.enableGrouping) != null ? _ref3 : column.defaultCanGroup) != null ? _ref2 : !!column.accessorFn;
|
|
110
|
-
},
|
|
111
|
-
getColumnIsGrouped: function getColumnIsGrouped(columnId) {
|
|
112
|
-
var _instance$getState$gr;
|
|
113
|
-
|
|
114
|
-
return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(columnId);
|
|
115
|
-
},
|
|
116
|
-
getColumnGroupedIndex: function getColumnGroupedIndex(columnId) {
|
|
117
|
-
var _instance$getState$gr2;
|
|
118
|
-
|
|
119
|
-
return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(columnId);
|
|
120
|
-
},
|
|
121
|
-
resetGrouping: function resetGrouping() {
|
|
94
|
+
return utils.isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ? column.getColumnAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.aggregationFn]) != null ? _ref4 : aggregationFns.aggregationFns[column.aggregationFn];
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
},
|
|
98
|
+
createInstance: instance => {
|
|
99
|
+
return {
|
|
100
|
+
setGrouping: updater => instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater),
|
|
101
|
+
resetGrouping: defaultState => {
|
|
122
102
|
var _instance$initialStat, _instance$initialStat2;
|
|
123
103
|
|
|
124
|
-
instance.setGrouping((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);
|
|
125
|
-
},
|
|
126
|
-
getToggleGroupingHandler: function getToggleGroupingHandler(columnId) {
|
|
127
|
-
var column = instance.getColumn(columnId);
|
|
128
|
-
var canGroup = column.getCanGroup();
|
|
129
|
-
return function () {
|
|
130
|
-
if (!canGroup) return;
|
|
131
|
-
column.toggleGrouping == null ? void 0 : column.toggleGrouping();
|
|
132
|
-
};
|
|
133
|
-
},
|
|
134
|
-
getRowIsGrouped: function getRowIsGrouped(rowId) {
|
|
135
|
-
var _instance$getRow;
|
|
136
|
-
|
|
137
|
-
return !!((_instance$getRow = instance.getRow(rowId)) != null && _instance$getRow.groupingColumnId);
|
|
138
|
-
},
|
|
139
|
-
getPreGroupedRowModel: function getPreGroupedRowModel() {
|
|
140
|
-
return instance.getSortedRowModel();
|
|
104
|
+
instance.setGrouping(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);
|
|
141
105
|
},
|
|
142
|
-
|
|
106
|
+
getPreGroupedRowModel: () => instance.getSortedRowModel(),
|
|
107
|
+
getGroupedRowModel: () => {
|
|
143
108
|
if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {
|
|
144
109
|
instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);
|
|
145
110
|
}
|
|
@@ -152,36 +117,31 @@ var Grouping = {
|
|
|
152
117
|
}
|
|
153
118
|
};
|
|
154
119
|
},
|
|
155
|
-
createRow:
|
|
120
|
+
createRow: (row, instance) => {
|
|
156
121
|
return {
|
|
157
|
-
getIsGrouped:
|
|
158
|
-
|
|
159
|
-
}
|
|
122
|
+
getIsGrouped: () => !!row.groupingColumnId,
|
|
123
|
+
groupingValuesCache: {}
|
|
160
124
|
};
|
|
161
125
|
},
|
|
162
|
-
createCell:
|
|
126
|
+
createCell: (cell, column, row, instance) => {
|
|
163
127
|
return {
|
|
164
|
-
getIsGrouped:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
getIsPlaceholder: function getIsPlaceholder() {
|
|
168
|
-
return !cell.getIsGrouped() && column.getIsGrouped();
|
|
169
|
-
},
|
|
170
|
-
getIsAggregated: function getIsAggregated() {
|
|
128
|
+
getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,
|
|
129
|
+
getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),
|
|
130
|
+
getIsAggregated: () => {
|
|
171
131
|
var _row$subRows;
|
|
172
132
|
|
|
173
133
|
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
|
|
174
134
|
},
|
|
175
|
-
renderAggregatedCell:
|
|
135
|
+
renderAggregatedCell: () => {
|
|
176
136
|
var _column$aggregatedCel;
|
|
177
137
|
|
|
178
|
-
|
|
138
|
+
const template = (_column$aggregatedCel = column.aggregatedCell) != null ? _column$aggregatedCel : column.cell;
|
|
179
139
|
return template ? instance.render(template, {
|
|
180
|
-
instance
|
|
181
|
-
column
|
|
182
|
-
row
|
|
183
|
-
cell
|
|
184
|
-
|
|
140
|
+
instance,
|
|
141
|
+
column,
|
|
142
|
+
row,
|
|
143
|
+
cell,
|
|
144
|
+
getValue: cell.getValue
|
|
185
145
|
}) : null;
|
|
186
146
|
}
|
|
187
147
|
};
|
|
@@ -192,20 +152,14 @@ function orderColumns(leafColumns, grouping, groupedColumnMode) {
|
|
|
192
152
|
return leafColumns;
|
|
193
153
|
}
|
|
194
154
|
|
|
195
|
-
|
|
196
|
-
return !grouping.includes(col.id);
|
|
197
|
-
});
|
|
155
|
+
const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));
|
|
198
156
|
|
|
199
157
|
if (groupedColumnMode === 'remove') {
|
|
200
158
|
return nonGroupingColumns;
|
|
201
159
|
}
|
|
202
160
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
return col.id === g;
|
|
206
|
-
});
|
|
207
|
-
}).filter(Boolean);
|
|
208
|
-
return [].concat(groupingColumns, nonGroupingColumns);
|
|
161
|
+
const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);
|
|
162
|
+
return [...groupingColumns, ...nonGroupingColumns];
|
|
209
163
|
}
|
|
210
164
|
|
|
211
165
|
exports.Grouping = Grouping;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableInstance,\n Row,\n Updater,\n Renderable,\n TableGenerics,\n TableFeature,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends TableGenerics> = (\n getLeafValues: () => TGenerics['Row'][],\n getChildValues: () => TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationFns<TGenerics extends TableGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInAggregationFn\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell<TGenerics extends TableGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | TGenerics['Rendered']\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends TableGenerics> = {\n manualGrouping?: boolean\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n getGroupedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TGenerics extends TableGenerics> = {\n getColumnAutoAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingHandler: (columnId: string) => undefined | (() => void)\n getRowIsGrouped: (rowId: string) => boolean\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n aggregationFn: column.aggregationFn,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingHandler: () =>\n instance.getToggleGroupingHandler(column.id)!,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n return {\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n\n return aggregationFns.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationFns = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? instance.getColumnAutoAggregationFn(columnId)\n : (userAggregationFns as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TGenerics>)\n },\n\n setGrouping: updater => instance.options.onGroupingChange?.(updater),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.initialState?.grouping ?? [])\n },\n\n getToggleGroupingHandler: columnId => {\n const column = instance.getColumn(columnId)\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping?.()\n }\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n },\n\n createCell: <TGenerics extends TableGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n row.subRows?.length > 1,\n renderAggregatedCell: () => {\n const template = column.aggregatedCell ?? column.cell\n\n return template\n ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n value: cell.value,\n })\n : null\n },\n }\n },\n}\n\nexport function orderColumns<TGenerics extends TableGenerics>(\n leafColumns: Column<TGenerics>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumn","aggregationFn","getInitialState","state","_extends","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingHandler","createInstance","getColumnAutoAggregationFn","columnId","firstRow","getCoreRowModel","flatRows","value","values","aggregationFns","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationFns","options","Error","isFunction","setGrouping","updater","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","getState","indexOf","resetGrouping","initialState","canGroup","getRowIsGrouped","rowId","getRow","groupingColumnId","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableInstance,\n Row,\n Updater,\n Renderable,\n TableGenerics,\n TableFeature,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends TableGenerics> = (\n getLeafValues: () => TGenerics['Row'][],\n getChildValues: () => TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationFns<TGenerics extends TableGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInAggregationFn\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getColumnAutoAggregationFn: () => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: () => AggregationFn<TGenerics> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell<TGenerics extends TableGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | TGenerics['Rendered']\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends TableGenerics> = {\n manualGrouping?: boolean\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n getGroupedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TGenerics extends TableGenerics> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n toggleGrouping: () => {\n instance.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.enableGrouping ??\n true ??\n instance.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return instance.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => instance.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 getColumnAutoAggregationFn: () => {\n const firstRow = instance.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 return aggregationFns.count\n },\n getColumnAggregationFn: () => {\n const userAggregationFns = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? column.getColumnAutoAggregationFn()\n : (userAggregationFns as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TGenerics>)\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n return {\n setGrouping: updater => instance.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n instance.setGrouping(\n defaultState ? [] : instance.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n groupingValuesCache: {},\n }\n },\n\n createCell: <TGenerics extends TableGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n row.subRows?.length > 1,\n renderAggregatedCell: () => {\n const template = column.aggregatedCell ?? column.cell\n\n return template\n ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n getValue: cell.getValue,\n })\n : null\n },\n }\n },\n}\n\nexport function orderColumns<TGenerics extends TableGenerics>(\n leafColumns: Column<TGenerics>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumn","aggregationFn","getInitialState","state","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getColumnAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","getValue","aggregationFns","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","userAggregationFns","Error","isFunction","createInstance","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|