@tanstack/table-core 8.0.0-alpha.68 → 8.0.0-alpha.71

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 (62) hide show
  1. package/build/cjs/features/ColumnSizing.js +19 -16
  2. package/build/cjs/features/ColumnSizing.js.map +1 -1
  3. package/build/cjs/features/Expanding.js +12 -4
  4. package/build/cjs/features/Expanding.js.map +1 -1
  5. package/build/cjs/features/Filters.js +6 -6
  6. package/build/cjs/features/Filters.js.map +1 -1
  7. package/build/cjs/features/Grouping.js +2 -2
  8. package/build/cjs/features/Grouping.js.map +1 -1
  9. package/build/cjs/features/Ordering.js +2 -2
  10. package/build/cjs/features/Ordering.js.map +1 -1
  11. package/build/cjs/features/Pagination.js +32 -19
  12. package/build/cjs/features/Pagination.js.map +1 -1
  13. package/build/cjs/features/Pinning.js +8 -6
  14. package/build/cjs/features/Pinning.js.map +1 -1
  15. package/build/cjs/features/RowSelection.js +2 -2
  16. package/build/cjs/features/RowSelection.js.map +1 -1
  17. package/build/cjs/features/Sorting.js +8 -8
  18. package/build/cjs/features/Sorting.js.map +1 -1
  19. package/build/cjs/features/Visibility.js +5 -0
  20. package/build/cjs/features/Visibility.js.map +1 -1
  21. package/build/cjs/utils/getCoreRowModel.js +1 -3
  22. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  23. package/build/cjs/utils/getFacetedMinMaxValues.js +10 -4
  24. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  25. package/build/cjs/utils/getFilteredRowModel.js +1 -3
  26. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  27. package/build/cjs/utils/getSortedRowModel.js +1 -3
  28. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  29. package/build/esm/index.js +109 -78
  30. package/build/esm/index.js.map +1 -1
  31. package/build/stats-html.html +1 -1
  32. package/build/stats-react.json +322 -322
  33. package/build/types/features/ColumnSizing.d.ts +2 -2
  34. package/build/types/features/Expanding.d.ts +1 -1
  35. package/build/types/features/Filters.d.ts +7 -7
  36. package/build/types/features/Grouping.d.ts +1 -1
  37. package/build/types/features/Ordering.d.ts +1 -1
  38. package/build/types/features/Pagination.d.ts +4 -4
  39. package/build/types/features/Pinning.d.ts +1 -1
  40. package/build/types/features/RowSelection.d.ts +1 -1
  41. package/build/types/features/Sorting.d.ts +2 -1
  42. package/build/types/features/Visibility.d.ts +1 -0
  43. package/build/types/utils/getFacetedMinMaxValues.d.ts +1 -1
  44. package/build/umd/index.development.js +109 -78
  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 +25 -18
  50. package/src/features/Expanding.ts +15 -5
  51. package/src/features/Filters.ts +17 -13
  52. package/src/features/Grouping.ts +5 -3
  53. package/src/features/Ordering.ts +5 -3
  54. package/src/features/Pagination.ts +42 -21
  55. package/src/features/Pinning.ts +13 -7
  56. package/src/features/RowSelection.ts +5 -3
  57. package/src/features/Sorting.ts +12 -10
  58. package/src/features/Visibility.ts +7 -0
  59. package/src/utils/getCoreRowModel.ts +1 -3
  60. package/src/utils/getFacetedMinMaxValues.ts +8 -5
  61. package/src/utils/getFilteredRowModel.ts +1 -3
  62. package/src/utils/getSortedRowModel.ts +1 -3
@@ -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 OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } 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 TableGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends TableGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends TableGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n getAutoSortingFn: () => SortingFn<TGenerics>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TGenerics>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TGenerics extends TableGenerics> = {\n manualSorting?: boolean\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\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 SortingInstance<TGenerics extends TableGenerics> = {\n setSorting: (updater: Updater<SortingState>) => void\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\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 getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\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 ? column.getAutoSortingFn()\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 toggleSorting: (desc, multi) => {\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 === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\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 column.getAutoSortDir() === '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: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: column.id,\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 === column.id) {\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 !== column.id)\n }\n\n return newSorting\n })\n },\n\n getCanSort: () => {\n return (\n (column.enableSorting ?? true) &&\n (instance.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -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 getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n getPreSortedRowModel: () => instance.getFilteredRowModel(),\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.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumn","sortingFn","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","userSortingFn","options","Error","isFunction","toggleSorting","desc","multi","setSorting","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","getCanMultiSort","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getCanSort","enableSorting","accessorFn","enableMultiSort","getIsSorted","columnSort","getState","getSortIndex","resetSorting","columnId","initialState","getToggleSortingHandler","canSort","persist","undefined","createInstance","updater","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"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 OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } 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 TableGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends TableGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends TableGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n getAutoSortingFn: () => SortingFn<TGenerics>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TGenerics>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TGenerics extends TableGenerics> = {\n manualSorting?: boolean\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\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 SortingInstance<TGenerics extends TableGenerics> = {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\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 getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\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 ? column.getAutoSortingFn()\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 toggleSorting: (desc, multi) => {\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 === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\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 column.getAutoSortDir() === '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: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: column.id,\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 === column.id) {\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 !== column.id)\n }\n\n return newSorting\n })\n },\n\n getCanSort: () => {\n return (\n (column.enableSorting ?? true) &&\n (instance.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n setSorting: updater => instance.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n instance.setSorting(\n defaultState ? [] : instance.initialState?.sorting ?? []\n )\n },\n getPreSortedRowModel: () => instance.getFilteredRowModel(),\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.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumn","sortingFn","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","userSortingFn","options","Error","isFunction","toggleSorting","desc","multi","setSorting","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","getCanMultiSort","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getCanSort","enableSorting","accessorFn","enableMultiSort","getIsSorted","columnSort","getState","getSortIndex","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createInstance","updater","resetSorting","defaultState","initialState","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
@@ -101,6 +101,11 @@ const Visibility = {
101
101
  getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => instance.getRightLeafColumns()),
102
102
  getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => instance.getCenterLeafColumns()),
103
103
  setColumnVisibility: updater => instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater),
104
+ resetColumnVisibility: defaultState => {
105
+ var _instance$initialStat;
106
+
107
+ instance.setColumnVisibility(defaultState ? {} : (_instance$initialStat = instance.initialState.columnVisibility) != null ? _instance$initialStat : {});
108
+ },
104
109
  toggleAllColumnsVisible: value => {
105
110
  var _value;
106
111
 
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n instance.setColumnVisibility(\n defaultState ? {} : instance.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","initialState","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
@@ -87,9 +87,7 @@ function getCoreRowModel() {
87
87
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
88
88
  },
89
89
  onChange: () => {
90
- instance.queue(() => {
91
- instance._autoResetPageIndex();
92
- });
90
+ instance._autoResetPageIndex();
93
91
  }
94
92
  });
95
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(id, originalRow, rowIndex, depth)\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rows","flatRows","rowsById","leafColumns","getAllLeafColumns","accessRow","originalRow","rowIndex","depth","parentRows","parent","id","getRowId","process","env","NODE_ENV","Error","values","i","length","column","accessorFn","row","createRow","push","getSubRows","originalSubRows","subRows","key","debug","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(id, originalRow, rowIndex, depth)\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rows","flatRows","rowsById","leafColumns","getAllLeafColumns","accessRow","originalRow","rowIndex","depth","parentRows","parent","id","getRowId","process","env","NODE_ENV","Error","values","i","length","column","accessorFn","row","createRow","push","getSubRows","originalSubRows","subRows","key","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}
@@ -16,14 +16,20 @@ var utils = require('../utils.js');
16
16
 
17
17
  function getFacetedMinMaxValues() {
18
18
  return (instance, columnId) => utils.memo(() => [instance.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
19
- var _facetedRowModel$flat, _facetedRowModel$flat2, _facetedRowModel$flat3, _facetedRowModel$flat4;
19
+ var _facetedRowModel$flat;
20
20
 
21
- let facetedMinMaxValues = [(_facetedRowModel$flat = (_facetedRowModel$flat2 = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId)) != null ? _facetedRowModel$flat : null, (_facetedRowModel$flat3 = (_facetedRowModel$flat4 = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat4.getValue(columnId)) != null ? _facetedRowModel$flat3 : null];
21
+ const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);
22
+
23
+ if (typeof firstValue === 'undefined') {
24
+ return undefined;
25
+ }
26
+
27
+ let facetedMinMaxValues = [firstValue, firstValue];
22
28
 
23
29
  for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
24
- var _facetedRowModel$flat5;
30
+ var _facetedRowModel$flat2;
25
31
 
26
- const value = (_facetedRowModel$flat5 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat5.getValue(columnId);
32
+ const value = (_facetedRowModel$flat2 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId);
27
33
 
28
34
  if (value < facetedMinMaxValues[0]) {
29
35
  facetedMinMaxValues[0] = value;
@@ -1 +1 @@
1
- {"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { TableInstance, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>,\n columnId: string\n) => () => [number, number] {\n return (instance, columnId) =>\n memo(\n () => [instance.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n let facetedMinMaxValues: [any, any] = [\n facetedRowModel.flatRows[0]?.getValue(columnId) ?? null,\n facetedRowModel.flatRows[0]?.getValue(columnId) ?? null,\n ]\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const value = facetedRowModel.flatRows[i]?.getValue(columnId)\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n\n return facetedMinMaxValues\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedMinMaxValues_' + columnId,\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedMinMaxValues","instance","columnId","memo","getColumn","getFacetedRowModel","facetedRowModel","facetedMinMaxValues","flatRows","getValue","i","length","value","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAT,GAGqB;AAC1B,EAAO,OAAA,CAACC,QAAD,EAAWC,QAAX,KACLC,UAAI,CACF,MAAM,CAACF,QAAQ,CAACG,SAAT,CAAmBF,QAAnB,CAA6BG,CAAAA,kBAA7B,EAAD,CADJ,EAEFC,eAAe,IAAI;AAAA,IAAA,IAAA,qBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,CAAA;;AACjB,IAAA,IAAIC,mBAA+B,GAAG,CACpCD,CAAAA,qBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,eAAe,CAACE,QAAhB,CAAyB,CAAzB,CADoC,KACpC,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA6BC,QAA7B,CAAsCP,QAAtC,CADoC,KAAA,IAAA,GAAA,qBAAA,GACe,IADf,EAAA,CAAA,sBAAA,GAAA,CAAA,sBAAA,GAEpCI,eAAe,CAACE,QAAhB,CAAyB,CAAzB,CAFoC,KAAA,IAAA,GAAA,KAAA,CAAA,GAEpC,sBAA6BC,CAAAA,QAA7B,CAAsCP,QAAtC,CAFoC,KAAA,IAAA,GAAA,sBAAA,GAEe,IAFf,CAAtC,CAAA;;AAKA,IAAA,KAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,eAAe,CAACE,QAAhB,CAAyBG,MAA7C,EAAqDD,CAAC,EAAtD,EAA0D;AAAA,MAAA,IAAA,sBAAA,CAAA;;AACxD,MAAA,MAAME,KAAK,GAAA,CAAA,sBAAA,GAAGN,eAAe,CAACE,QAAhB,CAAyBE,CAAzB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA6BD,QAA7B,CAAsCP,QAAtC,CAAd,CAAA;;AAEA,MAAA,IAAIU,KAAK,GAAGL,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AAClCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBK,KAAzB,CAAA;AACD,OAFD,MAEO,IAAIA,KAAK,GAAGL,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AACzCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBK,KAAzB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOL,mBAAP,CAAA;AACD,GAnBC,EAoBF;AACEM,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,yBAAA,GAA4Bd,QAHhC;AAIEe,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAMhB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACiB,OAAT,CAAiBC,QAAvB,oCAAmClB,QAAQ,CAACiB,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GApBE,CADN,CAAA;AA6BD;;;;"}
1
+ {"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { TableInstance, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>,\n columnId: string\n) => () => undefined | [number, number] {\n return (instance, columnId) =>\n memo(\n () => [instance.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n const firstValue = facetedRowModel.flatRows[0]?.getValue(columnId)\n\n if (typeof firstValue === 'undefined') {\n return undefined\n }\n\n let facetedMinMaxValues: [any, any] = [firstValue, firstValue]\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const value = facetedRowModel.flatRows[i]?.getValue(columnId)\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n\n return facetedMinMaxValues\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedMinMaxValues_' + columnId,\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedMinMaxValues","instance","columnId","memo","getColumn","getFacetedRowModel","facetedRowModel","firstValue","flatRows","getValue","undefined","facetedMinMaxValues","i","length","value","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAT,GAGiC;AACtC,EAAO,OAAA,CAACC,QAAD,EAAWC,QAAX,KACLC,UAAI,CACF,MAAM,CAACF,QAAQ,CAACG,SAAT,CAAmBF,QAAnB,CAA6BG,CAAAA,kBAA7B,EAAD,CADJ,EAEFC,eAAe,IAAI;AAAA,IAAA,IAAA,qBAAA,CAAA;;AACjB,IAAA,MAAMC,UAAU,GAAA,CAAA,qBAAA,GAAGD,eAAe,CAACE,QAAhB,CAAyB,CAAzB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA6BC,QAA7B,CAAsCP,QAAtC,CAAnB,CAAA;;AAEA,IAAA,IAAI,OAAOK,UAAP,KAAsB,WAA1B,EAAuC;AACrC,MAAA,OAAOG,SAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,mBAA+B,GAAG,CAACJ,UAAD,EAAaA,UAAb,CAAtC,CAAA;;AAEA,IAAA,KAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,eAAe,CAACE,QAAhB,CAAyBK,MAA7C,EAAqDD,CAAC,EAAtD,EAA0D;AAAA,MAAA,IAAA,sBAAA,CAAA;;AACxD,MAAA,MAAME,KAAK,GAAA,CAAA,sBAAA,GAAGR,eAAe,CAACE,QAAhB,CAAyBI,CAAzB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA6BH,QAA7B,CAAsCP,QAAtC,CAAd,CAAA;;AAEA,MAAA,IAAIY,KAAK,GAAGH,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AAClCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBG,KAAzB,CAAA;AACD,OAFD,MAEO,IAAIA,KAAK,GAAGH,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AACzCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBG,KAAzB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOH,mBAAP,CAAA;AACD,GAtBC,EAuBF;AACEI,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,yBAAA,GAA4BhB,QAHhC;AAIEiB,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAMlB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACmB,OAAT,CAAiBC,QAAvB,oCAAmCpB,QAAQ,CAACmB,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GAvBE,CADN,CAAA;AAgCD;;;;"}
@@ -119,9 +119,7 @@ function getFilteredRowModel() {
119
119
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
120
120
  },
121
121
  onChange: () => {
122
- instance.queue(() => {
123
- instance._autoResetPageIndex();
124
- });
122
+ instance._autoResetPageIndex();
125
123
  }
126
124
  });
127
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getFilteredRowModel.js","sources":["../../../src/utils/getFilteredRowModel.ts"],"sourcesContent":["import { ResolvedColumnFilter } from '../features/Filters'\nimport { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFilteredRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n ],\n (rowModel, columnFilters, globalFilter) => {\n if (\n !rowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n return rowModel\n }\n\n const resolvedColumnFilters: ResolvedColumnFilter<TGenerics>[] = []\n const resolvedGlobalFilters: ResolvedColumnFilter<TGenerics>[] = []\n\n ;(columnFilters ?? []).forEach(d => {\n const column = instance.getColumn(d.id)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column to filter with columnId: ${d.id}`\n )\n }\n }\n\n const filterFn = column.getFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,\n })\n })\n\n const filterableIds = columnFilters.map(d => d.id)\n\n const globalFilterFn = instance.getGlobalFilterFn()\n\n const globallyFilterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n if (\n globalFilter &&\n globalFilterFn &&\n globallyFilterableColumns.length\n ) {\n filterableIds.push('__global__')\n\n globallyFilterableColumns.forEach(column => {\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue:\n globalFilterFn.resolveFilterValue?.(globalFilter) ??\n globalFilter,\n })\n })\n }\n\n let currentColumnFilter\n let currentGlobalFilter\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j]!\n\n row.columnFilterMap = {}\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i]!\n\n // Tag the row with the column filter state\n row.columnFilterMap[currentColumnFilter.id] =\n currentColumnFilter.filterFn(\n row,\n currentColumnFilter.id,\n currentColumnFilter.resolvedValue\n )\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i]!\n // Tag the row with the first truthy global filter state\n if (\n currentGlobalFilter.filterFn(\n row,\n currentGlobalFilter.id,\n currentGlobalFilter.resolvedValue\n )\n ) {\n row.columnFilterMap.__global__ = true\n break\n }\n }\n\n if (row.columnFilterMap.__global__ !== true) {\n row.columnFilterMap.__global__ = false\n }\n }\n }\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilterMap[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, instance)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getFilteredRowModel","instance","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","rowModel","rows","length","resolvedColumnFilters","resolvedGlobalFilters","forEach","d","column","getColumn","id","process","env","NODE_ENV","console","warn","filterFn","getFilterFn","push","resolvedValue","resolveFilterValue","value","filterableIds","map","globalFilterFn","getGlobalFilterFn","globallyFilterableColumns","getAllLeafColumns","filter","getCanGlobalFilter","currentColumnFilter","currentGlobalFilter","j","flatRows","row","columnFilterMap","i","__global__","filterRowsImpl","filterRows","key","debug","options","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"getFilteredRowModel.js","sources":["../../../src/utils/getFilteredRowModel.ts"],"sourcesContent":["import { ResolvedColumnFilter } from '../features/Filters'\nimport { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFilteredRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n ],\n (rowModel, columnFilters, globalFilter) => {\n if (\n !rowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n return rowModel\n }\n\n const resolvedColumnFilters: ResolvedColumnFilter<TGenerics>[] = []\n const resolvedGlobalFilters: ResolvedColumnFilter<TGenerics>[] = []\n\n ;(columnFilters ?? []).forEach(d => {\n const column = instance.getColumn(d.id)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column to filter with columnId: ${d.id}`\n )\n }\n }\n\n const filterFn = column.getFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,\n })\n })\n\n const filterableIds = columnFilters.map(d => d.id)\n\n const globalFilterFn = instance.getGlobalFilterFn()\n\n const globallyFilterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n if (\n globalFilter &&\n globalFilterFn &&\n globallyFilterableColumns.length\n ) {\n filterableIds.push('__global__')\n\n globallyFilterableColumns.forEach(column => {\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue:\n globalFilterFn.resolveFilterValue?.(globalFilter) ??\n globalFilter,\n })\n })\n }\n\n let currentColumnFilter\n let currentGlobalFilter\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j]!\n\n row.columnFilterMap = {}\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i]!\n\n // Tag the row with the column filter state\n row.columnFilterMap[currentColumnFilter.id] =\n currentColumnFilter.filterFn(\n row,\n currentColumnFilter.id,\n currentColumnFilter.resolvedValue\n )\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i]!\n // Tag the row with the first truthy global filter state\n if (\n currentGlobalFilter.filterFn(\n row,\n currentGlobalFilter.id,\n currentGlobalFilter.resolvedValue\n )\n ) {\n row.columnFilterMap.__global__ = true\n break\n }\n }\n\n if (row.columnFilterMap.__global__ !== true) {\n row.columnFilterMap.__global__ = false\n }\n }\n }\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilterMap[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, instance)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getFilteredRowModel","instance","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","rowModel","rows","length","resolvedColumnFilters","resolvedGlobalFilters","forEach","d","column","getColumn","id","process","env","NODE_ENV","console","warn","filterFn","getFilterFn","push","resolvedValue","resolveFilterValue","value","filterableIds","map","globalFilterFn","getGlobalFilterFn","globallyFilterableColumns","getAllLeafColumns","filter","getCanGlobalFilter","currentColumnFilter","currentGlobalFilter","j","flatRows","row","columnFilterMap","i","__global__","filterRowsImpl","filterRows","key","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}
@@ -101,9 +101,7 @@ function getSortedRowModel() {
101
101
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
102
102
  },
103
103
  onChange: () => {
104
- instance.queue(() => {
105
- instance._autoResetPageIndex();
106
- });
104
+ instance._autoResetPageIndex();
107
105
  }
108
106
  });
109
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().sorting, instance.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = instance.getState().sorting\n\n const sortedFlatRows: Row<TGenerics>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n instance.getColumn(sort.id).getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TGenerics>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id)\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.sortUndefined,\n invertSorting: column.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TGenerics>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length <= 1) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getSortedRowModel","instance","memo","getState","sorting","getPreSortedRowModel","rowModel","rows","length","sortingState","sortedFlatRows","availableSorting","filter","sort","getColumn","id","getCanSort","columnInfoById","forEach","sortEntry","column","sortUndefined","invertSorting","sortingFn","getSortingFn","sortData","sortedData","slice","rowA","rowB","i","columnInfo","isDesc","desc","aValue","getValue","bValue","aUndefined","bUndefined","sortInt","index","row","push","subRows","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().sorting, instance.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = instance.getState().sorting\n\n const sortedFlatRows: Row<TGenerics>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n instance.getColumn(sort.id).getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TGenerics>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id)\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.sortUndefined,\n invertSorting: column.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TGenerics>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length <= 1) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getSortedRowModel","instance","memo","getState","sorting","getPreSortedRowModel","rowModel","rows","length","sortingState","sortedFlatRows","availableSorting","filter","sort","getColumn","id","getCanSort","columnInfoById","forEach","sortEntry","column","sortUndefined","invertSorting","sortingFn","getSortingFn","sortData","sortedData","slice","rowA","rowB","i","columnInfo","isDesc","desc","aValue","getValue","bValue","aUndefined","bUndefined","sortInt","index","row","push","subRows","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}