@tanstack/table-core 8.5.12 → 8.5.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/core/cell.js +2 -6
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +5 -15
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +27 -99
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +4 -16
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +13 -43
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +23 -35
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +9 -15
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +13 -21
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +8 -10
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +1 -3
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +9 -21
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +24 -58
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +9 -35
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +12 -22
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +9 -27
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +1 -5
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +2 -6
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +1 -5
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +1 -5
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +2 -8
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +6 -14
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +5 -11
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +1 -5
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +2 -8
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +4 -1
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +193 -494
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +56 -56
- package/build/stats-react.json +361 -361
- package/build/umd/index.development.js +193 -494
- 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/features/Expanding.ts +1 -1
- package/src/features/Pinning.ts +1 -1
|
@@ -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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"}
|
|
@@ -37,39 +37,29 @@ const Pinning = {
|
|
|
37
37
|
pin: position => {
|
|
38
38
|
const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);
|
|
39
39
|
table.setColumnPinning(old => {
|
|
40
|
-
var _old$left3, _old$right3;
|
|
41
|
-
|
|
42
40
|
if (position === 'right') {
|
|
43
|
-
var _old$left, _old$right;
|
|
44
|
-
|
|
45
41
|
return {
|
|
46
|
-
left: ((
|
|
47
|
-
right: [...((
|
|
42
|
+
left: ((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))),
|
|
43
|
+
right: [...((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
46
|
|
|
51
47
|
if (position === 'left') {
|
|
52
|
-
var _old$left2, _old$right2;
|
|
53
|
-
|
|
54
48
|
return {
|
|
55
|
-
left: [...((
|
|
56
|
-
right: ((
|
|
49
|
+
left: [...((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],
|
|
50
|
+
right: ((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d)))
|
|
57
51
|
};
|
|
58
52
|
}
|
|
59
53
|
|
|
60
54
|
return {
|
|
61
|
-
left: ((
|
|
62
|
-
right: ((
|
|
55
|
+
left: ((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))),
|
|
56
|
+
right: ((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d)))
|
|
63
57
|
};
|
|
64
58
|
});
|
|
65
59
|
},
|
|
66
60
|
getCanPin: () => {
|
|
67
61
|
const leafColumns = column.getLeafColumns();
|
|
68
|
-
return leafColumns.some(d =>
|
|
69
|
-
var _d$columnDef$enablePi, _table$options$enable;
|
|
70
|
-
|
|
71
|
-
return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);
|
|
72
|
-
});
|
|
62
|
+
return leafColumns.some(d => (d.columnDef.enablePinning ?? true) && (table.options.enablePinning ?? true));
|
|
73
63
|
},
|
|
74
64
|
getIsPinned: () => {
|
|
75
65
|
const leafColumnIds = column.getLeafColumns().map(d => d.id);
|
|
@@ -82,51 +72,39 @@ const Pinning = {
|
|
|
82
72
|
return isLeft ? 'left' : isRight ? 'right' : false;
|
|
83
73
|
},
|
|
84
74
|
getPinnedIndex: () => {
|
|
85
|
-
var _table$getState$colum, _table$getState$colum2
|
|
75
|
+
var _table$getState$colum, _table$getState$colum2;
|
|
86
76
|
|
|
87
77
|
const position = column.getIsPinned();
|
|
88
|
-
return position ? (_table$getState$colum =
|
|
78
|
+
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;
|
|
89
79
|
}
|
|
90
80
|
};
|
|
91
81
|
},
|
|
92
82
|
createRow: (row, table) => {
|
|
93
83
|
return {
|
|
94
84
|
getCenterVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {
|
|
95
|
-
const leftAndRight = [...(left
|
|
85
|
+
const leftAndRight = [...(left ?? []), ...(right ?? [])];
|
|
96
86
|
return allCells.filter(d => !leftAndRight.includes(d.column.id));
|
|
97
87
|
}, {
|
|
98
88
|
key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',
|
|
99
|
-
debug: () =>
|
|
100
|
-
var _table$options$debugA;
|
|
101
|
-
|
|
102
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;
|
|
103
|
-
}
|
|
89
|
+
debug: () => table.options.debugAll ?? table.options.debugRows
|
|
104
90
|
}),
|
|
105
91
|
getLeftVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {
|
|
106
|
-
const cells = (left
|
|
92
|
+
const cells = (left ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,
|
|
107
93
|
position: 'left'
|
|
108
94
|
}));
|
|
109
95
|
return cells;
|
|
110
96
|
}, {
|
|
111
97
|
key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',
|
|
112
|
-
debug: () =>
|
|
113
|
-
var _table$options$debugA2;
|
|
114
|
-
|
|
115
|
-
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;
|
|
116
|
-
}
|
|
98
|
+
debug: () => table.options.debugAll ?? table.options.debugRows
|
|
117
99
|
}),
|
|
118
100
|
getRightVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {
|
|
119
|
-
const cells = (right
|
|
120
|
-
position: '
|
|
101
|
+
const cells = (right ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,
|
|
102
|
+
position: 'right'
|
|
121
103
|
}));
|
|
122
104
|
return cells;
|
|
123
105
|
}, {
|
|
124
106
|
key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',
|
|
125
|
-
debug: () =>
|
|
126
|
-
var _table$options$debugA3;
|
|
127
|
-
|
|
128
|
-
return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;
|
|
129
|
-
}
|
|
107
|
+
debug: () => table.options.debugAll ?? table.options.debugRows
|
|
130
108
|
})
|
|
131
109
|
};
|
|
132
110
|
},
|
|
@@ -134,9 +112,9 @@ const Pinning = {
|
|
|
134
112
|
return {
|
|
135
113
|
setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),
|
|
136
114
|
resetColumnPinning: defaultState => {
|
|
137
|
-
var _table$initialState
|
|
115
|
+
var _table$initialState;
|
|
138
116
|
|
|
139
|
-
return table.setColumnPinning(defaultState ? getDefaultPinningState() : (
|
|
117
|
+
return table.setColumnPinning(defaultState ? getDefaultPinningState() : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) ?? getDefaultPinningState());
|
|
140
118
|
},
|
|
141
119
|
getIsSomeColumnsPinned: position => {
|
|
142
120
|
var _pinningState$positio;
|
|
@@ -152,35 +130,23 @@ const Pinning = {
|
|
|
152
130
|
return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
|
|
153
131
|
},
|
|
154
132
|
getLeftLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {
|
|
155
|
-
return (left
|
|
133
|
+
return (left ?? []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
|
|
156
134
|
}, {
|
|
157
135
|
key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',
|
|
158
|
-
debug: () =>
|
|
159
|
-
var _table$options$debugA4;
|
|
160
|
-
|
|
161
|
-
return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;
|
|
162
|
-
}
|
|
136
|
+
debug: () => table.options.debugAll ?? table.options.debugColumns
|
|
163
137
|
}),
|
|
164
138
|
getRightLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {
|
|
165
|
-
return (right
|
|
139
|
+
return (right ?? []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
|
|
166
140
|
}, {
|
|
167
141
|
key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',
|
|
168
|
-
debug: () =>
|
|
169
|
-
var _table$options$debugA5;
|
|
170
|
-
|
|
171
|
-
return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;
|
|
172
|
-
}
|
|
142
|
+
debug: () => table.options.debugAll ?? table.options.debugColumns
|
|
173
143
|
}),
|
|
174
144
|
getCenterLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {
|
|
175
|
-
const leftAndRight = [...(left
|
|
145
|
+
const leftAndRight = [...(left ?? []), ...(right ?? [])];
|
|
176
146
|
return allColumns.filter(d => !leftAndRight.includes(d.id));
|
|
177
147
|
}, {
|
|
178
148
|
key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',
|
|
179
|
-
debug: () =>
|
|
180
|
-
var _table$options$debugA6;
|
|
181
|
-
|
|
182
|
-
return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;
|
|
183
|
-
}
|
|
149
|
+
debug: () => table.options.debugAll ?? table.options.debugColumns
|
|
184
150
|
})
|
|
185
151
|
};
|
|
186
152
|
}
|
|
@@ -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: 'left' } 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":";;;;;;;;;;;;;;;;AA0DA;AAEA,MAAMA,sBAAsB,GAAG,OAA2B;AACxDC,EAAAA,IAAI,EAAE,EADkD;AAExDC,EAAAA,KAAK,EAAE,EAAA;AAFiD,CAA3B,CAA/B,CAAA;;AAKO,MAAMC,OAAqB,GAAG;EACnCC,eAAe,EAAGC,KAAD,IAAoC;IACnD,OAAO;MACLC,aAAa,EAAEN,sBAAsB,EADhC;MAEL,GAAGK,KAAAA;KAFL,CAAA;GAFiC;EAQnCE,iBAAiB,EACfC,KADiB,IAEe;IAChC,OAAO;AACLC,MAAAA,qBAAqB,EAAEC,sBAAgB,CAAC,eAAD,EAAkBF,KAAlB,CAAA;KADzC,CAAA;GAXiC;AAgBnCG,EAAAA,YAAY,EAAE,CACZC,MADY,EAEZJ,KAFY,KAGY;IACxB,OAAO;MACLK,GAAG,EAAEC,QAAQ,IAAI;AACf,QAAA,MAAMC,SAAS,GAAGH,MAAM,CACrBI,cADe,GAEfC,GAFe,CAEXC,CAAC,IAAIA,CAAC,CAACC,EAFI,EAGfC,MAHe,CAGRC,OAHQ,CAAlB,CAAA;AAKAb,QAAAA,KAAK,CAACc,gBAAN,CAAuBC,GAAG,IAAI;UAC5B,IAAIT,QAAQ,KAAK,OAAjB,EAA0B;YACxB,OAAO;cACLb,IAAI,EAAE,CAAC,CAAAsB,GAAG,IAAA,IAAH,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEtB,IAAL,KAAa,EAAd,EAAkBmB,MAAlB,CAAyBF,CAAC,IAAI,EAACH,SAAD,IAACA,IAAAA,IAAAA,SAAS,CAAES,QAAX,CAAoBN,CAApB,CAAD,CAA9B,CADD;AAELhB,cAAAA,KAAK,EAAE,CACL,GAAG,CAAC,CAAAqB,GAAG,IAAH,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAG,CAAErB,KAAL,KAAc,EAAf,EAAmBkB,MAAnB,CAA0BF,CAAC,IAAI,EAACH,SAAD,IAAA,IAAA,IAACA,SAAS,CAAES,QAAX,CAAoBN,CAApB,CAAD,CAA/B,CADE,EAEL,GAAGH,SAFE,CAAA;aAFT,CAAA;AAOD,WAAA;;UAED,IAAID,QAAQ,KAAK,MAAjB,EAAyB;YACvB,OAAO;AACLb,cAAAA,IAAI,EAAE,CACJ,GAAG,CAAC,CAAAsB,GAAG,IAAA,IAAH,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEtB,IAAL,KAAa,EAAd,EAAkBmB,MAAlB,CAAyBF,CAAC,IAAI,EAACH,SAAD,IAACA,IAAAA,IAAAA,SAAS,CAAES,QAAX,CAAoBN,CAApB,CAAD,CAA9B,CADC,EAEJ,GAAGH,SAFC,CADD;cAKLb,KAAK,EAAE,CAAC,CAAAqB,GAAG,IAAA,IAAH,YAAAA,GAAG,CAAErB,KAAL,KAAc,EAAf,EAAmBkB,MAAnB,CAA0BF,CAAC,IAAI,EAACH,SAAD,IAAA,IAAA,IAACA,SAAS,CAAES,QAAX,CAAoBN,CAApB,CAAD,CAA/B,CAAA;aALT,CAAA;AAOD,WAAA;;UAED,OAAO;YACLjB,IAAI,EAAE,CAAC,CAAAsB,GAAG,IAAA,IAAH,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEtB,IAAL,KAAa,EAAd,EAAkBmB,MAAlB,CAAyBF,CAAC,IAAI,EAACH,SAAD,IAACA,IAAAA,IAAAA,SAAS,CAAES,QAAX,CAAoBN,CAApB,CAAD,CAA9B,CADD;YAELhB,KAAK,EAAE,CAAC,CAAAqB,GAAG,IAAA,IAAH,YAAAA,GAAG,CAAErB,KAAL,KAAc,EAAf,EAAmBkB,MAAnB,CAA0BF,CAAC,IAAI,EAACH,SAAD,IAAA,IAAA,IAACA,SAAS,CAAES,QAAX,CAAoBN,CAApB,CAAD,CAA/B,CAAA;WAFT,CAAA;SArBF,CAAA,CAAA;OAPG;AAmCLO,MAAAA,SAAS,EAAE,MAAM;AACf,QAAA,MAAMC,WAAW,GAAGd,MAAM,CAACI,cAAP,EAApB,CAAA;QAEA,OAAOU,WAAW,CAACC,IAAZ,CACLT,CAAC,IACC,CAACA,CAAC,CAACU,SAAF,CAAYC,aAAZ,IAA6B,IAA9B,MACCrB,KAAK,CAACsB,OAAN,CAAcD,aAAd,IAA+B,IADhC,CAFG,CAAP,CAAA;OAtCG;AA6CLE,MAAAA,WAAW,EAAE,MAAM;AACjB,QAAA,MAAMC,aAAa,GAAGpB,MAAM,CAACI,cAAP,EAAA,CAAwBC,GAAxB,CAA4BC,CAAC,IAAIA,CAAC,CAACC,EAAnC,CAAtB,CAAA;QAEA,MAAM;UAAElB,IAAF;AAAQC,UAAAA,KAAAA;AAAR,SAAA,GAAkBM,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAzC,CAAA;AAEA,QAAA,MAAM4B,MAAM,GAAGF,aAAa,CAACL,IAAd,CAAmBT,CAAC,IAAIjB,IAAJ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAIA,IAAI,CAAEuB,QAAN,CAAeN,CAAf,CAAxB,CAAf,CAAA;AACA,QAAA,MAAMiB,OAAO,GAAGH,aAAa,CAACL,IAAd,CAAmBT,CAAC,IAAIhB,KAAJ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAIA,KAAK,CAAEsB,QAAP,CAAgBN,CAAhB,CAAxB,CAAhB,CAAA;QAEA,OAAOgB,MAAM,GAAG,MAAH,GAAYC,OAAO,GAAG,OAAH,GAAa,KAA7C,CAAA;OArDG;AAwDLC,MAAAA,cAAc,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AACpB,QAAA,MAAMtB,QAAQ,GAAGF,MAAM,CAACmB,WAAP,EAAjB,CAAA;QAEA,OAAOjB,QAAQ,GACX,CAAAN,CAAAA,qBAAAA,GAAAA,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,KAAiCQ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,qBAAAA,CAAAA,QAAjC,6CAA4CuB,OAA5C,CAAoDzB,MAAM,CAACO,EAA3D,MAAkE,CAAC,CADxD,GAEX,CAFJ,CAAA;AAGD,OAAA;KA9DH,CAAA;GApBiC;AAsFnCmB,EAAAA,SAAS,EAAE,CACTC,GADS,EAET/B,KAFS,KAGmB;IAC5B,OAAO;AACLgC,MAAAA,qBAAqB,EAAEC,UAAI,CACzB,MAAM,CACJF,GAAG,CAACG,mBAAJ,EADI,EAEJlC,KAAK,CAACyB,QAAN,GAAiB3B,aAAjB,CAA+BL,IAF3B,EAGJO,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,CAA+BJ,KAH3B,CADmB,EAMzB,CAACyC,QAAD,EAAW1C,IAAX,EAAiBC,KAAjB,KAA2B;AACzB,QAAA,MAAM0C,YAAsB,GAAG,CAAC,IAAI3C,IAAI,IAAI,EAAZ,CAAD,EAAkB,IAAIC,KAAK,IAAI,EAAb,CAAlB,CAA/B,CAAA;AAEA,QAAA,OAAOyC,QAAQ,CAACvB,MAAT,CAAgBF,CAAC,IAAI,CAAC0B,YAAY,CAACpB,QAAb,CAAsBN,CAAC,CAACN,MAAF,CAASO,EAA/B,CAAtB,CAAP,CAAA;AACD,OAVwB,EAWzB;QACE0B,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IACA,2BAHJ;QAIEC,KAAK,EAAE,MAAMzC,KAAK,CAACsB,OAAN,CAAcoB,QAAd,IAA0B1C,KAAK,CAACsB,OAAN,CAAcqB,SAAAA;AAJvD,OAXyB,CADtB;MAmBLC,mBAAmB,EAAEX,UAAI,CACvB,MAAM,CACJF,GAAG,CAACG,mBAAJ,EADI,EAEJlC,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,CAA+BL,IAF3B,GADiB,EAMvB,CAAC0C,QAAD,EAAW1C,IAAX,KAAoB;AAClB,QAAA,MAAMoD,KAAK,GAAG,CAACpD,IAAI,IAAI,EAAT,EACXgB,GADW,CAEVqC,QAAQ,IAAIX,QAAQ,CAACY,IAAT,CAAcC,IAAI,IAAIA,IAAI,CAAC5C,MAAL,CAAYO,EAAZ,KAAmBmC,QAAzC,CAFF,EAIXlC,MAJW,CAIJC,OAJI,CAAA,CAKXJ,GALW,CAKPC,CAAC,KAAK,EAAE,GAAGA,CAAL;AAAQJ,UAAAA,QAAQ,EAAE,MAAA;AAAlB,SAAL,CALM,CAAd,CAAA;AAOA,QAAA,OAAOuC,KAAP,CAAA;AACD,OAfsB,EAgBvB;QACER,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,yBAF7C;QAGEC,KAAK,EAAE,MAAMzC,KAAK,CAACsB,OAAN,CAAcoB,QAAd,IAA0B1C,KAAK,CAACsB,OAAN,CAAcqB,SAAAA;AAHvD,OAhBuB,CAnBpB;MAyCLM,oBAAoB,EAAEhB,UAAI,CACxB,MAAM,CAACF,GAAG,CAACG,mBAAJ,EAAD,EAA4BlC,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,CAA+BJ,KAA3D,CADkB,EAExB,CAACyC,QAAD,EAAWzC,KAAX,KAAqB;AACnB,QAAA,MAAMmD,KAAK,GAAG,CAACnD,KAAK,IAAI,EAAV,EACXe,GADW,CAEVqC,QAAQ,IAAIX,QAAQ,CAACY,IAAT,CAAcC,IAAI,IAAIA,IAAI,CAAC5C,MAAL,CAAYO,EAAZ,KAAmBmC,QAAzC,CAFF,EAIXlC,MAJW,CAIJC,OAJI,CAAA,CAKXJ,GALW,CAKPC,CAAC,KAAK,EAAE,GAAGA,CAAL;AAAQJ,UAAAA,QAAQ,EAAE,OAAA;AAAlB,SAAL,CALM,CAAd,CAAA;AAOA,QAAA,OAAOuC,KAAP,CAAA;AACD,OAXuB,EAYxB;QACER,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,0BAF7C;QAGEC,KAAK,EAAE,MAAMzC,KAAK,CAACsB,OAAN,CAAcoB,QAAd,IAA0B1C,KAAK,CAACsB,OAAN,CAAcqB,SAAAA;OAf/B,CAAA;KAzC5B,CAAA;GA1FiC;EAwJnCO,WAAW,EACTlD,KADW,IAEsB;IACjC,OAAO;AACLc,MAAAA,gBAAgB,EAAEqC,OAAO,IACvBnD,KAAK,CAACsB,OAAN,CAAcrB,qBADS,IACvBD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACsB,OAAN,CAAcrB,qBAAd,CAAsCkD,OAAtC,CAFG;AAILC,MAAAA,kBAAkB,EAAEC,YAAY,IAAA;AAAA,QAAA,IAAA,mBAAA,CAAA;;AAAA,QAAA,OAC9BrD,KAAK,CAACc,gBAAN,CACEuC,YAAY,GACR7D,sBAAsB,EADd,GAER,CAAAQ,CAAAA,mBAAAA,GAAAA,KAAK,CAACsD,YAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAoBxD,aAApB,KAAqCN,sBAAsB,EAHjE,CAD8B,CAAA;OAJ3B;MAWL+D,sBAAsB,EAAEjD,QAAQ,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAClC,QAAA,MAAMkD,YAAY,GAAGxD,KAAK,CAACyB,QAAN,GAAiB3B,aAAtC,CAAA;;QAEA,IAAI,CAACQ,QAAL,EAAe;AAAA,UAAA,IAAA,kBAAA,EAAA,mBAAA,CAAA;;AACb,UAAA,OAAOO,OAAO,CACZ,CAAA,CAAA,kBAAA,GAAA2C,YAAY,CAAC/D,IAAb,KAAmBgE,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAAA,CAAAA,MAAnB,MAA6BD,CAAAA,mBAAAA,GAAAA,YAAY,CAAC9D,KAA1C,KAAA,IAAA,GAAA,KAAA,CAAA,GAA6B,mBAAoB+D,CAAAA,MAAjD,CADY,CAAd,CAAA;AAGD,SAAA;;QACD,OAAO5C,OAAO,0BAAC2C,YAAY,CAAClD,QAAD,CAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAC,qBAAwBmD,CAAAA,MAAzB,CAAd,CAAA;OAnBG;MAsBLC,kBAAkB,EAAEzB,UAAI,CACtB,MAAM,CAACjC,KAAK,CAAC2D,iBAAN,EAAD,EAA4B3D,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,CAA+BL,IAA3D,CADgB,EAEtB,CAACmE,UAAD,EAAanE,IAAb,KAAsB;QACpB,OAAO,CAACA,IAAI,IAAI,EAAT,EACJgB,GADI,CACAqC,QAAQ,IAAIc,UAAU,CAACb,IAAX,CAAgB3C,MAAM,IAAIA,MAAM,CAACO,EAAP,KAAcmC,QAAxC,CADZ,CAEJlC,CAAAA,MAFI,CAEGC,OAFH,CAAP,CAAA;AAGD,OANqB,EAOtB;QACEwB,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,oBADjD;QAEEC,KAAK,EAAE,MAAMzC,KAAK,CAACsB,OAAN,CAAcoB,QAAd,IAA0B1C,KAAK,CAACsB,OAAN,CAAcuC,YAAAA;AAFvD,OAPsB,CAtBnB;MAmCLC,mBAAmB,EAAE7B,UAAI,CACvB,MAAM,CAACjC,KAAK,CAAC2D,iBAAN,EAAD,EAA4B3D,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,CAA+BJ,KAA3D,CADiB,EAEvB,CAACkE,UAAD,EAAalE,KAAb,KAAuB;QACrB,OAAO,CAACA,KAAK,IAAI,EAAV,EACJe,GADI,CACAqC,QAAQ,IAAIc,UAAU,CAACb,IAAX,CAAgB3C,MAAM,IAAIA,MAAM,CAACO,EAAP,KAAcmC,QAAxC,CADZ,CAEJlC,CAAAA,MAFI,CAEGC,OAFH,CAAP,CAAA;AAGD,OANsB,EAOvB;QACEwB,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;QAEEC,KAAK,EAAE,MAAMzC,KAAK,CAACsB,OAAN,CAAcoB,QAAd,IAA0B1C,KAAK,CAACsB,OAAN,CAAcuC,YAAAA;AAFvD,OAPuB,CAnCpB;AAgDLE,MAAAA,oBAAoB,EAAE9B,UAAI,CACxB,MAAM,CACJjC,KAAK,CAAC2D,iBAAN,EADI,EAEJ3D,KAAK,CAACyB,QAAN,GAAiB3B,aAAjB,CAA+BL,IAF3B,EAGJO,KAAK,CAACyB,QAAN,EAAA,CAAiB3B,aAAjB,CAA+BJ,KAH3B,CADkB,EAMxB,CAACkE,UAAD,EAAanE,IAAb,EAAmBC,KAAnB,KAA6B;AAC3B,QAAA,MAAM0C,YAAsB,GAAG,CAAC,IAAI3C,IAAI,IAAI,EAAZ,CAAD,EAAkB,IAAIC,KAAK,IAAI,EAAb,CAAlB,CAA/B,CAAA;AAEA,QAAA,OAAOkE,UAAU,CAAChD,MAAX,CAAkBF,CAAC,IAAI,CAAC0B,YAAY,CAACpB,QAAb,CAAsBN,CAAC,CAACC,EAAxB,CAAxB,CAAP,CAAA;AACD,OAVuB,EAWxB;QACE0B,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,sBADjD;QAEEC,KAAK,EAAE,MAAMzC,KAAK,CAACsB,OAAN,CAAcoB,QAAd,IAA0B1C,KAAK,CAACsB,OAAN,CAAcuC,YAAAA;OAb/B,CAAA;KAhD5B,CAAA;AAiED,GAAA;AA5NkC;;;;"}
|
|
@@ -36,11 +36,7 @@ const RowSelection = {
|
|
|
36
36
|
createTable: table => {
|
|
37
37
|
return {
|
|
38
38
|
setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),
|
|
39
|
-
resetRowSelection: defaultState => {
|
|
40
|
-
var _table$initialState$r;
|
|
41
|
-
|
|
42
|
-
return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});
|
|
43
|
-
},
|
|
39
|
+
resetRowSelection: defaultState => table.setRowSelection(defaultState ? {} : table.initialState.rowSelection ?? {}),
|
|
44
40
|
toggleAllRowsSelected: value => {
|
|
45
41
|
table.setRowSelection(old => {
|
|
46
42
|
value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();
|
|
@@ -138,11 +134,7 @@ const RowSelection = {
|
|
|
138
134
|
return selectRowsFn(table, rowModel);
|
|
139
135
|
}, {
|
|
140
136
|
key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
|
|
141
|
-
debug: () =>
|
|
142
|
-
var _table$options$debugA;
|
|
143
|
-
|
|
144
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
145
|
-
}
|
|
137
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
146
138
|
}),
|
|
147
139
|
getFilteredSelectedRowModel: utils.memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {
|
|
148
140
|
if (!Object.keys(rowSelection).length) {
|
|
@@ -156,11 +148,7 @@ const RowSelection = {
|
|
|
156
148
|
return selectRowsFn(table, rowModel);
|
|
157
149
|
}, {
|
|
158
150
|
key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
|
|
159
|
-
debug: () =>
|
|
160
|
-
var _table$options$debugA2;
|
|
161
|
-
|
|
162
|
-
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;
|
|
163
|
-
}
|
|
151
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
164
152
|
}),
|
|
165
153
|
getGroupedSelectedRowModel: utils.memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {
|
|
166
154
|
if (!Object.keys(rowSelection).length) {
|
|
@@ -174,11 +162,7 @@ const RowSelection = {
|
|
|
174
162
|
return selectRowsFn(table, rowModel);
|
|
175
163
|
}, {
|
|
176
164
|
key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
|
|
177
|
-
debug: () =>
|
|
178
|
-
var _table$options$debugA3;
|
|
179
|
-
|
|
180
|
-
return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;
|
|
181
|
-
}
|
|
165
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
182
166
|
}),
|
|
183
167
|
///
|
|
184
168
|
// getGroupingRowCanSelect: rowId => {
|
|
@@ -220,9 +204,7 @@ const RowSelection = {
|
|
|
220
204
|
return isAllPageRowsSelected;
|
|
221
205
|
},
|
|
222
206
|
getIsSomeRowsSelected: () => {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;
|
|
207
|
+
const totalSelected = Object.keys(table.getState().rowSelection ?? {}).length;
|
|
226
208
|
return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;
|
|
227
209
|
},
|
|
228
210
|
getIsSomePageRowsSelected: () => {
|
|
@@ -277,31 +259,25 @@ const RowSelection = {
|
|
|
277
259
|
return isSubRowSelected(row, rowSelection) === 'all';
|
|
278
260
|
},
|
|
279
261
|
getCanSelect: () => {
|
|
280
|
-
var _table$options$enable;
|
|
281
|
-
|
|
282
262
|
if (typeof table.options.enableRowSelection === 'function') {
|
|
283
263
|
return table.options.enableRowSelection(row);
|
|
284
264
|
}
|
|
285
265
|
|
|
286
|
-
return
|
|
266
|
+
return table.options.enableRowSelection ?? true;
|
|
287
267
|
},
|
|
288
268
|
getCanSelectSubRows: () => {
|
|
289
|
-
var _table$options$enable2;
|
|
290
|
-
|
|
291
269
|
if (typeof table.options.enableSubRowSelection === 'function') {
|
|
292
270
|
return table.options.enableSubRowSelection(row);
|
|
293
271
|
}
|
|
294
272
|
|
|
295
|
-
return
|
|
273
|
+
return table.options.enableSubRowSelection ?? true;
|
|
296
274
|
},
|
|
297
275
|
getCanMultiSelect: () => {
|
|
298
|
-
var _table$options$enable3;
|
|
299
|
-
|
|
300
276
|
if (typeof table.options.enableMultiRowSelection === 'function') {
|
|
301
277
|
return table.options.enableMultiRowSelection(row);
|
|
302
278
|
}
|
|
303
279
|
|
|
304
|
-
return
|
|
280
|
+
return table.options.enableMultiRowSelection ?? true;
|
|
305
281
|
},
|
|
306
282
|
getToggleSelectedHandler: () => {
|
|
307
283
|
const canSelect = row.getCanSelect();
|
|
@@ -379,9 +355,7 @@ function selectRowsFn(table, rowModel) {
|
|
|
379
355
|
};
|
|
380
356
|
}
|
|
381
357
|
function isRowSelected(row, selection) {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;
|
|
358
|
+
return selection[row.id] ?? false;
|
|
385
359
|
}
|
|
386
360
|
function isSubRowSelected(row, selection, table) {
|
|
387
361
|
if (row.subRows && row.subRows.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TData extends RowData> = {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TData extends RowData> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|