@tanstack/table-core 8.0.0-alpha.79 → 8.0.0-alpha.83
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/core.js.map +1 -1
- package/build/cjs/createTable.js +4 -2
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Cells.js +1 -1
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +5 -5
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +8 -6
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Filters.js +11 -6
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +5 -5
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +2 -2
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Pinning.js +14 -8
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/Rows.js +1 -1
- package/build/cjs/features/Rows.js.map +1 -1
- package/build/cjs/features/Sorting.js +9 -9
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +3 -3
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/index.js +8 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +1 -1
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +1 -1
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +20 -9
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +2 -2
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +2 -2
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/esm/index.js +90 -64
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +344 -326
- package/build/types/core.d.ts +4 -4
- package/build/types/createTable.d.ts +8 -5
- package/build/types/features/Columns.d.ts +2 -2
- package/build/types/features/Filters.d.ts +3 -2
- package/build/types/features/Grouping.d.ts +1 -1
- package/build/types/features/Pinning.d.ts +1 -1
- package/build/types/index.d.ts +3 -0
- package/build/types/types.d.ts +6 -3
- package/build/umd/index.development.js +94 -63
- 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 +6 -6
- package/src/createTable.ts +14 -7
- package/src/features/Cells.ts +2 -2
- package/src/features/ColumnSizing.ts +5 -5
- package/src/features/Columns.ts +12 -8
- package/src/features/Filters.ts +18 -6
- package/src/features/Grouping.ts +6 -5
- package/src/features/Headers.ts +4 -4
- package/src/features/Pinning.ts +10 -5
- package/src/features/Rows.ts +5 -1
- package/src/features/Sorting.ts +10 -10
- package/src/features/Visibility.ts +2 -2
- package/src/index.ts +3 -0
- package/src/types.ts +10 -5
- package/src/utils/filterRowsUtils.ts +1 -1
- package/src/utils/getFacetedRowModel.ts +1 -1
- package/src/utils/getFilteredRowModel.ts +24 -13
- package/src/utils/getGroupedRowModel.ts +3 -2
- package/src/utils/getSortedRowModel.ts +2 -2
|
@@ -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'\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: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\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 ) => () => undefined | [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: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [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 undefined\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\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","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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"}
|
|
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 (\n row: Row<TGenerics>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: TGenerics['FilterMeta']) => void\n ): boolean\n\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: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TGenerics extends TableGenerics> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, TGenerics['FilterMeta']>\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 ) => () => undefined | [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: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <\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 (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 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.columnDef.enableColumnFilter ?? true) &&\n (instance.options.enableColumnFilters ?? true) &&\n (instance.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.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 undefined\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 columnFilters: {},\n columnFiltersMeta: {},\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\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","getDefaultColumnDef","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","columnDef","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","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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"}
|
|
@@ -17,7 +17,7 @@ var utils = require('../utils.js');
|
|
|
17
17
|
|
|
18
18
|
//
|
|
19
19
|
const Grouping = {
|
|
20
|
-
|
|
20
|
+
getDefaultColumnDef: () => {
|
|
21
21
|
return {
|
|
22
22
|
aggregationFn: 'auto'
|
|
23
23
|
};
|
|
@@ -47,9 +47,9 @@ const Grouping = {
|
|
|
47
47
|
});
|
|
48
48
|
},
|
|
49
49
|
getCanGroup: () => {
|
|
50
|
-
var _ref, _ref2, _ref3, _column$
|
|
50
|
+
var _ref, _ref2, _ref3, _column$columnDef$ena;
|
|
51
51
|
|
|
52
|
-
return (_ref = (_ref2 = (_ref3 = (_column$
|
|
52
|
+
return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : instance.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;
|
|
53
53
|
},
|
|
54
54
|
getIsGrouped: () => {
|
|
55
55
|
var _instance$getState$gr;
|
|
@@ -133,9 +133,9 @@ const Grouping = {
|
|
|
133
133
|
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
|
|
134
134
|
},
|
|
135
135
|
renderAggregatedCell: () => {
|
|
136
|
-
var _column$
|
|
136
|
+
var _column$columnDef$agg;
|
|
137
137
|
|
|
138
|
-
const template = (_column$
|
|
138
|
+
const template = (_column$columnDef$agg = column.columnDef.aggregatedCell) != null ? _column$columnDef$agg : column.columnDef.cell;
|
|
139
139
|
return template ? instance._render(template, {
|
|
140
140
|
instance,
|
|
141
141
|
column,
|
|
@@ -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 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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"}
|
|
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['Value'][],\n getChildValues: () => TGenerics['Value'][]\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 getDefaultColumnDef: <\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.columnDef.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 =\n column.columnDef.aggregatedCell ?? column.columnDef.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","getDefaultColumnDef","aggregationFn","getInitialState","state","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","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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"}
|
|
@@ -47,12 +47,12 @@ const Headers = {
|
|
|
47
47
|
recurseHeader(header);
|
|
48
48
|
return leafHeaders;
|
|
49
49
|
},
|
|
50
|
-
renderHeader: () => column.header ? instance._render(column.header, {
|
|
50
|
+
renderHeader: () => column.columnDef.header ? instance._render(column.columnDef.header, {
|
|
51
51
|
instance,
|
|
52
52
|
header: header,
|
|
53
53
|
column
|
|
54
54
|
}) : null,
|
|
55
|
-
renderFooter: () => column.footer ? instance._render(column.footer, {
|
|
55
|
+
renderFooter: () => column.columnDef.footer ? instance._render(column.columnDef.footer, {
|
|
56
56
|
instance,
|
|
57
57
|
header: header,
|
|
58
58
|
column
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Column,\n CoreHeader,\n Header,\n HeaderGroup,\n TableGenerics,\n TableInstance,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type HeadersInstance<TGenerics extends TableGenerics> = {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n ) => Header<TGenerics>\n getHeaderGroups: () => HeaderGroup<TGenerics>[]\n getLeftHeaderGroups: () => HeaderGroup<TGenerics>[]\n getCenterHeaderGroups: () => HeaderGroup<TGenerics>[]\n getRightHeaderGroups: () => HeaderGroup<TGenerics>[]\n\n getFooterGroups: () => HeaderGroup<TGenerics>[]\n getLeftFooterGroups: () => HeaderGroup<TGenerics>[]\n getCenterFooterGroups: () => HeaderGroup<TGenerics>[]\n getRightFooterGroups: () => HeaderGroup<TGenerics>[]\n\n getFlatHeaders: () => Header<TGenerics>[]\n getLeftFlatHeaders: () => Header<TGenerics>[]\n getCenterFlatHeaders: () => Header<TGenerics>[]\n getRightFlatHeaders: () => Header<TGenerics>[]\n\n getLeafHeaders: () => Header<TGenerics>[]\n getLeftLeafHeaders: () => Header<TGenerics>[]\n getCenterLeafHeaders: () => Header<TGenerics>[]\n getRightLeafHeaders: () => Header<TGenerics>[]\n\n getHeader: (id: string) => Header<TGenerics>\n}\n\n//\n\nexport const Headers = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): HeadersInstance<TGenerics> => {\n return {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TGenerics> = {\n id,\n column,\n index: options.index,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TGenerics>[] => {\n const leafHeaders: CoreHeader<TGenerics>[] = []\n\n const recurseHeader = (h: CoreHeader<TGenerics>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<TGenerics>[]\n },\n renderHeader: () =>\n column.header\n ? instance._render(column.header, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n renderFooter: () =>\n column.footer\n ? instance._render(column.footer, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n }\n\n instance._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, instance))\n })\n\n return header as Header<TGenerics>\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n instance,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n instance,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n }\n },\n}\n\nexport function buildHeaderGroups<TGenerics extends TableGenerics>(\n allColumns: Column<TGenerics>[],\n columnsToGroup: Column<TGenerics>[],\n instance: TableInstance<TGenerics>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TGenerics>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TGenerics>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TGenerics>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TGenerics> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TGenerics>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TGenerics>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (latestPendingParentHeader?.column === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n instance.createHeader(column, {\n depth: maxDepth,\n index,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (headers: Header<TGenerics>[]) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["Headers","createInstance","instance","createHeader","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","renderHeader","_render","renderFooter","footer","_features","forEach","feature","Object","assign","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","getHeader","console","warn","Error","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":";;;;;;;;;;;;;;;;AA4CA;AAEO,MAAMA,OAAO,GAAG;AACrBC,EAAAA,cAAc,EACZC,QADc,IAEiB;AAC/B,IAAO,OAAA;AACLC,MAAAA,YAAY,EAAE,CACZC,MADY,EAEZC,OAFY,KAST;AAAA,QAAA,IAAA,WAAA,CAAA;;AACH,QAAMC,MAAAA,EAAE,kBAAGD,OAAO,CAACC,EAAX,KAAiBF,IAAAA,GAAAA,WAAAA,GAAAA,MAAM,CAACE,EAAhC,CAAA;AAEA,QAAA,IAAIC,MAA6B,GAAG;AAClCD,UAAAA,EADkC;AAElCF,UAAAA,MAFkC;AAGlCI,UAAAA,KAAK,EAAEH,OAAO,CAACG,KAHmB;AAIlCC,UAAAA,aAAa,EAAEJ,OAAO,CAACI,aAJW;AAKlCC,UAAAA,aAAa,EAAEL,OAAO,CAACK,aALW;AAMlCC,UAAAA,KAAK,EAAEN,OAAO,CAACM,KANmB;AAOlCC,UAAAA,UAAU,EAAE,EAPsB;AAQlCC,UAAAA,OAAO,EAAE,CARyB;AASlCC,UAAAA,OAAO,EAAE,CATyB;AAUlCC,UAAAA,WAAW,EAAE,IAVqB;AAWlCC,UAAAA,cAAc,EAAE,MAA2B;AACzC,YAAMC,MAAAA,WAAoC,GAAG,EAA7C,CAAA;;AAEA,YAAMC,MAAAA,aAAa,GAAIC,CAAD,IAA8B;AAClD,cAAIA,IAAAA,CAAC,CAACP,UAAF,IAAgBO,CAAC,CAACP,UAAF,CAAaQ,MAAjC,EAAyC;AACvCD,gBAAAA,CAAC,CAACP,UAAF,CAAaS,GAAb,CAAiBH,aAAjB,CAAA,CAAA;AACD,eAAA;;AACDD,cAAAA,WAAW,CAACK,IAAZ,CAAiBH,CAAjB,CAAA,CAAA;AACD,aALD,CAAA;;AAOAD,YAAAA,aAAa,CAACX,MAAD,CAAb,CAAA;AAEA,YAAA,OAAOU,WAAP,CAAA;AACD,WAxBiC;AAyBlCM,UAAAA,YAAY,EAAE,MACZnB,MAAM,CAACG,MAAP,GACIL,QAAQ,CAACsB,OAAT,CAAiBpB,MAAM,CAACG,MAAxB,EAAgC;AAC9BL,YAAAA,QAD8B;AAE9BK,YAAAA,MAAM,EAAEA,MAFsB;AAG9BH,YAAAA,MAAAA;AAH8B,WAAhC,CADJ,GAMI,IAhC4B;AAiClCqB,UAAAA,YAAY,EAAE,MACZrB,MAAM,CAACsB,MAAP,GACIxB,QAAQ,CAACsB,OAAT,CAAiBpB,MAAM,CAACsB,MAAxB,EAAgC;AAC9BxB,YAAAA,QAD8B;AAE9BK,YAAAA,MAAM,EAAEA,MAFsB;AAG9BH,YAAAA,MAAAA;AAH8B,WAAhC,CADJ,GAMI,IAAA;AAxC4B,SAApC,CAAA;;AA2CAF,QAAAA,QAAQ,CAACyB,SAAT,CAAmBC,OAAnB,CAA2BC,OAAO,IAAI;AACpCC,UAAAA,MAAM,CAACC,MAAP,CAAcxB,MAAd,EAAsBsB,OAAO,CAAC1B,YAA9B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAsB0B,OAAO,CAAC1B,YAAR,CAAuBI,MAAvB,EAA+BL,QAA/B,CAAtB,CAAA,CAAA;AACD,SAFD,CAAA,CAAA;;AAIA,QAAA,OAAOK,MAAP,CAAA;AACD,OA7DI;AA+DL;AAEAyB,MAAAA,eAAe,EAAEC,UAAI,CACnB,MAAM,CACJ/B,QAAQ,CAACgC,aAAT,EADI,EAEJhC,QAAQ,CAACiC,qBAAT,EAFI,EAGJjC,QAAQ,CAACkC,QAAT,EAAA,CAAoBC,aAApB,CAAkCC,IAH9B,EAIJpC,QAAQ,CAACkC,QAAT,EAAA,CAAoBC,aAApB,CAAkCE,KAJ9B,CADa,EAOnB,CAACC,UAAD,EAAaC,WAAb,EAA0BH,IAA1B,EAAgCC,KAAhC,KAA0C;AAAA,QAAA,IAAA,gBAAA,EAAA,iBAAA,CAAA;;AACxC,QAAA,MAAMG,WAAW,GAAA,CAAA,gBAAA,GACfJ,IADe,IAAA,IAAA,GAAA,KAAA,CAAA,GACfA,IAAI,CACAjB,GADJ,CACQsB,QAAQ,IAAIF,WAAW,CAACG,IAAZ,CAAiBC,CAAC,IAAIA,CAAC,CAACvC,EAAF,KAASqC,QAA/B,CADpB,CAEGG,CAAAA,MAFH,CAEUC,OAFV,CADe,KAAA,IAAA,GAAA,gBAAA,GAGO,EAHxB,CAAA;AAKA,QAAA,MAAMC,YAAY,GAAA,CAAA,iBAAA,GAChBT,KADgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAChBA,KAAK,CACDlB,GADJ,CACQsB,QAAQ,IAAIF,WAAW,CAACG,IAAZ,CAAiBC,CAAC,IAAIA,CAAC,CAACvC,EAAF,KAASqC,QAA/B,CADpB,CAEGG,CAAAA,MAFH,CAEUC,OAFV,CADgB,KAAA,IAAA,GAAA,iBAAA,GAGM,EAHxB,CAAA;AAKA,QAAA,MAAME,aAAa,GAAGR,WAAW,CAACK,MAAZ,CACpB1C,MAAM,IAAI,EAACkC,IAAD,IAAA,IAAA,IAACA,IAAI,CAAEY,QAAN,CAAe9C,MAAM,CAACE,EAAtB,CAAD,CAAA,IAA8B,EAACiC,KAAD,YAACA,KAAK,CAAEW,QAAP,CAAgB9C,MAAM,CAACE,EAAvB,CAAD,CADpB,CAAtB,CAAA;AAIA,QAAA,MAAM6C,YAAY,GAAGC,iBAAiB,CACpCZ,UADoC,EAEpC,CAAC,GAAGE,WAAJ,EAAiB,GAAGO,aAApB,EAAmC,GAAGD,YAAtC,CAFoC,EAGpC9C,QAHoC,CAAtC,CAAA;AAMA,QAAA,OAAOiD,YAAP,CAAA;AACD,OA7BkB,EA8BnB;AACEE,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,iBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,oCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OA9BmB,CAjEhB;AAsGLC,MAAAA,qBAAqB,EAAE3B,UAAI,CACzB,MAAM,CACJ/B,QAAQ,CAACgC,aAAT,EADI,EAEJhC,QAAQ,CAACiC,qBAAT,EAFI,EAGJjC,QAAQ,CAACkC,QAAT,EAAA,CAAoBC,aAApB,CAAkCC,IAH9B,EAIJpC,QAAQ,CAACkC,QAAT,EAAA,CAAoBC,aAApB,CAAkCE,KAJ9B,CADmB,EAOzB,CAACC,UAAD,EAAaC,WAAb,EAA0BH,IAA1B,EAAgCC,KAAhC,KAA0C;AACxCE,QAAAA,WAAW,GAAGA,WAAW,CAACK,MAAZ,CACZ1C,MAAM,IAAI,EAACkC,IAAD,IAAA,IAAA,IAACA,IAAI,CAAEY,QAAN,CAAe9C,MAAM,CAACE,EAAtB,CAAD,CAAA,IAA8B,EAACiC,KAAD,YAACA,KAAK,CAAEW,QAAP,CAAgB9C,MAAM,CAACE,EAAvB,CAAD,CAD5B,CAAd,CAAA;AAGA,QAAO8C,OAAAA,iBAAiB,CAACZ,UAAD,EAAaC,WAAb,EAA0BvC,QAA1B,EAAoC,QAApC,CAAxB,CAAA;AACD,OAZwB,EAazB;AACEmD,QAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,uBAF9C;AAGEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAHT,OAbyB,CAtGtB;AA2HLE,MAAAA,mBAAmB,EAAE5B,UAAI,CACvB,MAAM,CACJ/B,QAAQ,CAACgC,aAAT,EADI,EAEJhC,QAAQ,CAACiC,qBAAT,EAFI,EAGJjC,QAAQ,CAACkC,QAAT,EAAoBC,CAAAA,aAApB,CAAkCC,IAH9B,CADiB,EAMvB,CAACE,UAAD,EAAaC,WAAb,EAA0BH,IAA1B,KAAmC;AAAA,QAAA,IAAA,iBAAA,CAAA;;AACjC,QAAA,MAAMwB,kBAAkB,GAAA,CAAA,iBAAA,GACtBxB,IADsB,IAAA,IAAA,GAAA,KAAA,CAAA,GACtBA,IAAI,CACAjB,GADJ,CACQsB,QAAQ,IAAIF,WAAW,CAACG,IAAZ,CAAiBC,CAAC,IAAIA,CAAC,CAACvC,EAAF,KAASqC,QAA/B,CADpB,CAEGG,CAAAA,MAFH,CAEUC,OAFV,CADsB,KAAA,IAAA,GAAA,iBAAA,GAGA,EAHxB,CAAA;AAKA,QAAOK,OAAAA,iBAAiB,CACtBZ,UADsB,EAEtBsB,kBAFsB,EAGtB5D,QAHsB,EAItB,MAJsB,CAAxB,CAAA;AAMD,OAlBsB,EAmBvB;AACEmD,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OAnBuB,CA3HpB;AAqJLI,MAAAA,oBAAoB,EAAE9B,UAAI,CACxB,MAAM,CACJ/B,QAAQ,CAACgC,aAAT,EADI,EAEJhC,QAAQ,CAACiC,qBAAT,EAFI,EAGJjC,QAAQ,CAACkC,QAAT,EAAoBC,CAAAA,aAApB,CAAkCE,KAH9B,CADkB,EAMxB,CAACC,UAAD,EAAaC,WAAb,EAA0BF,KAA1B,KAAoC;AAAA,QAAA,IAAA,kBAAA,CAAA;;AAClC,QAAA,MAAMuB,kBAAkB,GAAA,CAAA,kBAAA,GACtBvB,KADsB,IAAA,IAAA,GAAA,KAAA,CAAA,GACtBA,KAAK,CACDlB,GADJ,CACQsB,QAAQ,IAAIF,WAAW,CAACG,IAAZ,CAAiBC,CAAC,IAAIA,CAAC,CAACvC,EAAF,KAASqC,QAA/B,CADpB,CAEGG,CAAAA,MAFH,CAEUC,OAFV,CADsB,KAAA,IAAA,GAAA,kBAAA,GAGA,EAHxB,CAAA;AAKA,QAAOK,OAAAA,iBAAiB,CACtBZ,UADsB,EAEtBsB,kBAFsB,EAGtB5D,QAHsB,EAItB,OAJsB,CAAxB,CAAA;AAMD,OAlBuB,EAmBxB;AACEmD,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,sBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OAnBwB,CArJrB;AA+KL;AAEAK,MAAAA,eAAe,EAAE/B,UAAI,CACnB,MAAM,CAAC/B,QAAQ,CAAC8B,eAAT,EAAD,CADa,EAEnBmB,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAJ,CAAA,CAAkBc,OAAlB,EAAP,CAAA;AACD,OAJkB,EAKnB;AACEZ,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,iBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OALmB,CAjLhB;AA6LLO,MAAAA,mBAAmB,EAAEjC,UAAI,CACvB,MAAM,CAAC/B,QAAQ,CAAC2D,mBAAT,EAAD,CADiB,EAEvBV,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAJ,CAAA,CAAkBc,OAAlB,EAAP,CAAA;AACD,OAJsB,EAKvB;AACEZ,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OALuB,CA7LpB;AAyMLQ,MAAAA,qBAAqB,EAAElC,UAAI,CACzB,MAAM,CAAC/B,QAAQ,CAAC0D,qBAAT,EAAD,CADmB,EAEzBT,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAJ,CAAA,CAAkBc,OAAlB,EAAP,CAAA;AACD,OAJwB,EAKzB;AACEZ,QAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,uBAF9C;AAGEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAHT,OALyB,CAzMtB;AAsNLS,MAAAA,oBAAoB,EAAEnC,UAAI,CACxB,MAAM,CAAC/B,QAAQ,CAAC6D,oBAAT,EAAD,CADkB,EAExBZ,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAJ,CAAA,CAAkBc,OAAlB,EAAP,CAAA;AACD,OAJuB,EAKxB;AACEZ,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,sBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OALwB,CAtNrB;AAkOL;AAEAU,MAAAA,cAAc,EAAEpC,UAAI,CAClB,MAAM,CAAC/B,QAAQ,CAAC8B,eAAT,EAAD,CADY,EAElBmB,YAAY,IAAI;AACd,QAAA,OAAOA,YAAY,CAChB9B,GADI,CACAN,WAAW,IAAI;AAClB,UAAOA,OAAAA,WAAW,CAACuD,OAAnB,CAAA;AACD,SAHI,CAAA,CAIJC,IAJI,EAAP,CAAA;AAKD,OARiB,EASlB;AACElB,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,gBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,qCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OATkB,CApOf;AAoPLa,MAAAA,kBAAkB,EAAEvC,UAAI,CACtB,MAAM,CAAC/B,QAAQ,CAAC2D,mBAAT,EAAD,CADgB,EAEtBvB,IAAI,IAAI;AACN,QAAA,OAAOA,IAAI,CACRjB,GADI,CACAN,WAAW,IAAI;AAClB,UAAOA,OAAAA,WAAW,CAACuD,OAAnB,CAAA;AACD,SAHI,CAAA,CAIJC,IAJI,EAAP,CAAA;AAKD,OARqB,EAStB;AACElB,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,oBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OATsB,CApPnB;AAoQLc,MAAAA,oBAAoB,EAAExC,UAAI,CACxB,MAAM,CAAC/B,QAAQ,CAAC0D,qBAAT,EAAD,CADkB,EAExBtB,IAAI,IAAI;AACN,QAAA,OAAOA,IAAI,CACRjB,GADI,CACAN,WAAW,IAAI;AAClB,UAAOA,OAAAA,WAAW,CAACuD,OAAnB,CAAA;AACD,SAHI,CAAA,CAIJC,IAJI,EAAP,CAAA;AAKD,OARuB,EASxB;AACElB,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,sBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OATwB,CApQrB;AAoRLe,MAAAA,mBAAmB,EAAEzC,UAAI,CACvB,MAAM,CAAC/B,QAAQ,CAAC6D,oBAAT,EAAD,CADiB,EAEvBzB,IAAI,IAAI;AACN,QAAA,OAAOA,IAAI,CACRjB,GADI,CACAN,WAAW,IAAI;AAClB,UAAOA,OAAAA,WAAW,CAACuD,OAAnB,CAAA;AACD,SAHI,CAAA,CAIJC,IAJI,EAAP,CAAA;AAKD,OARsB,EASvB;AACElB,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OATuB,CApRpB;AAoSL;AAEAgB,MAAAA,oBAAoB,EAAE1C,UAAI,CACxB,MAAM,CAAC/B,QAAQ,CAACuE,oBAAT,EAAD,CADkB,EAExBG,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAAC9B,MAAZ,CAAmBvC,MAAM,IAAA;AAAA,UAAA,IAAA,kBAAA,CAAA;;AAAA,UAAA,OAAI,wBAACA,MAAM,CAACK,UAAR,KAAC,IAAA,IAAA,kBAAA,CAAmBQ,MAApB,CAAJ,CAAA;AAAA,SAAzB,CAAP,CAAA;AACD,OAJuB,EAKxB;AACEiC,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,sBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OALwB,CAtSrB;AAkTLkB,MAAAA,kBAAkB,EAAE5C,UAAI,CACtB,MAAM,CAAC/B,QAAQ,CAACsE,kBAAT,EAAD,CADgB,EAEtBI,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAAC9B,MAAZ,CAAmBvC,MAAM,IAAA;AAAA,UAAA,IAAA,mBAAA,CAAA;;AAAA,UAAA,OAAI,yBAACA,MAAM,CAACK,UAAR,KAAC,IAAA,IAAA,mBAAA,CAAmBQ,MAApB,CAAJ,CAAA;AAAA,SAAzB,CAAP,CAAA;AACD,OAJqB,EAKtB;AACEiC,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,oBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OALsB,CAlTnB;AA8TLmB,MAAAA,mBAAmB,EAAE7C,UAAI,CACvB,MAAM,CAAC/B,QAAQ,CAACwE,mBAAT,EAAD,CADiB,EAEvBE,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAAC9B,MAAZ,CAAmBvC,MAAM,IAAA;AAAA,UAAA,IAAA,mBAAA,CAAA;;AAAA,UAAA,OAAI,yBAACA,MAAM,CAACK,UAAR,KAAC,IAAA,IAAA,mBAAA,CAAmBQ,MAApB,CAAJ,CAAA;AAAA,SAAzB,CAAP,CAAA;AACD,OAJsB,EAKvB;AACEiC,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OALuB,CA9TpB;AA0UL3C,MAAAA,cAAc,EAAEiB,UAAI,CAClB,MAAM,CACJ/B,QAAQ,CAAC2D,mBAAT,EADI,EAEJ3D,QAAQ,CAAC0D,qBAAT,EAFI,EAGJ1D,QAAQ,CAAC6D,oBAAT,EAHI,CADY,EAMlB,CAACzB,IAAD,EAAOyC,MAAP,EAAexC,KAAf,KAAyB;AAAA,QAAA,IAAA,eAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,CAAA;;AACvB,QAAA,OAAO,CACL,IAAID,CAAAA,eAAAA,GAAAA,CAAAA,MAAAA,GAAAA,IAAI,CAAC,CAAD,CAAR,qBAAI,MAASgC,CAAAA,OAAb,KAAwB,IAAA,GAAA,eAAA,GAAA,EAAxB,CADK,EAEL,IAAA,CAAA,iBAAA,GAAA,CAAA,QAAA,GAAIS,MAAM,CAAC,CAAD,CAAV,KAAI,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAWT,OAAf,KAAA,IAAA,GAAA,iBAAA,GAA0B,EAA1B,CAFK,EAGL,mCAAI/B,KAAK,CAAC,CAAD,CAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAI,OAAU+B,CAAAA,OAAd,+BAAyB,EAAzB,CAHK,EAKJjD,GALI,CAKAd,MAAM,IAAI;AACb,UAAOA,OAAAA,MAAM,CAACS,cAAP,EAAP,CAAA;AACD,SAPI,CAAA,CAQJuD,IARI,EAAP,CAAA;AASD,OAhBiB,EAiBlB;AACElB,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,gBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,uBAAA,CAAA;;AAAA,UACLvD,OAAAA,CAAAA,uBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBqD,QADZ,sCACwBxD,QAAQ,CAACG,OAAT,CAAiBsD,YADzC,CAAA;AAAA,SAAA;AAFT,OAjBkB,CA1Uf;AAkWLqB,MAAAA,SAAS,EAAG1E,EAAD,IAAgB;AACzB,QAAA,MAAMC,MAAM,GAAG,CACb,GAAGL,QAAQ,CAACmE,cAAT,EADU,EAEb,GAAGnE,QAAQ,CAACuE,oBAAT,EAFU,EAGb,GAAGvE,QAAQ,CAACsE,kBAAT,EAHU,EAIb,GAAGtE,QAAQ,CAACwE,mBAAT,EAJU,CAKb9B,CAAAA,IALa,CAKRC,CAAC,IAAIA,CAAC,CAACvC,EAAF,KAASA,EALN,CAAf,CAAA;;AAOA,QAAI,IAAA,CAACC,MAAL,EAAa;AACX,UAAA,IAAI+C,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCyB,YAAAA,OAAO,CAACC,IAAR,CAAA,iCAAA,GAA+C5E,EAA/C,CAAA,CAAA;AACD,WAAA;;AACD,UAAM,MAAA,IAAI6E,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAO5E,MAAP,CAAA;AACD,OAAA;AAlXI,KAAP,CAAA;AAoXD,GAAA;AAxXoB,EAAhB;AA2XA,SAAS6C,iBAAT,CACLZ,UADK,EAEL4C,cAFK,EAGLlF,QAHK,EAILmF,YAJK,EAKL;AAAA,EAAA,IAAA,qBAAA,EAAA,cAAA,CAAA;;AACA;AACA;AACA;AACA;AACA;AAEA,EAAIC,IAAAA,QAAQ,GAAG,CAAf,CAAA;;AAEA,EAAA,MAAMC,YAAY,GAAG,UAACC,OAAD,EAA+B7E,KAA/B,EAA6C;AAAA,IAAA,IAAdA,KAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,MAAAA,KAAc,GAAN,CAAM,CAAA;AAAA,KAAA;;AAChE2E,IAAAA,QAAQ,GAAGG,IAAI,CAACC,GAAL,CAASJ,QAAT,EAAmB3E,KAAnB,CAAX,CAAA;AAEA6E,IAAAA,OAAO,CACJ1C,MADH,CACU1C,MAAM,IAAIA,MAAM,CAACuF,YAAP,EADpB,CAAA,CAEG/D,OAFH,CAEWxB,MAAM,IAAI;AAAA,MAAA,IAAA,eAAA,CAAA;;AACjB,MAAA,IAAA,CAAA,eAAA,GAAIA,MAAM,CAACoF,OAAX,KAAI,IAAA,IAAA,eAAA,CAAgBpE,MAApB,EAA4B;AAC1BmE,QAAAA,YAAY,CAACnF,MAAM,CAACoF,OAAR,EAAiB7E,KAAK,GAAG,CAAzB,CAAZ,CAAA;AACD,OAAA;AACF,KANH,EAMK,CANL,CAAA,CAAA;AAOD,GAVD,CAAA;;AAYA4E,EAAAA,YAAY,CAAC/C,UAAD,CAAZ,CAAA;AAEA,EAAIW,IAAAA,YAAsC,GAAG,EAA7C,CAAA;;AAEA,EAAA,MAAMyC,iBAAiB,GAAG,CACxBC,cADwB,EAExBlF,KAFwB,KAGrB;AACH;AACA,IAAA,MAAMI,WAAmC,GAAG;AAC1CJ,MAAAA,KAD0C;AAE1CL,MAAAA,EAAE,EAAE,CAAC+E,YAAD,OAAkB1E,KAAlB,CAAA,CAA2BmC,MAA3B,CAAkCC,OAAlC,CAAA,CAA2C+C,IAA3C,CAAgD,GAAhD,CAFsC;AAG1CxB,MAAAA,OAAO,EAAE,EAAA;AAHiC,KAA5C,CAFG;;AASH,IAAA,MAAMyB,oBAAyC,GAAG,EAAlD,CATG;;AAYHF,IAAAA,cAAc,CAACjE,OAAf,CAAuBoE,aAAa,IAAI;AACtC;AAEA,MAAMC,MAAAA,yBAAyB,GAAG,CAAC,GAAGF,oBAAJ,CAA0B9B,CAAAA,OAA1B,EAAoC,CAAA,CAApC,CAAlC,CAAA;AAEA,MAAMiC,MAAAA,YAAY,GAAGF,aAAa,CAAC5F,MAAd,CAAqBO,KAArB,KAA+BI,WAAW,CAACJ,KAAhE,CAAA;AAEA,MAAA,IAAIP,MAAJ,CAAA;AACA,MAAIK,IAAAA,aAAa,GAAG,KAApB,CAAA;;AAEA,MAAA,IAAIyF,YAAY,IAAIF,aAAa,CAAC5F,MAAd,CAAqB+F,MAAzC,EAAiD;AAC/C;AACA/F,QAAAA,MAAM,GAAG4F,aAAa,CAAC5F,MAAd,CAAqB+F,MAA9B,CAAA;AACD,OAHD,MAGO;AACL;AACA/F,QAAAA,MAAM,GAAG4F,aAAa,CAAC5F,MAAvB,CAAA;AACAK,QAAAA,aAAa,GAAG,IAAhB,CAAA;AACD,OAAA;;AAED,MAAI,IAAA,CAAAwF,yBAAyB,IAAzB,IAAA,GAAA,KAAA,CAAA,GAAAA,yBAAyB,CAAE7F,MAA3B,MAAsCA,MAA1C,EAAkD;AAChD;AACA6F,QAAAA,yBAAyB,CAACrF,UAA1B,CAAqCU,IAArC,CAA0C0E,aAA1C,CAAA,CAAA;AACD,OAHD,MAGO;AACL;AACA,QAAA,MAAMzF,MAAM,GAAGL,QAAQ,CAACC,YAAT,CAAsBC,MAAtB,EAA8B;AAC3CE,UAAAA,EAAE,EAAE,CAAC+E,YAAD,EAAe1E,KAAf,EAAsBP,MAAM,CAACE,EAA7B,EAAiC0F,aAAjC,oBAAiCA,aAAa,CAAE1F,EAAhD,CAAA,CACDwC,MADC,CACMC,OADN,CAED+C,CAAAA,IAFC,CAEI,GAFJ,CADuC;AAI3CrF,UAAAA,aAJ2C;AAK3CC,UAAAA,aAAa,EAAED,aAAa,QACrBsF,oBAAoB,CAACjD,MAArB,CAA4BD,CAAC,IAAIA,CAAC,CAACzC,MAAF,KAAaA,MAA9C,CAAsDgB,CAAAA,MADjC,GAExBgF,SAPuC;AAQ3CzF,UAAAA,KAR2C;AAS3CH,UAAAA,KAAK,EAAEuF,oBAAoB,CAAC3E,MAAAA;AATe,SAA9B,CAAf,CAFK;;AAeLb,QAAAA,MAAM,CAACK,UAAP,CAAkBU,IAAlB,CAAuB0E,aAAvB,EAfK;AAiBL;;AACAD,QAAAA,oBAAoB,CAACzE,IAArB,CAA0Bf,MAA1B,CAAA,CAAA;AACD,OAAA;;AAEDQ,MAAAA,WAAW,CAACuD,OAAZ,CAAoBhD,IAApB,CAAyB0E,aAAzB,CAAA,CAAA;AACAA,MAAAA,aAAa,CAACjF,WAAd,GAA4BA,WAA5B,CAAA;AACD,KA7CD,CAAA,CAAA;AA+CAoC,IAAAA,YAAY,CAAC7B,IAAb,CAAkBP,WAAlB,CAAA,CAAA;;AAEA,IAAIJ,IAAAA,KAAK,GAAG,CAAZ,EAAe;AACbiF,MAAAA,iBAAiB,CAACG,oBAAD,EAAuBpF,KAAK,GAAG,CAA/B,CAAjB,CAAA;AACD,KAAA;AACF,GAnED,CAAA;;AAqEA,EAAA,MAAM0F,aAAa,GAAGjB,cAAc,CAAC/D,GAAf,CAAmB,CAACjB,MAAD,EAASI,KAAT,KACvCN,QAAQ,CAACC,YAAT,CAAsBC,MAAtB,EAA8B;AAC5BO,IAAAA,KAAK,EAAE2E,QADqB;AAE5B9E,IAAAA,KAAAA;AAF4B,GAA9B,CADoB,CAAtB,CAAA;AAOAoF,EAAAA,iBAAiB,CAACS,aAAD,EAAgBf,QAAQ,GAAG,CAA3B,CAAjB,CAAA;AAEAnC,EAAAA,YAAY,CAACc,OAAb,EAAA,CAvGA;AA0GA;AACA;;AAEA,EAAMqC,MAAAA,sBAAsB,GAAIhC,OAAD,IAAkC;AAC/D,IAAA,MAAMiC,eAAe,GAAGjC,OAAO,CAACxB,MAAR,CAAevC,MAAM,IAC3CA,MAAM,CAACH,MAAP,CAAcuF,YAAd,EADsB,CAAxB,CAAA;AAIA,IAAA,OAAOY,eAAe,CAAClF,GAAhB,CAAoBd,MAAM,IAAI;AACnC,MAAIM,IAAAA,OAAO,GAAG,CAAd,CAAA;AACA,MAAIC,IAAAA,OAAO,GAAG,CAAd,CAAA;AACA,MAAA,IAAI0F,aAAa,GAAG,CAAC,CAAD,CAApB,CAAA;;AAEA,MAAIjG,IAAAA,MAAM,CAACK,UAAP,IAAqBL,MAAM,CAACK,UAAP,CAAkBQ,MAA3C,EAAmD;AACjDoF,QAAAA,aAAa,GAAG,EAAhB,CAAA;AAEAF,QAAAA,sBAAsB,CAAC/F,MAAM,CAACK,UAAR,CAAtB,CAA0CgB,OAA1C,CACE,IAAsD,IAAA;AAAA,UAArD,IAAA;AAAEf,YAAAA,OAAO,EAAE4F,YAAX;AAAyB3F,YAAAA,OAAO,EAAE4F,YAAAA;AAAlC,WAAqD,GAAA,IAAA,CAAA;AACpD7F,UAAAA,OAAO,IAAI4F,YAAX,CAAA;AACAD,UAAAA,aAAa,CAAClF,IAAd,CAAmBoF,YAAnB,CAAA,CAAA;AACD,SAJH,CAAA,CAAA;AAMD,OATD,MASO;AACL7F,QAAAA,OAAO,GAAG,CAAV,CAAA;AACD,OAAA;;AAED,MAAM8F,MAAAA,eAAe,GAAGlB,IAAI,CAACmB,GAAL,CAAS,GAAGJ,aAAZ,CAAxB,CAAA;AACA1F,MAAAA,OAAO,GAAGA,OAAO,GAAG6F,eAApB,CAAA;AAEApG,MAAAA,MAAM,CAACM,OAAP,GAAiBA,OAAO,GAAG,CAAV,GAAcA,OAAd,GAAwBuF,SAAzC,CAAA;AACA7F,MAAAA,MAAM,CAACO,OAAP,GAAiBA,OAAO,GAAG,CAAV,GAAcA,OAAd,GAAwBsF,SAAzC,CAAA;AAEA,MAAO,OAAA;AAAEvF,QAAAA,OAAF;AAAWC,QAAAA,OAAAA;AAAX,OAAP,CAAA;AACD,KAzBM,CAAP,CAAA;AA0BD,GA/BD,CAAA;;AAiCAwF,EAAAA,sBAAsB,CAACnD,CAAAA,qBAAAA,GAAAA,CAAAA,cAAAA,GAAAA,YAAY,CAAC,CAAD,CAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAC,cAAiBmB,CAAAA,OAAlB,KAA6B,IAAA,GAAA,qBAAA,GAAA,EAA7B,CAAtB,CAAA;AAEA,EAAA,OAAOnB,YAAP,CAAA;AACD;;;;;"}
|
|
1
|
+
{"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Column,\n CoreHeader,\n Header,\n HeaderGroup,\n TableGenerics,\n TableInstance,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type HeadersInstance<TGenerics extends TableGenerics> = {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n ) => Header<TGenerics>\n getHeaderGroups: () => HeaderGroup<TGenerics>[]\n getLeftHeaderGroups: () => HeaderGroup<TGenerics>[]\n getCenterHeaderGroups: () => HeaderGroup<TGenerics>[]\n getRightHeaderGroups: () => HeaderGroup<TGenerics>[]\n\n getFooterGroups: () => HeaderGroup<TGenerics>[]\n getLeftFooterGroups: () => HeaderGroup<TGenerics>[]\n getCenterFooterGroups: () => HeaderGroup<TGenerics>[]\n getRightFooterGroups: () => HeaderGroup<TGenerics>[]\n\n getFlatHeaders: () => Header<TGenerics>[]\n getLeftFlatHeaders: () => Header<TGenerics>[]\n getCenterFlatHeaders: () => Header<TGenerics>[]\n getRightFlatHeaders: () => Header<TGenerics>[]\n\n getLeafHeaders: () => Header<TGenerics>[]\n getLeftLeafHeaders: () => Header<TGenerics>[]\n getCenterLeafHeaders: () => Header<TGenerics>[]\n getRightLeafHeaders: () => Header<TGenerics>[]\n\n getHeader: (id: string) => Header<TGenerics>\n}\n\n//\n\nexport const Headers = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): HeadersInstance<TGenerics> => {\n return {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TGenerics> = {\n id,\n column,\n index: options.index,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TGenerics>[] => {\n const leafHeaders: CoreHeader<TGenerics>[] = []\n\n const recurseHeader = (h: CoreHeader<TGenerics>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<TGenerics>[]\n },\n renderHeader: () =>\n column.columnDef.header\n ? instance._render(column.columnDef.header, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n renderFooter: () =>\n column.columnDef.footer\n ? instance._render(column.columnDef.footer, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n }\n\n instance._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, instance))\n })\n\n return header as Header<TGenerics>\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n instance,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n instance,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n }\n },\n}\n\nexport function buildHeaderGroups<TGenerics extends TableGenerics>(\n allColumns: Column<TGenerics>[],\n columnsToGroup: Column<TGenerics>[],\n instance: TableInstance<TGenerics>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TGenerics>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TGenerics>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TGenerics>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TGenerics> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TGenerics>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TGenerics>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (latestPendingParentHeader?.column === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n instance.createHeader(column, {\n depth: maxDepth,\n index,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (headers: Header<TGenerics>[]) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["Headers","createInstance","instance","createHeader","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","renderHeader","columnDef","_render","renderFooter","footer","_features","forEach","feature","Object","assign","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","getHeader","console","warn","Error","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
|
|
@@ -66,9 +66,9 @@ const Pinning = {
|
|
|
66
66
|
getCanPin: () => {
|
|
67
67
|
const leafColumns = column.getLeafColumns();
|
|
68
68
|
return leafColumns.some(d => {
|
|
69
|
-
var _d$
|
|
69
|
+
var _d$columnDef$enablePi, _instance$options$ena;
|
|
70
70
|
|
|
71
|
-
return ((_d$
|
|
71
|
+
return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_instance$options$ena = instance.options.enablePinning) != null ? _instance$options$ena : true);
|
|
72
72
|
});
|
|
73
73
|
},
|
|
74
74
|
getIsPinned: () => {
|
|
@@ -138,12 +138,18 @@ const Pinning = {
|
|
|
138
138
|
|
|
139
139
|
return instance.setColumnPinning(defaultState ? getDefaultPinningState() : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnPinning) != null ? _instance$initialStat : getDefaultPinningState());
|
|
140
140
|
},
|
|
141
|
-
getIsSomeColumnsPinned:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
141
|
+
getIsSomeColumnsPinned: position => {
|
|
142
|
+
var _pinningState$positio;
|
|
143
|
+
|
|
144
|
+
const pinningState = instance.getState().columnPinning;
|
|
145
|
+
|
|
146
|
+
if (!position) {
|
|
147
|
+
var _pinningState$left, _pinningState$right;
|
|
148
|
+
|
|
149
|
+
return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
|
|
147
153
|
},
|
|
148
154
|
getLeftLeafColumns: utils.memo(() => [instance.getAllLeafColumns(), instance.getState().columnPinning.left], (allColumns, left) => {
|
|
149
155
|
return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n TableGenerics,\n Row,\n Cell,\n TableFeature,\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<TGenerics extends TableGenerics> = {\n getLeftVisibleCells: () => Cell<TGenerics>[]\n getCenterVisibleCells: () => Cell<TGenerics>[]\n getRightVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type ColumnPinningInstance<TGenerics extends TableGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: () => boolean\n getLeftLeafColumns: () => Column<TGenerics>[]\n getRightLeafColumns: () => Column<TGenerics>[]\n getCenterLeafColumns: () => Column<TGenerics>[]\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\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 instance.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.enablePinning ?? true) &&\n (instance.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.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 ? instance.getState().columnPinning?.[position]?.indexOf(column.id) ??\n -1\n : 0\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningRow<TGenerics> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n instance.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : instance.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: () => {\n const { left, right } = instance.getState().columnPinning\n\n return Boolean(left?.length || right?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.right,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n instance.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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","columnId","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","find","cell","getRightVisibleCells","createInstance","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","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 {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n TableGenerics,\n Row,\n Cell,\n TableFeature,\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<TGenerics extends TableGenerics> = {\n getLeftVisibleCells: () => Cell<TGenerics>[]\n getCenterVisibleCells: () => Cell<TGenerics>[]\n getRightVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type ColumnPinningInstance<TGenerics extends TableGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TGenerics>[]\n getRightLeafColumns: () => Column<TGenerics>[]\n getCenterLeafColumns: () => Column<TGenerics>[]\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\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 instance.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 (instance.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.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 ? instance.getState().columnPinning?.[position]?.indexOf(column.id) ??\n -1\n : 0\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningRow<TGenerics> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n instance.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : instance.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = instance.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 () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.right,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n instance.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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","instance","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","columnId","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","find","cell","getRightVisibleCells","createInstance","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
|