@tanstack/table-core 8.0.0-alpha.49 → 8.0.0-alpha.51

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.
Files changed (68) hide show
  1. package/build/cjs/features/ColumnSizing.js +2 -2
  2. package/build/cjs/features/ColumnSizing.js.map +1 -1
  3. package/build/cjs/features/Expanding.js +3 -3
  4. package/build/cjs/features/Expanding.js.map +1 -1
  5. package/build/cjs/features/Filters.js +5 -8
  6. package/build/cjs/features/Filters.js.map +1 -1
  7. package/build/cjs/features/Grouping.js +3 -3
  8. package/build/cjs/features/Grouping.js.map +1 -1
  9. package/build/cjs/features/Ordering.js +1 -1
  10. package/build/cjs/features/Ordering.js.map +1 -1
  11. package/build/cjs/features/Pagination.js +2 -2
  12. package/build/cjs/features/Pagination.js.map +1 -1
  13. package/build/cjs/features/Pinning.js +1 -1
  14. package/build/cjs/features/Pinning.js.map +1 -1
  15. package/build/cjs/features/RowSelection.js +5 -5
  16. package/build/cjs/features/RowSelection.js.map +1 -1
  17. package/build/cjs/features/Sorting.js +3 -3
  18. package/build/cjs/features/Sorting.js.map +1 -1
  19. package/build/cjs/features/Visibility.js +1 -1
  20. package/build/cjs/features/Visibility.js.map +1 -1
  21. package/build/cjs/utils/getColumnFilteredRowModelSync.js +1 -1
  22. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -1
  23. package/build/cjs/utils/getCoreRowModelAsync.js +2 -3
  24. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  25. package/build/cjs/utils/getCoreRowModelSync.js +2 -3
  26. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  27. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +1 -1
  28. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -1
  29. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  30. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  31. package/build/cjs/utils/getSortedRowModelSync.js +1 -1
  32. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  33. package/build/esm/index.js +34 -39
  34. package/build/esm/index.js.map +1 -1
  35. package/build/stats-html.html +1 -1
  36. package/build/stats-react.json +321 -321
  37. package/build/types/features/Expanding.d.ts +1 -1
  38. package/build/types/features/Filters.d.ts +4 -6
  39. package/build/types/features/Grouping.d.ts +1 -1
  40. package/build/types/features/Pagination.d.ts +1 -1
  41. package/build/types/features/RowSelection.d.ts +1 -1
  42. package/build/types/features/Sorting.d.ts +1 -1
  43. package/build/types/types.d.ts +1 -1
  44. package/build/umd/index.development.js +34 -39
  45. package/build/umd/index.development.js.map +1 -1
  46. package/build/umd/index.production.js +1 -1
  47. package/build/umd/index.production.js.map +1 -1
  48. package/package.json +1 -1
  49. package/src/features/ColumnSizing.ts +2 -8
  50. package/src/features/Expanding.ts +4 -8
  51. package/src/features/Filters.ts +9 -20
  52. package/src/features/Grouping.ts +4 -8
  53. package/src/features/Ordering.ts +1 -4
  54. package/src/features/Pagination.ts +3 -6
  55. package/src/features/Pinning.ts +1 -4
  56. package/src/features/RowSelection.ts +6 -9
  57. package/src/features/Sorting.ts +4 -8
  58. package/src/features/Visibility.ts +1 -4
  59. package/src/types.ts +1 -1
  60. package/src/utils/getColumnFilteredRowModelAsync.ts +1 -1
  61. package/src/utils/getColumnFilteredRowModelSync.ts +1 -1
  62. package/src/utils/getCoreRowModelAsync.ts +2 -2
  63. package/src/utils/getCoreRowModelSync.ts +2 -2
  64. package/src/utils/getGlobalFilteredRowModelAsync.ts +1 -1
  65. package/src/utils/getGlobalFilteredRowModelSync.ts +1 -1
  66. package/src/utils/getGroupedRowModel.ts +1 -1
  67. package/src/utils/getSortedRowModelAsync.ts +1 -1
  68. package/src/utils/getSortedRowModelSync.ts +1 -1
@@ -30,7 +30,7 @@ var Ordering = {
30
30
  getInstance: function getInstance(instance) {
31
31
  return {
32
32
  setColumnOrder: function setColumnOrder(updater) {
33
- return instance.options.onColumnOrderChange == null ? void 0 : instance.options.onColumnOrderChange(updater, utils.functionalUpdate(updater, instance.getState().columnOrder));
33
+ return instance.options.onColumnOrderChange == null ? void 0 : instance.options.onColumnOrderChange(updater);
34
34
  },
35
35
  resetColumnOrder: function resetColumnOrder() {
36
36
  var _instance$initialStat;
@@ -1 +1 @@
1
- {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport {\n TableInstance,\n OnChangeFn,\n Updater,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\n\nimport { Grouping } from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TGenerics extends AnyGenerics> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (columns: Column<TGenerics>[]) => Column<TGenerics>[]\n}\n\n//\n\nexport const Ordering = {\n getInitialState: (): ColumnOrderTableState => {\n return {\n columnOrder: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderInstance<TGenerics> => {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnOrder)\n ),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\n },\n getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TGenerics>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n {\n key: 'getOrderColumnsFn',\n // debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","functionalUpdate","getState","resetColumnOrder","initialState","getOrderColumnsFn","memo","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","orderColumns","key"],"mappings":"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"}
1
+ {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport {\n TableInstance,\n OnChangeFn,\n Updater,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\n\nimport { Grouping } from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TGenerics extends AnyGenerics> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (columns: Column<TGenerics>[]) => Column<TGenerics>[]\n}\n\n//\n\nexport const Ordering = {\n getInitialState: (): ColumnOrderTableState => {\n return {\n columnOrder: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderInstance<TGenerics> => {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(updater),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\n },\n getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TGenerics>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n {\n key: 'getOrderColumnsFn',\n // debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","resetColumnOrder","initialState","getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","orderColumns","key"],"mappings":"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"}
@@ -35,7 +35,7 @@ var Pagination = {
35
35
  getInstance: function getInstance(instance) {
36
36
  var registered = false;
37
37
  return {
38
- _notifyPageIndexReset: function _notifyPageIndexReset() {
38
+ queueResetPageIndex: function queueResetPageIndex() {
39
39
  if (!registered) {
40
40
  registered = true;
41
41
  return;
@@ -55,7 +55,7 @@ var Pagination = {
55
55
  return newState;
56
56
  };
57
57
 
58
- return instance.options.onPaginationChange == null ? void 0 : instance.options.onPaginationChange(safeUpdater, utils.functionalUpdate(safeUpdater, instance.getState().pagination));
58
+ return instance.options.onPaginationChange == null ? void 0 : instance.options.onPaginationChange(safeUpdater);
59
59
  },
60
60
  resetPagination: function resetPagination() {
61
61
  var _instance$initialStat;
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<TGenerics extends AnyGenerics> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<TGenerics extends AnyGenerics> = {\n _notifyPageIndexReset: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => 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<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n _getPaginationRowModel?: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nexport const Pagination = {\n getInitialState: (): PaginationTableState => {\n return {\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n return {\n _notifyPageIndexReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetPageIndex\n ) {\n instance.resetPageIndex()\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 instance.options.onPaginationChange?.(\n safeUpdater,\n functionalUpdate(safeUpdater, instance.getState().pagination)\n )\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)\n },\n setPageSize: updater => {\n instance.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 instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount)\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 () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, 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: 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.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 instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !instance._getPaginationRowModel &&\n instance.options.getPaginationRowModel\n ) {\n instance._getPaginationRowModel =\n instance.options.getPaginationRowModel(instance)\n }\n\n if (!instance._getPaginationRowModel) {\n return instance.getPrePaginationRowModel()\n }\n\n return instance._getPaginationRowModel()\n },\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n if (pageCount > 0) {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["Pagination","getInitialState","pagination","pageCount","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","_notifyPageIndexReset","options","autoResetAll","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","getState","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","Math","min","max","_extends","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","pageOptions","Array","fill","map","_","i","key","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","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 {\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<TGenerics extends AnyGenerics> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<TGenerics extends AnyGenerics> = {\n queueResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => 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<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n _getPaginationRowModel?: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nexport const Pagination = {\n getInitialState: (): PaginationTableState => {\n return {\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n return {\n queueResetPageIndex: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetPageIndex\n ) {\n instance.resetPageIndex()\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 instance.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)\n },\n setPageSize: updater => {\n instance.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 instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount)\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 () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, 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: 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.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 instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !instance._getPaginationRowModel &&\n instance.options.getPaginationRowModel\n ) {\n instance._getPaginationRowModel =\n instance.options.getPaginationRowModel(instance)\n }\n\n if (!instance._getPaginationRowModel) {\n return instance.getPrePaginationRowModel()\n }\n\n return instance._getPaginationRowModel()\n },\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n if (pageCount > 0) {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["Pagination","getInitialState","pagination","pageCount","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","queueResetPageIndex","options","autoResetAll","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","Math","min","max","_extends","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getState","pageOptions","Array","fill","map","_","i","key","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
@@ -48,7 +48,7 @@ var Pinning = {
48
48
  getInstance: function getInstance(instance) {
49
49
  return {
50
50
  setColumnPinning: function setColumnPinning(updater) {
51
- return instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater, utils.functionalUpdate(updater, instance.getState().columnPinning));
51
+ return instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater);
52
52
  },
53
53
  resetColumnPinning: function resetColumnPinning() {
54
54
  var _instance$initialStat, _instance$initialStat2;
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype 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 defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<TGenerics extends AnyGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n getIsSomeColumnsPinned: () => boolean\n}\n\n//\n\nexport const Pinning = {\n getInitialState: (): ColumnPinningTableState => {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningColumn => {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnPinning)\n ),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(instance.initialState?.columnPinning ?? {}),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n const columnIds = column\n ?.getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n instance.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 getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.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 getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ??\n -1\n : 0\n },\n\n getIsSomeColumnsPinned: () => {\n const { left, right } = instance.getState().columnPinning\n\n return Boolean(left?.length || right?.length)\n },\n }\n },\n}\n"],"names":["Pinning","getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","functionalUpdate","getState","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","isLeft","isRight","indexOf","getIsSomeColumnsPinned","length"],"mappings":"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"}
1
+ {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype 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 defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<TGenerics extends AnyGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n getIsSomeColumnsPinned: () => boolean\n}\n\n//\n\nexport const Pinning = {\n getInitialState: (): ColumnPinningTableState => {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningColumn => {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(instance.initialState?.columnPinning ?? {}),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n const columnIds = column\n ?.getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n instance.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 getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.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 getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ??\n -1\n : 0\n },\n\n getIsSomeColumnsPinned: () => {\n const { left, right } = instance.getState().columnPinning\n\n return Boolean(left?.length || right?.length)\n },\n }\n },\n}\n"],"names":["Pinning","getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","getState","isLeft","isRight","indexOf","getIsSomeColumnsPinned","length"],"mappings":"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"}
@@ -38,7 +38,7 @@ var RowSelection = {
38
38
  var registered = false; // const pageRows = instance.getPageRows()
39
39
 
40
40
  return {
41
- _notifyRowSelectionReset: function _notifyRowSelectionReset() {
41
+ queueResetRowSelection: function queueResetRowSelection() {
42
42
  if (!registered) {
43
43
  registered = true;
44
44
  return;
@@ -53,7 +53,7 @@ var RowSelection = {
53
53
  }
54
54
  },
55
55
  setRowSelection: function setRowSelection(updater) {
56
- return instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater, utils.functionalUpdate(updater, instance.getState().rowSelection));
56
+ return instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater);
57
57
  },
58
58
  resetRowSelection: function resetRowSelection() {
59
59
  var _instance$initialStat;
@@ -184,7 +184,7 @@ var RowSelection = {
184
184
  },
185
185
  onChange: function onChange() {
186
186
  instance.queue(function () {
187
- return instance._notifyExpandedReset();
187
+ return instance.queueResetExpanded();
188
188
  });
189
189
  }
190
190
  }),
@@ -209,7 +209,7 @@ var RowSelection = {
209
209
  },
210
210
  onChange: function onChange() {
211
211
  return instance.queue(function () {
212
- return instance._notifyExpandedReset();
212
+ return instance.queueResetExpanded();
213
213
  });
214
214
  }
215
215
  }),
@@ -234,7 +234,7 @@ var RowSelection = {
234
234
  },
235
235
  onChange: function onChange() {
236
236
  return instance.queue(function () {
237
- return instance._notifyExpandedReset();
237
+ return instance.queueResetExpanded();
238
238
  });
239
239
  }
240
240
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: unknown) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\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<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\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 getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.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 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 instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.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, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\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 // instance.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 // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance._notifyExpandedReset())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.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 return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: unknown) => {\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\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<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\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, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","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 {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: unknown) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n queueResetRowSelection: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\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<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\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 getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n queueResetRowSelection: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.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 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 instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.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, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\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 // instance.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 // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance.queueResetExpanded())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance.queueResetExpanded()),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance.queueResetExpanded()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.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 return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: unknown) => {\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\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<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\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, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","queueResetRowSelection","options","autoResetAll","resetRowSelection","setRowSelection","updater","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","queueResetExpanded","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":";;;;;;;;;;;;;;;;;AAmGA;AAEO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,eAAe,EAAE,SAA8B,eAAA,GAAA;AAC7C,IAAO,OAAA;AACLC,MAAAA,YAAY,EAAE,EAAA;AADT,KAAP,CAAA;AAGD,GALyB;AAO1BC,EAAAA,iBAAiB,EAAE,SACjBC,iBAAAA,CAAAA,QADiB,EAEkB;AACnC,IAAO,OAAA;AACLC,MAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAD,EAAiBF,QAAjB,CADjC;AAELG,MAAAA,qBAAqB,EAAE,IAFlB;AAGLC,MAAAA,kBAAkB,EAAE,IAHf;AAILC,MAAAA,uBAAuB,EAAE,IAJpB;AAKLC,MAAAA,qBAAqB,EAAE,IALlB;AAOL;AACA;;AARK,KAAP,CAAA;AAUD,GApByB;AAsB1BC,EAAAA,WAAW,EAAE,SACXP,WAAAA,CAAAA,QADW,EAEyB;AACpC,IAAA,IAAIQ,UAAU,GAAG,KAAjB,CADoC;;AAKpC,IAAO,OAAA;AACLC,MAAAA,sBAAsB,EAAE,SAAM,sBAAA,GAAA;AAC5B,QAAI,IAAA,CAACD,UAAL,EAAiB;AACfA,UAAAA,UAAU,GAAG,IAAb,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIR,QAAQ,CAACU,OAAT,CAAiBC,YAAjB,KAAkC,KAAtC,EAA6C;AAC3C,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IACEX,QAAQ,CAACU,OAAT,CAAiBC,YAAjB,KAAkC,IAAlC,IACAX,QAAQ,CAACU,OAAT,CAAiBP,qBAFnB,EAGE;AACAH,UAAAA,QAAQ,CAACY,iBAAT,EAAA,CAAA;AACD,SAAA;AACF,OAjBI;AAkBLC,MAAAA,eAAe,EAAE,SAAA,eAAA,CAAAC,OAAO,EAAA;AAAA,QAAA,OACtBd,QAAQ,CAACU,OAAT,CAAiBT,oBADK,IAAA,IAAA,GAAA,KAAA,CAAA,GACtBD,QAAQ,CAACU,OAAT,CAAiBT,oBAAjB,CAAwCa,OAAxC,CADsB,CAAA;AAAA,OAlBnB;AAoBLF,MAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAAA,QACjBZ,OAAAA,QAAQ,CAACa,eAAT,CAAyBb,CAAAA,qBAAAA,GAAAA,QAAQ,CAACe,YAAT,CAAsBjB,YAA/C,KAA+D,IAAA,GAAA,qBAAA,GAAA,EAA/D,CADiB,CAAA;AAAA,OApBd;AAsBLkB,MAAAA,qBAAqB,EAAE,SAAAC,qBAAAA,CAAAA,KAAK,EAAI;AAC9BjB,QAAAA,QAAQ,CAACa,eAAT,CAAyB,UAAAK,GAAG,EAAI;AAC9BD,UAAAA,KAAK,GACH,OAAOA,KAAP,KAAiB,WAAjB,GACIA,KADJ,GAEI,CAACjB,QAAQ,CAACmB,oBAAT,EAHP,CAAA;;AAKA,UAAMrB,IAAAA,YAAY,GAAQoB,oCAAAA,CAAAA,EAAAA,EAAAA,GAAR,CAAlB,CAAA;;AAEA,UAAME,IAAAA,kBAAkB,GAAGpB,QAAQ,CAACqB,qBAAT,EAAiCC,CAAAA,QAA5D,CAR8B;AAW9B;;AACA,UAAA,IAAIL,KAAJ,EAAW;AACTG,YAAAA,kBAAkB,CAACG,OAAnB,CAA2B,UAAAC,GAAG,EAAI;AAChC1B,cAAAA,YAAY,CAAC0B,GAAG,CAACC,EAAL,CAAZ,GAAuB,IAAvB,CAAA;AACD,aAFD,CAAA,CAAA;AAGD,WAJD,MAIO;AACLL,YAAAA,kBAAkB,CAACG,OAAnB,CAA2B,UAAAC,GAAG,EAAI;AAChC,cAAA,OAAO1B,YAAY,CAAC0B,GAAG,CAACC,EAAL,CAAnB,CAAA;AACD,aAFD,CAAA,CAAA;AAGD,WAAA;;AAED,UAAA,OAAO3B,YAAP,CAAA;AACD,SAvBD,CAAA,CAAA;AAwBD,OA/CI;AAgDL4B,MAAAA,yBAAyB,EAAE,SAAA,yBAAA,CAAAT,KAAK,EAAA;AAAA,QAAA,OAC9BjB,QAAQ,CAACa,eAAT,CAAyB,UAAAK,GAAG,EAAI;AAC9B,UACE,OAAOD,KAAP,KAAiB,WAAjB,GACIA,KADJ,GAEI,CAACjB,QAAQ,CAAC2B,wBAAT,GAHP;;AAKA,UAAM7B,IAAAA,YAA+B,GAAQoB,oCAAAA,CAAAA,EAAAA,EAAAA,GAAR,CAArC,CAAA;;AAEAlB,UAAAA,QAAQ,CAAC4B,WAAT,EAAuBC,CAAAA,IAAvB,CAA4BN,OAA5B,CAAoC,UAAAC,GAAG,EAAI;AACzCM,YAAAA,mBAAmB,CAAChC,YAAD,EAAe0B,GAAG,CAACC,EAAnB,EAAuBR,KAAvB,EAA8BjB,QAA9B,CAAnB,CAAA;AACD,WAFD,CAAA,CAAA;AAIA,UAAA,OAAOF,YAAP,CAAA;AACD,SAbD,CAD8B,CAAA;AAAA,OAhD3B;AA+DLiC,MAAAA,iBAAiB,EAAE,SAAA,iBAAA,CAACC,KAAD,EAAQf,KAAR,EAAkB;AACnC,QAAA,IAAMO,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;AACA,QAAA,IAAME,UAAU,GAAGV,GAAG,CAACW,aAAJ,EAAnB,CAAA;AAEAnC,QAAAA,QAAQ,CAACa,eAAT,CAAyB,UAAAK,GAAG,EAAI;AAC9BD,UAAAA,KAAK,GAAG,OAAOA,KAAP,KAAiB,WAAjB,GAA+BA,KAA/B,GAAuC,CAACiB,UAAhD,CAAA;;AAEA,UAAIA,IAAAA,UAAU,KAAKjB,KAAnB,EAA0B;AACxB,YAAA,OAAOC,GAAP,CAAA;AACD,WAAA;;AAED,UAAMkB,IAAAA,cAAc,GAAQlB,oCAAAA,CAAAA,EAAAA,EAAAA,GAAR,CAApB,CAAA;;AAEAY,UAAAA,mBAAmB,CAACM,cAAD,EAAiBJ,KAAjB,EAAwBf,KAAxB,EAA+BjB,QAA/B,CAAnB,CAAA;AAEA,UAAA,OAAOoC,cAAP,CAAA;AACD,SAZD,CAAA,CAAA;AAaD,OAhFI;AAiFL;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACAC,MAAAA,sBAAsB,EAAE,SAAA,sBAAA,GAAA;AAAA,QAAMrC,OAAAA,QAAQ,CAACsC,eAAT,EAAN,CAAA;AAAA,OA3InB;AA4ILC,MAAAA,mBAAmB,EAAEC,UAAI,CACvB,YAAA;AAAA,QAAM,OAAA,CAACxC,QAAQ,CAACyC,QAAT,EAAA,CAAoB3C,YAArB,EAAmCE,QAAQ,CAACsC,eAAT,EAAnC,CAAN,CAAA;AAAA,OADuB,EAEvB,UAACxC,YAAD,EAAe4C,QAAf,EAA4B;AAC1B,QAAI,IAAA,CAACC,MAAM,CAACC,IAAP,CAAY9C,YAAZ,CAAA,CAA0B+C,MAA/B,EAAuC;AACrC,UAAO,OAAA;AACLhB,YAAAA,IAAI,EAAE,EADD;AAELP,YAAAA,QAAQ,EAAE,EAFL;AAGLwB,YAAAA,QAAQ,EAAE,EAAA;AAHL,WAAP,CAAA;AAKD,SAAA;;AAED,QAAA,OAAOC,YAAY,CAAC/C,QAAD,EAAW0C,QAAX,CAAnB,CAAA;AACD,OAZsB,EAavB;AACEM,QAAAA,GAAG,EAAE,qBADP;AAEEC,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;AAAA,UAAMjD,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACU,OAAT,CAAiBwC,QAAvB,oCAAmClD,QAAQ,CAACU,OAAT,CAAiByC,UAApD,CAAA;AAAA,SAFT;AAGEC,QAAAA,QAAQ,EAAE,SAAM,QAAA,GAAA;AACdpD,UAAAA,QAAQ,CAACqD,KAAT,CAAe,YAAA;AAAA,YAAMrD,OAAAA,QAAQ,CAACsD,kBAAT,EAAN,CAAA;AAAA,WAAf,CAAA,CAAA;AACD,SAAA;AALH,OAbuB,CA5IpB;AAkKLC,MAAAA,2BAA2B,EAAEf,UAAI,CAC/B,YAAA;AAAA,QAAM,OAAA,CACJxC,QAAQ,CAACyC,QAAT,EAAA,CAAoB3C,YADhB,EAEJE,QAAQ,CAACwD,yBAAT,EAFI,CAAN,CAAA;AAAA,OAD+B,EAK/B,UAAC1D,YAAD,EAAe4C,QAAf,EAA4B;AAC1B,QAAI,IAAA,CAACC,MAAM,CAACC,IAAP,CAAY9C,YAAZ,CAAA,CAA0B+C,MAA/B,EAAuC;AACrC,UAAO,OAAA;AACLhB,YAAAA,IAAI,EAAE,EADD;AAELP,YAAAA,QAAQ,EAAE,EAFL;AAGLwB,YAAAA,QAAQ,EAAE,EAAA;AAHL,WAAP,CAAA;AAKD,SAAA;;AAED,QAAA,OAAOC,YAAY,CAAC/C,QAAD,EAAW0C,QAAX,CAAnB,CAAA;AACD,OAf8B,EAgB/B;AACEM,QAAAA,GAAG,EAAE,6BADP;AAEEC,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UAAMjD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACU,OAAT,CAAiBwC,QAAvB,qCAAmClD,QAAQ,CAACU,OAAT,CAAiByC,UAApD,CAAA;AAAA,SAFT;AAGEC,QAAAA,QAAQ,EAAE,SAAA,QAAA,GAAA;AAAA,UAAMpD,OAAAA,QAAQ,CAACqD,KAAT,CAAe,YAAA;AAAA,YAAMrD,OAAAA,QAAQ,CAACsD,kBAAT,EAAN,CAAA;AAAA,WAAf,CAAN,CAAA;AAAA,SAAA;AAHZ,OAhB+B,CAlK5B;AAyLLG,MAAAA,0BAA0B,EAAEjB,UAAI,CAC9B,YAAA;AAAA,QAAM,OAAA,CAACxC,QAAQ,CAACyC,QAAT,EAAA,CAAoB3C,YAArB,EAAmCE,QAAQ,CAAC0D,kBAAT,EAAnC,CAAN,CAAA;AAAA,OAD8B,EAE9B,UAAC5D,YAAD,EAAe4C,QAAf,EAA4B;AAC1B,QAAI,IAAA,CAACC,MAAM,CAACC,IAAP,CAAY9C,YAAZ,CAAA,CAA0B+C,MAA/B,EAAuC;AACrC,UAAO,OAAA;AACLhB,YAAAA,IAAI,EAAE,EADD;AAELP,YAAAA,QAAQ,EAAE,EAFL;AAGLwB,YAAAA,QAAQ,EAAE,EAAA;AAHL,WAAP,CAAA;AAKD,SAAA;;AAED,QAAA,OAAOC,YAAY,CAAC/C,QAAD,EAAW0C,QAAX,CAAnB,CAAA;AACD,OAZ6B,EAa9B;AACEM,QAAAA,GAAG,EAAE,4BADP;AAEEC,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UAAMjD,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACU,OAAT,CAAiBwC,QAAvB,qCAAmClD,QAAQ,CAACU,OAAT,CAAiByC,UAApD,CAAA;AAAA,SAFT;AAGEC,QAAAA,QAAQ,EAAE,SAAA,QAAA,GAAA;AAAA,UAAMpD,OAAAA,QAAQ,CAACqD,KAAT,CAAe,YAAA;AAAA,YAAMrD,OAAAA,QAAQ,CAACsD,kBAAT,EAAN,CAAA;AAAA,WAAf,CAAN,CAAA;AAAA,SAAA;AAHZ,OAb8B,CAzL3B;AA6ML;AAEAK,MAAAA,gBAAgB,EAAE,SAAA3B,gBAAAA,CAAAA,KAAK,EAAI;AACzB,QAAyBhC,IAAAA,kBAAAA,GAAAA,QAAQ,CAACyC,QAAT,EAAzB;AAAA,YAAQ3C,YAAR,sBAAQA,YAAR,CAAA;;AACA,QAAA,IAAM0B,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;;AAEA,QAAI,IAAA,CAACR,GAAL,EAAU;AACR,UAAM,MAAA,IAAIoC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAOC,OAAAA,aAAa,CAACrC,GAAD,EAAM1B,YAAN,CAAb,KAA+C,IAAtD,CAAA;AACD,OAxNI;AA0NLgE,MAAAA,oBAAoB,EAAE,SAAA9B,oBAAAA,CAAAA,KAAK,EAAI;AAC7B,QAAyBhC,IAAAA,mBAAAA,GAAAA,QAAQ,CAACyC,QAAT,EAAzB;AAAA,YAAQ3C,YAAR,uBAAQA,YAAR,CAAA;;AACA,QAAA,IAAM0B,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;;AAEA,QAAI,IAAA,CAACR,GAAL,EAAU;AACR,UAAM,MAAA,IAAIoC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAOC,OAAAA,aAAa,CAACrC,GAAD,EAAM1B,YAAN,CAAb,KAA+C,MAAtD,CAAA;AACD,OAnOI;AAqOLiE,MAAAA,eAAe,EAAE,SAAA/B,eAAAA,CAAAA,KAAK,EAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACxB,QAAA,IAAMR,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;;AAEA,QAAI,IAAA,CAACR,GAAL,EAAU;AACR,UAAM,MAAA,IAAIoC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAI,IAAA,OAAO5D,QAAQ,CAACU,OAAT,CAAiBN,kBAAxB,KAA+C,UAAnD,EAA+D;AAC7D,UAAA,OAAOJ,QAAQ,CAACU,OAAT,CAAiBN,kBAAjB,CAAoCoB,GAApC,CAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAA,CAAA,qBAAA,GAAOxB,QAAQ,CAACU,OAAT,CAAiBN,kBAAxB,oCAA8C,IAA9C,CAAA;AACD,OAjPI;AAmPL4D,MAAAA,sBAAsB,EAAE,SAAAhC,sBAAAA,CAAAA,KAAK,EAAI;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAC/B,QAAA,IAAMR,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;;AAEA,QAAI,IAAA,CAACR,GAAL,EAAU;AACR,UAAM,MAAA,IAAIoC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAI,IAAA,OAAO5D,QAAQ,CAACU,OAAT,CAAiBJ,qBAAxB,KAAkD,UAAtD,EAAkE;AAChE,UAAA,OAAON,QAAQ,CAACU,OAAT,CAAiBJ,qBAAjB,CAAuCkB,GAAvC,CAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAA,CAAA,sBAAA,GAAOxB,QAAQ,CAACU,OAAT,CAAiBJ,qBAAxB,qCAAiD,IAAjD,CAAA;AACD,OA/PI;AAiQL2D,MAAAA,oBAAoB,EAAE,SAAAjC,oBAAAA,CAAAA,KAAK,EAAI;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAC7B,QAAA,IAAMR,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;;AAEA,QAAI,IAAA,CAACR,GAAL,EAAU;AACR,UAAM,MAAA,IAAIoC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAI,IAAA,OAAO5D,QAAQ,CAACU,OAAT,CAAiBL,uBAAxB,KAAoD,UAAxD,EAAoE;AAClE,UAAA,OAAOL,QAAQ,CAACU,OAAT,CAAiBL,uBAAjB,CAAyCmB,GAAzC,CAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAA,CAAA,sBAAA,GAAOxB,QAAQ,CAACU,OAAT,CAAiBL,uBAAxB,qCAAmD,IAAnD,CAAA;AACD,OA7QI;AA+QL;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEAc,MAAAA,oBAAoB,EAAE,SAAM,oBAAA,GAAA;AAC1B,QAAA,IAAM+C,mBAAmB,GACvBlE,QAAQ,CAACmE,4BAAT,GAAwC7C,QAD1C,CAAA;;AAEA,QAAyBtB,IAAAA,mBAAAA,GAAAA,QAAQ,CAACyC,QAAT,EAAzB;AAAA,YAAQ3C,YAAR,uBAAQA,YAAR,CAAA;;AAEA,QAAA,IAAIsE,iBAAiB,GAAGC,OAAO,CAC7BH,mBAAmB,CAACrB,MAApB,IAA8BF,MAAM,CAACC,IAAP,CAAY9C,YAAZ,CAAA,CAA0B+C,MAD3B,CAA/B,CAAA;;AAIA,QAAA,IAAIuB,iBAAJ,EAAuB;AACrB,UAAA,IAAIF,mBAAmB,CAACI,IAApB,CAAyB,UAAA9C,GAAG,EAAA;AAAA,YAAA,OAAI,CAAC1B,YAAY,CAAC0B,GAAG,CAACC,EAAL,CAAjB,CAAA;AAAA,WAA5B,CAAJ,EAA4D;AAC1D2C,YAAAA,iBAAiB,GAAG,KAApB,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,OAAOA,iBAAP,CAAA;AACD,OA7SI;AA+SLzC,MAAAA,wBAAwB,EAAE,SAAM,wBAAA,GAAA;AAC9B,QAAA,IAAM4C,kBAAkB,GAAGvE,QAAQ,CAACwE,qBAAT,GAAiClD,QAA5D,CAAA;;AACA,QAAyBtB,IAAAA,mBAAAA,GAAAA,QAAQ,CAACyC,QAAT,EAAzB;AAAA,YAAQ3C,YAAR,uBAAQA,YAAR,CAAA;;AAEA,QAAA,IAAI2E,qBAAqB,GAAG,CAAC,CAACF,kBAAkB,CAAC1B,MAAjD,CAAA;;AAEA,QAAA,IACE4B,qBAAqB,IACrBF,kBAAkB,CAACD,IAAnB,CAAwB,UAAA9C,GAAG,EAAA;AAAA,UAAA,OAAI,CAAC1B,YAAY,CAAC0B,GAAG,CAACC,EAAL,CAAjB,CAAA;AAAA,SAA3B,CAFF,EAGE;AACAgD,UAAAA,qBAAqB,GAAG,KAAxB,CAAA;AACD,SAAA;;AAED,QAAA,OAAOA,qBAAP,CAAA;AACD,OA7TI;AA+TLC,MAAAA,qBAAqB,EAAE,SAAM,qBAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC3B,QACE,OAAA,CAAC1E,QAAQ,CAACmB,oBAAT,EAAD,IACA,CAAC,CAACwB,MAAM,CAACC,IAAP,CAAY5C,CAAAA,qBAAAA,GAAAA,QAAQ,CAACyC,QAAT,EAAA,CAAoB3C,YAAhC,KAAgD,IAAA,GAAA,qBAAA,GAAA,EAAhD,EAAoD+C,MAFxD,CAAA;AAID,OApUI;AAsUL8B,MAAAA,yBAAyB,EAAE,SAAM,yBAAA,GAAA;AAC/B,QAAA,IAAMJ,kBAAkB,GAAGvE,QAAQ,CAACwE,qBAAT,GAAiClD,QAA5D,CAAA;AACA,QAAA,OAAOtB,QAAQ,CAAC2B,wBAAT,EAAA,GACH,KADG,GAEH,CAAC,EAAC4C,kBAAD,IAAA,IAAA,IAACA,kBAAkB,CAAE1B,MAArB,CAFL,CAAA;AAGD,OA3UI;AA6UL+B,MAAAA,yBAAyB,EAAE,SAAA,yBAAA,CAAC5C,KAAD,EAAQ6C,SAAR,EAAsB;AAC/C,QAAA,IAAMrD,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBD,KAAhB,CAAZ,CAAA;AAEA,QAAA,IAAME,UAAU,GAAGV,GAAG,CAACW,aAAJ,EAAnB,CAAA;AACA,QAAA,IAAM2C,cAAc,GAAGtD,GAAG,CAACuD,iBAAJ,EAAvB,CAAA;AACA,QAAA,IAAMC,SAAS,GAAGxD,GAAG,CAACyD,YAAJ,EAAlB,CAAA;AAEA,QAAA,IAAMC,YAAoC,GAAG;AAC3C9B,UAAAA,QAAQ,EAAE4B,SAAS,GACf,UAACG,CAAD,EAAgB;AACd3D,YAAAA,GAAG,CAAC4D,cAAJ,CACID,CAAD,CAAkBE,MAAnB,CAA+CC,OADjD,CAAA,CAAA;AAGD,WALc,GAMfC,SAPuC;AAQ3CD,UAAAA,OAAO,EAAEpD,UARkC;AAS3CsD,UAAAA,KAAK,EAAE,qBAToC;AAU3CC,UAAAA,aAAa,EAAEX,cAV4B;AAY3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAxB2C,SAA7C,CAAA;AA2BA,QAAA,OAAOY,gBAAU,CAACR,YAAD,EAAeL,SAAf,CAAjB,CAAA;AACD,OAhXI;AAkXLc,MAAAA,6BAA6B,EAAE,SAAAd,6BAAAA,CAAAA,SAAS,EAAI;AAC1C,QAAA,IAAMe,kBAAkB,GAAG5F,QAAQ,CAAC0E,qBAAT,EAA3B,CAAA;AACA,QAAA,IAAMN,iBAAiB,GAAGpE,QAAQ,CAACmB,oBAAT,EAA1B,CAAA;AAEA,QAAA,IAAM+D,YAAoC,GAAG;AAC3C9B,UAAAA,QAAQ,EAAE,SAAC+B,QAAAA,CAAAA,CAAD,EAAgB;AACxBnF,YAAAA,QAAQ,CAACgB,qBAAT,CACImE,CAAD,CAAkBE,MAAnB,CAA+CC,OADjD,CAAA,CAAA;AAGD,WAL0C;AAM3CA,UAAAA,OAAO,EAAElB,iBANkC;AAO3CoB,UAAAA,KAAK,EAAE,0BAPoC;AAQ3CC,UAAAA,aAAa,EAAEG,kBAAAA;AAR4B,SAA7C,CAAA;AAWA,QAAA,OAAOF,gBAAU,CAACR,YAAD,EAAeL,SAAf,CAAjB,CAAA;AACD,OAlYI;AAoYLgB,MAAAA,iCAAiC,EAAE,SAAAhB,iCAAAA,CAAAA,SAAS,EAAI;AAC9C,QAAA,IAAMiB,sBAAsB,GAAG9F,QAAQ,CAAC2E,yBAAT,EAA/B,CAAA;AACA,QAAA,IAAMF,qBAAqB,GAAGzE,QAAQ,CAAC2B,wBAAT,EAA9B,CAAA;AAEA,QAAA,IAAMuD,YAAoC,GAAG;AAC3C9B,UAAAA,QAAQ,EAAE,SAAC+B,QAAAA,CAAAA,CAAD,EAAgB;AACxBnF,YAAAA,QAAQ,CAAC0B,yBAAT,CACIyD,CAAD,CAAkBE,MAAnB,CAA+CC,OADjD,CAAA,CAAA;AAGD,WAL0C;AAM3CA,UAAAA,OAAO,EAAEb,qBANkC;AAO3Ce,UAAAA,KAAK,EAAE,uCAPoC;AAQ3CC,UAAAA,aAAa,EAAEK,sBAAAA;AAR4B,SAA7C,CAAA;AAWA,QAAA,OAAOJ,gBAAU,CAACR,YAAD,EAAeL,SAAf,CAAjB,CAAA;AACD,OAAA;AApZI,KAAP,CAAA;AAsZD,GAnbyB;AAqb1BkB,EAAAA,SAAS,EAAE,SAAA,SAAA,CACTvE,GADS,EAETxB,QAFS,EAGW;AACpB,IAAO,OAAA;AACLmC,MAAAA,aAAa,EAAE,SAAA,aAAA,GAAA;AAAA,QAAA,OAAMnC,QAAQ,CAAC2D,gBAAT,CAA0BnC,GAAG,CAACC,EAA9B,CAAN,CAAA;AAAA,OADV;AAELsD,MAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,QAAA,OAAM/E,QAAQ,CAAC8D,oBAAT,CAA8BtC,GAAG,CAACC,EAAlC,CAAN,CAAA;AAAA,OAFd;AAGL2D,MAAAA,cAAc,EAAE,SAAA,cAAA,CAAAnE,KAAK,EAAA;AAAA,QAAIjB,OAAAA,QAAQ,CAAC+B,iBAAT,CAA2BP,GAAG,CAACC,EAA/B,EAAmCR,KAAnC,CAAJ,CAAA;AAAA,OAHhB;AAIL+E,MAAAA,sBAAsB,EAAE,SAAA,sBAAA,CAAAnB,SAAS,EAAA;AAAA,QAC/B7E,OAAAA,QAAQ,CAAC4E,yBAAT,CAAmCpD,GAAG,CAACC,EAAvC,EAA2CoD,SAA3C,CAD+B,CAAA;AAAA,OAJ5B;AAMLoB,MAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,QAAA,OAAMjG,QAAQ,CAACiE,oBAAT,CAA8BzC,GAAG,CAACC,EAAlC,CAAN,CAAA;AAAA,OANd;AAOLwD,MAAAA,YAAY,EAAE,SAAA,YAAA,GAAA;AAAA,QAAA,OAAMjF,QAAQ,CAAC+D,eAAT,CAAyBvC,GAAG,CAACC,EAA7B,CAAN,CAAA;AAAA,OAAA;AAPT,KAAP,CAAA;AASD,GAAA;AAlcyB,EAArB;;AAqcP,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,CAC1BM,cAD0B,EAE1BX,EAF0B,EAG1BR,KAH0B,EAI1BjB,QAJ0B,EAKvB;AAAA,EAAA,IAAA,YAAA,CAAA;;AACH,EAAA,IAAMwB,GAAG,GAAGxB,QAAQ,CAACiC,MAAT,CAAgBR,EAAhB,CAAZ,CAAA;AAEA,EAAkBD,GAAG,CAAC0E,YAAJ,GAHf;AAMH;AACA;AACA;;AACA,EAAA,IAAIjF,KAAJ,EAAW;AACTmB,IAAAA,cAAc,CAACX,EAAD,CAAd,GAAqB,IAArB,CAAA;AACD,GAFD,MAEO;AACL,IAAOW,OAAAA,cAAc,CAACX,EAAD,CAArB,CAAA;AACD,GAbE;;;AAgBH,EAAA,IAAI,CAAAD,YAAAA,GAAAA,GAAG,CAAC2E,OAAJ,0BAAatD,MAAb,IAAuB7C,QAAQ,CAACgE,sBAAT,CAAgCxC,GAAG,CAACC,EAApC,CAA3B,EAAoE;AAClED,IAAAA,GAAG,CAAC2E,OAAJ,CAAY5E,OAAZ,CAAoB,UAAAC,GAAG,EAAA;AAAA,MACrBM,OAAAA,mBAAmB,CAACM,cAAD,EAAiBZ,GAAG,CAACC,EAArB,EAAyBR,KAAzB,EAAgCjB,QAAhC,CADE,CAAA;AAAA,KAAvB,CAAA,CAAA;AAGD,GAAA;AACF,CA1BD,CAAA;;AA4BO,SAAS+C,YAAT,CACL/C,QADK,EAEL0C,QAFK,EAGgB;AACrB,EAAA,IAAM5C,YAAY,GAAGE,QAAQ,CAACyC,QAAT,GAAoB3C,YAAzC,CAAA;AAEA,EAAMsG,IAAAA,mBAAqC,GAAG,EAA9C,CAAA;AACA,EAAA,IAAMC,mBAAmD,GAAG,EAA5D,CAJqB;;AAOrB,EAAMC,IAAAA,WAAW,GAAG,SAAdA,WAAc,CAACzE,IAAD,EAAyB0E,KAAzB,EAAyD;;AAC3E,IAAA,OAAO1E,IAAI,CACR2E,GADI,CACA,UAAAhF,GAAG,EAAI;AAAA,MAAA,IAAA,aAAA,CAAA;;AACV,MAAMU,IAAAA,UAAU,GAAG2B,aAAa,CAACrC,GAAD,EAAM1B,YAAN,CAAb,KAA+C,IAAlE,CAAA;;AAEA,MAAA,IAAIoC,UAAJ,EAAgB;AACdkE,QAAAA,mBAAmB,CAACK,IAApB,CAAyBjF,GAAzB,CAAA,CAAA;AACA6E,QAAAA,mBAAmB,CAAC7E,GAAG,CAACC,EAAL,CAAnB,GAA8BD,GAA9B,CAAA;AACD,OAAA;;AAED,MAAA,IAAA,CAAA,aAAA,GAAIA,GAAG,CAAC2E,OAAR,KAAI,IAAA,IAAA,aAAA,CAAatD,MAAjB,EAAyB;AACvBrB,QAAAA,GAAG,4CACEA,GADF,EAAA;AAED2E,UAAAA,OAAO,EAAEG,WAAW,CAAC9E,GAAG,CAAC2E,OAAL,CAAA;AAFnB,SAAH,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,IAAIjE,UAAJ,EAAgB;AACd,QAAA,OAAOV,GAAP,CAAA;AACD,OAAA;AACF,KAnBI,CAoBJkF,CAAAA,MApBI,CAoBGrC,OApBH,CAAP,CAAA;AAqBD,GAtBD,CAAA;;AAwBA,EAAO,OAAA;AACLxC,IAAAA,IAAI,EAAEyE,WAAW,CAAC5D,QAAQ,CAACb,IAAV,CADZ;AAELP,IAAAA,QAAQ,EAAE8E,mBAFL;AAGLtD,IAAAA,QAAQ,EAAEuD,mBAAAA;AAHL,GAAP,CAAA;AAKD,CAAA;AAEM,SAASxC,aAAT,CACLrC,GADK,EAELmF,SAFK,EAGL3G,QAHK,EAIa;AAClB,EAAA,IAAI2G,SAAS,CAACnF,GAAG,CAACC,EAAL,CAAb,EAAuB;AACrB,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;AAED,EAAID,IAAAA,GAAG,CAAC2E,OAAJ,IAAe3E,GAAG,CAAC2E,OAAJ,CAAYtD,MAA/B,EAAuC;AACrC,IAAI+D,IAAAA,mBAAmB,GAAG,IAA1B,CAAA;AACA,IAAIC,IAAAA,YAAY,GAAG,KAAnB,CAAA;AAEArF,IAAAA,GAAG,CAAC2E,OAAJ,CAAY5E,OAAZ,CAAoB,UAAAuF,MAAM,EAAI;AAC5B;AACA,MAAA,IAAID,YAAY,IAAI,CAACD,mBAArB,EAA0C;AACxC,QAAA,OAAA;AACD,OAAA;;AAED,MAAI/C,IAAAA,aAAa,CAACiD,MAAD,EAASH,SAAT,CAAjB,EAAgD;AAC9CE,QAAAA,YAAY,GAAG,IAAf,CAAA;AACD,OAFD,MAEO;AACLD,QAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,OAAA;AACF,KAXD,CAAA,CAAA;AAaA,IAAOA,OAAAA,mBAAmB,GAAG,IAAH,GAAUC,YAAY,GAAG,MAAH,GAAY,KAA5D,CAAA;AACD,GAAA;;AAED,EAAA,OAAO,KAAP,CAAA;AACD;;;;;;"}
@@ -66,8 +66,8 @@ var Sorting = {
66
66
  getInstance: function getInstance(instance) {
67
67
  var registered = false;
68
68
  return {
69
- _notifySortingReset: function _notifySortingReset() {
70
- instance._notifyGroupingReset();
69
+ queueResetSorting: function queueResetSorting() {
70
+ instance.queueResetGrouping();
71
71
 
72
72
  if (!registered) {
73
73
  registered = true;
@@ -132,7 +132,7 @@ var Sorting = {
132
132
  return utils.isFunction(column.sortingFn) ? column.sortingFn : column.sortingFn === 'auto' ? instance.getColumnAutoSortingFn(columnId) : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.sortingFn]) != null ? _ref : sortingFns.sortingFns[column.sortingFn];
133
133
  },
134
134
  setSorting: function setSorting(updater) {
135
- return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater, utils.functionalUpdate(updater, instance.getState().sorting));
135
+ return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater);
136
136
  },
137
137
  toggleColumnSorting: function toggleColumnSorting(columnId, desc, multi) {
138
138
  var column = instance.getColumn(columnId);
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n instance._notifyGroupingReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: unknown) => {\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (!instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","_notifyGroupingReset","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n queueResetSorting: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n queueResetSorting: () => {\n instance.queueResetGrouping()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: unknown) => {\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (!instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","queueResetSorting","queueResetGrouping","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","Error","isFunction","setSorting","updater","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","getState","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":"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"}