@tanstack/table-core 8.0.0-alpha.67 → 8.0.0-alpha.70

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 (140) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -46
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +28 -34
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +102 -116
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +52 -79
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +49 -58
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +98 -193
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +53 -71
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +109 -165
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +31 -43
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +79 -82
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +71 -125
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +93 -112
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +54 -73
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +47 -86
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +48 -72
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +49 -55
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +17 -21
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -207
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +1778 -2347
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +421 -481
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/ColumnSizing.d.ts +2 -2
  69. package/build/types/features/Columns.d.ts +1 -1
  70. package/build/types/features/Expanding.d.ts +1 -1
  71. package/build/types/features/Filters.d.ts +12 -7
  72. package/build/types/features/Grouping.d.ts +5 -4
  73. package/build/types/features/Ordering.d.ts +1 -1
  74. package/build/types/features/Pagination.d.ts +4 -4
  75. package/build/types/features/Pinning.d.ts +1 -1
  76. package/build/types/features/RowSelection.d.ts +1 -1
  77. package/build/types/features/Rows.d.ts +4 -3
  78. package/build/types/features/Sorting.d.ts +2 -1
  79. package/build/types/features/Visibility.d.ts +1 -0
  80. package/build/types/index.d.ts +6 -4
  81. package/build/types/types.d.ts +3 -13
  82. package/build/types/utils/filterRowsUtils.d.ts +3 -3
  83. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  84. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  85. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  86. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  87. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  88. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  89. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  90. package/build/types/utils.d.ts +1 -17
  91. package/build/umd/index.development.js +1779 -2350
  92. package/build/umd/index.development.js.map +1 -1
  93. package/build/umd/index.production.js +1 -1
  94. package/build/umd/index.production.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/core.ts +197 -45
  97. package/src/features/Cells.ts +7 -11
  98. package/src/features/ColumnSizing.ts +27 -19
  99. package/src/features/Columns.ts +4 -8
  100. package/src/features/Expanding.ts +5 -3
  101. package/src/features/Filters.ts +105 -162
  102. package/src/features/Grouping.ts +21 -23
  103. package/src/features/Ordering.ts +5 -3
  104. package/src/features/Pagination.ts +32 -19
  105. package/src/features/Pinning.ts +13 -7
  106. package/src/features/RowSelection.ts +5 -3
  107. package/src/features/Rows.ts +21 -6
  108. package/src/features/Sorting.ts +14 -12
  109. package/src/features/Visibility.ts +7 -0
  110. package/src/filterFns.ts +9 -9
  111. package/src/index.ts +12 -4
  112. package/src/sortingFns.ts +11 -11
  113. package/src/types.ts +3 -16
  114. package/src/utils/filterRowsUtils.ts +47 -68
  115. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +2 -8
  116. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  117. package/src/utils/getFacetedRowModel.ts +50 -0
  118. package/src/utils/getFacetedUniqueValues.ts +37 -0
  119. package/src/utils/{getFilteredRowModelSync.ts → getFilteredRowModel.ts} +29 -20
  120. package/src/utils/getGroupedRowModel.ts +52 -61
  121. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +3 -3
  122. package/src/utils.ts +28 -236
  123. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  124. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  125. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  126. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  127. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  128. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  129. package/build/cjs/utils/getFilteredRowModelSync.js +0 -125
  130. package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
  131. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  132. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  133. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  134. package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
  135. package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
  136. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  137. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  138. package/src/utils/getCoreRowModelAsync.ts +0 -104
  139. package/src/utils/getFilteredRowModelAsync.ts +0 -157
  140. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -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","_extends","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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"}
@@ -12,92 +12,70 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var includesString = function includesString(row, columnId, filterValue) {
16
- var search = filterValue.toLowerCase();
17
- return row.values[columnId].toLowerCase().includes(search);
15
+ const includesString = (row, columnId, filterValue) => {
16
+ const search = filterValue.toLowerCase();
17
+ return row.getValue(columnId).toLowerCase().includes(search);
18
18
  };
19
19
 
20
- includesString.autoRemove = function (val) {
21
- return testFalsey(val);
22
- };
20
+ includesString.autoRemove = val => testFalsey(val);
23
21
 
24
- var includesStringSensitive = function includesStringSensitive(row, columnId, filterValue) {
25
- return row.values[columnId].includes(filterValue);
22
+ const includesStringSensitive = (row, columnId, filterValue) => {
23
+ return row.getValue(columnId).includes(filterValue);
26
24
  };
27
25
 
28
- includesStringSensitive.autoRemove = function (val) {
29
- return testFalsey(val);
30
- };
26
+ includesStringSensitive.autoRemove = val => testFalsey(val);
31
27
 
32
- var equalsString = function equalsString(row, columnId, filterValue) {
33
- return row.values[columnId].toLowerCase() === filterValue.toLowerCase();
28
+ const equalsString = (row, columnId, filterValue) => {
29
+ return row.getValue(columnId).toLowerCase() === filterValue.toLowerCase();
34
30
  };
35
31
 
36
- equalsString.autoRemove = function (val) {
37
- return testFalsey(val);
38
- };
32
+ equalsString.autoRemove = val => testFalsey(val);
39
33
 
40
- var arrIncludes = function arrIncludes(row, columnId, filterValue) {
41
- return row.values[columnId].includes(filterValue);
34
+ const arrIncludes = (row, columnId, filterValue) => {
35
+ return row.getValue(columnId).includes(filterValue);
42
36
  };
43
37
 
44
- arrIncludes.autoRemove = function (val) {
45
- return testFalsey(val) || !(val != null && val.length);
46
- };
38
+ arrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);
47
39
 
48
- var arrIncludesAll = function arrIncludesAll(row, columnId, filterValue) {
49
- return !filterValue.some(function (val) {
50
- return !row.values[columnId].includes(val);
51
- });
40
+ const arrIncludesAll = (row, columnId, filterValue) => {
41
+ return !filterValue.some(val => !row.getValue(columnId).includes(val));
52
42
  };
53
43
 
54
- arrIncludesAll.autoRemove = function (val) {
55
- return testFalsey(val) || !(val != null && val.length);
56
- };
44
+ arrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);
57
45
 
58
- var arrIncludesSome = function arrIncludesSome(row, columnId, filterValue) {
59
- return filterValue.some(function (val) {
60
- return row.values[columnId].includes(val);
61
- });
46
+ const arrIncludesSome = (row, columnId, filterValue) => {
47
+ return filterValue.some(val => row.getValue(columnId).includes(val));
62
48
  };
63
49
 
64
- arrIncludesSome.autoRemove = function (val) {
65
- return testFalsey(val) || !(val != null && val.length);
66
- };
50
+ arrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);
67
51
 
68
- var equals = function equals(row, columnId, filterValue) {
69
- return row.values[columnId] === filterValue;
52
+ const equals = (row, columnId, filterValue) => {
53
+ return row.getValue(columnId) === filterValue;
70
54
  };
71
55
 
72
- equals.autoRemove = function (val) {
73
- return testFalsey(val);
74
- };
56
+ equals.autoRemove = val => testFalsey(val);
75
57
 
76
- var weakEquals = function weakEquals(row, columnId, filterValue) {
77
- return row.values[columnId] == filterValue;
58
+ const weakEquals = (row, columnId, filterValue) => {
59
+ return row.getValue(columnId) == filterValue;
78
60
  };
79
61
 
80
- weakEquals.autoRemove = function (val) {
81
- return testFalsey(val);
82
- };
62
+ weakEquals.autoRemove = val => testFalsey(val);
83
63
 
84
- var inNumberRange = function inNumberRange(row, columnId, filterValue) {
85
- var min = filterValue[0],
86
- max = filterValue[1];
87
- var rowValue = row.values[columnId];
64
+ const inNumberRange = (row, columnId, filterValue) => {
65
+ let [min, max] = filterValue;
66
+ const rowValue = row.getValue(columnId);
88
67
  return rowValue >= min && rowValue <= max;
89
68
  };
90
69
 
91
- inNumberRange.resolveFilterValue = function (val) {
92
- var unsafeMin = val[0],
93
- unsafeMax = val[1];
94
- var parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;
95
- var parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;
96
- var min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;
97
- var max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;
70
+ inNumberRange.resolveFilterValue = val => {
71
+ let [unsafeMin, unsafeMax] = val;
72
+ let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;
73
+ let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;
74
+ let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;
75
+ let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;
98
76
 
99
77
  if (min > max) {
100
- var temp = min;
78
+ const temp = min;
101
79
  min = max;
102
80
  max = temp;
103
81
  }
@@ -105,21 +83,19 @@ inNumberRange.resolveFilterValue = function (val) {
105
83
  return [min, max];
106
84
  };
107
85
 
108
- inNumberRange.autoRemove = function (val) {
109
- return testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);
110
- }; // Export
111
-
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
86
+ inNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]); // Export
87
+
88
+
89
+ const filterFns = {
90
+ includesString,
91
+ includesStringSensitive,
92
+ equalsString,
93
+ arrIncludes,
94
+ arrIncludesAll,
95
+ arrIncludesSome,
96
+ equals,
97
+ weakEquals,
98
+ inNumberRange
123
99
  };
124
100
 
125
101
  // Utils
@@ -1 +1 @@
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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"}
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.getValue(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.getValue(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.getValue(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.getValue(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.getValue(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.getValue(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.getValue(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.getValue(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.getValue(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","getValue","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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"}
@@ -26,10 +26,12 @@ var RowSelection = require('./features/RowSelection.js');
26
26
  var Sorting = require('./features/Sorting.js');
27
27
  var Visibility = require('./features/Visibility.js');
28
28
  var utils = require('./utils.js');
29
- var getCoreRowModelSync = require('./utils/getCoreRowModelSync.js');
30
- var getCoreRowModelAsync = require('./utils/getCoreRowModelAsync.js');
31
- var getFilteredRowModelSync = require('./utils/getFilteredRowModelSync.js');
32
- var getSortedRowModelSync = require('./utils/getSortedRowModelSync.js');
29
+ var getCoreRowModel = require('./utils/getCoreRowModel.js');
30
+ var getFilteredRowModel = require('./utils/getFilteredRowModel.js');
31
+ var getFacetedRowModel = require('./utils/getFacetedRowModel.js');
32
+ var getFacetedUniqueValues = require('./utils/getFacetedUniqueValues.js');
33
+ var getFacetedMinMaxValues = require('./utils/getFacetedMinMaxValues.js');
34
+ var getSortedRowModel = require('./utils/getSortedRowModel.js');
33
35
  var getGroupedRowModel = require('./utils/getGroupedRowModel.js');
34
36
  var getExpandedRowModel = require('./utils/getExpandedRowModel.js');
35
37
  var getPaginationRowModel = require('./utils/getPaginationRowModel.js');
@@ -43,8 +45,6 @@ exports.defaultColumnSizing = ColumnSizing.defaultColumnSizing;
43
45
  exports.passiveEventSupported = ColumnSizing.passiveEventSupported;
44
46
  exports.Expanding = Expanding.Expanding;
45
47
  exports.Filters = Filters.Filters;
46
- exports.getRowModelMinMaxValues = Filters.getRowModelMinMaxValues;
47
- exports.getRowModelUniqueValues = Filters.getRowModelUniqueValues;
48
48
  exports.shouldAutoRemoveFilter = Filters.shouldAutoRemoveFilter;
49
49
  exports.Grouping = Grouping.Grouping;
50
50
  exports.orderColumns = Grouping.orderColumns;
@@ -60,17 +60,17 @@ exports.Sorting = Sorting.Sorting;
60
60
  exports.Visibility = Visibility.Visibility;
61
61
  exports.flattenBy = utils.flattenBy;
62
62
  exports.functionalUpdate = utils.functionalUpdate;
63
- exports.getBatchGroups = utils.getBatchGroups;
64
- exports.incrementalMemo = utils.incrementalMemo;
65
63
  exports.isFunction = utils.isFunction;
66
64
  exports.makeStateUpdater = utils.makeStateUpdater;
67
65
  exports.memo = utils.memo;
68
66
  exports.noop = utils.noop;
69
- exports.getCoreRowModelSync = getCoreRowModelSync.getCoreRowModelSync;
70
- exports.getCoreRowModelAsync = getCoreRowModelAsync.getCoreRowModelAsync;
71
- exports.getFilteredRowModelSync = getFilteredRowModelSync.getFilteredRowModelSync;
72
- exports.getSortedRowModelSync = getSortedRowModelSync.getSortedRowModelSync;
73
- exports.getGroupedRowModelSync = getGroupedRowModel.getGroupedRowModelSync;
67
+ exports.getCoreRowModel = getCoreRowModel.getCoreRowModel;
68
+ exports.getFilteredRowModel = getFilteredRowModel.getFilteredRowModel;
69
+ exports.getFacetedRowModel = getFacetedRowModel.getFacetedRowModel;
70
+ exports.getFacetedUniqueValues = getFacetedUniqueValues.getFacetedUniqueValues;
71
+ exports.getFacetedMinMaxValues = getFacetedMinMaxValues.getFacetedMinMaxValues;
72
+ exports.getSortedRowModel = getSortedRowModel.getSortedRowModel;
73
+ exports.getGroupedRowModel = getGroupedRowModel.getGroupedRowModel;
74
74
  exports.expandRows = getExpandedRowModel.expandRows;
75
75
  exports.getExpandedRowModel = getExpandedRowModel.getExpandedRowModel;
76
76
  exports.getPaginationRowModel = getPaginationRowModel.getPaginationRowModel;
@@ -12,22 +12,22 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var reSplitAlphaNumeric = /([0-9]+)/gm;
16
- var sortingFns = {
17
- alphanumeric: alphanumeric,
18
- alphanumericCaseSensitive: alphanumericCaseSensitive,
19
- text: text,
20
- textCaseSensitive: textCaseSensitive,
21
- datetime: datetime,
22
- basic: basic
15
+ const reSplitAlphaNumeric = /([0-9]+)/gm;
16
+ const sortingFns = {
17
+ alphanumeric,
18
+ alphanumericCaseSensitive,
19
+ text,
20
+ textCaseSensitive,
21
+ datetime,
22
+ basic
23
23
  };
24
24
 
25
25
  function alphanumeric(rowA, rowB, columnId) {
26
- return compareAlphanumeric(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
26
+ return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
27
27
  }
28
28
 
29
29
  function alphanumericCaseSensitive(rowA, rowB, columnId) {
30
- return compareAlphanumeric(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
30
+ return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
31
31
  } // Mixed sorting is slow, but very inclusive of many edge cases.
32
32
  // It handles numbers, mixed alphanumeric combinations, and even
33
33
  // null, undefined, and Infinity
@@ -36,15 +36,15 @@ function alphanumericCaseSensitive(rowA, rowB, columnId) {
36
36
  function compareAlphanumeric(aStr, bStr) {
37
37
  // Split on number groups, but keep the delimiter
38
38
  // Then remove falsey split values
39
- var a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
40
- var b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
39
+ const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
40
+ const b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
41
41
 
42
42
  while (a.length && b.length) {
43
- var aa = a.shift();
44
- var bb = b.shift();
45
- var an = parseInt(aa, 10);
46
- var bn = parseInt(bb, 10);
47
- var combo = [an, bn].sort(); // Both are string
43
+ const aa = a.shift();
44
+ const bb = b.shift();
45
+ const an = parseInt(aa, 10);
46
+ const bn = parseInt(bb, 10);
47
+ const combo = [an, bn].sort(); // Both are string
48
48
 
49
49
  if (isNaN(combo[0])) {
50
50
  if (aa > bb) {
@@ -79,21 +79,21 @@ function compareAlphanumeric(aStr, bStr) {
79
79
 
80
80
 
81
81
  function text(rowA, rowB, columnId) {
82
- return compareBasic(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
82
+ return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
83
83
  } // The text filter is more basic (less numeric support)
84
84
  // but is much faster
85
85
 
86
86
 
87
87
  function textCaseSensitive(rowA, rowB, columnId) {
88
- return compareBasic(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
88
+ return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
89
89
  }
90
90
 
91
91
  function datetime(rowA, rowB, columnId) {
92
- return compareBasic(rowA.values[columnId].getTime(), rowB.values[columnId].getTime());
92
+ return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());
93
93
  }
94
94
 
95
95
  function basic(rowA, rowB, columnId) {
96
- return compareBasic(rowA.values[columnId], rowB.values[columnId]);
96
+ return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
97
97
  } // Utils
98
98
 
99
99
 
@@ -1 +1 @@
1
- {"version":3,"file":"sortingFns.js","sources":["../../src/sortingFns.ts"],"sourcesContent":["import { TableGenerics, Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nexport const sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortingFn = keyof typeof sortingFns\n\nfunction alphanumeric<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\nfunction datetime<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n (rowA.values[columnId] as Date).getTime(),\n (rowB.values[columnId] as Date).getTime()\n )\n}\n\nfunction basic<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(rowA.values[columnId], rowB.values[columnId])\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n"],"names":["reSplitAlphaNumeric","sortingFns","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","values","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
1
+ {"version":3,"file":"sortingFns.js","sources":["../../src/sortingFns.ts"],"sourcesContent":["import { TableGenerics, Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nexport const sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortingFn = keyof typeof sortingFns\n\nfunction alphanumeric<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\nfunction datetime<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n (rowA.getValue(columnId) as Date).getTime(),\n (rowB.getValue(columnId) as Date).getTime()\n )\n}\n\nfunction basic<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId))\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n"],"names":["reSplitAlphaNumeric","sortingFns","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","getValue","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
@@ -12,62 +12,51 @@
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
-
15
+ function filterRows(rows, filterRowImpl, instance) {
29
16
  if (instance.options.filterFromLeafRows) {
30
17
  return filterRowModelFromLeafs(rows, filterRowImpl, instance);
31
18
  }
32
19
 
33
20
  return filterRowModelFromRoot(rows, filterRowImpl, instance);
34
21
  }
35
- function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
36
- var newFilteredFlatRows = [];
37
- var newFilteredRowsById = {};
22
+ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
23
+ const newFilteredFlatRows = [];
24
+ const newFilteredRowsById = {};
25
+ let row;
26
+ let newRow;
38
27
 
39
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
28
+ const recurseFilterRows = function (rowsToFilter, depth) {
40
29
  if (depth === void 0) {
41
30
  depth = 0;
42
31
  }
43
32
 
44
- rowsToFilter = rowsToFilter.slice(); // Filter from children up first
33
+ const rows = []; // Filter from children up first
45
34
 
46
- for (var i = 0; i < rowsToFilter.length; i++) {
35
+ for (let i = 0; i < rowsToFilter.length; i++) {
47
36
  var _row$subRows;
48
37
 
49
- var row = rowsToFilter[i];
38
+ row = rowsToFilter[i];
50
39
 
51
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
52
- continue;
53
- }
40
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
41
+ newRow = instance.createRow(row.id, row.original, row.index, row.depth);
42
+ newRow.columnFilterMap = row.columnFilterMap;
43
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
44
+
45
+ if (!newRow.subRows.length) {
46
+ continue;
47
+ }
54
48
 
55
- rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
56
- rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
49
+ row = newRow;
50
+ }
57
51
 
58
- if (!rowsToFilter[i].subRows.length) {
59
- rowsToFilter.splice(i, 1);
60
- i--;
52
+ if (filterRow(row)) {
53
+ rows.push(row);
54
+ newFilteredRowsById[row.id] = row;
55
+ newFilteredRowsById[i] = row;
61
56
  }
62
57
  }
63
58
 
64
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
65
-
66
- rowsToFilter.forEach(function (row) {
67
- newFilteredFlatRows.push(row);
68
- newFilteredRowsById[row.id] = row;
69
- });
70
- return rowsToFilter;
59
+ return rows;
71
60
  };
72
61
 
73
62
  return {
@@ -76,36 +65,41 @@ function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
76
65
  rowsById: newFilteredRowsById
77
66
  };
78
67
  }
79
- function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
80
- var newFilteredFlatRows = [];
81
- var newFilteredRowsById = {}; // Filters top level and nested rows
82
-
83
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
68
+ function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
69
+ const newFilteredFlatRows = [];
70
+ const newFilteredRowsById = {};
71
+ let rows;
72
+ let row;
73
+ let newRow; // Filters top level and nested rows
74
+
75
+ const recurseFilterRows = function (rowsToFilter, depth) {
84
76
  if (depth === void 0) {
85
77
  depth = 0;
86
78
  }
87
79
 
88
80
  // Filter from parents downward first
89
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
81
+ rows = []; // Apply the filter to any subRows
90
82
 
91
- for (var i = 0; i < rowsToFilter.length; i++) {
92
- var _row$subRows2;
83
+ for (let i = 0; i < rowsToFilter.length; i++) {
84
+ row = rowsToFilter[i];
85
+ const pass = filterRow(row);
93
86
 
94
- var row = rowsToFilter[i];
95
- newFilteredFlatRows.push(row);
96
- newFilteredRowsById[row.id] = row;
87
+ if (pass) {
88
+ var _row$subRows2;
97
89
 
98
- if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
99
- rowsToFilter.splice(i, 1);
100
- i--;
101
- continue;
102
- }
90
+ if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
91
+ newRow = instance.createRow(row.id, row.original, row.index, row.depth);
92
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
93
+ row = newRow;
94
+ }
103
95
 
104
- rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
105
- rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
96
+ rows.push(row);
97
+ newFilteredFlatRows.push(row);
98
+ newFilteredRowsById[row.id] = row;
99
+ }
106
100
  }
107
101
 
108
- return rowsToFilter;
102
+ return rows;
109
103
  };
110
104
 
111
105
  return {