@tanstack/table-core 8.9.11 → 8.10.1
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/lib/core/table.d.ts +1 -1
- package/build/lib/core/table.js +2 -2
- package/build/lib/core/table.js.map +1 -1
- package/build/lib/features/Expanding.d.ts +1 -0
- package/build/lib/features/Expanding.js +9 -0
- package/build/lib/features/Expanding.js.map +1 -1
- package/build/lib/features/Pinning.d.ts +33 -1
- package/build/lib/features/Pinning.js +132 -9
- package/build/lib/features/Pinning.js.map +1 -1
- package/build/lib/index.esm.js +143 -11
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +143 -11
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/types.d.ts +6 -6
- package/build/umd/index.development.js +143 -11
- 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/table.ts +11 -7
- package/src/features/Expanding.ts +12 -0
- package/src/features/Pinning.ts +194 -12
- package/src/types.ts +9 -0
|
@@ -45,7 +45,7 @@ export interface CoreInstance<TData extends RowData> {
|
|
|
45
45
|
getCoreRowModel: () => RowModel<TData>;
|
|
46
46
|
_getCoreRowModel?: () => RowModel<TData>;
|
|
47
47
|
getRowModel: () => RowModel<TData>;
|
|
48
|
-
getRow: (id: string) => Row<TData>;
|
|
48
|
+
getRow: (id: string, searchAll?: boolean) => Row<TData>;
|
|
49
49
|
_getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>;
|
|
50
50
|
_getColumnDefs: () => ColumnDef<TData, unknown>[];
|
|
51
51
|
_getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>;
|
package/build/lib/core/table.js
CHANGED
|
@@ -114,8 +114,8 @@ function createTable(options) {
|
|
|
114
114
|
getRowModel: () => {
|
|
115
115
|
return table.getPaginationRowModel();
|
|
116
116
|
},
|
|
117
|
-
getRow: id => {
|
|
118
|
-
const row = table.getRowModel().rowsById[id];
|
|
117
|
+
getRow: (id, searchAll) => {
|
|
118
|
+
const row = (searchAll ? table.getCoreRowModel() : table.getRowModel()).rowsById[id];
|
|
119
119
|
if (!row) {
|
|
120
120
|
if (process.env.NODE_ENV !== 'production') {
|
|
121
121
|
throw new Error(`getRow expected an ID, but got ${id}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n ColumnDefResolved,\n GroupColumnDef,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport interface TableFeature {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport interface CoreTableState {}\n\nexport interface CoreOptions<TData extends RowData> {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport interface CoreInstance<TData extends RowData> {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown> | undefined\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => {\n const resolvedColumnDef = props.header.column\n .columnDef as ColumnDefResolved<TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n // footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n const groupingColumnDef = columnDef as GroupColumnDef<\n TData,\n unknown\n >\n\n column.columns = groupingColumnDef.columns\n ? recurseColumns(groupingColumnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`)\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index]\n feature?.createTable?.(table)\n }\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","_options$initialState","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","_feature$getInitialSt","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","_table$options$getRow","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","_defaultColumn","header","props","resolvedColumnDef","column","columnDef","accessorKey","accessorFn","cell","_props$renderValue$to","_props$renderValue","renderValue","toString","getDefaultColumnDef","debug","_table$options$debugA","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","createColumn","groupingColumnDef","_table$options$debugA2","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_table$options$debugA3","_getAllFlatColumnsById","flatColumns","acc","_table$options$debugA4","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","_table$options$debugA5","getColumn","columnId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n ColumnDefResolved,\n GroupColumnDef,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport interface TableFeature {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport interface CoreTableState {}\n\nexport interface CoreOptions<TData extends RowData> {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport interface CoreInstance<TData extends RowData> {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string, searchAll?: boolean) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown> | undefined\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string, searchAll?: boolean) => {\n const row = (searchAll ? table.getCoreRowModel() : table.getRowModel())\n .rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => {\n const resolvedColumnDef = props.header.column\n .columnDef as ColumnDefResolved<TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n // footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n const groupingColumnDef = columnDef as GroupColumnDef<\n TData,\n unknown\n >\n\n column.columns = groupingColumnDef.columns\n ? recurseColumns(groupingColumnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce(\n (acc, column) => {\n acc[column.id] = column\n return acc\n },\n {} as Record<string, Column<TData, unknown>>\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`)\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index]\n feature?.createTable?.(table)\n }\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","_options$initialState","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","_feature$getInitialSt","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","_table$options$getRow","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","searchAll","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","_defaultColumn","header","props","resolvedColumnDef","column","columnDef","accessorKey","accessorFn","cell","_props$renderValue$to","_props$renderValue","renderValue","toString","getDefaultColumnDef","debug","_table$options$debugA","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","createColumn","groupingColumnDef","_table$options$debugA2","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_table$options$debugA3","_getAllFlatColumnsById","flatColumns","acc","_table$options$debugA4","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","_table$options$debugA5","getColumn","columnId"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export interface ExpandedRow {
|
|
|
10
10
|
toggleExpanded: (expanded?: boolean) => void;
|
|
11
11
|
getIsExpanded: () => boolean;
|
|
12
12
|
getCanExpand: () => boolean;
|
|
13
|
+
getIsAllParentsExpanded: () => boolean;
|
|
13
14
|
getToggleExpandedHandler: () => () => void;
|
|
14
15
|
}
|
|
15
16
|
export interface ExpandedOptions<TData extends RowData> {
|
|
@@ -152,6 +152,15 @@ const Expanding = {
|
|
|
152
152
|
var _table$options$getRow, _table$options$enable, _row$subRows;
|
|
153
153
|
return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
|
|
154
154
|
};
|
|
155
|
+
row.getIsAllParentsExpanded = () => {
|
|
156
|
+
let isFullyExpanded = true;
|
|
157
|
+
let currentRow = row;
|
|
158
|
+
while (isFullyExpanded && currentRow.parentId) {
|
|
159
|
+
currentRow = table.getRow(currentRow.parentId, true);
|
|
160
|
+
isFullyExpanded = currentRow.getIsExpanded();
|
|
161
|
+
}
|
|
162
|
+
return isFullyExpanded;
|
|
163
|
+
};
|
|
155
164
|
row.getToggleExpandedHandler = () => {
|
|
156
165
|
const canExpand = row.getCanExpand();
|
|
157
166
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n let registered = false\n let queued = false\n\n table._autoResetExpanded = () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n }\n table.setExpanded = updater => table.options.onExpandedChange?.(updater)\n table.toggleAllRowsExpanded = expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n }\n table.resetExpanded = defaultState => {\n table.setExpanded(defaultState ? {} : table.initialState?.expanded ?? {})\n }\n table.getCanSomeRowsExpand = () => {\n return table\n .getPrePaginationRowModel()\n .flatRows.some(row => row.getCanExpand())\n }\n table.getToggleAllRowsExpandedHandler = () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n }\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n }\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n }\n table.getExpandedDepth = () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n }\n table.getPreExpandedRowModel = () => table.getSortedRowModel()\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n }\n row.getIsExpanded = () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n }\n row.getCanExpand = () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n }\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","_table$initialState$e","_table$initialState","initialState","getCanSomeRowsExpand","getPrePaginationRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getRowModel","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","_expanded","exists","oldExpanded","rowId","_","rest","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_table$options$enable","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getIsAllParentsExpanded: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n let registered = false\n let queued = false\n\n table._autoResetExpanded = () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n }\n table.setExpanded = updater => table.options.onExpandedChange?.(updater)\n table.toggleAllRowsExpanded = expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n }\n table.resetExpanded = defaultState => {\n table.setExpanded(defaultState ? {} : table.initialState?.expanded ?? {})\n }\n table.getCanSomeRowsExpand = () => {\n return table\n .getPrePaginationRowModel()\n .flatRows.some(row => row.getCanExpand())\n }\n table.getToggleAllRowsExpandedHandler = () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n }\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n }\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n }\n table.getExpandedDepth = () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n }\n table.getPreExpandedRowModel = () => table.getSortedRowModel()\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n }\n row.getIsExpanded = () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n }\n row.getCanExpand = () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n }\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true)\n isFullyExpanded = currentRow.getIsExpanded()\n }\n\n return isFullyExpanded\n }\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","_table$initialState$e","_table$initialState","initialState","getCanSomeRowsExpand","getPrePaginationRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getRowModel","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","_expanded","exists","oldExpanded","rowId","_","rest","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_table$options$enable","_row$subRows","getRowCanExpand","enableExpanding","subRows","getIsAllParentsExpanded","isFullyExpanded","currentRow","parentId","getRow","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
@@ -1,20 +1,37 @@
|
|
|
1
1
|
import { TableFeature } from '../core/table';
|
|
2
|
-
import { OnChangeFn, Updater, Column, Cell, RowData } from '../types';
|
|
2
|
+
import { OnChangeFn, Updater, Column, Row, Cell, RowData } from '../types';
|
|
3
3
|
export type ColumnPinningPosition = false | 'left' | 'right';
|
|
4
|
+
export type RowPinningPosition = false | 'top' | 'bottom';
|
|
4
5
|
export interface ColumnPinningState {
|
|
5
6
|
left?: string[];
|
|
6
7
|
right?: string[];
|
|
7
8
|
}
|
|
9
|
+
export interface RowPinningState {
|
|
10
|
+
top?: string[];
|
|
11
|
+
bottom?: string[];
|
|
12
|
+
}
|
|
8
13
|
export interface ColumnPinningTableState {
|
|
9
14
|
columnPinning: ColumnPinningState;
|
|
10
15
|
}
|
|
16
|
+
export interface RowPinningTableState {
|
|
17
|
+
rowPinning: RowPinningState;
|
|
18
|
+
}
|
|
11
19
|
export interface ColumnPinningOptions {
|
|
12
20
|
onColumnPinningChange?: OnChangeFn<ColumnPinningState>;
|
|
13
21
|
enablePinning?: boolean;
|
|
22
|
+
enableColumnPinning?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface RowPinningOptions<TData extends RowData> {
|
|
25
|
+
onRowPinningChange?: OnChangeFn<RowPinningState>;
|
|
26
|
+
enableRowPinning?: boolean | ((row: Row<TData>) => boolean);
|
|
27
|
+
keepPinnedRows?: boolean;
|
|
14
28
|
}
|
|
15
29
|
export interface ColumnPinningDefaultOptions {
|
|
16
30
|
onColumnPinningChange: OnChangeFn<ColumnPinningState>;
|
|
17
31
|
}
|
|
32
|
+
export interface RowPinningDefaultOptions {
|
|
33
|
+
onRowPinningChange: OnChangeFn<RowPinningState>;
|
|
34
|
+
}
|
|
18
35
|
export interface ColumnPinningColumnDef {
|
|
19
36
|
enablePinning?: boolean;
|
|
20
37
|
}
|
|
@@ -29,6 +46,12 @@ export interface ColumnPinningRow<TData extends RowData> {
|
|
|
29
46
|
getCenterVisibleCells: () => Cell<TData, unknown>[];
|
|
30
47
|
getRightVisibleCells: () => Cell<TData, unknown>[];
|
|
31
48
|
}
|
|
49
|
+
export interface RowPinningRow {
|
|
50
|
+
getCanPin: () => boolean;
|
|
51
|
+
getIsPinned: () => RowPinningPosition;
|
|
52
|
+
getPinnedIndex: () => number;
|
|
53
|
+
pin: (position: RowPinningPosition, includeLeafRows?: boolean, includeParentRows?: boolean) => void;
|
|
54
|
+
}
|
|
32
55
|
export interface ColumnPinningInstance<TData extends RowData> {
|
|
33
56
|
setColumnPinning: (updater: Updater<ColumnPinningState>) => void;
|
|
34
57
|
resetColumnPinning: (defaultState?: boolean) => void;
|
|
@@ -37,4 +60,13 @@ export interface ColumnPinningInstance<TData extends RowData> {
|
|
|
37
60
|
getRightLeafColumns: () => Column<TData, unknown>[];
|
|
38
61
|
getCenterLeafColumns: () => Column<TData, unknown>[];
|
|
39
62
|
}
|
|
63
|
+
export interface RowPinningInstance<TData extends RowData> {
|
|
64
|
+
setRowPinning: (updater: Updater<RowPinningState>) => void;
|
|
65
|
+
resetRowPinning: (defaultState?: boolean) => void;
|
|
66
|
+
getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean;
|
|
67
|
+
_getPinnedRows: (position: 'top' | 'bottom') => Row<TData>[];
|
|
68
|
+
getTopRows: () => Row<TData>[];
|
|
69
|
+
getBottomRows: () => Row<TData>[];
|
|
70
|
+
getCenterRows: () => Row<TData>[];
|
|
71
|
+
}
|
|
40
72
|
export declare const Pinning: TableFeature;
|
|
@@ -16,20 +16,26 @@ var utils = require('../utils.js');
|
|
|
16
16
|
|
|
17
17
|
//
|
|
18
18
|
|
|
19
|
-
const
|
|
19
|
+
const getDefaultColumnPinningState = () => ({
|
|
20
20
|
left: [],
|
|
21
21
|
right: []
|
|
22
22
|
});
|
|
23
|
+
const getDefaultRowPinningState = () => ({
|
|
24
|
+
top: [],
|
|
25
|
+
bottom: []
|
|
26
|
+
});
|
|
23
27
|
const Pinning = {
|
|
24
28
|
getInitialState: state => {
|
|
25
29
|
return {
|
|
26
|
-
columnPinning:
|
|
30
|
+
columnPinning: getDefaultColumnPinningState(),
|
|
31
|
+
rowPinning: getDefaultRowPinningState(),
|
|
27
32
|
...state
|
|
28
33
|
};
|
|
29
34
|
},
|
|
30
35
|
getDefaultOptions: table => {
|
|
31
36
|
return {
|
|
32
|
-
onColumnPinningChange: utils.makeStateUpdater('columnPinning', table)
|
|
37
|
+
onColumnPinningChange: utils.makeStateUpdater('columnPinning', table),
|
|
38
|
+
onRowPinningChange: utils.makeStateUpdater('rowPinning', table)
|
|
33
39
|
};
|
|
34
40
|
},
|
|
35
41
|
createColumn: (column, table) => {
|
|
@@ -60,8 +66,8 @@ const Pinning = {
|
|
|
60
66
|
column.getCanPin = () => {
|
|
61
67
|
const leafColumns = column.getLeafColumns();
|
|
62
68
|
return leafColumns.some(d => {
|
|
63
|
-
var _d$columnDef$enablePi, _table$options$enable;
|
|
64
|
-
return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.
|
|
69
|
+
var _d$columnDef$enablePi, _ref, _table$options$enable;
|
|
70
|
+
return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);
|
|
65
71
|
});
|
|
66
72
|
};
|
|
67
73
|
column.getIsPinned = () => {
|
|
@@ -81,11 +87,80 @@ const Pinning = {
|
|
|
81
87
|
};
|
|
82
88
|
},
|
|
83
89
|
createRow: (row, table) => {
|
|
90
|
+
row.pin = (position, includeLeafRows, includeParentRows) => {
|
|
91
|
+
const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref2 => {
|
|
92
|
+
let {
|
|
93
|
+
id
|
|
94
|
+
} = _ref2;
|
|
95
|
+
return id;
|
|
96
|
+
}) : [];
|
|
97
|
+
const parentRowIds = includeParentRows ? row.getParentRows().map(_ref3 => {
|
|
98
|
+
let {
|
|
99
|
+
id
|
|
100
|
+
} = _ref3;
|
|
101
|
+
return id;
|
|
102
|
+
}) : [];
|
|
103
|
+
const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);
|
|
104
|
+
table.setRowPinning(old => {
|
|
105
|
+
var _old$top3, _old$bottom3;
|
|
106
|
+
if (position === 'bottom') {
|
|
107
|
+
var _old$top, _old$bottom;
|
|
108
|
+
return {
|
|
109
|
+
top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),
|
|
110
|
+
bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
if (position === 'top') {
|
|
114
|
+
var _old$top2, _old$bottom2;
|
|
115
|
+
return {
|
|
116
|
+
top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],
|
|
117
|
+
bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),
|
|
122
|
+
bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
row.getCanPin = () => {
|
|
127
|
+
var _ref4;
|
|
128
|
+
const {
|
|
129
|
+
enableRowPinning,
|
|
130
|
+
enablePinning
|
|
131
|
+
} = table.options;
|
|
132
|
+
if (typeof enableRowPinning === 'function') {
|
|
133
|
+
return enableRowPinning(row);
|
|
134
|
+
}
|
|
135
|
+
return (_ref4 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref4 : true;
|
|
136
|
+
};
|
|
137
|
+
row.getIsPinned = () => {
|
|
138
|
+
const rowIds = [row.id];
|
|
139
|
+
const {
|
|
140
|
+
top,
|
|
141
|
+
bottom
|
|
142
|
+
} = table.getState().rowPinning;
|
|
143
|
+
const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));
|
|
144
|
+
const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));
|
|
145
|
+
return isTop ? 'top' : isBottom ? 'bottom' : false;
|
|
146
|
+
};
|
|
147
|
+
row.getPinnedIndex = () => {
|
|
148
|
+
var _table$_getPinnedRows, _visiblePinnedRowIds$;
|
|
149
|
+
const position = row.getIsPinned();
|
|
150
|
+
if (!position) return -1;
|
|
151
|
+
const visiblePinnedRowIds = (_table$_getPinnedRows = table._getPinnedRows(position)) == null ? void 0 : _table$_getPinnedRows.map(_ref5 => {
|
|
152
|
+
let {
|
|
153
|
+
id
|
|
154
|
+
} = _ref5;
|
|
155
|
+
return id;
|
|
156
|
+
});
|
|
157
|
+
return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;
|
|
158
|
+
};
|
|
84
159
|
row.getCenterVisibleCells = utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {
|
|
85
160
|
const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
|
|
86
161
|
return allCells.filter(d => !leftAndRight.includes(d.column.id));
|
|
87
162
|
}, {
|
|
88
|
-
key: process.env.NODE_ENV === '
|
|
163
|
+
key: process.env.NODE_ENV === 'development' && 'row.getCenterVisibleCells',
|
|
89
164
|
debug: () => {
|
|
90
165
|
var _table$options$debugA;
|
|
91
166
|
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;
|
|
@@ -98,7 +173,7 @@ const Pinning = {
|
|
|
98
173
|
}));
|
|
99
174
|
return cells;
|
|
100
175
|
}, {
|
|
101
|
-
key: process.env.NODE_ENV === '
|
|
176
|
+
key: process.env.NODE_ENV === 'development' && 'row.getLeftVisibleCells',
|
|
102
177
|
debug: () => {
|
|
103
178
|
var _table$options$debugA2;
|
|
104
179
|
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;
|
|
@@ -111,7 +186,7 @@ const Pinning = {
|
|
|
111
186
|
}));
|
|
112
187
|
return cells;
|
|
113
188
|
}, {
|
|
114
|
-
key: process.env.NODE_ENV === '
|
|
189
|
+
key: process.env.NODE_ENV === 'development' && 'row.getRightVisibleCells',
|
|
115
190
|
debug: () => {
|
|
116
191
|
var _table$options$debugA3;
|
|
117
192
|
return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;
|
|
@@ -122,7 +197,7 @@ const Pinning = {
|
|
|
122
197
|
table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);
|
|
123
198
|
table.resetColumnPinning = defaultState => {
|
|
124
199
|
var _table$initialState$c, _table$initialState;
|
|
125
|
-
return table.setColumnPinning(defaultState ?
|
|
200
|
+
return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());
|
|
126
201
|
};
|
|
127
202
|
table.getIsSomeColumnsPinned = position => {
|
|
128
203
|
var _pinningState$positio;
|
|
@@ -161,6 +236,54 @@ const Pinning = {
|
|
|
161
236
|
return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;
|
|
162
237
|
}
|
|
163
238
|
});
|
|
239
|
+
table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);
|
|
240
|
+
table.resetRowPinning = defaultState => {
|
|
241
|
+
var _table$initialState$r, _table$initialState2;
|
|
242
|
+
return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState2 = table.initialState) == null ? void 0 : _table$initialState2.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());
|
|
243
|
+
};
|
|
244
|
+
table.getIsSomeRowsPinned = position => {
|
|
245
|
+
var _pinningState$positio2;
|
|
246
|
+
const pinningState = table.getState().rowPinning;
|
|
247
|
+
if (!position) {
|
|
248
|
+
var _pinningState$top, _pinningState$bottom;
|
|
249
|
+
return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));
|
|
250
|
+
}
|
|
251
|
+
return Boolean((_pinningState$positio2 = pinningState[position]) == null ? void 0 : _pinningState$positio2.length);
|
|
252
|
+
};
|
|
253
|
+
table._getPinnedRows = position => utils.memo(() => [table.getRowModel().rows, table.getState().rowPinning[position]], (visibleRows, pinnedRowIds) => {
|
|
254
|
+
var _table$options$keepPi;
|
|
255
|
+
const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?
|
|
256
|
+
//get all rows that are pinned even if they would not be otherwise visible
|
|
257
|
+
//account for expanded parent rows, but not pagination or filtering
|
|
258
|
+
(pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {
|
|
259
|
+
const row = table.getRow(rowId, true);
|
|
260
|
+
return row.getIsAllParentsExpanded() ? row : null;
|
|
261
|
+
}) :
|
|
262
|
+
//else get only visible rows that are pinned
|
|
263
|
+
(pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));
|
|
264
|
+
return rows.filter(Boolean).map(d => ({
|
|
265
|
+
...d,
|
|
266
|
+
position
|
|
267
|
+
}));
|
|
268
|
+
}, {
|
|
269
|
+
key: process.env.NODE_ENV === 'development' && `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,
|
|
270
|
+
debug: () => {
|
|
271
|
+
var _table$options$debugA7;
|
|
272
|
+
return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugRows;
|
|
273
|
+
}
|
|
274
|
+
})();
|
|
275
|
+
table.getTopRows = () => table._getPinnedRows('top');
|
|
276
|
+
table.getBottomRows = () => table._getPinnedRows('bottom');
|
|
277
|
+
table.getCenterRows = utils.memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {
|
|
278
|
+
const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);
|
|
279
|
+
return allRows.filter(d => !topAndBottom.has(d.id));
|
|
280
|
+
}, {
|
|
281
|
+
key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',
|
|
282
|
+
debug: () => {
|
|
283
|
+
var _table$options$debugA8;
|
|
284
|
+
return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugRows;
|
|
285
|
+
}
|
|
286
|
+
});
|
|
164
287
|
}
|
|
165
288
|
};
|
|
166
289
|
|