@tanstack/table-core 8.0.0-alpha.9 → 8.0.0-beta.2

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 (186) hide show
  1. package/build/cjs/aggregationFns.js +120 -0
  2. package/build/cjs/aggregationFns.js.map +1 -0
  3. package/build/cjs/core/cell.js +40 -0
  4. package/build/cjs/core/cell.js.map +1 -0
  5. package/build/cjs/core/column.js +88 -0
  6. package/build/cjs/core/column.js.map +1 -0
  7. package/build/cjs/core/headers.js +403 -0
  8. package/build/cjs/core/headers.js.map +1 -0
  9. package/build/cjs/core/instance.js +255 -0
  10. package/build/cjs/core/instance.js.map +1 -0
  11. package/build/cjs/core/row.js +77 -0
  12. package/build/cjs/core/row.js.map +1 -0
  13. package/build/cjs/createTable.js +36 -29
  14. package/build/cjs/createTable.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +157 -189
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +103 -155
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +155 -304
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +97 -157
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +30 -41
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +102 -105
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +131 -89
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +138 -267
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +82 -167
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +69 -115
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +107 -0
  36. package/build/cjs/filterFns.js.map +1 -0
  37. package/build/cjs/index.js +36 -23
  38. package/build/cjs/index.js.map +1 -1
  39. package/build/cjs/sortingFns.js +124 -0
  40. package/build/cjs/sortingFns.js.map +1 -0
  41. package/build/cjs/utils/filterRowsUtils.js +117 -0
  42. package/build/cjs/utils/filterRowsUtils.js.map +1 -0
  43. package/build/cjs/utils/getCoreRowModel.js +79 -0
  44. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  45. package/build/cjs/utils/getExpandedRowModel.js +57 -0
  46. package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js +54 -0
  48. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  49. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  50. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  52. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  53. package/build/cjs/utils/getFilteredRowModel.js +139 -0
  54. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  55. package/build/cjs/utils/getGroupedRowModel.js +161 -0
  56. package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
  57. package/build/cjs/utils/getPaginationRowModel.js +61 -0
  58. package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
  59. package/build/cjs/utils/getSortedRowModel.js +110 -0
  60. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  61. package/build/cjs/utils.js +38 -107
  62. package/build/cjs/utils.js.map +1 -1
  63. package/build/esm/index.js +2976 -3853
  64. package/build/esm/index.js.map +1 -1
  65. package/build/stats-html.html +1 -1
  66. package/build/stats-react.json +586 -408
  67. package/build/types/aggregationFns.d.ts +13 -0
  68. package/build/types/core/cell.d.ts +9 -0
  69. package/build/types/core/column.d.ts +40 -0
  70. package/build/types/core/headers.d.ts +46 -0
  71. package/build/types/core/instance.d.ts +57 -0
  72. package/build/types/core/row.d.ts +15 -0
  73. package/build/types/createTable.d.ts +47 -26
  74. package/build/types/features/ColumnSizing.d.ts +32 -44
  75. package/build/types/features/Expanding.d.ts +15 -26
  76. package/build/types/features/Filters.d.ts +64 -63
  77. package/build/types/features/Grouping.d.ts +32 -46
  78. package/build/types/features/Ordering.d.ts +7 -10
  79. package/build/types/features/Pagination.d.ts +16 -15
  80. package/build/types/features/Pinning.d.ts +16 -17
  81. package/build/types/features/RowSelection.d.ts +13 -33
  82. package/build/types/features/Sorting.d.ts +25 -44
  83. package/build/types/features/Visibility.d.ts +16 -25
  84. package/build/types/filterFns.d.ts +13 -0
  85. package/build/types/index.d.ts +16 -10
  86. package/build/types/sortingFns.d.ts +11 -0
  87. package/build/types/types.d.ts +37 -122
  88. package/build/types/utils/filterRowsUtils.d.ts +4 -0
  89. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  90. package/build/types/utils/getExpandedRowModel.d.ts +7 -0
  91. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  92. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  93. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  94. package/build/types/utils/getFilteredRowModel.d.ts +2 -0
  95. package/build/types/utils/getGroupedRowModel.d.ts +2 -0
  96. package/build/types/utils/getPaginationRowModel.d.ts +4 -0
  97. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  98. package/build/types/utils.d.ts +7 -11
  99. package/build/umd/index.development.js +3024 -3893
  100. package/build/umd/index.development.js.map +1 -1
  101. package/build/umd/index.production.js +1 -1
  102. package/build/umd/index.production.js.map +1 -1
  103. package/package.json +9 -10
  104. package/src/aggregationFns.ts +123 -0
  105. package/src/core/cell.ts +48 -0
  106. package/src/core/column.ts +147 -0
  107. package/src/core/headers.ts +575 -0
  108. package/src/core/instance.ts +359 -0
  109. package/src/core/row.ts +85 -0
  110. package/src/createTable.ts +188 -0
  111. package/src/features/ColumnSizing.ts +170 -185
  112. package/src/features/Expanding.ts +120 -194
  113. package/src/features/Filters.ts +299 -381
  114. package/src/features/Grouping.ts +158 -220
  115. package/src/features/Ordering.ts +24 -25
  116. package/src/features/Pagination.ts +88 -73
  117. package/src/features/Pinning.ts +186 -63
  118. package/src/features/RowSelection.ts +107 -245
  119. package/src/features/Sorting.ts +125 -225
  120. package/src/features/Visibility.ts +116 -132
  121. package/src/filterFns.ts +135 -0
  122. package/src/index.ts +29 -0
  123. package/src/{sortTypes.ts → sortingFns.ts} +63 -85
  124. package/src/types.ts +62 -168
  125. package/src/utils/filterRowsUtils.ts +112 -0
  126. package/src/utils/getCoreRowModel.ts +84 -0
  127. package/src/utils/getExpandedRowModel.ts +54 -0
  128. package/src/utils/getFacetedMinMaxValues.ts +40 -0
  129. package/src/utils/getFacetedRowModel.ts +50 -0
  130. package/src/utils/getFacetedUniqueValues.ts +37 -0
  131. package/src/utils/getFilteredRowModel.ts +159 -0
  132. package/src/utils/getGroupedRowModel.ts +175 -0
  133. package/src/utils/getPaginationRowModel.ts +48 -0
  134. package/src/utils/getSortedRowModel.ts +116 -0
  135. package/src/utils.ts +126 -0
  136. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  137. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  138. package/build/cjs/aggregationTypes.js +0 -130
  139. package/build/cjs/aggregationTypes.js.map +0 -1
  140. package/build/cjs/core.js +0 -545
  141. package/build/cjs/core.js.map +0 -1
  142. package/build/cjs/features/Headers.js +0 -630
  143. package/build/cjs/features/Headers.js.map +0 -1
  144. package/build/cjs/filterTypes.js +0 -172
  145. package/build/cjs/filterTypes.js.map +0 -1
  146. package/build/cjs/sortTypes.js +0 -122
  147. package/build/cjs/sortTypes.js.map +0 -1
  148. package/build/cjs/types.js +0 -22
  149. package/build/cjs/types.js.map +0 -1
  150. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  151. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  152. package/build/cjs/utils/expandRowsFn.js +0 -38
  153. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  154. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  155. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  156. package/build/cjs/utils/groupRowsFn.js +0 -155
  157. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  158. package/build/cjs/utils/paginateRowsFn.js +0 -44
  159. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  160. package/build/cjs/utils/sortRowsFn.js +0 -94
  161. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  162. package/build/types/aggregationTypes.d.ts +0 -22
  163. package/build/types/core.d.ts +0 -105
  164. package/build/types/features/Headers.d.ts +0 -43
  165. package/build/types/filterTypes.d.ts +0 -50
  166. package/build/types/sortTypes.d.ts +0 -18
  167. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  168. package/build/types/utils/expandRowsFn.d.ts +0 -2
  169. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  170. package/build/types/utils/groupRowsFn.d.ts +0 -2
  171. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  172. package/build/types/utils/sortRowsFn.d.ts +0 -2
  173. package/src/.DS_Store +0 -0
  174. package/src/aggregationTypes.ts +0 -115
  175. package/src/core.tsx +0 -763
  176. package/src/createTable.tsx +0 -137
  177. package/src/features/Headers.ts +0 -747
  178. package/src/filterTypes.ts +0 -188
  179. package/src/index.tsx +0 -23
  180. package/src/utils/columnFilterRowsFn.ts +0 -113
  181. package/src/utils/expandRowsFn.ts +0 -30
  182. package/src/utils/globalFilterRowsFn.ts +0 -89
  183. package/src/utils/groupRowsFn.ts +0 -170
  184. package/src/utils/paginateRowsFn.ts +0 -28
  185. package/src/utils/sortRowsFn.ts +0 -95
  186. package/src/utils.tsx +0 -221
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterType, filterTypes } from '../filterTypes'\nimport {\n Column,\n OnChangeFn,\n PartialGenerics,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n} from '../utils'\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type FilterFn<TGenerics extends PartialGenerics> = {\n (rows: Row<TGenerics>[], columnIds: string[], filterValue: any): any\n autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>\n}\n\nexport type ColumnFilterAutoRemoveTestFn<TGenerics extends PartialGenerics> = (\n value: unknown,\n column?: Column<TGenerics>\n) => boolean\n\nexport type CustomFilterTypes<TGenerics extends PartialGenerics> = Record<\n string,\n FilterFn<TGenerics>\n>\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type FilterType<TGenerics extends PartialGenerics> =\n | 'auto'\n | BuiltInFilterType\n | TGenerics['FilterFns']\n | FilterFn<TGenerics>\n\nexport type FiltersColumnDef<TGenerics extends PartialGenerics> = {\n filterType?: FilterType<Overwrite<TGenerics, { Value: any }>>\n enableAllFilters?: boolean\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n defaultCanFilter?: boolean\n defaultCanColumnFilter?: boolean\n defaultCanGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TGenerics extends PartialGenerics> = {\n filterType: FilterType<Overwrite<TGenerics, { Value: any }>>\n getCanColumnFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getColumnFilterIndex: () => number\n getIsColumnFiltered: () => boolean\n getColumnFilterValue: () => unknown\n setColumnFilterValue: (value: any) => void\n getPreFilteredRows: () => Row<TGenerics>[] | undefined\n getPreFilteredUniqueValues: () => Map<any, number>\n getPreFilteredMinMaxValues: () => [any, any]\n}\n\nexport type FiltersOptions<TGenerics extends PartialGenerics> = {\n filterFromChildrenUp?: boolean\n filterTypes?: TGenerics['FilterFns']\n enableFilters?: boolean\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n autoResetColumnFilters?: boolean\n enableColumnFilters?: boolean\n columnFilterRowsFn?: (\n instance: TableInstance<TGenerics>,\n coreRowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n // Global\n globalFilterType?: FilterType<TGenerics>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilters?: boolean\n autoResetGlobalFilter?: boolean\n enableGlobalFilter?: boolean\n globalFilterRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n getColumnCanGlobalFilterFn?: (column: Column<TGenerics>) => boolean\n}\n\nexport type FiltersInstance<TGenerics extends PartialGenerics> = {\n _notifyFiltersReset: () => void\n getColumnAutoFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n getColumnFilterFn: (columnId: string) => FilterFn<TGenerics> | undefined\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n setColumnFilterValue: (columnId: string, value: any) => void\n resetColumnFilters: () => void\n getColumnCanColumnFilter: (columnId: string) => boolean\n getColumnCanGlobalFilterFn?: (column: Column<TGenerics>) => boolean\n\n getColumnIsFiltered: (columnId: string) => boolean\n getColumnFilterValue: (columnId: string) => unknown\n getColumnFilterIndex: (columnId: string) => number\n\n // All\n getPreFilteredRowModel: () => RowModel<TGenerics>\n\n // Column Filters\n getPreColumnFilteredRowModel: () => RowModel<TGenerics>\n getColumnFilteredRowModel: () => RowModel<TGenerics>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: () => void\n getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFilterFn: () => FilterFn<TGenerics> | undefined\n getColumnCanGlobalFilter: (columnId: string) => boolean\n getPreGlobalFilteredRowModel: () => RowModel<TGenerics>\n getGlobalFilteredRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport function getDefaultColumn<\n TGenerics extends PartialGenerics\n>(): FiltersColumnDef<TGenerics> {\n return {\n filterType: 'auto',\n }\n}\n\nexport const Filters = {\n getInitialState: (): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersOptions<TGenerics> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n autoResetColumnFilters: true,\n filterFromChildrenUp: true,\n autoResetGlobalFilter: true,\n globalFilterType: 'auto',\n getColumnCanGlobalFilterFn: column => {\n const value = instance\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()[column.id]?.value\n\n return typeof value === 'string'\n },\n }\n },\n\n createColumn: <TGenerics extends PartialGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersColumn<TGenerics> => {\n const getFacetInfo = memo(\n () => [column.getPreFilteredRows()],\n (rows = []) => {\n let preFilteredUniqueValues = new Map<any, number>()\n\n let preFilteredMinMaxValues: [any, any] = [\n rows[0]?.values[column.id] ?? null,\n rows[0]?.values[column.id] ?? null,\n ]\n\n for (let i = 0; i < rows.length; i++) {\n const value = rows[i]?.values[column.id]\n\n if (preFilteredUniqueValues.has(value)) {\n preFilteredUniqueValues.set(\n value,\n (preFilteredUniqueValues.get(value) ?? 0) + 1\n )\n } else {\n preFilteredUniqueValues.set(value, 1)\n }\n\n if (value < preFilteredMinMaxValues[0]) {\n preFilteredMinMaxValues[0] = value\n } else if (value > preFilteredMinMaxValues[1]) {\n preFilteredMinMaxValues[1] = value\n }\n }\n\n return {\n preFilteredUniqueValues,\n preFilteredMinMaxValues,\n }\n },\n {\n key: 'column.getFacetInfo',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n\n return {\n filterType: column.filterType,\n getCanColumnFilter: () => instance.getColumnCanColumnFilter(column.id),\n getCanGlobalFilter: () => instance.getColumnCanGlobalFilter(column.id),\n getColumnFilterIndex: () => instance.getColumnFilterIndex(column.id),\n getIsColumnFiltered: () => instance.getColumnIsFiltered(column.id),\n getColumnFilterValue: () => instance.getColumnFilterValue(column.id),\n setColumnFilterValue: val =>\n instance.setColumnFilterValue(column.id, val),\n getPreFilteredUniqueValues: () => getFacetInfo().preFilteredUniqueValues,\n getPreFilteredMinMaxValues: () => getFacetInfo().preFilteredMinMaxValues,\n getPreFilteredRows: () => undefined,\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyFiltersReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (instance.options.autoResetAll === true) {\n instance.resetSorting()\n } else {\n if (instance.options.autoResetColumnFilters) {\n instance.resetColumnFilters()\n }\n if (instance.options.autoResetGlobalFilter) {\n instance.resetGlobalFilter()\n }\n }\n },\n getColumnAutoFilterFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return filterTypes.includesString\n }\n\n if (typeof value === 'number') {\n return filterTypes.betweenNumberRange\n }\n\n if (value !== null && typeof value === 'object') {\n return filterTypes.equals\n }\n\n if (Array.isArray(value)) {\n return filterTypes.arrIncludes\n }\n\n return filterTypes.weakEquals\n },\n getGlobalAutoFilterFn: () => {\n return filterTypes.includesString\n },\n getColumnFilterFn: columnId => {\n const column = instance.getColumn(columnId)\n const userFilterTypes = instance.options.filterTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.filterType)\n ? column.filterType\n : column.filterType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userFilterTypes as Record<string, any>)?.[\n column.filterType as string\n ] ??\n (filterTypes[\n column.filterType as BuiltInFilterType\n ] as FilterFn<TGenerics>)\n },\n\n getGlobalFilterFn: () => {\n const { filterTypes: userFilterTypes, globalFilterType } =\n instance.options\n\n return isFunction(globalFilterType)\n ? globalFilterType\n : globalFilterType === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterTypes as Record<string, any>)?.[\n globalFilterType as string\n ] ??\n (filterTypes[\n globalFilterType as BuiltInFilterType\n ] as FilterFn<TGenerics>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(\n updateFn,\n updateFn(instance.getState().columnFilters)\n )\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(\n updater,\n functionalUpdate(updater, instance.getState().globalFilter)\n )\n },\n\n resetGlobalFilter: () => {\n instance.setGlobalFilter(undefined)\n },\n\n getColumnCanColumnFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableAllFilters ??\n column.enableColumnFilter ??\n instance.options.enableFilters ??\n instance.options.enableColumnFilters ??\n column.defaultCanFilter ??\n column.defaultCanColumnFilter ??\n !!column.accessorFn\n )\n },\n\n getColumnCanGlobalFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n ((instance.options.enableFilters ??\n instance.options.enableGlobalFilter ??\n column.enableAllFilters ??\n column.enableGlobalFilter ??\n column.defaultCanFilter ??\n column.defaultCanGlobalFilter ??\n !!column.accessorFn) &&\n instance.options.getColumnCanGlobalFilterFn?.(column)) ??\n true\n )\n },\n\n getColumnIsFiltered: columnId =>\n instance.getColumnFilterIndex(columnId) > -1,\n\n getColumnFilterValue: columnId =>\n instance.getState().columnFilters?.find(d => d.id === columnId)?.value,\n\n getColumnFilterIndex: columnId =>\n instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??\n -1,\n\n setColumnFilterValue: (columnId, value) => {\n if (!columnId) return\n\n instance.setColumnFilters(old => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n const previousfilter = old?.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TGenerics>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== columnId) ?? []\n }\n\n const newFilterObj = { id: columnId, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === columnId) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n\n resetColumnFilters: () => {\n instance.setColumnFilters(instance.initialState?.columnFilters ?? [])\n },\n\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n getPreColumnFilteredRowModel: () => instance.getCoreRowModel(),\n getColumnFilteredRowModel: memo(\n () => [\n instance.getState().columnFilters,\n instance.getCoreRowModel(),\n instance.options.columnFilterRowsFn,\n ],\n (columnFilters, rowModel, columnFiltersFn) => {\n const columnFilteredRowModel = (() => {\n if (!columnFilters?.length || !columnFiltersFn) {\n return rowModel\n }\n\n return columnFiltersFn(instance as any, rowModel)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance\n .getState()\n .columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => columnFilteredRowModel.rows\n })\n\n return columnFilteredRowModel\n },\n {\n key: 'getColumnFilteredRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n getPreGlobalFilteredRowModel: () => instance.getColumnFilteredRowModel(),\n getGlobalFilteredRowModel: memo(\n () => [\n instance.getState().globalFilter,\n instance.getColumnFilteredRowModel(),\n instance.options.globalFilterRowsFn,\n ],\n (globalFilterValue, columnFilteredRowModel, globalFiltersFn) => {\n const globalFilteredRowModel = (() => {\n if (!globalFiltersFn || !globalFilterValue) {\n return columnFilteredRowModel\n }\n\n return globalFiltersFn(\n instance as TableInstance<TGenerics>,\n columnFilteredRowModel\n )\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance\n .getState()\n .columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => globalFilteredRowModel.rows\n })\n\n return globalFilteredRowModel\n },\n {\n key: 'getGlobalFilteredRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifySortingReset()\n },\n }\n ),\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TGenerics extends PartialGenerics>(\n filterFn?: FilterFn<TGenerics>,\n value?: any,\n column?: Column<TGenerics>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["getDefaultColumn","filterType","Filters","getInitialState","columnFilters","globalFilter","undefined","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","autoResetColumnFilters","filterFromChildrenUp","autoResetGlobalFilter","globalFilterType","getColumnCanGlobalFilterFn","column","value","getCoreRowModel","flatRows","getAllCellsByColumnId","id","createColumn","getFacetInfo","memo","getPreFilteredRows","rows","preFilteredUniqueValues","Map","preFilteredMinMaxValues","values","i","length","has","set","get","key","debug","options","debugAll","debugColumns","getCanColumnFilter","getColumnCanColumnFilter","getCanGlobalFilter","getColumnCanGlobalFilter","getColumnFilterIndex","getIsColumnFiltered","getColumnIsFiltered","getColumnFilterValue","setColumnFilterValue","val","getPreFilteredUniqueValues","getPreFilteredMinMaxValues","getInstance","registered","_notifyFiltersReset","autoResetAll","resetSorting","resetColumnFilters","resetGlobalFilter","getColumnAutoFilterFn","columnId","firstRow","filterTypes","includesString","betweenNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getGlobalAutoFilterFn","getColumnFilterFn","getColumn","userFilterTypes","Error","isFunction","getGlobalFilterFn","setColumnFilters","updater","leafColumns","getAllLeafColumns","updateFn","old","functionalUpdate","filter","find","d","filterFn","shouldAutoRemoveFilter","getState","setGlobalFilter","enableAllFilters","enableColumnFilter","enableFilters","enableColumnFilters","defaultCanFilter","defaultCanColumnFilter","accessorFn","enableGlobalFilter","defaultCanGlobalFilter","findIndex","process","env","NODE_ENV","console","warn","previousfilter","newFilter","newFilterObj","map","initialState","getPreFilteredRowModel","getPreColumnFilteredRowModel","getColumnFilteredRowModel","columnFilterRowsFn","rowModel","columnFiltersFn","columnFilteredRowModel","nonFilteredColumns","forEach","debugTable","getPreGlobalFilteredRowModel","getGlobalFilteredRowModel","globalFilterRowsFn","globalFilterValue","globalFiltersFn","globalFilteredRowModel","onChange","_notifySortingReset","autoRemove"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/instance'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n} from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TGenerics extends TableGenerics> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TGenerics>\n}\n\nexport type FilterFn<TGenerics extends TableGenerics> = {\n (\n row: Row<TGenerics>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: TGenerics['FilterMeta']) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TGenerics>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TGenerics>\n}\n\nexport type TransformFilterValueFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TGenerics extends TableGenerics> = (\n value: any,\n column?: Column<TGenerics>\n) => boolean\n\nexport type CustomFilterFns<TGenerics extends TableGenerics> = Record<\n string,\n FilterFn<TGenerics>\n>\n\nexport type FilterFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInFilterFn\n | keyof TGenerics['FilterFns']\n | FilterFn<TGenerics>\n\nexport type FiltersColumnDef<TGenerics extends TableGenerics> = {\n filterFn?: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<TGenerics extends TableGenerics> = {\n filterFn: FilterFnOption<Overwrite<TGenerics, { Value: any }>>\n getAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getFilterFn: () => FilterFn<TGenerics> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TGenerics>\n _getFacetedRowModel?: () => RowModel<TGenerics>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport type FiltersRow<TGenerics extends TableGenerics> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, TGenerics['FilterMeta']>\n}\n\nexport type FiltersOptions<TGenerics extends TableGenerics> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n filterFns?: TGenerics['FilterFns']\n getFilteredRowModel?: (instance: TableInstance<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TGenerics>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TGenerics>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n instance: TableInstance<TGenerics>,\n columnId: string\n ) => () => RowModel<TGenerics>\n getFacetedUniqueValues?: (\n instance: TableInstance<TGenerics>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n instance: TableInstance<TGenerics>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\nexport type FiltersInstance<TGenerics extends TableGenerics> = {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TGenerics>\n getFilteredRowModel: () => RowModel<TGenerics>\n _getFilteredRowModel?: () => RowModel<TGenerics>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFilterFn: () => FilterFn<TGenerics> | undefined\n getGlobalFacetedRowModel: () => RowModel<TGenerics>\n _getGlobalFacetedRowModel?: () => RowModel<TGenerics>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <\n TGenerics extends TableGenerics\n >(): FiltersColumnDef<TGenerics> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersOptions<TGenerics> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = instance\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string'\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersColumn<TGenerics> => {\n return {\n filterFn: column.filterFn,\n getAutoFilterFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n const userFilterFns = instance.options.filterFns\n\n return isFunction(column.filterFn)\n ? column.filterFn\n : column.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n column.filterFn as string\n ] ??\n (filterFns[\n column.filterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (instance.options.enableColumnFilters ?? true) &&\n (instance.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (instance.options.enableGlobalFilter ?? true) &&\n (instance.options.enableFilters ?? true) &&\n (instance.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n instance.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n instance.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n instance.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TGenerics>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n instance.options.getFacetedRowModel &&\n instance.options.getFacetedRowModel(instance, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return instance.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n instance.options.getFacetedUniqueValues &&\n instance.options.getFacetedUniqueValues(instance, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n instance.options.getFacetedMinMaxValues &&\n instance.options.getFacetedMinMaxValues(instance, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): FiltersRow<TGenerics> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): FiltersInstance<TGenerics> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { filterFns: userFilterFns, globalFilterFn: globalFilterFn } =\n instance.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterFns as Record<string, any>)?.[\n globalFilterFn as string\n ] ??\n (filterFns[\n globalFilterFn as BuiltInFilterFn\n ] as FilterFn<TGenerics>)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n instance.setGlobalFilter(\n defaultState ? undefined : instance.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n instance.setColumnFilters(\n defaultState ? [] : instance.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n _getFilteredRowModel:\n instance.options.getFilteredRowModel &&\n instance.options.getFilteredRowModel(instance),\n getFilteredRowModel: () => {\n if (\n instance.options.manualFiltering ||\n !instance._getFilteredRowModel\n ) {\n return instance.getPreFilteredRowModel()\n }\n\n return instance._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n instance.options.getFacetedRowModel &&\n instance.options.getFacetedRowModel(instance, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (\n instance.options.manualFiltering ||\n !instance._getGlobalFacetedRowModel\n ) {\n return instance.getPreFilteredRowModel()\n }\n\n return instance._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n instance.options.getFacetedUniqueValues &&\n instance.options.getFacetedUniqueValues(instance, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!instance._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return instance._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n instance.options.getFacetedMinMaxValues &&\n instance.options.getFacetedMinMaxValues(instance, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!instance._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return instance._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TGenerics extends TableGenerics>(\n filterFn?: FilterFn<TGenerics>,\n value?: any,\n column?: Column<TGenerics>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","userFilterFns","options","isFunction","getCanFilter","columnDef","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createInstance","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
@@ -12,216 +12,156 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var aggregationTypes = require('../aggregationTypes.js');
15
+ var aggregationFns = require('../aggregationFns.js');
16
16
  var utils = require('../utils.js');
17
17
 
18
18
  //
19
- var Grouping = {
20
- getDefaultColumn: function getDefaultColumn() {
19
+ const Grouping = {
20
+ getDefaultColumnDef: () => {
21
21
  return {
22
- aggregationType: 'auto'
22
+ aggregationFn: 'auto'
23
23
  };
24
24
  },
25
- getInitialState: function getInitialState() {
25
+ getInitialState: state => {
26
26
  return {
27
- grouping: []
27
+ grouping: [],
28
+ ...state
28
29
  };
29
30
  },
30
- getDefaultOptions: function getDefaultOptions(instance) {
31
+ getDefaultOptions: instance => {
31
32
  return {
32
33
  onGroupingChange: utils.makeStateUpdater('grouping', instance),
33
- autoResetGrouping: true,
34
34
  groupedColumnMode: 'reorder'
35
35
  };
36
36
  },
37
- createColumn: function createColumn(column, instance) {
37
+ createColumn: (column, instance) => {
38
38
  return {
39
- aggregationType: column.aggregationType,
40
- getCanGroup: function getCanGroup() {
41
- return instance.getColumnCanGroup(column.id);
42
- },
43
- getGroupedIndex: function getGroupedIndex() {
44
- return instance.getColumnGroupedIndex(column.id);
45
- },
46
- getIsGrouped: function getIsGrouped() {
47
- return instance.getColumnIsGrouped(column.id);
39
+ toggleGrouping: () => {
40
+ instance.setGrouping(old => {
41
+ // Find any existing grouping for this column
42
+ if (old != null && old.includes(column.id)) {
43
+ return old.filter(d => d !== column.id);
44
+ }
45
+
46
+ return [...(old != null ? old : []), column.id];
47
+ });
48
48
  },
49
- toggleGrouping: function toggleGrouping() {
50
- return instance.toggleColumnGrouping(column.id);
49
+ getCanGroup: () => {
50
+ var _ref, _ref2, _ref3, _column$columnDef$ena;
51
+
52
+ return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : instance.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;
51
53
  },
52
- getToggleGroupingProps: function getToggleGroupingProps(userProps) {
53
- return instance.getToggleGroupingProps(column.id, userProps);
54
- }
55
- };
56
- },
57
- getInstance: function getInstance(instance) {
58
- var registered = false;
59
- return {
60
- _notifyGroupingReset: function _notifyGroupingReset() {
61
- if (!registered) {
62
- registered = true;
63
- return;
64
- }
54
+ getIsGrouped: () => {
55
+ var _instance$getState$gr;
65
56
 
66
- if (instance.options.autoResetAll === false) {
67
- return;
68
- }
57
+ return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(column.id);
58
+ },
59
+ getGroupedIndex: () => {
60
+ var _instance$getState$gr2;
69
61
 
70
- if (instance.options.autoResetAll === true || instance.options.autoResetGrouping) {
71
- instance.resetGrouping();
72
- }
62
+ return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(column.id);
63
+ },
64
+ getToggleGroupingHandler: () => {
65
+ const canGroup = column.getCanGroup();
66
+ return () => {
67
+ if (!canGroup) return;
68
+ column.toggleGrouping();
69
+ };
73
70
  },
74
- getColumnAutoAggregationFn: function getColumnAutoAggregationFn(columnId) {
75
- var firstRow = instance.getCoreRowModel().flatRows[0];
76
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
71
+ getAutoAggregationFn: () => {
72
+ const firstRow = instance.getCoreRowModel().flatRows[0];
73
+ const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
77
74
 
78
75
  if (typeof value === 'number') {
79
- return aggregationTypes.aggregationTypes.sum;
76
+ return aggregationFns.aggregationFns.sum;
80
77
  }
81
78
 
82
79
  if (Object.prototype.toString.call(value) === '[object Date]') {
83
- return aggregationTypes.aggregationTypes.extent;
80
+ return aggregationFns.aggregationFns.extent;
84
81
  }
85
82
 
86
- return aggregationTypes.aggregationTypes.count;
83
+ return aggregationFns.aggregationFns.count;
87
84
  },
88
- getColumnAggregationFn: function getColumnAggregationFn(columnId) {
89
- var _ref;
85
+ getAggregationFn: () => {
86
+ var _ref4;
90
87
 
91
- var column = instance.getColumn(columnId);
92
- var userAggregationTypes = instance.options.aggregationTypes;
88
+ const userAggregationFns = instance.options.aggregationFns;
93
89
 
94
90
  if (!column) {
95
91
  throw new Error();
96
92
  }
97
93
 
98
- return utils.isFunction(column.aggregationType) ? column.aggregationType : column.aggregationType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userAggregationTypes == null ? void 0 : userAggregationTypes[column.aggregationType]) != null ? _ref : aggregationTypes.aggregationTypes[column.aggregationType];
99
- },
100
- setGrouping: function setGrouping(updater) {
101
- return instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater, utils.functionalUpdate(updater, instance.getState().grouping));
102
- },
103
- toggleColumnGrouping: function toggleColumnGrouping(columnId) {
104
- instance.setGrouping(function (old) {
105
- // Find any existing grouping for this column
106
- if (old != null && old.includes(columnId)) {
107
- return old.filter(function (d) {
108
- return d !== columnId;
109
- });
110
- }
111
-
112
- return [].concat(old != null ? old : [], [columnId]);
113
- });
114
- },
115
- getColumnCanGroup: function getColumnCanGroup(columnId) {
116
- var _ref2, _ref3, _column$enableGroupin;
117
-
118
- var column = instance.getColumn(columnId);
119
-
120
- if (!column) {
121
- throw new Error();
122
- }
123
-
124
- return (_ref2 = (_ref3 = (_column$enableGroupin = column.enableGrouping) != null ? _column$enableGroupin : instance.options.enableGrouping) != null ? _ref3 : column.defaultCanGroup) != null ? _ref2 : !!column.accessorFn;
125
- },
126
- getColumnIsGrouped: function getColumnIsGrouped(columnId) {
127
- var _instance$getState$gr;
128
-
129
- return (_instance$getState$gr = instance.getState().grouping) == null ? void 0 : _instance$getState$gr.includes(columnId);
130
- },
131
- getColumnGroupedIndex: function getColumnGroupedIndex(columnId) {
132
- var _instance$getState$gr2;
133
-
134
- return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(columnId);
135
- },
136
- resetGrouping: function resetGrouping() {
94
+ return utils.isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.aggregationFn]) != null ? _ref4 : aggregationFns.aggregationFns[column.aggregationFn];
95
+ }
96
+ };
97
+ },
98
+ createInstance: instance => {
99
+ return {
100
+ setGrouping: updater => instance.options.onGroupingChange == null ? void 0 : instance.options.onGroupingChange(updater),
101
+ resetGrouping: defaultState => {
137
102
  var _instance$initialStat, _instance$initialStat2;
138
103
 
139
- instance.setGrouping((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);
140
- },
141
- getToggleGroupingProps: function getToggleGroupingProps(columnId, userProps) {
142
- var column = instance.getColumn(columnId);
143
- var canGroup = column.getCanGroup();
144
- var initialProps = {
145
- title: canGroup ? 'Toggle Grouping' : undefined,
146
- onClick: canGroup ? function (e) {
147
- e.persist();
148
- column.toggleGrouping == null ? void 0 : column.toggleGrouping();
149
- } : undefined
150
- };
151
- return utils.propGetter(initialProps, userProps);
152
- },
153
- getRowIsGrouped: function getRowIsGrouped(rowId) {
154
- var _instance$getRow;
155
-
156
- return !!((_instance$getRow = instance.getRow(rowId)) != null && _instance$getRow.groupingColumnId);
157
- },
158
- getPreGroupedRowModel: function getPreGroupedRowModel() {
159
- return instance.getSortedRowModel();
104
+ instance.setGrouping(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);
160
105
  },
161
- getGroupedRowModel: utils.memo(function () {
162
- return [instance.getState().grouping, instance.getSortedRowModel(), instance.options.groupRowsFn];
163
- }, function (grouping, rowModel, groupRowsFn) {
164
- if (!groupRowsFn || !grouping.length) {
165
- return rowModel;
106
+ getPreGroupedRowModel: () => instance.getSortedRowModel(),
107
+ getGroupedRowModel: () => {
108
+ if (!instance._getGroupedRowModel && instance.options.getGroupedRowModel) {
109
+ instance._getGroupedRowModel = instance.options.getGroupedRowModel(instance);
166
110
  }
167
111
 
168
- return groupRowsFn(instance, rowModel);
169
- }, {
170
- key: 'getGroupedRowModel',
171
- debug: function debug() {
172
- var _instance$options$deb;
173
-
174
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
175
- },
176
- onChange: function onChange() {
177
- return instance._notifyExpandedReset();
112
+ if (instance.options.manualGrouping || !instance._getGroupedRowModel) {
113
+ return instance.getPreGroupedRowModel();
178
114
  }
179
- })
115
+
116
+ return instance._getGroupedRowModel();
117
+ }
180
118
  };
181
119
  },
182
- createRow: function createRow(row, instance) {
120
+ createRow: row => {
183
121
  return {
184
- getIsGrouped: function getIsGrouped() {
185
- return instance.getRowIsGrouped(row.id);
186
- }
122
+ getIsGrouped: () => !!row.groupingColumnId,
123
+ _groupingValuesCache: {}
187
124
  };
188
125
  },
189
- createCell: function createCell(cell, column, row, _instance) {
126
+ createCell: (cell, column, row, instance) => {
190
127
  return {
191
- getIsGrouped: function getIsGrouped() {
192
- return column.getIsGrouped() && column.id === row.groupingColumnId;
193
- },
194
- getIsPlaceholder: function getIsPlaceholder() {
195
- return !cell.getIsGrouped() && column.getIsGrouped();
196
- },
197
- getIsAggregated: function getIsAggregated() {
128
+ getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,
129
+ getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),
130
+ getIsAggregated: () => {
198
131
  var _row$subRows;
199
132
 
200
133
  return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
134
+ },
135
+ renderAggregatedCell: () => {
136
+ var _column$columnDef$agg;
137
+
138
+ const template = (_column$columnDef$agg = column.columnDef.aggregatedCell) != null ? _column$columnDef$agg : column.columnDef.cell;
139
+ return template ? instance._render(template, {
140
+ instance,
141
+ column,
142
+ row,
143
+ cell,
144
+ getValue: cell.getValue
145
+ }) : null;
201
146
  }
202
147
  };
203
- },
204
- orderColumns: function orderColumns(leafColumns, grouping, groupedColumnMode) {
205
- if (!(grouping != null && grouping.length) || !groupedColumnMode) {
206
- return leafColumns;
207
- }
208
-
209
- var nonGroupingColumns = leafColumns.filter(function (col) {
210
- return !grouping.includes(col.id);
211
- });
212
-
213
- if (groupedColumnMode === 'remove') {
214
- return nonGroupingColumns;
215
- }
216
-
217
- var groupingColumns = grouping.map(function (g) {
218
- return leafColumns.find(function (col) {
219
- return col.id === g;
220
- });
221
- }).filter(Boolean);
222
- return [].concat(groupingColumns, nonGroupingColumns);
223
148
  }
224
149
  };
150
+ function orderColumns(leafColumns, grouping, groupedColumnMode) {
151
+ if (!(grouping != null && grouping.length) || !groupedColumnMode) {
152
+ return leafColumns;
153
+ }
154
+
155
+ const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));
156
+
157
+ if (groupedColumnMode === 'remove') {
158
+ return nonGroupingColumns;
159
+ }
160
+
161
+ const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);
162
+ return [...groupingColumns, ...nonGroupingColumns];
163
+ }
225
164
 
226
165
  exports.Grouping = Grouping;
166
+ exports.orderColumns = orderColumns;
227
167
  //# sourceMappingURL=Grouping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import React, { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInAggregationType, aggregationTypes } from '../aggregationTypes'\nimport {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n PartialGenerics,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends PartialGenerics> = (\n leafValues: TGenerics['Row'][],\n childValues: TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationTypes<TGenerics extends PartialGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationType<TGenerics extends PartialGenerics> =\n | 'auto'\n | BuiltInAggregationType\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends PartialGenerics> = {\n aggregationType?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n renderAggregatedCell?: () => React.ReactNode\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends PartialGenerics> = {\n aggregationType?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends PartialGenerics> = {\n aggregationTypes?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n groupRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type GroupingInstance<TGenerics extends PartialGenerics> = {\n _notifyGroupingReset: () => void\n getColumnAutoAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping = {\n getDefaultColumn: <\n TGenerics extends PartialGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationType: 'auto',\n }\n },\n\n getInitialState: (): GroupingTableState => {\n return {\n grouping: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends PartialGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n aggregationType: column.aggregationType,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyGroupingReset: () => {\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.autoResetGrouping\n ) {\n instance.resetGrouping()\n }\n },\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'number') {\n return aggregationTypes.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationTypes.extent\n }\n\n return aggregationTypes.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationTypes = instance.options.aggregationTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationType)\n ? column.aggregationType\n : column.aggregationType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userAggregationTypes as Record<string, any>)?.[\n column.aggregationType as string\n ] ??\n (aggregationTypes[\n column.aggregationType as BuiltInAggregationType\n ] as AggregationFn<TGenerics>)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: memo(\n () => [\n instance.getState().grouping,\n instance.getSortedRowModel(),\n instance.options.groupRowsFn,\n ],\n (grouping, rowModel, groupRowsFn) => {\n if (!groupRowsFn || !grouping.length) {\n return rowModel\n }\n\n return groupRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n }\n },\n\n createRow: <TGenerics extends PartialGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n },\n\n createCell: <TGenerics extends PartialGenerics>(\n cell: Cell<TGenerics> & GroupingCell,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n _instance: TableInstance<TGenerics>\n ): GroupingCell => {\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n row.subRows?.length > 1,\n }\n },\n\n orderColumns: <TGenerics extends PartialGenerics>(\n leafColumns: Column<TGenerics>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n ) => {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n },\n}\n"],"names":["Grouping","getDefaultColumn","aggregationType","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","registered","_notifyGroupingReset","options","autoResetAll","resetGrouping","getColumnAutoAggregationFn","columnId","firstRow","getCoreRowModel","flatRows","value","values","aggregationTypes","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationTypes","Error","isFunction","getColumnAutoFilterFn","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","initialState","canGroup","initialProps","title","undefined","onClick","e","persist","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","memo","groupRowsFn","rowModel","length","key","debug","debugAll","debugTable","onChange","_notifyExpandedReset","createRow","row","createCell","cell","_instance","getIsPlaceholder","getIsAggregated","subRows","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/instance'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableInstance,\n Row,\n Updater,\n Renderable,\n TableGenerics,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TGenerics extends TableGenerics> = (\n columnId: string,\n leafRows: Row<TGenerics>[],\n childRows: Row<TGenerics>[]\n) => any\n\nexport type CustomAggregationFns<TGenerics extends TableGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInAggregationFn\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingColumnDef<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TGenerics> | undefined\n getAggregationFn: () => AggregationFn<TGenerics> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell<TGenerics extends TableGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | TGenerics['Rendered']\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends TableGenerics> = {\n manualGrouping?: boolean\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (instance: TableInstance<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TGenerics extends TableGenerics> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <\n TGenerics extends TableGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n toggleGrouping: () => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n instance.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return instance.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => instance.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n\n return aggregationFns.count\n },\n getAggregationFn: () => {\n const userAggregationFns = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : (userAggregationFns as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TGenerics>)\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n return {\n setGrouping: updater => instance.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n instance.setGrouping(\n defaultState ? [] : instance.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TGenerics extends TableGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n row.subRows?.length > 1,\n renderAggregatedCell: () => {\n const template =\n column.columnDef.aggregatedCell ?? column.columnDef.cell\n\n return template\n ? instance._render(template, {\n instance,\n column,\n row,\n cell,\n getValue: cell.getValue,\n })\n : null\n },\n }\n },\n}\n\nexport function orderColumns<TGenerics extends TableGenerics>(\n leafColumns: Column<TGenerics>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregationFn","getInitialState","state","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","getValue","aggregationFns","sum","Object","prototype","toString","call","extent","count","getAggregationFn","userAggregationFns","Error","isFunction","createInstance","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","_render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}