@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.5
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 +85 -52
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +11 -6
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +2 -16
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +23 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +54 -5
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +23 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +87 -24
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +4 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +198 -0
- package/build/cjs/features/Pagination.js.map +1 -0
- package/build/cjs/features/Pinning.js +0 -14
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +541 -0
- package/build/cjs/features/RowSelection.js.map +1 -0
- package/build/cjs/features/Sorting.js +76 -18
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +8 -2
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/index.js +2 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortTypes.js +1 -0
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +3 -2
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/expandRowsFn.js +2 -2
- package/build/cjs/utils/expandRowsFn.js.map +1 -1
- package/build/cjs/utils/globalFilterRowsFn.js +3 -2
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +4 -3
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/paginateRowsFn.js +44 -0
- package/build/cjs/utils/paginateRowsFn.js.map +1 -0
- package/build/cjs/utils/sortRowsFn.js +3 -2
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/cjs/utils.js +6 -3
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2626 -1571
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +350 -248
- package/build/types/core.d.ts +10 -25
- package/build/types/createTable.d.ts +21 -4
- package/build/types/features/ColumnSizing.d.ts +4 -10
- package/build/types/features/Expanding.d.ts +2 -1
- package/build/types/features/Filters.d.ts +7 -2
- package/build/types/features/Grouping.d.ts +2 -2
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +44 -0
- package/build/types/features/Pinning.d.ts +3 -3
- package/build/types/features/RowSelection.d.ts +66 -0
- package/build/types/features/Sorting.d.ts +5 -2
- package/build/types/index.d.ts +2 -1
- package/build/types/sortTypes.d.ts +1 -0
- package/build/types/types.d.ts +9 -6
- package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
- package/build/types/utils/expandRowsFn.d.ts +2 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
- package/build/types/utils/groupRowsFn.d.ts +2 -2
- package/build/types/utils/paginateRowsFn.d.ts +2 -0
- package/build/types/utils/sortRowsFn.d.ts +2 -2
- package/build/types/utils.d.ts +5 -1
- package/build/umd/index.development.js +2626 -1570
- 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.tsx +222 -273
- package/src/createTable.tsx +69 -9
- package/src/features/ColumnSizing.ts +8 -37
- package/src/features/Expanding.ts +27 -11
- package/src/features/Filters.ts +74 -19
- package/src/features/Grouping.ts +27 -12
- package/src/features/Headers.ts +26 -58
- package/src/features/Ordering.ts +2 -3
- package/src/features/Pagination.ts +327 -0
- package/src/features/Pinning.ts +3 -16
- package/src/features/RowSelection.ts +831 -0
- package/src/features/Sorting.ts +82 -22
- package/src/features/Visibility.ts +2 -4
- package/src/index.tsx +2 -1
- package/src/sortTypes.ts +1 -1
- package/src/types.ts +25 -8
- package/src/utils/columnFilterRowsFn.ts +5 -12
- package/src/utils/expandRowsFn.ts +2 -5
- package/src/utils/globalFilterRowsFn.ts +3 -10
- package/src/utils/groupRowsFn.ts +3 -5
- package/src/utils/paginateRowsFn.ts +34 -0
- package/src/utils/sortRowsFn.ts +5 -5
- package/src/utils.tsx +12 -4
- package/src/features/withPagination.oldts +0 -208
- package/src/features/withRowSelection.oldts +0 -467
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import React, { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInAggregationType, aggregationTypes } from '../aggregationTypes'\nimport {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn = (leafValues: any[], childValues: any[]) => any\n\nexport type AggregationType<TAggregationFns> =\n | 'auto'\n | BuiltInAggregationType\n | keyof TAggregationFns\n | AggregationFn\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TAggregationFns> = {\n aggregationType?: AggregationType<TAggregationFns>\n aggregateValue?: (columnValue: unknown) => any\n renderAggregatedCell?: () => React.ReactNode\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n getCanGroup?: unknown\n}\n\nexport type GroupingColumn<\n _TData,\n _TValue,\n _TFilterFns,\n _TSortingFns,\n TAggregationFns\n> = {\n aggregationType?: AggregationType<TAggregationFns>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n aggregationTypes?: TAggregationFns\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n groupRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n groupingState: GroupingState,\n sortedRowsModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type GroupingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getColumnAutoAggregationFn: (columnId: string) => AggregationFn | undefined\n getColumnAggregationFn: (columnId: string) => AggregationFn | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getGroupedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreGroupedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGroupedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGroupedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getGroupedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGroupedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGroupedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): GroupingColumnDef<TFilterFns> {\n return {\n aggregationType: 'auto',\n }\n}\n\nexport function getInitialState(): GroupingTableState {\n return {\n grouping: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n aggregationType: column.aggregationType,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreFlatRows()[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'number') {\n return aggregationTypes.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationTypes.extent\n }\n\n return aggregationTypes.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationTypes = instance.options.aggregationTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationType)\n ? column.aggregationType\n : column.aggregationType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userAggregationTypes as Record<string, any>)?.[\n column.aggregationType as string\n ] ??\n (aggregationTypes[\n column.aggregationType as BuiltInAggregationType\n ] as AggregationFn)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.options?.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n return\n }\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getGroupedRowModel: memo(\n () => [\n instance.getState().grouping,\n instance.getSortedRowModel(),\n instance.options.groupRowsFn,\n ],\n (grouping, rowModel, groupRowsFn) => {\n if (!groupRowsFn || !grouping.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Grouping...')\n\n return groupRowsFn(instance, grouping, rowModel)\n },\n 'getGroupedRowModel',\n instance.options.debug\n ),\n\n getPreGroupedRows: () => instance.getSortedRowModel().rows,\n getPreGroupedFlatRows: () => instance.getSortedRowModel().flatRows,\n getPreGroupedRowsById: () => instance.getSortedRowModel().rowsById,\n getGroupedRows: () => instance.getGroupedRowModel().rows,\n getGroupedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getGroupedRowsById: () => instance.getGroupedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingRow {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n}\n\nexport function createCell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> &\n GroupingCell,\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n _instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingCell {\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 }\n}\n\nexport function orderColumns<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n leafColumns: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\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":["getDefaultColumn","aggregationType","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","getColumnAutoAggregationFn","columnId","firstRow","getCoreFlatRows","value","values","aggregationTypes","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationTypes","options","Error","isFunction","getColumnAutoFilterFn","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","resetGrouping","initialState","canGroup","initialProps","title","undefined","onClick","e","persist","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getGroupedRowModel","memo","getSortedRowModel","groupRowsFn","rowModel","length","process","env","NODE_ENV","debug","console","info","getPreGroupedRows","rows","getPreGroupedFlatRows","flatRows","getPreGroupedRowsById","rowsById","getGroupedRows","getGroupedFlatRows","getGroupedRowsById","createRow","row","createCell","cell","_instance","getIsPlaceholder","getIsAggregated","subRows","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 React, { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInAggregationType, aggregationTypes } from '../aggregationTypes'\nimport {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn = (leafValues: any[], childValues: any[]) => any\n\nexport type AggregationType<TAggregationFns> =\n | 'auto'\n | BuiltInAggregationType\n | keyof TAggregationFns\n | AggregationFn\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TAggregationFns> = {\n aggregationType?: AggregationType<TAggregationFns>\n aggregateValue?: (columnValue: unknown) => any\n renderAggregatedCell?: () => React.ReactNode\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<\n _TData,\n _TValue,\n _TFilterFns,\n _TSortingFns,\n TAggregationFns\n> = {\n aggregationType?: AggregationType<TAggregationFns>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n aggregationTypes?: TAggregationFns\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n groupRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type GroupingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifyGroupingReset: () => void\n getColumnAutoAggregationFn: (columnId: string) => AggregationFn | undefined\n getColumnAggregationFn: (columnId: string) => AggregationFn | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getGroupedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreGroupedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGroupedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGroupedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getGroupedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGroupedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGroupedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): GroupingColumnDef<TFilterFns> {\n return {\n aggregationType: 'auto',\n }\n}\n\nexport function getInitialState(): GroupingTableState {\n return {\n grouping: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n aggregationType: column.aggregationType,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifyGroupingReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetGrouping\n ) {\n instance.resetGrouping()\n }\n },\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreFlatRows()[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'number') {\n return aggregationTypes.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationTypes.extent\n }\n\n return aggregationTypes.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationTypes = instance.options.aggregationTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationType)\n ? column.aggregationType\n : column.aggregationType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userAggregationTypes as Record<string, any>)?.[\n column.aggregationType as string\n ] ??\n (aggregationTypes[\n column.aggregationType as BuiltInAggregationType\n ] as AggregationFn)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.options?.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n return\n }\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getGroupedRowModel: memo(\n () => [\n instance.getState().grouping,\n instance.getSortedRowModel(),\n instance.options.groupRowsFn,\n ],\n (grouping, rowModel, groupRowsFn) => {\n if (!groupRowsFn || !grouping.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Grouping...')\n\n return groupRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n getPreGroupedRows: () => instance.getSortedRowModel().rows,\n getPreGroupedFlatRows: () => instance.getSortedRowModel().flatRows,\n getPreGroupedRowsById: () => instance.getSortedRowModel().rowsById,\n getGroupedRows: () => instance.getGroupedRowModel().rows,\n getGroupedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getGroupedRowsById: () => instance.getGroupedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingRow {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n}\n\nexport function createCell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> &\n GroupingCell,\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n _instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): GroupingCell {\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 }\n}\n\nexport function orderColumns<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n leafColumns: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\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":["getDefaultColumn","aggregationType","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","registered","_notifyGroupingReset","options","autoResetAll","resetGrouping","getColumnAutoAggregationFn","columnId","firstRow","getCoreFlatRows","value","values","aggregationTypes","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationTypes","Error","isFunction","getColumnAutoFilterFn","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","initialState","canGroup","initialProps","title","undefined","onClick","e","persist","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getGroupedRowModel","memo","getSortedRowModel","groupRowsFn","rowModel","length","process","env","NODE_ENV","debug","console","info","key","onChange","_notifyExpandedReset","getPreGroupedRows","rows","getPreGroupedFlatRows","flatRows","getPreGroupedRowsById","rowsById","getGroupedRows","getGroupedFlatRows","getGroupedRowsById","createRow","row","createCell","cell","_instance","getIsPlaceholder","getIsAggregated","subRows","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
|
-
var ColumnSizing = require('./ColumnSizing.js');
|
|
17
16
|
|
|
18
17
|
//
|
|
19
18
|
function createRow(row, instance) {
|
|
@@ -28,12 +27,18 @@ function createRow(row, instance) {
|
|
|
28
27
|
return row.getAllCells().filter(function (cell) {
|
|
29
28
|
return cell.column.getIsVisible();
|
|
30
29
|
});
|
|
31
|
-
},
|
|
30
|
+
}, {
|
|
31
|
+
key: 'row._getAllVisibleCells',
|
|
32
|
+
debug: instance.options.debug
|
|
33
|
+
}),
|
|
32
34
|
getVisibleCells: utils.memo(function () {
|
|
33
35
|
return [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()];
|
|
34
36
|
}, function (left, center, right) {
|
|
35
37
|
return [].concat(left, center, right);
|
|
36
|
-
},
|
|
38
|
+
}, {
|
|
39
|
+
key: 'row.getVisibleCells',
|
|
40
|
+
debug: instance.options.debug
|
|
41
|
+
}),
|
|
37
42
|
getCenterVisibleCells: utils.memo(function () {
|
|
38
43
|
return [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
|
|
39
44
|
}, function (allCells, left, right) {
|
|
@@ -41,7 +46,10 @@ function createRow(row, instance) {
|
|
|
41
46
|
return allCells.filter(function (d) {
|
|
42
47
|
return !leftAndRight.includes(d.columnId);
|
|
43
48
|
});
|
|
44
|
-
},
|
|
49
|
+
}, {
|
|
50
|
+
key: 'row.getCenterVisibleCells',
|
|
51
|
+
debug: instance.options.debug
|
|
52
|
+
}),
|
|
45
53
|
getLeftVisibleCells: utils.memo(function () {
|
|
46
54
|
return [row._getAllVisibleCells(), instance.getState().columnPinning.left,,];
|
|
47
55
|
}, function (allCells, left) {
|
|
@@ -51,7 +59,10 @@ function createRow(row, instance) {
|
|
|
51
59
|
});
|
|
52
60
|
}).filter(Boolean);
|
|
53
61
|
return cells;
|
|
54
|
-
},
|
|
62
|
+
}, {
|
|
63
|
+
key: 'row.getLeftVisibleCells',
|
|
64
|
+
debug: instance.options.debug
|
|
65
|
+
}),
|
|
55
66
|
getRightVisibleCells: utils.memo(function () {
|
|
56
67
|
return [row._getAllVisibleCells(), instance.getState().columnPinning.right];
|
|
57
68
|
}, function (allCells, right) {
|
|
@@ -61,7 +72,10 @@ function createRow(row, instance) {
|
|
|
61
72
|
});
|
|
62
73
|
}).filter(Boolean);
|
|
63
74
|
return cells;
|
|
64
|
-
},
|
|
75
|
+
}, {
|
|
76
|
+
key: 'row.getRightVisibleCells',
|
|
77
|
+
debug: instance.options.debug
|
|
78
|
+
})
|
|
65
79
|
};
|
|
66
80
|
}
|
|
67
81
|
function getInstance(instance) {
|
|
@@ -117,18 +131,19 @@ function getInstance(instance) {
|
|
|
117
131
|
},
|
|
118
132
|
renderHeader: function renderHeader() {
|
|
119
133
|
return utils.flexRender(column.header, {
|
|
134
|
+
instance: instance,
|
|
120
135
|
header: header,
|
|
121
136
|
column: column
|
|
122
137
|
});
|
|
123
138
|
},
|
|
124
139
|
renderFooter: function renderFooter() {
|
|
125
140
|
return utils.flexRender(column.footer, {
|
|
141
|
+
instance: instance,
|
|
126
142
|
header: header,
|
|
127
143
|
column: column
|
|
128
144
|
});
|
|
129
145
|
}
|
|
130
|
-
};
|
|
131
|
-
header = Object.assign(header, ColumnSizing.createHeader(header, instance)); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
|
|
146
|
+
}; // Yes, we have to convert instance to uknown, because we know more than the compiler here.
|
|
132
147
|
|
|
133
148
|
return header;
|
|
134
149
|
},
|
|
@@ -147,7 +162,10 @@ function getInstance(instance) {
|
|
|
147
162
|
});
|
|
148
163
|
var headerGroups = buildHeaderGroups(allColumns, [].concat(leftColumns, centerColumns, rightColumns), instance);
|
|
149
164
|
return headerGroups;
|
|
150
|
-
},
|
|
165
|
+
}, {
|
|
166
|
+
key: 'getHeaderGroups',
|
|
167
|
+
debug: instance.options.debug
|
|
168
|
+
}),
|
|
151
169
|
getCenterHeaderGroups: utils.memo(function () {
|
|
152
170
|
return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
|
|
153
171
|
}, function (allColumns, leafColumns, left, right) {
|
|
@@ -155,7 +173,10 @@ function getInstance(instance) {
|
|
|
155
173
|
return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
|
|
156
174
|
});
|
|
157
175
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'center');
|
|
158
|
-
},
|
|
176
|
+
}, {
|
|
177
|
+
key: 'getCenterHeaderGroups',
|
|
178
|
+
debug: instance.options.debug
|
|
179
|
+
}),
|
|
159
180
|
getLeftHeaderGroups: utils.memo(function () {
|
|
160
181
|
return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left];
|
|
161
182
|
}, function (allColumns, leafColumns, left) {
|
|
@@ -163,7 +184,10 @@ function getInstance(instance) {
|
|
|
163
184
|
return left == null ? void 0 : left.includes(column.id);
|
|
164
185
|
});
|
|
165
186
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'left');
|
|
166
|
-
},
|
|
187
|
+
}, {
|
|
188
|
+
key: 'getLeftHeaderGroups',
|
|
189
|
+
debug: instance.options.debug
|
|
190
|
+
}),
|
|
167
191
|
getRightHeaderGroups: utils.memo(function () {
|
|
168
192
|
return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right];
|
|
169
193
|
}, function (allColumns, leafColumns, right) {
|
|
@@ -171,28 +195,43 @@ function getInstance(instance) {
|
|
|
171
195
|
return right == null ? void 0 : right.includes(column.id);
|
|
172
196
|
});
|
|
173
197
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'right');
|
|
174
|
-
},
|
|
198
|
+
}, {
|
|
199
|
+
key: 'getRightHeaderGroups',
|
|
200
|
+
debug: instance.options.debug
|
|
201
|
+
}),
|
|
175
202
|
// Footer Groups
|
|
176
203
|
getFooterGroups: utils.memo(function () {
|
|
177
204
|
return [instance.getHeaderGroups()];
|
|
178
205
|
}, function (headerGroups) {
|
|
179
206
|
return [].concat(headerGroups).reverse();
|
|
180
|
-
},
|
|
207
|
+
}, {
|
|
208
|
+
key: 'getFooterGroups',
|
|
209
|
+
debug: instance.options.debug
|
|
210
|
+
}),
|
|
181
211
|
getLeftFooterGroups: utils.memo(function () {
|
|
182
212
|
return [instance.getLeftHeaderGroups()];
|
|
183
213
|
}, function (headerGroups) {
|
|
184
214
|
return [].concat(headerGroups).reverse();
|
|
185
|
-
},
|
|
215
|
+
}, {
|
|
216
|
+
key: 'getLeftFooterGroups',
|
|
217
|
+
debug: instance.options.debug
|
|
218
|
+
}),
|
|
186
219
|
getCenterFooterGroups: utils.memo(function () {
|
|
187
220
|
return [instance.getCenterHeaderGroups()];
|
|
188
221
|
}, function (headerGroups) {
|
|
189
222
|
return [].concat(headerGroups).reverse();
|
|
190
|
-
},
|
|
223
|
+
}, {
|
|
224
|
+
key: 'getCenterFooterGroups',
|
|
225
|
+
debug: instance.options.debug
|
|
226
|
+
}),
|
|
191
227
|
getRightFooterGroups: utils.memo(function () {
|
|
192
228
|
return [instance.getRightHeaderGroups()];
|
|
193
229
|
}, function (headerGroups) {
|
|
194
230
|
return [].concat(headerGroups).reverse();
|
|
195
|
-
},
|
|
231
|
+
}, {
|
|
232
|
+
key: 'getRightFooterGroups',
|
|
233
|
+
debug: instance.options.debug
|
|
234
|
+
}),
|
|
196
235
|
// Flat Headers
|
|
197
236
|
getFlatHeaders: utils.memo(function () {
|
|
198
237
|
return [instance.getHeaderGroups()];
|
|
@@ -200,28 +239,40 @@ function getInstance(instance) {
|
|
|
200
239
|
return headerGroups.map(function (headerGroup) {
|
|
201
240
|
return headerGroup.headers;
|
|
202
241
|
}).flat();
|
|
203
|
-
},
|
|
242
|
+
}, {
|
|
243
|
+
key: 'getFlatHeaders',
|
|
244
|
+
debug: instance.options.debug
|
|
245
|
+
}),
|
|
204
246
|
getLeftFlatHeaders: utils.memo(function () {
|
|
205
247
|
return [instance.getLeftHeaderGroups()];
|
|
206
248
|
}, function (left) {
|
|
207
249
|
return left.map(function (headerGroup) {
|
|
208
250
|
return headerGroup.headers;
|
|
209
251
|
}).flat();
|
|
210
|
-
},
|
|
252
|
+
}, {
|
|
253
|
+
key: 'getLeftFlatHeaders',
|
|
254
|
+
debug: instance.options.debug
|
|
255
|
+
}),
|
|
211
256
|
getCenterFlatHeaders: utils.memo(function () {
|
|
212
257
|
return [instance.getCenterHeaderGroups()];
|
|
213
258
|
}, function (left) {
|
|
214
259
|
return left.map(function (headerGroup) {
|
|
215
260
|
return headerGroup.headers;
|
|
216
261
|
}).flat();
|
|
217
|
-
},
|
|
262
|
+
}, {
|
|
263
|
+
key: 'getCenterFlatHeaders',
|
|
264
|
+
debug: instance.options.debug
|
|
265
|
+
}),
|
|
218
266
|
getRightFlatHeaders: utils.memo(function () {
|
|
219
267
|
return [instance.getRightHeaderGroups()];
|
|
220
268
|
}, function (left) {
|
|
221
269
|
return left.map(function (headerGroup) {
|
|
222
270
|
return headerGroup.headers;
|
|
223
271
|
}).flat();
|
|
224
|
-
},
|
|
272
|
+
}, {
|
|
273
|
+
key: 'getRightFlatHeaders',
|
|
274
|
+
debug: instance.options.debug
|
|
275
|
+
}),
|
|
225
276
|
// Leaf Headers
|
|
226
277
|
getCenterLeafHeaders: utils.memo(function () {
|
|
227
278
|
return [instance.getCenterFlatHeaders()];
|
|
@@ -231,7 +282,10 @@ function getInstance(instance) {
|
|
|
231
282
|
|
|
232
283
|
return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
|
|
233
284
|
});
|
|
234
|
-
},
|
|
285
|
+
}, {
|
|
286
|
+
key: 'getCenterLeafHeaders',
|
|
287
|
+
debug: instance.options.debug
|
|
288
|
+
}),
|
|
235
289
|
getLeftLeafHeaders: utils.memo(function () {
|
|
236
290
|
return [instance.getLeftFlatHeaders()];
|
|
237
291
|
}, function (flatHeaders) {
|
|
@@ -240,7 +294,10 @@ function getInstance(instance) {
|
|
|
240
294
|
|
|
241
295
|
return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
|
|
242
296
|
});
|
|
243
|
-
},
|
|
297
|
+
}, {
|
|
298
|
+
key: 'getLeftLeafHeaders',
|
|
299
|
+
debug: instance.options.debug
|
|
300
|
+
}),
|
|
244
301
|
getRightLeafHeaders: utils.memo(function () {
|
|
245
302
|
return [instance.getRightFlatHeaders()];
|
|
246
303
|
}, function (flatHeaders) {
|
|
@@ -249,7 +306,10 @@ function getInstance(instance) {
|
|
|
249
306
|
|
|
250
307
|
return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
|
|
251
308
|
});
|
|
252
|
-
},
|
|
309
|
+
}, {
|
|
310
|
+
key: 'getRightLeafHeaders',
|
|
311
|
+
debug: instance.options.debug
|
|
312
|
+
}),
|
|
253
313
|
getLeafHeaders: utils.memo(function () {
|
|
254
314
|
return [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()];
|
|
255
315
|
}, function (left, center, right) {
|
|
@@ -258,7 +318,10 @@ function getInstance(instance) {
|
|
|
258
318
|
return [].concat((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : [], (_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : [], (_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : []).map(function (header) {
|
|
259
319
|
return header.getLeafHeaders();
|
|
260
320
|
}).flat();
|
|
261
|
-
},
|
|
321
|
+
}, {
|
|
322
|
+
key: 'getLeafHeaders',
|
|
323
|
+
debug: instance.options.debug
|
|
324
|
+
}),
|
|
262
325
|
getHeader: function getHeader(id) {
|
|
263
326
|
var header = [].concat(instance.getFlatHeaders(), instance.getCenterFlatHeaders(), instance.getLeftFlatHeaders(), instance.getRightFlatHeaders()).find(function (d) {
|
|
264
327
|
return d.id === id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nimport * as ColumnSizing from './ColumnSizing'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n 'row._getAllVisibleCells',\n instance.options.debug\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n 'row.getVisibleCells',\n instance.options.debug\n ),\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 = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n 'row.getCenterVisibleCells',\n instance.options.debug\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\n return cells\n },\n 'row.getLeftVisibleCells',\n instance.options.debug\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\n return cells\n },\n 'row.getRightVisibleCells',\n instance.options.debug\n ),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () => flexRender(column.header, { header, column }),\n renderFooter: () => flexRender(column.footer, { header, column }),\n }\n\n header = Object.assign(\n header,\n ColumnSizing.createHeader(\n header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n )\n )\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\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 = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n 'getHeaderGroups',\n instance.options.debug\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 'getCenterHeaderGroups',\n instance.options.debug\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n 'getLeftHeaderGroups',\n instance.options.debug\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n 'getRightHeaderGroups',\n instance.options.debug\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getFooterGroups',\n instance.options.debug\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getLeftFooterGroups',\n instance.options.debug\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getCenterFooterGroups',\n instance.options.debug\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getRightFooterGroups',\n instance.options.debug\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 'getFlatHeaders',\n instance.options.debug\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 'getLeftFlatHeaders',\n instance.options.debug\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 'getCenterFlatHeaders',\n instance.options.debug\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 'getRightFlatHeaders',\n instance.options.debug\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getCenterLeafHeaders',\n instance.options.debug\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getLeftLeafHeaders',\n instance.options.debug\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getRightLeafHeaders',\n instance.options.debug\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 'getLeafHeaders',\n instance.options.debug\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 getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\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 = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\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 const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\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 = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\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":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","options","debug","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","Object","assign","ColumnSizing","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","key","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nimport * as ColumnSizing from './ColumnSizing'\nimport * as Sorting from './Sorting'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n { key: 'row._getAllVisibleCells', debug: instance.options.debug }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n { key: 'row.getVisibleCells', debug: instance.options.debug }\n ),\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 = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n { key: 'row.getCenterVisibleCells', debug: instance.options.debug }\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\n return cells\n },\n { key: 'row.getLeftVisibleCells', debug: instance.options.debug }\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\n return cells\n },\n { key: 'row.getRightVisibleCells', debug: instance.options.debug }\n ),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () =>\n flexRender(column.header, { instance, header, column }),\n renderFooter: () =>\n flexRender(column.footer, { instance, header, column }),\n }\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\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 = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n { key: 'getHeaderGroups', debug: instance.options.debug }\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 { key: 'getCenterHeaderGroups', debug: instance.options.debug }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n { key: 'getLeftHeaderGroups', debug: instance.options.debug }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n { key: 'getRightHeaderGroups', debug: instance.options.debug }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getFooterGroups', debug: instance.options.debug }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getLeftFooterGroups', debug: instance.options.debug }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getCenterFooterGroups', debug: instance.options.debug }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getRightFooterGroups', debug: instance.options.debug }\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 { key: 'getFlatHeaders', debug: instance.options.debug }\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 { key: 'getLeftFlatHeaders', debug: instance.options.debug }\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 { key: 'getCenterFlatHeaders', debug: instance.options.debug }\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 { key: 'getRightFlatHeaders', debug: instance.options.debug }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getCenterLeafHeaders', debug: instance.options.debug }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getLeftLeafHeaders', debug: instance.options.debug }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getRightLeafHeaders', debug: instance.options.debug }\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 { key: 'getLeafHeaders', debug: instance.options.debug }\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 getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\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 = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\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 const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\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 = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\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":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","key","debug","options","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
|
|
@@ -73,7 +73,10 @@ function getInstance(instance) {
|
|
|
73
73
|
|
|
74
74
|
return Grouping.orderColumns(orderedColumns, grouping, groupedColumnMode);
|
|
75
75
|
};
|
|
76
|
-
},
|
|
76
|
+
}, {
|
|
77
|
+
key: 'getOrderColumnsFn',
|
|
78
|
+
debug: instance.options.debug
|
|
79
|
+
})
|
|
77
80
|
};
|
|
78
81
|
}
|
|
79
82
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport { ReactTable, OnChangeFn, Updater, Column } from '../types'\n\nimport * as Grouping from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder:
|
|
1
|
+
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport { ReactTable, OnChangeFn, Updater, Column } from '../types'\n\nimport * as Grouping from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n}\n\n//\n\nexport function getInitialState(): ColumnOrderTableState {\n return {\n columnOrder: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderDefaultOptions {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnOrder)\n ),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\n },\n getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n { key: 'getOrderColumnsFn', debug: instance.options.debug }\n ),\n }\n}\n"],"names":["getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","functionalUpdate","getState","resetColumnOrder","initialState","getOrderColumnsFn","memo","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","key","debug"],"mappings":";;;;;;;;;;;;;;;;;AAkCA;AAEO,SAASA,eAAT,GAAkD;AACvD,SAAO;AACLC,IAAAA,WAAW,EAAE;AADR,GAAP;AAGD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQsB;AAC3B,SAAO;AACLC,IAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB;AADhC,GAAP;AAGD;AAEM,SAASG,WAAT,CAOLH,QAPK,EAcL;AACA,SAAO;AACLI,IAAAA,cAAc,EAAE,wBAAAC,OAAO;AAAA,aACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,oBACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CACEI,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUL,QAAQ,CAACQ,QAAT,GAAoBV,WAA9B,CAFlB,CADqB;AAAA,KADlB;AAMLW,IAAAA,gBAAgB,EAAE,4BAAM;AAAA;;AACtBT,MAAAA,QAAQ,CAACI,cAAT,0BAAwBJ,QAAQ,CAACU,YAAT,CAAsBZ,WAA9C,oCAA6D,EAA7D;AACD,KARI;AASLa,IAAAA,iBAAiB,EAAEC,UAAI,CACrB;AAAA,aAAM,CACJZ,QAAQ,CAACQ,QAAT,GAAoBV,WADhB,EAEJE,QAAQ,CAACQ,QAAT,GAAoBK,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CAAN;AAAA,KADqB,EAMrB,UAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB;AAAA,aAA8C,UAAAC,OAAO,EAAI;AACvD;AACA;AACA,YAAIC,cAMD,GAAG,EANN,CAHuD;;AAYvD,YAAI,EAAClB,WAAD,YAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,UAAAA,cAAc,GAAGD,OAAjB;AACD,SAFD,MAEO;AACL,cAAMG,eAAe,aAAOpB,WAAP,CAArB,CADK;;AAIL,cAAMqB,WAAW,aAAOJ,OAAP,CAAjB,CAJK;AAQL;;AARK;AAUH,gBAAMK,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB;AACA,gBAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjB,UAAAC,CAAC;AAAA,qBAAIA,CAAC,CAACC,EAAF,KAASL,cAAb;AAAA,aADgB,CAAnB;;AAGA,gBAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,cAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,EAAkC,CAAlC,CAApB;AACD;AAhBE;;AASL,iBAAOH,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AAAA;AAQpD,WAjBI;;;AAoBLD,UAAAA,cAAc,aAAOA,cAAP,EAA0BG,WAA1B,CAAd;AACD;;AAED,eAAOS,qBAAA,CACLZ,cADK,EAELH,QAFK,EAGLC,iBAHK,CAAP;AAKD,OA1CD;AAAA,KANqB,EAiDrB;AAAEe,MAAAA,GAAG,EAAE,mBAAP;AAA4BC,MAAAA,KAAK,EAAE9B,QAAQ,CAACM,OAAT,CAAiBwB;AAApD,KAjDqB;AATlB,GAAP;AA6DD;;;;;;"}
|