@tanstack/table-core 8.0.0-alpha.62 → 8.0.0-alpha.65

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 (113) hide show
  1. package/build/cjs/core.js +8 -5
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/features/Cells.js +1 -1
  4. package/build/cjs/features/Cells.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +3 -3
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Columns.js +7 -7
  8. package/build/cjs/features/Columns.js.map +1 -1
  9. package/build/cjs/features/Expanding.js +3 -3
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +158 -80
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +24 -22
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js +16 -16
  16. package/build/cjs/features/Headers.js.map +1 -1
  17. package/build/cjs/features/Ordering.js +6 -5
  18. package/build/cjs/features/Ordering.js.map +1 -1
  19. package/build/cjs/features/Pagination.js +5 -5
  20. package/build/cjs/features/Pagination.js.map +1 -1
  21. package/build/cjs/features/Pinning.js +17 -78
  22. package/build/cjs/features/Pinning.js.map +1 -1
  23. package/build/cjs/features/RowSelection.js +8 -8
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +8 -8
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +5 -5
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/filterFns.js +51 -108
  30. package/build/cjs/filterFns.js.map +1 -1
  31. package/build/cjs/index.js +5 -4
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/filterRowsUtils.js +21 -0
  34. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModelAsync.js +1 -1
  36. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  37. package/build/cjs/utils/getCoreRowModelSync.js +1 -1
  38. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  39. package/build/cjs/utils/getExpandedRowModel.js +1 -1
  40. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  41. package/build/cjs/utils/getFilteredRowModelSync.js +130 -0
  42. package/build/cjs/utils/getFilteredRowModelSync.js.map +1 -0
  43. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  44. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getPaginationRowModel.js +1 -1
  46. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  47. package/build/cjs/utils/getSortedRowModelSync.js +1 -1
  48. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  49. package/build/cjs/utils.js +2 -6
  50. package/build/cjs/utils.js.map +1 -1
  51. package/build/esm/index.js +491 -573
  52. package/build/esm/index.js.map +1 -1
  53. package/build/stats-html.html +1 -1
  54. package/build/stats-react.json +388 -402
  55. package/build/types/features/Expanding.d.ts +2 -7
  56. package/build/types/features/Filters.d.ts +27 -29
  57. package/build/types/features/Grouping.d.ts +3 -11
  58. package/build/types/features/Ordering.d.ts +2 -6
  59. package/build/types/features/Pinning.d.ts +2 -15
  60. package/build/types/features/RowSelection.d.ts +3 -8
  61. package/build/types/features/Sorting.d.ts +2 -8
  62. package/build/types/features/Visibility.d.ts +2 -11
  63. package/build/types/filterFns.d.ts +10 -52
  64. package/build/types/index.d.ts +1 -2
  65. package/build/types/types.d.ts +2 -2
  66. package/build/types/utils/filterRowsUtils.d.ts +1 -0
  67. package/build/types/utils/{getColumnFilteredRowModelAsync.d.ts → getFilteredRowModelAsync.d.ts} +1 -1
  68. package/build/types/utils/getFilteredRowModelSync.d.ts +2 -0
  69. package/build/types/utils.d.ts +2 -2
  70. package/build/umd/index.development.js +494 -574
  71. package/build/umd/index.development.js.map +1 -1
  72. package/build/umd/index.production.js +1 -1
  73. package/build/umd/index.production.js.map +1 -1
  74. package/package.json +2 -1
  75. package/src/core.ts +6 -5
  76. package/src/features/Cells.ts +3 -1
  77. package/src/features/ColumnSizing.ts +2 -1
  78. package/src/features/Columns.ts +11 -7
  79. package/src/features/Expanding.ts +4 -2
  80. package/src/features/Filters.ts +216 -116
  81. package/src/features/Grouping.ts +23 -21
  82. package/src/features/Headers.ts +16 -16
  83. package/src/features/Ordering.ts +7 -9
  84. package/src/features/Pagination.ts +4 -3
  85. package/src/features/Pinning.ts +16 -80
  86. package/src/features/RowSelection.ts +14 -9
  87. package/src/features/Sorting.ts +12 -12
  88. package/src/features/Visibility.ts +7 -4
  89. package/src/filterFns.ts +74 -147
  90. package/src/index.ts +1 -2
  91. package/src/types.ts +2 -0
  92. package/src/utils/filterRowsUtils.ts +24 -0
  93. package/src/utils/getCoreRowModelAsync.ts +1 -1
  94. package/src/utils/getCoreRowModelSync.ts +1 -1
  95. package/src/utils/getExpandedRowModel.ts +1 -1
  96. package/src/utils/getFilteredRowModelAsync.ts +49 -0
  97. package/src/utils/getFilteredRowModelSync.ts +150 -0
  98. package/src/utils/getGroupedRowModel.ts +1 -1
  99. package/src/utils/getPaginationRowModel.ts +1 -1
  100. package/src/utils/getSortedRowModelAsync.ts +1 -1
  101. package/src/utils/getSortedRowModelSync.ts +1 -1
  102. package/src/utils.ts +2 -4
  103. package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
  104. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
  105. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
  106. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
  107. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
  108. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
  109. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
  110. package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
  111. package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
  112. package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
  113. package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
@@ -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} 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 defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n 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 getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingHandler: (\n columnId: string\n ) => undefined | ((event: unknown) => void)\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends 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 sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingHandler: () =>\n instance.getToggleSortingHandler(column.id)!,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingHandler: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingHandler","createInstance","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","options","Error","isFunction","setSorting","updater","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","getState","initialState","canSort","persist","undefined","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 defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n 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 getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingHandler: (\n columnId: string\n ) => undefined | ((event: unknown) => 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 sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingHandler: () =>\n instance.getToggleSortingHandler(column.id)!,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingHandler: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 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","_extends","sorting","getDefaultColumn","sortingFn","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingHandler","createInstance","getColumnAutoSortingFn","columnId","firstRows","getFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","options","Error","isFunction","setSorting","updater","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","getState","initialState","canSort","persist","undefined","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
@@ -17,10 +17,10 @@ var utils = require('../utils.js');
17
17
 
18
18
  //
19
19
  var Visibility = {
20
- getInitialState: function getInitialState() {
21
- return {
20
+ getInitialState: function getInitialState(state) {
21
+ return _rollupPluginBabelHelpers["extends"]({
22
22
  columnVisibility: {}
23
- };
23
+ }, state);
24
24
  },
25
25
  getDefaultOptions: function getDefaultOptions(instance) {
26
26
  return {
@@ -63,7 +63,7 @@ var Visibility = {
63
63
  return cell.column.getIsVisible();
64
64
  });
65
65
  }, {
66
- key: 'row._getAllVisibleCells',
66
+ key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',
67
67
  debug: function debug() {
68
68
  var _instance$options$deb;
69
69
 
@@ -75,7 +75,7 @@ var Visibility = {
75
75
  }, function (left, center, right) {
76
76
  return [].concat(left, center, right);
77
77
  }, {
78
- key: 'row.getVisibleCells',
78
+ key: process.env.NODE_ENV === 'production' && 'row.getVisibleCells',
79
79
  debug: function debug() {
80
80
  var _instance$options$deb2;
81
81
 
@@ -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} 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 toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: 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 = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\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 getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\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: '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: '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 toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\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 getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\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","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","debug","options","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","setColumnVisibility","updater","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","getState","enableHiding","defaultCanHide","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 toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: 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 getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\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 === 'production' && '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 toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\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 getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\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","_extends","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","options","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","setColumnVisibility","updater","columnId","old","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","getState","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
@@ -12,150 +12,85 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var filterFns = {
16
- includesString: includesString,
17
- includesStringSensitive: includesStringSensitive,
18
- equalsString: equalsString,
19
- equalsStringSensitive: equalsStringSensitive,
20
- arrIncludes: arrIncludes,
21
- arrIncludesAll: arrIncludesAll,
22
- arrIncludesSome: arrIncludesSome,
23
- equals: equals,
24
- weakEquals: weakEquals,
25
- betweenNumberRange: betweenNumberRange
15
+ var includesString = function includesString(row, columnId, filterValue) {
16
+ var search = filterValue.toLowerCase();
17
+ return row.values[columnId].toLowerCase().includes(search);
26
18
  };
27
19
 
28
- function includesString(rows, columnIds, filterValue) {
29
- var search = String(filterValue).toLowerCase();
30
- rows = rows.filter(function (row) {
31
- return columnIds.some(function (id) {
32
- return String(row.values[id]).toLowerCase().includes(search);
33
- });
34
- });
35
- return rows;
36
- }
37
-
38
20
  includesString.autoRemove = function (val) {
39
21
  return testFalsey(val);
40
22
  };
41
23
 
42
- function includesStringSensitive(rows, columnIds, filterValue) {
43
- var search = String(filterValue);
44
- rows = rows.filter(function (row) {
45
- return columnIds.some(function (id) {
46
- return String(row.values[id]).includes(search);
47
- });
48
- });
49
- return rows;
50
- }
24
+ var includesStringSensitive = function includesStringSensitive(row, columnId, filterValue) {
25
+ return row.values[columnId].includes(filterValue);
26
+ };
51
27
 
52
28
  includesStringSensitive.autoRemove = function (val) {
53
29
  return testFalsey(val);
54
30
  };
55
31
 
56
- function equalsString(rows, columnIds, filterValue) {
57
- var search = String(filterValue).toLowerCase();
58
- return rows.filter(function (row) {
59
- return columnIds.some(function (id) {
60
- var rowValue = row.values[id];
61
- return rowValue !== undefined ? String(rowValue).toLowerCase() === search : true;
62
- });
63
- });
64
- }
32
+ var equalsString = function equalsString(row, columnId, filterValue) {
33
+ return row.values[columnId].toLowerCase() === filterValue.toLowerCase();
34
+ };
65
35
 
66
36
  equalsString.autoRemove = function (val) {
67
37
  return testFalsey(val);
68
38
  };
69
39
 
70
- function equalsStringSensitive(rows, columnIds, filterValue) {
71
- var search = String(filterValue);
72
- return rows.filter(function (row) {
73
- return columnIds.some(function (id) {
74
- var rowValue = row.values[id];
75
- return rowValue !== undefined ? String(rowValue) === search : true;
76
- });
77
- });
78
- }
79
-
80
- equalsStringSensitive.autoRemove = function (val) {
81
- return testFalsey(val);
40
+ var arrIncludes = function arrIncludes(row, columnId, filterValue) {
41
+ return row.values[columnId].includes(filterValue);
82
42
  };
83
43
 
84
- function arrIncludes(rows, columnIds, filterValue) {
85
- return rows.filter(function (row) {
86
- return columnIds.some(function (id) {
87
- var rowValue = row.values[id];
88
- return rowValue.includes(filterValue);
89
- });
90
- });
91
- }
92
-
93
44
  arrIncludes.autoRemove = function (val) {
94
45
  return testFalsey(val) || !(val != null && val.length);
95
46
  };
96
47
 
97
- function arrIncludesAll(rows, columnIds, filterValue) {
98
- return rows.filter(function (row) {
99
- return columnIds.some(function (id) {
100
- var rowValue = row.values[id];
101
- return rowValue && rowValue.length && filterValue.every(function (val) {
102
- return rowValue.includes(val);
103
- });
104
- });
48
+ var arrIncludesAll = function arrIncludesAll(row, columnId, filterValue) {
49
+ return !filterValue.some(function (val) {
50
+ return !row.values[columnId].includes(val);
105
51
  });
106
- }
52
+ };
107
53
 
108
54
  arrIncludesAll.autoRemove = function (val) {
109
55
  return testFalsey(val) || !(val != null && val.length);
110
56
  };
111
57
 
112
- function arrIncludesSome(rows, columnIds, filterValue) {
113
- return rows.filter(function (row) {
114
- return columnIds.some(function (id) {
115
- var rowValue = row.values[id];
116
- return rowValue && rowValue.length && filterValue.some(function (val) {
117
- return rowValue.includes(val);
118
- });
119
- });
58
+ var arrIncludesSome = function arrIncludesSome(row, columnId, filterValue) {
59
+ return filterValue.some(function (val) {
60
+ return row.values[columnId].includes(val);
120
61
  });
121
- }
62
+ };
122
63
 
123
64
  arrIncludesSome.autoRemove = function (val) {
124
65
  return testFalsey(val) || !(val != null && val.length);
125
66
  };
126
67
 
127
- function equals(rows, columnIds, filterValue) {
128
- return rows.filter(function (row) {
129
- return columnIds.some(function (id) {
130
- var rowValue = row.values[id];
131
- return rowValue === filterValue;
132
- });
133
- });
134
- }
68
+ var equals = function equals(row, columnId, filterValue) {
69
+ return row.values[columnId] === filterValue;
70
+ };
135
71
 
136
72
  equals.autoRemove = function (val) {
137
73
  return testFalsey(val);
138
74
  };
139
75
 
140
- function weakEquals(rows, columnIds, filterValue) {
141
- return rows.filter(function (row) {
142
- return columnIds.some(function (id) {
143
- var rowValue = row.values[id]; // eslint-disable-next-line eqeqeq
144
-
145
- return rowValue == filterValue;
146
- });
147
- });
148
- }
76
+ var weakEquals = function weakEquals(row, columnId, filterValue) {
77
+ return row.values[columnId] == filterValue;
78
+ };
149
79
 
150
80
  weakEquals.autoRemove = function (val) {
151
81
  return testFalsey(val);
152
82
  };
153
83
 
154
- function betweenNumberRange(rows, columnIds, filterValue) {
155
- var _ref = filterValue || [],
156
- unsafeMin = _ref[0],
157
- unsafeMax = _ref[1];
84
+ var inNumberRange = function inNumberRange(row, columnId, filterValue) {
85
+ var min = filterValue[0],
86
+ max = filterValue[1];
87
+ var rowValue = row.values[columnId];
88
+ return rowValue >= min && rowValue <= max;
89
+ };
158
90
 
91
+ inNumberRange.resolveFilterValue = function (val) {
92
+ var unsafeMin = val[0],
93
+ unsafeMax = val[1];
159
94
  var parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;
160
95
  var parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;
161
96
  var min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;
@@ -167,19 +102,27 @@ function betweenNumberRange(rows, columnIds, filterValue) {
167
102
  max = temp;
168
103
  }
169
104
 
170
- return rows.filter(function (row) {
171
- return columnIds.some(function (id) {
172
- var rowValue = row.values[id];
173
- return rowValue >= min && rowValue <= max;
174
- });
175
- });
176
- }
105
+ return [min, max];
106
+ };
177
107
 
178
- betweenNumberRange.autoRemove = function (val) {
108
+ inNumberRange.autoRemove = function (val) {
179
109
  return testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);
180
- }; // Utils
110
+ }; // Export
111
+
181
112
 
113
+ var filterFns = {
114
+ includesString: includesString,
115
+ includesStringSensitive: includesStringSensitive,
116
+ equalsString: equalsString,
117
+ arrIncludes: arrIncludes,
118
+ arrIncludesAll: arrIncludesAll,
119
+ arrIncludesSome: arrIncludesSome,
120
+ equals: equals,
121
+ weakEquals: weakEquals,
122
+ inNumberRange: inNumberRange
123
+ };
182
124
 
125
+ // Utils
183
126
  function testFalsey(val) {
184
127
  return val === undefined || val === null || val === '';
185
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { TableGenerics, Row } from './types'\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n equalsStringSensitive,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n betweenNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\nfunction includesString<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue).toLowerCase()\n\n rows = rows.filter(row => {\n return columnIds.some(id => {\n return String(row.values[id]).toLowerCase().includes(search)\n })\n })\n return rows\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nfunction includesStringSensitive<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue)\n\n rows = rows.filter(row => {\n return columnIds.some(id => {\n return String(row.values[id]).includes(search)\n })\n })\n return rows\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nfunction equalsString<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue).toLowerCase()\n\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === search\n : true\n })\n })\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nfunction equalsStringSensitive<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue)\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined ? String(rowValue) === search : true\n })\n })\n}\n\nequalsStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nfunction arrIncludes<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction arrIncludesAll<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown[]\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction arrIncludesSome<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown[]\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.some(val => rowValue.includes(val))\n )\n })\n })\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction equals<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nfunction weakEquals<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nfunction betweenNumberRange<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: [unknown, unknown]\n) {\n let [unsafeMin, unsafeMax] = filterValue || []\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetweenNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["filterFns","includesString","includesStringSensitive","equalsString","equalsStringSensitive","arrIncludes","arrIncludesAll","arrIncludesSome","equals","weakEquals","betweenNumberRange","rows","columnIds","filterValue","search","String","toLowerCase","filter","row","some","id","values","includes","autoRemove","val","testFalsey","rowValue","undefined","length","every","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","min","Number","isNaN","Infinity","max","temp"],"mappings":";;;;;;;;;;;;;;AAEO,IAAMA,SAAS,GAAG;AACvBC,EAAAA,cAAc,EAAdA,cADuB;AAEvBC,EAAAA,uBAAuB,EAAvBA,uBAFuB;AAGvBC,EAAAA,YAAY,EAAZA,YAHuB;AAIvBC,EAAAA,qBAAqB,EAArBA,qBAJuB;AAKvBC,EAAAA,WAAW,EAAXA,WALuB;AAMvBC,EAAAA,cAAc,EAAdA,cANuB;AAOvBC,EAAAA,eAAe,EAAfA,eAPuB;AAQvBC,EAAAA,MAAM,EAANA,MARuB;AASvBC,EAAAA,UAAU,EAAVA,UATuB;AAUvBC,EAAAA,kBAAkB,EAAlBA,kBAAAA;AAVuB,EAAlB;;AAeP,SAAST,cAAT,CACEU,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAMC,IAAAA,MAAM,GAAGC,MAAM,CAACF,WAAD,CAAN,CAAoBG,WAApB,EAAf,CAAA;AAEAL,EAAAA,IAAI,GAAGA,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,OAAOL,MAAM,CAACG,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAD,CAAN,CAAuBJ,WAAvB,EAAA,CAAqCM,QAArC,CAA8CR,MAA9C,CAAP,CAAA;AACD,KAFM,CAAP,CAAA;AAGD,GAJM,CAAP,CAAA;AAKA,EAAA,OAAOH,IAAP,CAAA;AACD,CAAA;;AAEDV,cAAc,CAACsB,UAAf,GAA4B,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAxB,CAAA;AAAA,CAA5B,CAAA;;AAEA,SAAStB,uBAAT,CACES,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,IAAMC,MAAM,GAAGC,MAAM,CAACF,WAAD,CAArB,CAAA;AAEAF,EAAAA,IAAI,GAAGA,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,OAAOL,MAAM,CAACG,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAD,CAAN,CAAuBE,QAAvB,CAAgCR,MAAhC,CAAP,CAAA;AACD,KAFM,CAAP,CAAA;AAGD,GAJM,CAAP,CAAA;AAKA,EAAA,OAAOH,IAAP,CAAA;AACD,CAAA;;AAEDT,uBAAuB,CAACqB,UAAxB,GAAqC,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAxB,CAAA;AAAA,CAArC,CAAA;;AAEA,SAASrB,YAAT,CACEQ,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAMC,IAAAA,MAAM,GAAGC,MAAM,CAACF,WAAD,CAAN,CAAoBG,WAApB,EAAf,CAAA;AAEA,EAAA,OAAOL,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MAAA,OAAOM,QAAQ,KAAKC,SAAb,GACHZ,MAAM,CAACW,QAAD,CAAN,CAAiBV,WAAjB,EAAmCF,KAAAA,MADhC,GAEH,IAFJ,CAAA;AAGD,KALM,CAAP,CAAA;AAMD,GAPM,CAAP,CAAA;AAQD,CAAA;;AAEDX,YAAY,CAACoB,UAAb,GAA0B,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAxB,CAAA;AAAA,CAA1B,CAAA;;AAEA,SAASpB,qBAAT,CACEO,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,IAAMC,MAAM,GAAGC,MAAM,CAACF,WAAD,CAArB,CAAA;AACA,EAAA,OAAOF,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MAAOM,OAAAA,QAAQ,KAAKC,SAAb,GAAyBZ,MAAM,CAACW,QAAD,CAAN,KAAqBZ,MAA9C,GAAuD,IAA9D,CAAA;AACD,KAHM,CAAP,CAAA;AAID,GALM,CAAP,CAAA;AAMD,CAAA;;AAEDV,qBAAqB,CAACmB,UAAtB,GAAmC,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAxB,CAAA;AAAA,CAAnC,CAAA;;AAEA,SAASnB,WAAT,CACEM,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,OAAOF,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MAAA,OAAOM,QAAQ,CAACJ,QAAT,CAAkBT,WAAlB,CAAP,CAAA;AACD,KAHM,CAAP,CAAA;AAID,GALM,CAAP,CAAA;AAMD,CAAA;;AAEDR,WAAW,CAACkB,UAAZ,GAAyB,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAV,IAAmB,EAACA,GAAD,IAACA,IAAAA,IAAAA,GAAG,CAAEI,MAAN,CAAjC,CAAA;AAAA,CAAzB,CAAA;;AAEA,SAAStB,cAAT,CACEK,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,OAAOF,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MACEM,OAAAA,QAAQ,IACRA,QAAQ,CAACE,MADT,IAEAf,WAAW,CAACgB,KAAZ,CAAkB,UAAAL,GAAG,EAAA;AAAA,QAAA,OAAIE,QAAQ,CAACJ,QAAT,CAAkBE,GAAlB,CAAJ,CAAA;AAAA,OAArB,CAHF,CAAA;AAKD,KAPM,CAAP,CAAA;AAQD,GATM,CAAP,CAAA;AAUD,CAAA;;AAEDlB,cAAc,CAACiB,UAAf,GAA4B,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAV,IAAmB,EAACA,GAAD,IAACA,IAAAA,IAAAA,GAAG,CAAEI,MAAN,CAAjC,CAAA;AAAA,CAA5B,CAAA;;AAEA,SAASrB,eAAT,CACEI,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,OAAOF,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MACEM,OAAAA,QAAQ,IACRA,QAAQ,CAACE,MADT,IAEAf,WAAW,CAACM,IAAZ,CAAiB,UAAAK,GAAG,EAAA;AAAA,QAAA,OAAIE,QAAQ,CAACJ,QAAT,CAAkBE,GAAlB,CAAJ,CAAA;AAAA,OAApB,CAHF,CAAA;AAKD,KAPM,CAAP,CAAA;AAQD,GATM,CAAP,CAAA;AAUD,CAAA;;AAEDjB,eAAe,CAACgB,UAAhB,GAA6B,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAV,IAAmB,EAACA,GAAD,IAACA,IAAAA,IAAAA,GAAG,CAAEI,MAAN,CAAjC,CAAA;AAAA,CAA7B,CAAA;;AAEA,SAASpB,MAAT,CACEG,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,OAAOF,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MAAOM,OAAAA,QAAQ,KAAKb,WAApB,CAAA;AACD,KAHM,CAAP,CAAA;AAID,GALM,CAAP,CAAA;AAMD,CAAA;;AAEDL,MAAM,CAACe,UAAP,GAAoB,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAxB,CAAA;AAAA,CAApB,CAAA;;AAEA,SAASf,UAAT,CACEE,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAAA,OAAOF,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAMM,IAAAA,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAD0B;;AAG1B,MAAOM,OAAAA,QAAQ,IAAIb,WAAnB,CAAA;AACD,KAJM,CAAP,CAAA;AAKD,GANM,CAAP,CAAA;AAOD,CAAA;;AAEDJ,UAAU,CAACc,UAAX,GAAwB,UAACC,GAAD,EAAA;AAAA,EAAcC,OAAAA,UAAU,CAACD,GAAD,CAAxB,CAAA;AAAA,CAAxB,CAAA;;AAEA,SAASd,kBAAT,CACEC,IADF,EAEEC,SAFF,EAGEC,WAHF,EAIE;AACA,EAA6BA,IAAAA,IAAAA,GAAAA,WAAW,IAAI,EAA5C;AAAA,MAAKiB,SAAL,GAAA,IAAA,CAAA,CAAA,CAAA;AAAA,MAAgBC,SAAhB,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA;;AAEA,EAAA,IAAIC,SAAS,GACX,OAAOF,SAAP,KAAqB,QAArB,GAAgCG,UAAU,CAACH,SAAD,CAA1C,GAAkEA,SADpE,CAAA;AAEA,EAAA,IAAII,SAAS,GACX,OAAOH,SAAP,KAAqB,QAArB,GAAgCE,UAAU,CAACF,SAAD,CAA1C,GAAkEA,SADpE,CAAA;AAGA,EAAA,IAAII,GAAG,GACLL,SAAS,KAAK,IAAd,IAAsBM,MAAM,CAACC,KAAP,CAAaL,SAAb,CAAtB,GAAgD,CAACM,QAAjD,GAA4DN,SAD9D,CAAA;AAEA,EAAA,IAAIO,GAAG,GAAGR,SAAS,KAAK,IAAd,IAAsBK,MAAM,CAACC,KAAP,CAAaH,SAAb,CAAtB,GAAgDI,QAAhD,GAA2DJ,SAArE,CAAA;;AAEA,EAAIC,IAAAA,GAAG,GAAGI,GAAV,EAAe;AACb,IAAMC,IAAAA,IAAI,GAAGL,GAAb,CAAA;AACAA,IAAAA,GAAG,GAAGI,GAAN,CAAA;AACAA,IAAAA,GAAG,GAAGC,IAAN,CAAA;AACD,GAAA;;AAED,EAAA,OAAO7B,IAAI,CAACM,MAAL,CAAY,UAAAC,GAAG,EAAI;AACxB,IAAA,OAAON,SAAS,CAACO,IAAV,CAAe,UAAAC,EAAE,EAAI;AAC1B,MAAA,IAAMM,QAAQ,GAAGR,GAAG,CAACG,MAAJ,CAAWD,EAAX,CAAjB,CAAA;AACA,MAAA,OAAOM,QAAQ,IAAIS,GAAZ,IAAmBT,QAAQ,IAAIa,GAAtC,CAAA;AACD,KAHM,CAAP,CAAA;AAID,GALM,CAAP,CAAA;AAMD,CAAA;;AAED7B,kBAAkB,CAACa,UAAnB,GAAgC,UAACC,GAAD,EAAA;AAAA,EAAA,OAC9BC,UAAU,CAACD,GAAD,CAAV,IAAoBC,UAAU,CAACD,GAAG,CAAC,CAAD,CAAJ,CAAV,IAAsBC,UAAU,CAACD,GAAG,CAAC,CAAD,CAAJ,CADtB,CAAA;AAAA,CAAhC;;;AAKA,SAASC,UAAT,CAAoBD,GAApB,EAA8B;AAC5B,EAAOA,OAAAA,GAAG,KAAKG,SAAR,IAAqBH,GAAG,KAAK,IAA7B,IAAqCA,GAAG,KAAK,EAApD,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return row.values[columnId].toLowerCase().includes(search)\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.values[columnId].includes(filterValue)\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.values[columnId].toLowerCase() === filterValue.toLowerCase()\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.values[columnId].includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(val => !row.values[columnId].includes(val))\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val => row.values[columnId].includes(val))\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.values[columnId] === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.values[columnId] == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.values[columnId]\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","search","toLowerCase","values","includes","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","length","arrIncludesAll","some","arrIncludesSome","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":"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"}
@@ -28,8 +28,7 @@ var Visibility = require('./features/Visibility.js');
28
28
  var utils = require('./utils.js');
29
29
  var getCoreRowModelSync = require('./utils/getCoreRowModelSync.js');
30
30
  var getCoreRowModelAsync = require('./utils/getCoreRowModelAsync.js');
31
- var getColumnFilteredRowModelSync = require('./utils/getColumnFilteredRowModelSync.js');
32
- var getGlobalFilteredRowModelSync = require('./utils/getGlobalFilteredRowModelSync.js');
31
+ var getFilteredRowModelSync = require('./utils/getFilteredRowModelSync.js');
33
32
  var getSortedRowModelSync = require('./utils/getSortedRowModelSync.js');
34
33
  var getGroupedRowModel = require('./utils/getGroupedRowModel.js');
35
34
  var getExpandedRowModel = require('./utils/getExpandedRowModel.js');
@@ -44,8 +43,11 @@ exports.defaultColumnSizing = ColumnSizing.defaultColumnSizing;
44
43
  exports.passiveEventSupported = ColumnSizing.passiveEventSupported;
45
44
  exports.Expanding = Expanding.Expanding;
46
45
  exports.Filters = Filters.Filters;
46
+ exports.getRowModelMinMaxValues = Filters.getRowModelMinMaxValues;
47
+ exports.getRowModelUniqueValues = Filters.getRowModelUniqueValues;
47
48
  exports.shouldAutoRemoveFilter = Filters.shouldAutoRemoveFilter;
48
49
  exports.Grouping = Grouping.Grouping;
50
+ exports.orderColumns = Grouping.orderColumns;
49
51
  exports.Headers = Headers.Headers;
50
52
  exports.buildHeaderGroups = Headers.buildHeaderGroups;
51
53
  exports.Ordering = Ordering.Ordering;
@@ -66,8 +68,7 @@ exports.memo = utils.memo;
66
68
  exports.noop = utils.noop;
67
69
  exports.getCoreRowModelSync = getCoreRowModelSync.getCoreRowModelSync;
68
70
  exports.getCoreRowModelAsync = getCoreRowModelAsync.getCoreRowModelAsync;
69
- exports.getColumnFilteredRowModelSync = getColumnFilteredRowModelSync.getColumnFilteredRowModelSync;
70
- exports.getGlobalFilteredRowModelSync = getGlobalFilteredRowModelSync.getGlobalFilteredRowModelSync;
71
+ exports.getFilteredRowModelSync = getFilteredRowModelSync.getFilteredRowModelSync;
71
72
  exports.getSortedRowModelSync = getSortedRowModelSync.getSortedRowModelSync;
72
73
  exports.getGroupedRowModelSync = getGroupedRowModel.getGroupedRowModelSync;
73
74
  exports.expandRows = getExpandedRowModel.expandRows;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,6 +12,26 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ function filterRows(rows, columnIds, instance) {
16
+ var filterRowImpl = function filterRowImpl(rowsToFilter) {
17
+ // Horizontally filter rows through each column
18
+ return rowsToFilter.filter(function (row) {
19
+ for (var i = 0; i < columnIds.length; i++) {
20
+ if (row.columnFilterMap[columnIds[i]] === false) {
21
+ return false;
22
+ }
23
+ }
24
+
25
+ return true;
26
+ });
27
+ };
28
+
29
+ if (instance.options.filterFromLeafRows) {
30
+ return filterRowModelFromLeafs(rows, filterRowImpl, instance);
31
+ }
32
+
33
+ return filterRowModelFromRoot(rows, filterRowImpl, instance);
34
+ }
15
35
  function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
16
36
  var newFilteredFlatRows = [];
17
37
  var newFilteredRowsById = {};
@@ -97,4 +117,5 @@ function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
97
117
 
98
118
  exports.filterRowModelFromLeafs = filterRowModelFromLeafs;
99
119
  exports.filterRowModelFromRoot = filterRowModelFromRoot;
120
+ exports.filterRows = filterRows;
100
121
  //# sourceMappingURL=filterRowsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRows: (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n rowsToFilter = rowsToFilter.slice()\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n const row = rowsToFilter[i]\n\n if (!row.subRows?.length) {\n continue\n }\n\n rowsToFilter[i] = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth,\n row.values\n )\n\n rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1)\n\n if (!rowsToFilter[i].subRows.length) {\n rowsToFilter.splice(i, 1)\n i--\n }\n }\n\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n\nexport function filterRowModelFromRoot<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRows: (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n const row = rowsToFilter[i]\n\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!row.subRows?.length) {\n rowsToFilter.splice(i, 1)\n i--\n continue\n }\n\n rowsToFilter[i] = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth,\n row.values\n )\n\n rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["filterRowModelFromLeafs","rowsToFilter","filterRows","instance","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","slice","i","length","row","subRows","createRow","id","original","index","values","splice","forEach","push","rows","flatRows","rowsById","filterRowModelFromRoot"],"mappings":"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"}
1
+ {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRows<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n instance: TableInstance<TGenerics>\n) {\n const filterRowImpl = (rowsToFilter: Row<TGenerics>[]) => {\n // Horizontally filter rows through each column\n return rowsToFilter.filter(row => {\n for (let i = 0; i < columnIds.length; i++) {\n if (row.columnFilterMap[columnIds[i]] === false) {\n return false\n }\n }\n return true\n })\n }\n\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance)\n}\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRows: (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n rowsToFilter = rowsToFilter.slice()\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n const row = rowsToFilter[i]\n\n if (!row.subRows?.length) {\n continue\n }\n\n rowsToFilter[i] = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth,\n row.values\n )\n\n rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1)\n\n if (!rowsToFilter[i].subRows.length) {\n rowsToFilter.splice(i, 1)\n i--\n }\n }\n\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n\nexport function filterRowModelFromRoot<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRows: (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n const row = rowsToFilter[i]\n\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!row.subRows?.length) {\n rowsToFilter.splice(i, 1)\n i--\n continue\n }\n\n rowsToFilter[i] = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth,\n row.values\n )\n\n rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["filterRows","rows","columnIds","instance","filterRowImpl","rowsToFilter","filter","row","i","length","columnFilterMap","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","slice","subRows","createRow","id","original","index","values","splice","forEach","push","flatRows","rowsById"],"mappings":"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"}