@tanstack/table-core 8.5.15 → 8.5.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationFns.js +0 -15
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/columnHelper.js +10 -2
- package/build/cjs/columnHelper.js.map +1 -1
- package/build/cjs/core/cell.js +0 -3
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +7 -12
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +18 -30
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +0 -5
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +13 -30
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +33 -32
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +9 -19
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +6 -34
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +1 -16
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +13 -10
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +11 -22
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +5 -11
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +35 -39
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +14 -29
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +5 -5
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +3 -28
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js +24 -31
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +7 -19
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +11 -13
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +0 -6
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +0 -6
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +0 -4
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +0 -4
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +8 -20
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +21 -25
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +0 -6
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +6 -15
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +7 -13
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +267 -504
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +51 -41
- package/build/stats-react.json +369 -369
- package/build/umd/index.development.js +267 -502
- 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/column.ts +5 -0
- package/src/features/ColumnSizing.ts +11 -1
|
@@ -15,18 +15,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
//
|
|
18
|
+
|
|
18
19
|
const defaultPageIndex = 0;
|
|
19
20
|
const defaultPageSize = 10;
|
|
20
|
-
|
|
21
21
|
const getDefaultPaginationState = () => ({
|
|
22
22
|
pageIndex: defaultPageIndex,
|
|
23
23
|
pageSize: defaultPageSize
|
|
24
24
|
});
|
|
25
|
-
|
|
26
25
|
const Pagination = {
|
|
27
26
|
getInitialState: state => {
|
|
28
|
-
return {
|
|
29
|
-
|
|
27
|
+
return {
|
|
28
|
+
...state,
|
|
29
|
+
pagination: {
|
|
30
|
+
...getDefaultPaginationState(),
|
|
30
31
|
...(state == null ? void 0 : state.pagination)
|
|
31
32
|
}
|
|
32
33
|
};
|
|
@@ -45,14 +46,11 @@ const Pagination = {
|
|
|
45
46
|
table._queue(() => {
|
|
46
47
|
registered = true;
|
|
47
48
|
});
|
|
48
|
-
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
|
-
|
|
52
51
|
if (table.options.autoResetAll ?? table.options.autoResetPageIndex ?? !table.options.manualPagination) {
|
|
53
52
|
if (queued) return;
|
|
54
53
|
queued = true;
|
|
55
|
-
|
|
56
54
|
table._queue(() => {
|
|
57
55
|
table.resetPageIndex();
|
|
58
56
|
queued = false;
|
|
@@ -64,7 +62,6 @@ const Pagination = {
|
|
|
64
62
|
let newState = utils.functionalUpdate(updater, old);
|
|
65
63
|
return newState;
|
|
66
64
|
};
|
|
67
|
-
|
|
68
65
|
return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);
|
|
69
66
|
},
|
|
70
67
|
resetPagination: defaultState => {
|
|
@@ -75,19 +72,18 @@ const Pagination = {
|
|
|
75
72
|
let pageIndex = utils.functionalUpdate(updater, old.pageIndex);
|
|
76
73
|
const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;
|
|
77
74
|
pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);
|
|
78
|
-
return {
|
|
75
|
+
return {
|
|
76
|
+
...old,
|
|
79
77
|
pageIndex
|
|
80
78
|
};
|
|
81
79
|
});
|
|
82
80
|
},
|
|
83
81
|
resetPageIndex: defaultState => {
|
|
84
82
|
var _table$initialState, _table$initialState$p;
|
|
85
|
-
|
|
86
83
|
table.setPageIndex(defaultState ? defaultPageIndex : ((_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p = _table$initialState.pagination) == null ? void 0 : _table$initialState$p.pageIndex) ?? defaultPageIndex);
|
|
87
84
|
},
|
|
88
85
|
resetPageSize: defaultState => {
|
|
89
86
|
var _table$initialState2, _table$initialState2$;
|
|
90
|
-
|
|
91
87
|
table.setPageSize(defaultState ? defaultPageSize : ((_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) ?? defaultPageSize);
|
|
92
88
|
},
|
|
93
89
|
setPageSize: updater => {
|
|
@@ -95,7 +91,8 @@ const Pagination = {
|
|
|
95
91
|
const pageSize = Math.max(1, utils.functionalUpdate(updater, old.pageSize));
|
|
96
92
|
const topRowIndex = old.pageSize * old.pageIndex;
|
|
97
93
|
const pageIndex = Math.floor(topRowIndex / pageSize);
|
|
98
|
-
return {
|
|
94
|
+
return {
|
|
95
|
+
...old,
|
|
99
96
|
pageIndex,
|
|
100
97
|
pageSize
|
|
101
98
|
};
|
|
@@ -103,22 +100,19 @@ const Pagination = {
|
|
|
103
100
|
},
|
|
104
101
|
setPageCount: updater => table.setPagination(old => {
|
|
105
102
|
let newPageCount = utils.functionalUpdate(updater, table.options.pageCount ?? -1);
|
|
106
|
-
|
|
107
103
|
if (typeof newPageCount === 'number') {
|
|
108
104
|
newPageCount = Math.max(-1, newPageCount);
|
|
109
105
|
}
|
|
110
|
-
|
|
111
|
-
|
|
106
|
+
return {
|
|
107
|
+
...old,
|
|
112
108
|
pageCount: newPageCount
|
|
113
109
|
};
|
|
114
110
|
}),
|
|
115
111
|
getPageOptions: utils.memo(() => [table.getPageCount()], pageCount => {
|
|
116
112
|
let pageOptions = [];
|
|
117
|
-
|
|
118
113
|
if (pageCount && pageCount > 0) {
|
|
119
114
|
pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);
|
|
120
115
|
}
|
|
121
|
-
|
|
122
116
|
return pageOptions;
|
|
123
117
|
}, {
|
|
124
118
|
key: process.env.NODE_ENV === 'development' && 'getPageOptions',
|
|
@@ -130,15 +124,12 @@ const Pagination = {
|
|
|
130
124
|
pageIndex
|
|
131
125
|
} = table.getState().pagination;
|
|
132
126
|
const pageCount = table.getPageCount();
|
|
133
|
-
|
|
134
127
|
if (pageCount === -1) {
|
|
135
128
|
return true;
|
|
136
129
|
}
|
|
137
|
-
|
|
138
130
|
if (pageCount === 0) {
|
|
139
131
|
return false;
|
|
140
132
|
}
|
|
141
|
-
|
|
142
133
|
return pageIndex < pageCount - 1;
|
|
143
134
|
},
|
|
144
135
|
previousPage: () => {
|
|
@@ -154,11 +145,9 @@ const Pagination = {
|
|
|
154
145
|
if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {
|
|
155
146
|
table._getPaginationRowModel = table.options.getPaginationRowModel(table);
|
|
156
147
|
}
|
|
157
|
-
|
|
158
148
|
if (table.options.manualPagination || !table._getPaginationRowModel) {
|
|
159
149
|
return table.getPrePaginationRowModel();
|
|
160
150
|
}
|
|
161
|
-
|
|
162
151
|
return table._getPaginationRowModel();
|
|
163
152
|
},
|
|
164
153
|
getPageCount: () => {
|
|
@@ -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 type PaginationState = {\n pageIndex: number\n pageSize: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions = {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TData extends RowData> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\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>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _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 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 resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n 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.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n 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 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 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 getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n 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 previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n 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 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}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","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 { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions = {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TData extends RowData> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\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>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _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 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 resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n 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.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n 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 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 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 getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n 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 previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n 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 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}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
|
|
@@ -15,11 +15,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
//
|
|
18
|
+
|
|
18
19
|
const getDefaultPinningState = () => ({
|
|
19
20
|
left: [],
|
|
20
21
|
right: []
|
|
21
22
|
});
|
|
22
|
-
|
|
23
23
|
const Pinning = {
|
|
24
24
|
getInitialState: state => {
|
|
25
25
|
return {
|
|
@@ -43,14 +43,12 @@ const Pinning = {
|
|
|
43
43
|
right: [...((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
|
|
47
46
|
if (position === 'left') {
|
|
48
47
|
return {
|
|
49
48
|
left: [...((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],
|
|
50
49
|
right: ((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d)))
|
|
51
50
|
};
|
|
52
51
|
}
|
|
53
|
-
|
|
54
52
|
return {
|
|
55
53
|
left: ((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))),
|
|
56
54
|
right: ((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d)))
|
|
@@ -73,7 +71,6 @@ const Pinning = {
|
|
|
73
71
|
},
|
|
74
72
|
getPinnedIndex: () => {
|
|
75
73
|
var _table$getState$colum, _table$getState$colum2;
|
|
76
|
-
|
|
77
74
|
const position = column.getIsPinned();
|
|
78
75
|
return position ? ((_table$getState$colum = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) ?? -1 : 0;
|
|
79
76
|
}
|
|
@@ -89,7 +86,8 @@ const Pinning = {
|
|
|
89
86
|
debug: () => table.options.debugAll ?? table.options.debugRows
|
|
90
87
|
}),
|
|
91
88
|
getLeftVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {
|
|
92
|
-
const cells = (left ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
|
|
89
|
+
const cells = (left ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
|
|
90
|
+
...d,
|
|
93
91
|
position: 'left'
|
|
94
92
|
}));
|
|
95
93
|
return cells;
|
|
@@ -98,7 +96,8 @@ const Pinning = {
|
|
|
98
96
|
debug: () => table.options.debugAll ?? table.options.debugRows
|
|
99
97
|
}),
|
|
100
98
|
getRightVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {
|
|
101
|
-
const cells = (right ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
|
|
99
|
+
const cells = (right ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
|
|
100
|
+
...d,
|
|
102
101
|
position: 'right'
|
|
103
102
|
}));
|
|
104
103
|
return cells;
|
|
@@ -113,20 +112,15 @@ const Pinning = {
|
|
|
113
112
|
setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),
|
|
114
113
|
resetColumnPinning: defaultState => {
|
|
115
114
|
var _table$initialState;
|
|
116
|
-
|
|
117
115
|
return table.setColumnPinning(defaultState ? getDefaultPinningState() : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) ?? getDefaultPinningState());
|
|
118
116
|
},
|
|
119
117
|
getIsSomeColumnsPinned: position => {
|
|
120
118
|
var _pinningState$positio;
|
|
121
|
-
|
|
122
119
|
const pinningState = table.getState().columnPinning;
|
|
123
|
-
|
|
124
120
|
if (!position) {
|
|
125
121
|
var _pinningState$left, _pinningState$right;
|
|
126
|
-
|
|
127
122
|
return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));
|
|
128
123
|
}
|
|
129
|
-
|
|
130
124
|
return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
|
|
131
125
|
},
|
|
132
126
|
getLeftLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {
|
|
@@ -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'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningRow<TData extends RowData> = {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport type ColumnPinningInstance<TData extends RowData> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n 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 getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n 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 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\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n 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 === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\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 === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\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 === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [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 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 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 },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { 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'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningRow<TData extends RowData> = {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport type ColumnPinningInstance<TData extends RowData> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n 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 getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n 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 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\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n 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 === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\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 === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\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 === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [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 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 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 },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
|