@tanstack/table-core 8.11.8 → 8.12.0
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/cell.js +1 -4
- package/build/lib/core/cell.js.map +1 -1
- package/build/lib/core/column.js +2 -14
- package/build/lib/core/column.js.map +1 -1
- package/build/lib/core/headers.js +17 -112
- package/build/lib/core/headers.js.map +1 -1
- package/build/lib/core/row.js +2 -14
- package/build/lib/core/row.js.map +1 -1
- package/build/lib/core/table.d.ts +6 -0
- package/build/lib/core/table.js +5 -35
- package/build/lib/core/table.js.map +1 -1
- package/build/lib/features/ColumnSizing.d.ts +6 -2
- package/build/lib/features/ColumnSizing.js +3 -9
- package/build/lib/features/ColumnSizing.js.map +1 -1
- package/build/lib/features/Ordering.d.ts +21 -0
- package/build/lib/features/Ordering.js +15 -4
- package/build/lib/features/Ordering.js.map +1 -1
- package/build/lib/features/Pagination.js +1 -7
- package/build/lib/features/Pagination.js.map +1 -1
- package/build/lib/features/Pinning.js +9 -57
- package/build/lib/features/Pinning.js.map +1 -1
- package/build/lib/features/RowSelection.js +3 -21
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/features/Visibility.d.ts +3 -1
- package/build/lib/features/Visibility.js +7 -21
- package/build/lib/features/Visibility.js.map +1 -1
- package/build/lib/index.esm.js +89 -382
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.js +2 -0
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +89 -382
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/types.d.ts +2 -2
- package/build/lib/utils/getCoreRowModel.js +1 -10
- package/build/lib/utils/getCoreRowModel.js.map +1 -1
- package/build/lib/utils/getExpandedRowModel.js +1 -7
- package/build/lib/utils/getExpandedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedMinMaxValues.js +1 -8
- package/build/lib/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/lib/utils/getFacetedRowModel.js +1 -8
- package/build/lib/utils/getFacetedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedUniqueValues.js +1 -8
- package/build/lib/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/lib/utils/getFilteredRowModel.js +1 -10
- package/build/lib/utils/getFilteredRowModel.js.map +1 -1
- package/build/lib/utils/getGroupedRowModel.js +6 -13
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/lib/utils/getPaginationRowModel.js +1 -7
- package/build/lib/utils/getPaginationRowModel.js.map +1 -1
- package/build/lib/utils/getSortedRowModel.js +1 -10
- package/build/lib/utils/getSortedRowModel.js.map +1 -1
- package/build/lib/utils.d.ts +8 -3
- package/build/lib/utils.js +13 -2
- package/build/lib/utils.js.map +1 -1
- package/build/umd/index.development.js +90 -381
- 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/cell.ts +2 -5
- package/src/core/column.ts +3 -9
- package/src/core/headers.ts +19 -65
- package/src/core/row.ts +3 -10
- package/src/core/table.ts +12 -21
- package/src/features/ColumnSizing.ts +33 -20
- package/src/features/Ordering.ts +74 -35
- package/src/features/Pagination.ts +7 -5
- package/src/features/Pinning.ts +34 -60
- package/src/features/RowSelection.ts +4 -16
- package/src/features/Visibility.ts +18 -13
- package/src/types.ts +3 -1
- package/src/utils/getCoreRowModel.ts +4 -8
- package/src/utils/getExpandedRowModel.ts +2 -5
- package/src/utils/getFacetedMinMaxValues.ts +2 -8
- package/src/utils/getFacetedRowModel.ts +2 -8
- package/src/utils/getFacetedUniqueValues.ts +6 -8
- package/src/utils/getFilteredRowModel.ts +4 -8
- package/src/utils/getGroupedRowModel.ts +7 -11
- package/src/utils/getPaginationRowModel.ts +2 -5
- package/src/utils/getSortedRowModel.ts +4 -8
- package/src/utils.ts +25 -6
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
var utils = require('../utils.js');
|
|
14
14
|
var Grouping = require('./Grouping.js');
|
|
15
|
+
var Visibility = require('./Visibility.js');
|
|
15
16
|
|
|
16
17
|
//
|
|
17
18
|
|
|
@@ -27,6 +28,19 @@ const Ordering = {
|
|
|
27
28
|
onColumnOrderChange: utils.makeStateUpdater('columnOrder', table)
|
|
28
29
|
};
|
|
29
30
|
},
|
|
31
|
+
createColumn: (column, table) => {
|
|
32
|
+
column.getIndex = utils.memo(position => [Visibility._getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), utils.getMemoOptions(table.options, 'debugColumns', 'getIndex'));
|
|
33
|
+
column.getIsFirstColumn = position => {
|
|
34
|
+
var _columns$;
|
|
35
|
+
const columns = Visibility._getVisibleLeafColumns(table, position);
|
|
36
|
+
return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;
|
|
37
|
+
};
|
|
38
|
+
column.getIsLastColumn = position => {
|
|
39
|
+
var _columns;
|
|
40
|
+
const columns = Visibility._getVisibleLeafColumns(table, position);
|
|
41
|
+
return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;
|
|
42
|
+
};
|
|
43
|
+
},
|
|
30
44
|
createTable: table => {
|
|
31
45
|
table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);
|
|
32
46
|
table.resetColumnOrder = defaultState => {
|
|
@@ -62,10 +76,7 @@ const Ordering = {
|
|
|
62
76
|
orderedColumns = [...orderedColumns, ...columnsCopy];
|
|
63
77
|
}
|
|
64
78
|
return Grouping.orderColumns(orderedColumns, grouping, groupedColumnMode);
|
|
65
|
-
},
|
|
66
|
-
key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'
|
|
67
|
-
// debug: () => table.options.debugAll ?? table.options.debugTable,
|
|
68
|
-
});
|
|
79
|
+
}, utils.getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));
|
|
69
80
|
}
|
|
70
81
|
};
|
|
71
82
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n /**\n * If provided, this function will be called with an `updaterFn` when `state.columnOrder` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#oncolumnorderchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n /**\n * Resets the **columnOrder** state to `initialState.columnOrder`, or `true` can be passed to force a default blank state reset to `[]`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#resetcolumnorder)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n resetColumnOrder: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.columnOrder` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#setcolumnorder)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.setColumnOrder = updater =>\n table.options.onColumnOrderChange?.(updater)\n table.resetColumnOrder = defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n }\n table._getOrderColumnsFn = memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode)
|
|
1
|
+
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { getMemoOptions, makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\nimport { ColumnPinningPosition, _getVisibleLeafColumns } from '..'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n /**\n * If provided, this function will be called with an `updaterFn` when `state.columnOrder` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#oncolumnorderchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderColumn {\n /**\n * Returns the index of the column in the order of the visible columns. Optionally pass a `position` parameter to get the index of the column in a sub-section of the table\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#getindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n getIndex: (position?: ColumnPinningPosition | 'center') => number\n /**\n * Returns `true` if the column is the first column in the order of the visible columns. Optionally pass a `position` parameter to check if the column is the first in a sub-section of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#getisfirstcolumn)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n getIsFirstColumn: (position?: ColumnPinningPosition | 'center') => boolean\n /**\n * Returns `true` if the column is the last column in the order of the visible columns. Optionally pass a `position` parameter to check if the column is the last in a sub-section of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#getislastcolumn)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n getIsLastColumn: (position?: ColumnPinningPosition | 'center') => boolean\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n /**\n * Resets the **columnOrder** state to `initialState.columnOrder`, or `true` can be passed to force a default blank state reset to `[]`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#resetcolumnorder)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n resetColumnOrder: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.columnOrder` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-ordering#setcolumnorder)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-ordering)\n */\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): void => {\n column.getIndex = memo(\n position => [_getVisibleLeafColumns(table, position)],\n columns => columns.findIndex(d => d.id === column.id),\n getMemoOptions(table.options, 'debugColumns', 'getIndex')\n )\n column.getIsFirstColumn = position => {\n const columns = _getVisibleLeafColumns(table, position)\n return columns[0]?.id === column.id\n }\n column.getIsLastColumn = position => {\n const columns = _getVisibleLeafColumns(table, position)\n return columns[columns.length - 1]?.id === column.id\n }\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.setColumnOrder = updater =>\n table.options.onColumnOrderChange?.(updater)\n table.resetColumnOrder = defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n }\n table._getOrderColumnsFn = memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) =>\n (columns: Column<TData, unknown>[]) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn')\n )\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createColumn","column","getIndex","memo","position","_getVisibleLeafColumns","columns","findIndex","d","id","getMemoOptions","options","getIsFirstColumn","_columns$","getIsLastColumn","_columns","length","createTable","setColumnOrder","updater","resetColumnOrder","defaultState","_table$initialState$c","initialState","_getOrderColumnsFn","getState","grouping","groupedColumnMode","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","push","splice","orderColumns"],"mappings":"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"}
|
|
@@ -114,13 +114,7 @@ const Pagination = {
|
|
|
114
114
|
pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);
|
|
115
115
|
}
|
|
116
116
|
return pageOptions;
|
|
117
|
-
},
|
|
118
|
-
key: process.env.NODE_ENV === 'development' && 'getPageOptions',
|
|
119
|
-
debug: () => {
|
|
120
|
-
var _table$options$debugA;
|
|
121
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
122
|
-
}
|
|
123
|
-
});
|
|
117
|
+
}, utils.getMemoOptions(table.options, 'debugTable', 'getPageOptions'));
|
|
124
118
|
table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;
|
|
125
119
|
table.getCanNextPage = () => {
|
|
126
120
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n /**\n * If set to `true`, pagination will be reset to the first page when page-altering state changes eg. `data` is updated, filters change, grouping changes, etc.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#autoresetpageindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n autoResetPageIndex?: boolean\n /**\n * Returns the row model after pagination has taken place, but no further.\n *\n * Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpaginationrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n /**\n * Enables manual pagination. If this option is set to `true`, the table will not automatically paginate rows using `getPaginationRowModel()` and instead will expect you to manually paginate the rows before passing them to the table. This is useful if you are doing server-side pagination and aggregation.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#manualpagination)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n manualPagination?: boolean\n /**\n * If this function is provided, it will be called when the pagination state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.pagination` option.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#onpaginationchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n onPaginationChange?: OnChangeFn<PaginationState>\n /**\n * When manually controlling pagination, you should supply a total `pageCount` value to the table if you know it. If you do not know how many pages there are, you can set this to `-1`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#pagecount)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n pageCount?: number\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n _getPaginationRowModel?: () => RowModel<TData>\n /**\n * Returns whether the table can go to the next page.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getcannextpage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getCanNextPage: () => boolean\n /**\n * Returns whether the table can go to the previous page.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getcanpreviouspage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getCanPreviousPage: () => boolean\n /**\n * Returns the page count. If manually paginating or controlling the pagination state, this will come directly from the `options.pageCount` table option, otherwise it will be calculated from the table data using the total row count and current page size.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpagecount)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPageCount: () => number\n /**\n * Returns an array of page options (zero-index-based) for the current page size.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpageoptions)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPageOptions: () => number[]\n /**\n * Returns the row model for the table after pagination has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpaginationrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPaginationRowModel: () => RowModel<TData>\n /**\n * Returns the row model for the table before any pagination has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getprepaginationrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPrePaginationRowModel: () => RowModel<TData>\n /**\n * Increments the page index by one, if possible.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#nextpage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n nextPage: () => void\n /**\n * Decrements the page index by one, if possible.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#previouspage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n previousPage: () => void\n /**\n * Resets the page index to its initial state. If `defaultState` is `true`, the page index will be reset to `0` regardless of initial state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#resetpageindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n resetPageIndex: (defaultState?: boolean) => void\n /**\n * Resets the page size to its initial state. If `defaultState` is `true`, the page size will be reset to `10` regardless of initial state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#resetpagesize)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n resetPageSize: (defaultState?: boolean) => void\n /**\n * Resets the **pagination** state to `initialState.pagination`, or `true` can be passed to force a default blank state reset to `[]`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#resetpagination)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n resetPagination: (defaultState?: boolean) => void\n /**\n * Updates the page count using the provided function or value.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpagecount)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPageCount: (updater: Updater<number>) => void\n /**\n * Updates the page index using the provided function or value in the `state.pagination.pageIndex` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpageindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPageIndex: (updater: Updater<number>) => void\n /**\n * Updates the page size using the provided function or value in the `state.pagination.pageSize` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpagesize)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPageSize: (updater: Updater<number>) => void\n /**\n * Sets or updates the `state.pagination` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpagination)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPagination: (updater: Updater<PaginationState>) => void\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n let registered = false\n let queued = false\n\n table._autoResetPageIndex = () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n }\n table.setPagination = updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n }\n table.resetPagination = defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n }\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n }\n table.resetPageIndex = defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n }\n table.resetPageSize = defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n }\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n }\n table.setPageCount = updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n })\n\n table.getPageOptions = memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n )\n\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0\n\n table.getCanNextPage = () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n }\n\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1)\n }\n\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n }\n\n table.getPrePaginationRowModel = () => table.getExpandedRowModel()\n table.getPaginationRowModel = () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n }\n\n table.getPageCount = () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","resetPageSize","_table$initialState$p3","_table$initialState2","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport {\n functionalUpdate,\n getMemoOptions,\n makeStateUpdater,\n memo,\n} from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n /**\n * If set to `true`, pagination will be reset to the first page when page-altering state changes eg. `data` is updated, filters change, grouping changes, etc.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#autoresetpageindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n autoResetPageIndex?: boolean\n /**\n * Returns the row model after pagination has taken place, but no further.\n *\n * Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpaginationrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n /**\n * Enables manual pagination. If this option is set to `true`, the table will not automatically paginate rows using `getPaginationRowModel()` and instead will expect you to manually paginate the rows before passing them to the table. This is useful if you are doing server-side pagination and aggregation.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#manualpagination)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n manualPagination?: boolean\n /**\n * If this function is provided, it will be called when the pagination state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.pagination` option.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#onpaginationchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n onPaginationChange?: OnChangeFn<PaginationState>\n /**\n * When manually controlling pagination, you should supply a total `pageCount` value to the table if you know it. If you do not know how many pages there are, you can set this to `-1`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#pagecount)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n pageCount?: number\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n _getPaginationRowModel?: () => RowModel<TData>\n /**\n * Returns whether the table can go to the next page.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getcannextpage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getCanNextPage: () => boolean\n /**\n * Returns whether the table can go to the previous page.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getcanpreviouspage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getCanPreviousPage: () => boolean\n /**\n * Returns the page count. If manually paginating or controlling the pagination state, this will come directly from the `options.pageCount` table option, otherwise it will be calculated from the table data using the total row count and current page size.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpagecount)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPageCount: () => number\n /**\n * Returns an array of page options (zero-index-based) for the current page size.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpageoptions)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPageOptions: () => number[]\n /**\n * Returns the row model for the table after pagination has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getpaginationrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPaginationRowModel: () => RowModel<TData>\n /**\n * Returns the row model for the table before any pagination has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#getprepaginationrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n getPrePaginationRowModel: () => RowModel<TData>\n /**\n * Increments the page index by one, if possible.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#nextpage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n nextPage: () => void\n /**\n * Decrements the page index by one, if possible.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#previouspage)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n previousPage: () => void\n /**\n * Resets the page index to its initial state. If `defaultState` is `true`, the page index will be reset to `0` regardless of initial state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#resetpageindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n resetPageIndex: (defaultState?: boolean) => void\n /**\n * Resets the page size to its initial state. If `defaultState` is `true`, the page size will be reset to `10` regardless of initial state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#resetpagesize)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n resetPageSize: (defaultState?: boolean) => void\n /**\n * Resets the **pagination** state to `initialState.pagination`, or `true` can be passed to force a default blank state reset to `[]`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#resetpagination)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n resetPagination: (defaultState?: boolean) => void\n /**\n * Updates the page count using the provided function or value.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpagecount)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPageCount: (updater: Updater<number>) => void\n /**\n * Updates the page index using the provided function or value in the `state.pagination.pageIndex` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpageindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPageIndex: (updater: Updater<number>) => void\n /**\n * Updates the page size using the provided function or value in the `state.pagination.pageSize` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpagesize)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPageSize: (updater: Updater<number>) => void\n /**\n * Sets or updates the `state.pagination` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pagination#setpagination)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pagination)\n */\n setPagination: (updater: Updater<PaginationState>) => void\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n let registered = false\n let queued = false\n\n table._autoResetPageIndex = () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n }\n table.setPagination = updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n }\n table.resetPagination = defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n }\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n }\n table.resetPageIndex = defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n }\n table.resetPageSize = defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n }\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n }\n table.setPageCount = updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n })\n\n table.getPageOptions = memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n getMemoOptions(table.options, 'debugTable', 'getPageOptions')\n )\n\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0\n\n table.getCanNextPage = () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n }\n\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1)\n }\n\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n }\n\n table.getPrePaginationRowModel = () => table.getExpandedRowModel()\n table.getPaginationRowModel = () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n }\n\n table.getPageCount = () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","resetPageSize","_table$initialState$p3","_table$initialState2","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","getMemoOptions","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":"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"}
|
|
@@ -157,39 +157,21 @@ const Pinning = {
|
|
|
157
157
|
row.getCenterVisibleCells = utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {
|
|
158
158
|
const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
|
|
159
159
|
return allCells.filter(d => !leftAndRight.includes(d.column.id));
|
|
160
|
-
},
|
|
161
|
-
key: process.env.NODE_ENV === 'development' && 'row.getCenterVisibleCells',
|
|
162
|
-
debug: () => {
|
|
163
|
-
var _table$options$debugA;
|
|
164
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;
|
|
165
|
-
}
|
|
166
|
-
});
|
|
160
|
+
}, utils.getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));
|
|
167
161
|
row.getLeftVisibleCells = utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {
|
|
168
162
|
const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
|
|
169
163
|
...d,
|
|
170
164
|
position: 'left'
|
|
171
165
|
}));
|
|
172
166
|
return cells;
|
|
173
|
-
},
|
|
174
|
-
key: process.env.NODE_ENV === 'development' && 'row.getLeftVisibleCells',
|
|
175
|
-
debug: () => {
|
|
176
|
-
var _table$options$debugA2;
|
|
177
|
-
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;
|
|
178
|
-
}
|
|
179
|
-
});
|
|
167
|
+
}, utils.getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));
|
|
180
168
|
row.getRightVisibleCells = utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {
|
|
181
169
|
const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
|
|
182
170
|
...d,
|
|
183
171
|
position: 'right'
|
|
184
172
|
}));
|
|
185
173
|
return cells;
|
|
186
|
-
},
|
|
187
|
-
key: process.env.NODE_ENV === 'development' && 'row.getRightVisibleCells',
|
|
188
|
-
debug: () => {
|
|
189
|
-
var _table$options$debugA3;
|
|
190
|
-
return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;
|
|
191
|
-
}
|
|
192
|
-
});
|
|
174
|
+
}, utils.getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));
|
|
193
175
|
},
|
|
194
176
|
createTable: table => {
|
|
195
177
|
table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);
|
|
@@ -208,32 +190,14 @@ const Pinning = {
|
|
|
208
190
|
};
|
|
209
191
|
table.getLeftLeafColumns = utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {
|
|
210
192
|
return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
|
|
211
|
-
},
|
|
212
|
-
key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',
|
|
213
|
-
debug: () => {
|
|
214
|
-
var _table$options$debugA4;
|
|
215
|
-
return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;
|
|
216
|
-
}
|
|
217
|
-
});
|
|
193
|
+
}, utils.getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));
|
|
218
194
|
table.getRightLeafColumns = utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {
|
|
219
195
|
return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
|
|
220
|
-
},
|
|
221
|
-
key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',
|
|
222
|
-
debug: () => {
|
|
223
|
-
var _table$options$debugA5;
|
|
224
|
-
return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;
|
|
225
|
-
}
|
|
226
|
-
});
|
|
196
|
+
}, utils.getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));
|
|
227
197
|
table.getCenterLeafColumns = utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {
|
|
228
198
|
const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
|
|
229
199
|
return allColumns.filter(d => !leftAndRight.includes(d.id));
|
|
230
|
-
},
|
|
231
|
-
key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',
|
|
232
|
-
debug: () => {
|
|
233
|
-
var _table$options$debugA6;
|
|
234
|
-
return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;
|
|
235
|
-
}
|
|
236
|
-
});
|
|
200
|
+
}, utils.getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));
|
|
237
201
|
table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);
|
|
238
202
|
table.resetRowPinning = defaultState => {
|
|
239
203
|
var _table$initialState$r, _table$initialState2;
|
|
@@ -248,7 +212,7 @@ const Pinning = {
|
|
|
248
212
|
}
|
|
249
213
|
return Boolean((_pinningState$positio2 = pinningState[position]) == null ? void 0 : _pinningState$positio2.length);
|
|
250
214
|
};
|
|
251
|
-
table._getPinnedRows =
|
|
215
|
+
table._getPinnedRows = utils.memo(position => [table.getRowModel().rows, table.getState().rowPinning[position], position], (visibleRows, pinnedRowIds, position) => {
|
|
252
216
|
var _table$options$keepPi;
|
|
253
217
|
const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?
|
|
254
218
|
//get all rows that are pinned even if they would not be otherwise visible
|
|
@@ -263,25 +227,13 @@ const Pinning = {
|
|
|
263
227
|
...d,
|
|
264
228
|
position
|
|
265
229
|
}));
|
|
266
|
-
},
|
|
267
|
-
key: process.env.NODE_ENV === 'development' && `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,
|
|
268
|
-
debug: () => {
|
|
269
|
-
var _table$options$debugA7;
|
|
270
|
-
return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugRows;
|
|
271
|
-
}
|
|
272
|
-
})();
|
|
230
|
+
}, utils.getMemoOptions(table.options, 'debugRows', '_getPinnedRows'));
|
|
273
231
|
table.getTopRows = () => table._getPinnedRows('top');
|
|
274
232
|
table.getBottomRows = () => table._getPinnedRows('bottom');
|
|
275
233
|
table.getCenterRows = utils.memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {
|
|
276
234
|
const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);
|
|
277
235
|
return allRows.filter(d => !topAndBottom.has(d.id));
|
|
278
|
-
},
|
|
279
|
-
key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',
|
|
280
|
-
debug: () => {
|
|
281
|
-
var _table$options$debugA8;
|
|
282
|
-
return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugRows;
|
|
283
|
-
}
|
|
284
|
-
});
|
|
236
|
+
}, utils.getMemoOptions(table.options, 'debugRows', 'getCenterRows'));
|
|
285
237
|
}
|
|
286
238
|
};
|
|
287
239
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\nexport type RowPinningPosition = false | 'top' | 'bottom'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface RowPinningState {\n bottom?: string[]\n top?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface RowPinningTableState {\n rowPinning: RowPinningState\n}\n\nexport interface ColumnPinningOptions {\n /**\n * Enables/disables column pinning for the table. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablecolumnpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enableColumnPinning?: boolean\n /**\n * Enables/disables all pinning for the table. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablepinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enablePinning?: boolean\n /**\n * If provided, this function will be called with an `updaterFn` when `state.columnPinning` changes. This overrides the default internal state management, so you will also need to supply `state.columnPinning` from your own managed state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#oncolumnpinningchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/oncolumnpinningchange)\n */\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n}\n\nexport interface RowPinningOptions<TData extends RowData> {\n /**\n * Enables/disables row pinning for the table. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablerowpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enableRowPinning?: boolean | ((row: Row<TData>) => boolean)\n /**\n * When `false`, pinned rows will not be visible if they are filtered or paginated out of the table. When `true`, pinned rows will always be visible regardless of filtering or pagination. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#keeppinnedrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n keepPinnedRows?: boolean\n /**\n * If provided, this function will be called with an `updaterFn` when `state.rowPinning` changes. This overrides the default internal state management, so you will also need to supply `state.rowPinning` from your own managed state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#onrowpinningchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/onrowpinningchange)\n */\n onRowPinningChange?: OnChangeFn<RowPinningState>\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface RowPinningDefaultOptions {\n onRowPinningChange: OnChangeFn<RowPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n /**\n * Enables/disables column pinning for this column. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablepinning-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n /**\n * Returns whether or not the column can be pinned.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcanpin)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCanPin: () => boolean\n /**\n * Returns the pinned position of the column. (`'left'`, `'right'` or `false`)\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getispinned)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsPinned: () => ColumnPinningPosition\n /**\n * Returns the numeric pinned index of the column within a pinned column group.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getpinnedindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getPinnedIndex: () => number\n /**\n * Pins a column to the `'left'` or `'right'`, or unpins the column to the center if `false` is passed.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#pin)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n /**\n * Returns all center pinned (unpinned) leaf cells in the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcentervisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n /**\n * Returns all left pinned leaf cells in the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getleftvisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n /**\n * Returns all right pinned leaf cells in the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getrightvisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface RowPinningRow {\n /**\n * Returns whether or not the row can be pinned.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcanpin-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCanPin: () => boolean\n /**\n * Returns the pinned position of the row. (`'top'`, `'bottom'` or `false`)\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getispinned-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsPinned: () => RowPinningPosition\n /**\n * Returns the numeric pinned index of the row within a pinned row group.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getpinnedindex-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getPinnedIndex: () => number\n /**\n * Pins a row to the `'top'` or `'bottom'`, or unpins the row to the center if `false` is passed.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#pin-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n pin: (\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean\n ) => void\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n /**\n * Returns all center pinned (unpinned) leaf columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcenterleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCenterLeafColumns: () => Column<TData, unknown>[]\n /**\n * Returns whether or not any columns are pinned. Optionally specify to only check for pinned columns in either the `left` or `right` position.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getissomecolumnspinned)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n /**\n * Returns all left pinned leaf columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getleftleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getLeftLeafColumns: () => Column<TData, unknown>[]\n /**\n * Returns all right pinned leaf columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getrightleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getRightLeafColumns: () => Column<TData, unknown>[]\n /**\n * Resets the **columnPinning** state to `initialState.columnPinning`, or `true` can be passed to force a default blank state reset to `{ left: [], right: [], }`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#resetcolumnpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n resetColumnPinning: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.columnPinning` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#setcolumnpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n}\n\nexport interface RowPinningInstance<TData extends RowData> {\n _getPinnedRows: (position: 'top' | 'bottom') => Row<TData>[]\n /**\n * Returns all bottom pinned rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getbottomrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getBottomRows: () => Row<TData>[]\n /**\n * Returns all rows that are not pinned to the top or bottom.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcenterrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCenterRows: () => Row<TData>[]\n /**\n * Returns whether or not any rows are pinned. Optionally specify to only check for pinned rows in either the `top` or `bottom` position.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getissomerowspinned)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean\n /**\n * Returns all top pinned rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#gettoprows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getTopRows: () => Row<TData>[]\n /**\n * Resets the **rowPinning** state to `initialState.rowPinning`, or `true` can be passed to force a default blank state reset to `{ top: [], bottom: [], }`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#resetrowpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n resetRowPinning: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.rowPinning` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#setrowpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n setRowPinning: (updater: Updater<RowPinningState>) => void\n}\n\n//\n\nconst getDefaultColumnPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nconst getDefaultRowPinningState = (): RowPinningState => ({\n top: [],\n bottom: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState & RowPinningState => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n rowPinning: getDefaultRowPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions & RowPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n onRowPinningChange: makeStateUpdater('rowPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): void => {\n column.pin = position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n }\n\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enableColumnPinning ??\n table.options.enablePinning ??\n true)\n )\n }\n\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n }\n\n column.getPinnedIndex = () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table.setRowPinning(old => {\n if (position === 'bottom') {\n return {\n top: (old?.top ?? []).filter(d => !rowIds?.has(d)),\n bottom: [\n ...(old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [\n ...(old?.top ?? []).filter(d => !rowIds?.has(d)),\n ...Array.from(rowIds),\n ],\n bottom: (old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n }\n }\n\n return {\n top: (old?.top ?? []).filter(d => !rowIds?.has(d)),\n bottom: (old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n }\n })\n }\n row.getCanPin = () => {\n const { enableRowPinning, enablePinning } = table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? enablePinning ?? true\n }\n row.getIsPinned = () => {\n const rowIds = [row.id]\n\n const { top, bottom } = table.getState().rowPinning\n\n const isTop = rowIds.some(d => top?.includes(d))\n const isBottom = rowIds.some(d => bottom?.includes(d))\n\n return isTop ? 'top' : isBottom ? 'bottom' : false\n }\n row.getPinnedIndex = () => {\n const position = row.getIsPinned()\n if (!position) return -1\n\n const visiblePinnedRowIds = table\n ._getPinnedRows(position)\n ?.map(({ id }) => id)\n\n return visiblePinnedRowIds?.indexOf(row.id) ?? -1\n }\n row.getCenterVisibleCells = memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n row.getLeftVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.left, ,],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' }) as Cell<TData, unknown>)\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n row.getRightVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' }) as Cell<TData, unknown>)\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.setColumnPinning = updater =>\n table.options.onColumnPinningChange?.(updater)\n\n table.resetColumnPinning = defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultColumnPinningState()\n : table.initialState?.columnPinning ?? getDefaultColumnPinningState()\n )\n\n table.getIsSomeColumnsPinned = position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(pinningState.left?.length || pinningState.right?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table.getLeftLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.getRightLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.getCenterLeafColumns = memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.setRowPinning = updater => table.options.onRowPinningChange?.(updater)\n\n table.resetRowPinning = defaultState =>\n table.setRowPinning(\n defaultState\n ? getDefaultRowPinningState()\n : table.initialState?.rowPinning ?? getDefaultRowPinningState()\n )\n\n table.getIsSomeRowsPinned = position => {\n const pinningState = table.getState().rowPinning\n\n if (!position) {\n return Boolean(pinningState.top?.length || pinningState.bottom?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table._getPinnedRows = (position: 'top' | 'bottom') =>\n memo(\n () => [table.getRowModel().rows, table.getState().rowPinning[position]],\n (visibleRows, pinnedRowIds) => {\n const rows =\n table.options.keepPinnedRows ?? true\n ? //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds ?? []).map(rowId => {\n const row = table.getRow(rowId, true)\n return row.getIsAllParentsExpanded() ? row : null\n })\n : //else get only visible rows that are pinned\n (pinnedRowIds ?? []).map(\n rowId => visibleRows.find(row => row.id === rowId)!\n )\n\n return rows\n .filter(Boolean)\n .map(d => ({ ...d, position })) as Row<TData>[]\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )()\n\n table.getTopRows = () => table._getPinnedRows('top')\n\n table.getBottomRows = () => table._getPinnedRows('bottom')\n\n table.getCenterRows = memo(\n () => [\n table.getRowModel().rows,\n table.getState().rowPinning.top,\n table.getState().rowPinning.bottom,\n ],\n (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top ?? []), ...(bottom ?? [])])\n return allRows.filter(d => !topAndBottom.has(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n },\n}\n"],"names":["getDefaultColumnPinningState","left","right","getDefaultRowPinningState","top","bottom","Pinning","getInitialState","state","columnPinning","rowPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","onRowPinningChange","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_ref","_table$options$enable","columnDef","enablePinning","options","enableColumnPinning","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","indexOf","createRow","row","includeLeafRows","includeParentRows","leafRowIds","getLeafRows","_ref2","parentRowIds","getParentRows","_ref3","rowIds","Set","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","has","Array","from","_old$top2","_old$bottom2","_ref4","enableRowPinning","isTop","isBottom","_table$_getPinnedRows","_visiblePinnedRowIds$","visiblePinnedRowIds","_getPinnedRows","_ref5","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6","resetRowPinning","_table$initialState$r","_table$initialState2","getIsSomeRowsPinned","_pinningState$positio2","_pinningState$top","_pinningState$bottom","getRowModel","rows","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","rowId","getRow","getIsAllParentsExpanded","_table$options$debugA7","getTopRows","getBottomRows","getCenterRows","allRows","topAndBottom","_table$options$debugA8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { getMemoOptions, makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\nexport type RowPinningPosition = false | 'top' | 'bottom'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface RowPinningState {\n bottom?: string[]\n top?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface RowPinningTableState {\n rowPinning: RowPinningState\n}\n\nexport interface ColumnPinningOptions {\n /**\n * Enables/disables column pinning for the table. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablecolumnpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enableColumnPinning?: boolean\n /**\n * Enables/disables all pinning for the table. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablepinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enablePinning?: boolean\n /**\n * If provided, this function will be called with an `updaterFn` when `state.columnPinning` changes. This overrides the default internal state management, so you will also need to supply `state.columnPinning` from your own managed state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#oncolumnpinningchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/oncolumnpinningchange)\n */\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n}\n\nexport interface RowPinningOptions<TData extends RowData> {\n /**\n * Enables/disables row pinning for the table. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablerowpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enableRowPinning?: boolean | ((row: Row<TData>) => boolean)\n /**\n * When `false`, pinned rows will not be visible if they are filtered or paginated out of the table. When `true`, pinned rows will always be visible regardless of filtering or pagination. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#keeppinnedrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n keepPinnedRows?: boolean\n /**\n * If provided, this function will be called with an `updaterFn` when `state.rowPinning` changes. This overrides the default internal state management, so you will also need to supply `state.rowPinning` from your own managed state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#onrowpinningchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/onrowpinningchange)\n */\n onRowPinningChange?: OnChangeFn<RowPinningState>\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface RowPinningDefaultOptions {\n onRowPinningChange: OnChangeFn<RowPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n /**\n * Enables/disables column pinning for this column. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#enablepinning-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n /**\n * Returns whether or not the column can be pinned.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcanpin)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCanPin: () => boolean\n /**\n * Returns the pinned position of the column. (`'left'`, `'right'` or `false`)\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getispinned)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsPinned: () => ColumnPinningPosition\n /**\n * Returns the numeric pinned index of the column within a pinned column group.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getpinnedindex)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getPinnedIndex: () => number\n /**\n * Pins a column to the `'left'` or `'right'`, or unpins the column to the center if `false` is passed.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#pin)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n /**\n * Returns all center pinned (unpinned) leaf cells in the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcentervisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n /**\n * Returns all left pinned leaf cells in the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getleftvisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n /**\n * Returns all right pinned leaf cells in the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getrightvisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface RowPinningRow {\n /**\n * Returns whether or not the row can be pinned.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcanpin-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCanPin: () => boolean\n /**\n * Returns the pinned position of the row. (`'top'`, `'bottom'` or `false`)\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getispinned-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsPinned: () => RowPinningPosition\n /**\n * Returns the numeric pinned index of the row within a pinned row group.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getpinnedindex-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getPinnedIndex: () => number\n /**\n * Pins a row to the `'top'` or `'bottom'`, or unpins the row to the center if `false` is passed.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#pin-1)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n pin: (\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean\n ) => void\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n /**\n * Returns all center pinned (unpinned) leaf columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcenterleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCenterLeafColumns: () => Column<TData, unknown>[]\n /**\n * Returns whether or not any columns are pinned. Optionally specify to only check for pinned columns in either the `left` or `right` position.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getissomecolumnspinned)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n /**\n * Returns all left pinned leaf columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getleftleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getLeftLeafColumns: () => Column<TData, unknown>[]\n /**\n * Returns all right pinned leaf columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getrightleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getRightLeafColumns: () => Column<TData, unknown>[]\n /**\n * Resets the **columnPinning** state to `initialState.columnPinning`, or `true` can be passed to force a default blank state reset to `{ left: [], right: [], }`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#resetcolumnpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n resetColumnPinning: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.columnPinning` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#setcolumnpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n}\n\nexport interface RowPinningInstance<TData extends RowData> {\n _getPinnedRows: (position: 'top' | 'bottom') => Row<TData>[]\n /**\n * Returns all bottom pinned rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getbottomrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getBottomRows: () => Row<TData>[]\n /**\n * Returns all rows that are not pinned to the top or bottom.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getcenterrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getCenterRows: () => Row<TData>[]\n /**\n * Returns whether or not any rows are pinned. Optionally specify to only check for pinned rows in either the `top` or `bottom` position.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#getissomerowspinned)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean\n /**\n * Returns all top pinned rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#gettoprows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n getTopRows: () => Row<TData>[]\n /**\n * Resets the **rowPinning** state to `initialState.rowPinning`, or `true` can be passed to force a default blank state reset to `{ top: [], bottom: [], }`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#resetrowpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n resetRowPinning: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.rowPinning` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/pinning#setrowpinning)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/pinning)\n */\n setRowPinning: (updater: Updater<RowPinningState>) => void\n}\n\n//\n\nconst getDefaultColumnPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nconst getDefaultRowPinningState = (): RowPinningState => ({\n top: [],\n bottom: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState & RowPinningState => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n rowPinning: getDefaultRowPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions & RowPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n onRowPinningChange: makeStateUpdater('rowPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): void => {\n column.pin = position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n }\n\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enableColumnPinning ??\n table.options.enablePinning ??\n true)\n )\n }\n\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n }\n\n column.getPinnedIndex = () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table.setRowPinning(old => {\n if (position === 'bottom') {\n return {\n top: (old?.top ?? []).filter(d => !rowIds?.has(d)),\n bottom: [\n ...(old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [\n ...(old?.top ?? []).filter(d => !rowIds?.has(d)),\n ...Array.from(rowIds),\n ],\n bottom: (old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n }\n }\n\n return {\n top: (old?.top ?? []).filter(d => !rowIds?.has(d)),\n bottom: (old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n }\n })\n }\n row.getCanPin = () => {\n const { enableRowPinning, enablePinning } = table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? enablePinning ?? true\n }\n row.getIsPinned = () => {\n const rowIds = [row.id]\n\n const { top, bottom } = table.getState().rowPinning\n\n const isTop = rowIds.some(d => top?.includes(d))\n const isBottom = rowIds.some(d => bottom?.includes(d))\n\n return isTop ? 'top' : isBottom ? 'bottom' : false\n }\n row.getPinnedIndex = () => {\n const position = row.getIsPinned()\n if (!position) return -1\n\n const visiblePinnedRowIds = table\n ._getPinnedRows(position)\n ?.map(({ id }) => id)\n\n return visiblePinnedRowIds?.indexOf(row.id) ?? -1\n }\n row.getCenterVisibleCells = memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells')\n )\n row.getLeftVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.left, ,],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' }) as Cell<TData, unknown>)\n\n return cells\n },\n getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells')\n )\n row.getRightVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' }) as Cell<TData, unknown>)\n\n return cells\n },\n getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells')\n )\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.setColumnPinning = updater =>\n table.options.onColumnPinningChange?.(updater)\n\n table.resetColumnPinning = defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultColumnPinningState()\n : table.initialState?.columnPinning ?? getDefaultColumnPinningState()\n )\n\n table.getIsSomeColumnsPinned = position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(pinningState.left?.length || pinningState.right?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table.getLeftLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns')\n )\n\n table.getRightLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns')\n )\n\n table.getCenterLeafColumns = memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns')\n )\n\n table.setRowPinning = updater => table.options.onRowPinningChange?.(updater)\n\n table.resetRowPinning = defaultState =>\n table.setRowPinning(\n defaultState\n ? getDefaultRowPinningState()\n : table.initialState?.rowPinning ?? getDefaultRowPinningState()\n )\n\n table.getIsSomeRowsPinned = position => {\n const pinningState = table.getState().rowPinning\n\n if (!position) {\n return Boolean(pinningState.top?.length || pinningState.bottom?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table._getPinnedRows = memo(\n position => [\n table.getRowModel().rows,\n table.getState().rowPinning[position!],\n position,\n ],\n (visibleRows, pinnedRowIds, position) => {\n const rows =\n table.options.keepPinnedRows ?? true\n ? //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds ?? []).map(rowId => {\n const row = table.getRow(rowId, true)\n return row.getIsAllParentsExpanded() ? row : null\n })\n : //else get only visible rows that are pinned\n (pinnedRowIds ?? []).map(\n rowId => visibleRows.find(row => row.id === rowId)!\n )\n\n return rows\n .filter(Boolean)\n .map(d => ({ ...d, position })) as Row<TData>[]\n },\n getMemoOptions(table.options, 'debugRows', '_getPinnedRows')\n )\n\n table.getTopRows = () => table._getPinnedRows('top')\n\n table.getBottomRows = () => table._getPinnedRows('bottom')\n\n table.getCenterRows = memo(\n () => [\n table.getRowModel().rows,\n table.getState().rowPinning.top,\n table.getState().rowPinning.bottom,\n ],\n (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top ?? []), ...(bottom ?? [])])\n return allRows.filter(d => !topAndBottom.has(d.id))\n },\n getMemoOptions(table.options, 'debugRows', 'getCenterRows')\n )\n },\n}\n"],"names":["getDefaultColumnPinningState","left","right","getDefaultRowPinningState","top","bottom","Pinning","getInitialState","state","columnPinning","rowPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","onRowPinningChange","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_ref","_table$options$enable","columnDef","enablePinning","options","enableColumnPinning","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","indexOf","createRow","row","includeLeafRows","includeParentRows","leafRowIds","getLeafRows","_ref2","parentRowIds","getParentRows","_ref3","rowIds","Set","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","has","Array","from","_old$top2","_old$bottom2","_ref4","enableRowPinning","isTop","isBottom","_table$_getPinnedRows","_visiblePinnedRowIds$","visiblePinnedRowIds","_getPinnedRows","_ref5","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","getMemoOptions","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","getRightLeafColumns","getCenterLeafColumns","resetRowPinning","_table$initialState$r","_table$initialState2","getIsSomeRowsPinned","_pinningState$positio2","_pinningState$top","_pinningState$bottom","getRowModel","rows","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","rowId","getRow","getIsAllParentsExpanded","getTopRows","getBottomRows","getCenterRows","allRows","topAndBottom"],"mappings":"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"}
|
|
@@ -142,13 +142,7 @@ const RowSelection = {
|
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
144
|
return selectRowsFn(table, rowModel);
|
|
145
|
-
},
|
|
146
|
-
key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
|
|
147
|
-
debug: () => {
|
|
148
|
-
var _table$options$debugA;
|
|
149
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
150
|
-
}
|
|
151
|
-
});
|
|
145
|
+
}, utils.getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));
|
|
152
146
|
table.getFilteredSelectedRowModel = utils.memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {
|
|
153
147
|
if (!Object.keys(rowSelection).length) {
|
|
154
148
|
return {
|
|
@@ -158,13 +152,7 @@ const RowSelection = {
|
|
|
158
152
|
};
|
|
159
153
|
}
|
|
160
154
|
return selectRowsFn(table, rowModel);
|
|
161
|
-
},
|
|
162
|
-
key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
|
|
163
|
-
debug: () => {
|
|
164
|
-
var _table$options$debugA2;
|
|
165
|
-
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;
|
|
166
|
-
}
|
|
167
|
-
});
|
|
155
|
+
}, utils.getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));
|
|
168
156
|
table.getGroupedSelectedRowModel = utils.memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {
|
|
169
157
|
if (!Object.keys(rowSelection).length) {
|
|
170
158
|
return {
|
|
@@ -174,13 +162,7 @@ const RowSelection = {
|
|
|
174
162
|
};
|
|
175
163
|
}
|
|
176
164
|
return selectRowsFn(table, rowModel);
|
|
177
|
-
},
|
|
178
|
-
key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
|
|
179
|
-
debug: () => {
|
|
180
|
-
var _table$options$debugA3;
|
|
181
|
-
return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;
|
|
182
|
-
}
|
|
183
|
-
});
|
|
165
|
+
}, utils.getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));
|
|
184
166
|
|
|
185
167
|
///
|
|
186
168
|
|