@tanstack/table-core 9.0.0-beta.7 → 9.0.0-beta.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.
- package/README.md +5 -1
- package/dist/core/cells/constructCell.d.ts +4 -6
- package/dist/core/cells/constructCell.js +4 -6
- package/dist/core/cells/coreCellsFeature.d.ts +1 -3
- package/dist/core/cells/coreCellsFeature.js +1 -2
- package/dist/core/cells/coreCellsFeature.types.d.ts +7 -9
- package/dist/core/cells/coreCellsFeature.utils.d.ts +5 -5
- package/dist/core/cells/coreCellsFeature.utils.js +1 -2
- package/dist/core/columns/constructColumn.d.ts +4 -6
- package/dist/core/columns/constructColumn.js +8 -9
- package/dist/core/columns/coreColumnsFeature.d.ts +1 -3
- package/dist/core/columns/coreColumnsFeature.js +13 -20
- package/dist/core/columns/coreColumnsFeature.types.d.ts +13 -15
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +10 -12
- package/dist/core/columns/coreColumnsFeature.utils.js +19 -20
- package/dist/core/coreFeatures.d.ts +3 -3
- package/dist/core/coreFeatures.js +1 -2
- package/dist/core/headers/buildHeaderGroups.d.ts +3 -5
- package/dist/core/headers/buildHeaderGroups.js +99 -85
- package/dist/core/headers/constructHeader.d.ts +3 -5
- package/dist/core/headers/constructHeader.js +4 -6
- package/dist/core/headers/coreHeadersFeature.d.ts +1 -3
- package/dist/core/headers/coreHeadersFeature.js +9 -13
- package/dist/core/headers/coreHeadersFeature.types.d.ts +21 -11
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +8 -8
- package/dist/core/headers/coreHeadersFeature.utils.js +14 -17
- package/dist/core/reactivity/coreReactivityFeature.types.d.ts +8 -3
- package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +1 -3
- package/dist/core/reactivity/coreReactivityFeature.utils.js +1 -2
- package/dist/core/reactivity/renderPhaseReactivity.d.ts +80 -0
- package/dist/core/reactivity/renderPhaseReactivity.js +95 -0
- package/dist/core/row-models/coreRowModelsFeature.d.ts +1 -3
- package/dist/core/row-models/coreRowModelsFeature.js +1 -2
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -17
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +17 -19
- package/dist/core/row-models/coreRowModelsFeature.utils.js +9 -28
- package/dist/core/row-models/createCoreRowModel.d.ts +3 -5
- package/dist/core/row-models/createCoreRowModel.js +25 -24
- package/dist/core/rows/constructRow.d.ts +3 -5
- package/dist/core/rows/constructRow.js +9 -13
- package/dist/core/rows/coreRowsFeature.d.ts +1 -3
- package/dist/core/rows/coreRowsFeature.js +20 -5
- package/dist/core/rows/coreRowsFeature.types.d.ts +42 -10
- package/dist/core/rows/coreRowsFeature.utils.d.ts +26 -9
- package/dist/core/rows/coreRowsFeature.utils.js +65 -14
- package/dist/core/table/constructTable.d.ts +2 -4
- package/dist/core/table/constructTable.js +52 -23
- package/dist/core/table/coreTablesFeature.d.ts +1 -3
- package/dist/core/table/coreTablesFeature.js +1 -2
- package/dist/core/table/coreTablesFeature.types.d.ts +56 -25
- package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
- package/dist/core/table/coreTablesFeature.utils.js +69 -24
- package/dist/experimental-worker-plugin.d.ts +5 -0
- package/dist/experimental-worker-plugin.js +6 -0
- package/dist/features/cell-selection/cellSelectionFeature.d.ts +8 -0
- package/dist/features/cell-selection/cellSelectionFeature.js +128 -0
- package/dist/features/cell-selection/cellSelectionFeature.types.d.ts +296 -0
- package/dist/features/cell-selection/cellSelectionFeature.utils.d.ts +306 -0
- package/dist/features/cell-selection/cellSelectionFeature.utils.js +873 -0
- package/dist/features/cell-selection/cellSelectionGeometry.js +121 -0
- package/dist/features/cell-spanning/cellSpanningFeature.d.ts +13 -0
- package/dist/features/cell-spanning/cellSpanningFeature.js +47 -0
- package/dist/features/cell-spanning/cellSpanningFeature.types.d.ts +150 -0
- package/dist/features/cell-spanning/cellSpanningFeature.utils.d.ts +74 -0
- package/dist/features/cell-spanning/cellSpanningFeature.utils.js +262 -0
- package/dist/features/column-faceting/columnFacetingFeature.d.ts +1 -3
- package/dist/features/column-faceting/columnFacetingFeature.js +13 -20
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -35
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +10 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +25 -14
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +2 -4
- package/dist/features/column-faceting/createFacetedMinMaxValues.js +9 -7
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +3 -5
- package/dist/features/column-faceting/createFacetedRowModel.js +12 -17
- package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +2 -4
- package/dist/features/column-faceting/createFacetedUniqueValues.js +12 -9
- package/dist/features/column-filtering/columnFilteringFeature.d.ts +1 -3
- package/dist/features/column-filtering/columnFilteringFeature.js +4 -5
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +85 -33
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +19 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +33 -21
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
- package/dist/features/column-filtering/createFilteredRowModel.js +33 -29
- package/dist/features/column-filtering/filterFns.d.ts +208 -0
- package/dist/features/column-filtering/filterFns.js +374 -0
- package/dist/features/column-filtering/filterRowsUtils.js +4 -4
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +2 -4
- package/dist/features/column-grouping/columnGroupingFeature.js +7 -20
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -52
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -51
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -61
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +7 -7
- package/dist/features/column-grouping/createGroupedRowModel.js +69 -38
- package/dist/features/column-ordering/columnOrderingFeature.d.ts +1 -3
- package/dist/features/column-ordering/columnOrderingFeature.js +19 -24
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -5
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -16
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -18
- package/dist/features/column-pinning/columnPinningFeature.d.ts +7 -4
- package/dist/features/column-pinning/columnPinningFeature.js +126 -146
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +53 -44
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +100 -93
- package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -150
- package/dist/features/column-resizing/columnResizingFeature.d.ts +1 -3
- package/dist/features/column-resizing/columnResizingFeature.js +1 -2
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +2 -7
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +7 -9
- package/dist/features/column-resizing/columnResizingFeature.utils.js +86 -48
- package/dist/features/column-sizing/columnSizingFeature.d.ts +1 -3
- package/dist/features/column-sizing/columnSizingFeature.js +35 -70
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -11
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -27
- package/dist/features/column-sizing/columnSizingFeature.utils.js +95 -54
- package/dist/features/column-visibility/columnVisibilityFeature.d.ts +1 -3
- package/dist/features/column-visibility/columnVisibilityFeature.js +26 -38
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +4 -6
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +20 -20
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +32 -32
- package/dist/features/global-filtering/globalFilteringFeature.d.ts +1 -3
- package/dist/features/global-filtering/globalFilteringFeature.js +3 -4
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +4 -6
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -13
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +7 -8
- package/dist/features/row-aggregation/aggregationFns.d.ts +66 -0
- package/dist/features/row-aggregation/aggregationFns.js +279 -0
- package/dist/features/row-aggregation/rowAggregationFeature.d.ts +8 -0
- package/dist/features/row-aggregation/rowAggregationFeature.js +35 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +193 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.js +11 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +46 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.js +235 -0
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +3 -5
- package/dist/features/row-expanding/createExpandedRowModel.js +9 -13
- package/dist/features/row-expanding/rowExpandingFeature.d.ts +1 -3
- package/dist/features/row-expanding/rowExpandingFeature.js +1 -2
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -17
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +11 -16
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +30 -33
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
- package/dist/features/row-pagination/createPaginatedRowModel.js +7 -12
- package/dist/features/row-pagination/rowPaginationFeature.d.ts +1 -3
- package/dist/features/row-pagination/rowPaginationFeature.js +1 -2
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -16
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +18 -20
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +10 -17
- package/dist/features/row-pinning/rowPinningFeature.d.ts +1 -3
- package/dist/features/row-pinning/rowPinningFeature.js +5 -18
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +3 -5
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +8 -10
- package/dist/features/row-pinning/rowPinningFeature.utils.js +10 -16
- package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
- package/dist/features/row-selection/rowSelectionFeature.js +68 -25
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +51 -15
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +60 -35
- package/dist/features/row-selection/rowSelectionFeature.utils.js +142 -89
- package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
- package/dist/features/row-sorting/createSortedRowModel.js +71 -53
- package/dist/features/row-sorting/rowSortingFeature.d.ts +1 -3
- package/dist/features/row-sorting/rowSortingFeature.js +1 -2
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -24
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +19 -22
- package/dist/features/row-sorting/rowSortingFeature.utils.js +36 -25
- package/dist/features/row-sorting/sortFns.d.ts +96 -0
- package/dist/features/row-sorting/sortFns.js +216 -0
- package/dist/features/stockFeatures.d.ts +7 -3
- package/dist/features/stockFeatures.js +7 -2
- package/dist/flex-render.d.ts +2 -4
- package/dist/flex-render.js +10 -3
- package/dist/helpers/columnHelper.d.ts +3 -5
- package/dist/helpers/columnHelper.js +1 -2
- package/dist/helpers/metaHelper.d.ts +25 -0
- package/dist/helpers/metaHelper.js +28 -0
- package/dist/helpers/tableFeatures.d.ts +35 -8
- package/dist/helpers/tableFeatures.js +33 -5
- package/dist/helpers/tableOptions.d.ts +1 -3
- package/dist/helpers/tableOptions.js +1 -2
- package/dist/index.d.ts +34 -27
- package/dist/index.js +10 -5
- package/dist/reactivity.d.ts +2 -1
- package/dist/reactivity.js +2 -1
- package/dist/static-functions.d.ts +11 -8
- package/dist/static-functions.js +11 -8
- package/dist/store-reactivity-bindings.d.ts +2 -4
- package/dist/store-reactivity-bindings.js +4 -5
- package/dist/types/Cell.d.ts +9 -5
- package/dist/types/Column.d.ts +13 -15
- package/dist/types/ColumnDef.d.ts +39 -21
- package/dist/types/Header.d.ts +3 -5
- package/dist/types/HeaderGroup.d.ts +3 -5
- package/dist/types/Row.d.ts +7 -7
- package/dist/types/RowModel.d.ts +11 -25
- package/dist/types/RowModelFns.d.ts +5 -7
- package/dist/types/Table.d.ts +29 -32
- package/dist/types/TableFeatures.d.ts +388 -24
- package/dist/types/TableOptions.d.ts +24 -14
- package/dist/types/TableState.d.ts +8 -8
- package/dist/types/type-utils.d.ts +10 -4
- package/dist/utils.d.ts +32 -26
- package/dist/utils.js +52 -32
- package/dist/worker/createTableWorker.d.ts +100 -0
- package/dist/worker/createTableWorker.js +185 -0
- package/dist/worker/createWorkerRowModel.d.ts +40 -0
- package/dist/worker/createWorkerRowModel.js +77 -0
- package/dist/worker/initTableWorker.d.ts +31 -0
- package/dist/worker/initTableWorker.js +99 -0
- package/dist/worker/rebuildRowModel.d.ts +11 -0
- package/dist/worker/rebuildRowModel.js +71 -0
- package/dist/worker/serializeRowModel.js +51 -0
- package/dist/worker/tableWorkerProtocol.d.ts +88 -0
- package/dist/worker/tableWorkerProtocol.js +26 -0
- package/package.json +12 -28
- package/skills/aggregation/SKILL.md +141 -0
- package/skills/api-not-found/SKILL.md +113 -0
- package/skills/cell-selection/SKILL.md +204 -0
- package/skills/cell-spanning/SKILL.md +162 -0
- package/skills/client-vs-server/SKILL.md +164 -0
- package/skills/column-faceting/SKILL.md +97 -0
- package/skills/column-filtering/SKILL.md +87 -0
- package/skills/column-ordering/SKILL.md +75 -0
- package/skills/column-pinning/SKILL.md +89 -0
- package/skills/column-resizing/SKILL.md +91 -0
- package/skills/column-sizing/SKILL.md +72 -0
- package/skills/column-visibility/SKILL.md +75 -0
- package/skills/core/SKILL.md +175 -0
- package/skills/custom-features/SKILL.md +235 -0
- package/skills/expanding/SKILL.md +80 -0
- package/skills/global-filtering/SKILL.md +84 -0
- package/skills/grouping/SKILL.md +51 -401
- package/skills/migrate-v8-to-v9/SKILL.md +275 -416
- package/skills/pagination/SKILL.md +37 -344
- package/skills/row-pinning/SKILL.md +47 -234
- package/skills/row-selection/SKILL.md +75 -302
- package/skills/sorting/SKILL.md +45 -303
- package/skills/table-features/SKILL.md +159 -0
- package/skills/typescript/SKILL.md +126 -0
- package/dist/core/cells/constructCell.cjs +0 -34
- package/dist/core/cells/constructCell.cjs.map +0 -1
- package/dist/core/cells/constructCell.d.cts +0 -17
- package/dist/core/cells/constructCell.js.map +0 -1
- package/dist/core/cells/coreCellsFeature.cjs +0 -21
- package/dist/core/cells/coreCellsFeature.cjs.map +0 -1
- package/dist/core/cells/coreCellsFeature.d.cts +0 -10
- package/dist/core/cells/coreCellsFeature.js.map +0 -1
- package/dist/core/cells/coreCellsFeature.types.d.cts +0 -57
- package/dist/core/cells/coreCellsFeature.utils.cjs +0 -57
- package/dist/core/cells/coreCellsFeature.utils.cjs.map +0 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +0 -53
- package/dist/core/cells/coreCellsFeature.utils.js.map +0 -1
- package/dist/core/columns/constructColumn.cjs +0 -61
- package/dist/core/columns/constructColumn.cjs.map +0 -1
- package/dist/core/columns/constructColumn.d.cts +0 -16
- package/dist/core/columns/constructColumn.js.map +0 -1
- package/dist/core/columns/coreColumnsFeature.cjs +0 -70
- package/dist/core/columns/coreColumnsFeature.cjs.map +0 -1
- package/dist/core/columns/coreColumnsFeature.d.cts +0 -10
- package/dist/core/columns/coreColumnsFeature.js.map +0 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +0 -94
- package/dist/core/columns/coreColumnsFeature.utils.cjs +0 -187
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +0 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +0 -119
- package/dist/core/columns/coreColumnsFeature.utils.js.map +0 -1
- package/dist/core/coreFeatures.cjs +0 -25
- package/dist/core/coreFeatures.cjs.map +0 -1
- package/dist/core/coreFeatures.d.cts +0 -26
- package/dist/core/coreFeatures.js.map +0 -1
- package/dist/core/headers/buildHeaderGroups.cjs +0 -103
- package/dist/core/headers/buildHeaderGroups.cjs.map +0 -1
- package/dist/core/headers/buildHeaderGroups.d.cts +0 -16
- package/dist/core/headers/buildHeaderGroups.js.map +0 -1
- package/dist/core/headers/constructHeader.cjs +0 -41
- package/dist/core/headers/constructHeader.cjs.map +0 -1
- package/dist/core/headers/constructHeader.d.cts +0 -22
- package/dist/core/headers/constructHeader.js.map +0 -1
- package/dist/core/headers/coreHeadersFeature.cjs +0 -55
- package/dist/core/headers/coreHeadersFeature.cjs.map +0 -1
- package/dist/core/headers/coreHeadersFeature.d.cts +0 -10
- package/dist/core/headers/coreHeadersFeature.js.map +0 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +0 -106
- package/dist/core/headers/coreHeadersFeature.utils.cjs +0 -142
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +0 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +0 -85
- package/dist/core/headers/coreHeadersFeature.utils.js.map +0 -1
- package/dist/core/reactivity/coreReactivityFeature.types.d.cts +0 -48
- package/dist/core/reactivity/coreReactivityFeature.utils.cjs +0 -24
- package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +0 -1
- package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +0 -24
- package/dist/core/reactivity/coreReactivityFeature.utils.js.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.cjs +0 -27
- package/dist/core/row-models/coreRowModelsFeature.cjs.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.d.cts +0 -10
- package/dist/core/row-models/coreRowModelsFeature.js.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +0 -41
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +0 -215
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +0 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +0 -153
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +0 -1
- package/dist/core/row-models/createCoreRowModel.cjs +0 -52
- package/dist/core/row-models/createCoreRowModel.cjs.map +0 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +0 -15
- package/dist/core/row-models/createCoreRowModel.js.map +0 -1
- package/dist/core/rows/constructRow.cjs +0 -44
- package/dist/core/rows/constructRow.cjs.map +0 -1
- package/dist/core/rows/constructRow.d.cts +0 -15
- package/dist/core/rows/constructRow.js.map +0 -1
- package/dist/core/rows/coreRowsFeature.cjs +0 -37
- package/dist/core/rows/coreRowsFeature.cjs.map +0 -1
- package/dist/core/rows/coreRowsFeature.d.cts +0 -10
- package/dist/core/rows/coreRowsFeature.js.map +0 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +0 -99
- package/dist/core/rows/coreRowsFeature.utils.cjs +0 -192
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +0 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +0 -127
- package/dist/core/rows/coreRowsFeature.utils.js.map +0 -1
- package/dist/core/table/constructTable.cjs +0 -118
- package/dist/core/table/constructTable.cjs.map +0 -1
- package/dist/core/table/constructTable.d.cts +0 -22
- package/dist/core/table/constructTable.js.map +0 -1
- package/dist/core/table/coreTablesFeature.cjs +0 -17
- package/dist/core/table/coreTablesFeature.cjs.map +0 -1
- package/dist/core/table/coreTablesFeature.d.cts +0 -10
- package/dist/core/table/coreTablesFeature.js.map +0 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +0 -186
- package/dist/core/table/coreTablesFeature.utils.cjs +0 -96
- package/dist/core/table/coreTablesFeature.utils.cjs.map +0 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +0 -57
- package/dist/core/table/coreTablesFeature.utils.js.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.cjs +0 -61
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.d.cts +0 -10
- package/dist/features/column-faceting/columnFacetingFeature.js.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +0 -85
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +0 -103
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +0 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +0 -84
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +0 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +0 -44
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +0 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +0 -14
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +0 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs +0 -50
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +0 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.cts +0 -15
- package/dist/features/column-faceting/createFacetedRowModel.js.map +0 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +0 -41
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +0 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +0 -14
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +0 -50
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.d.cts +0 -10
- package/dist/features/column-filtering/columnFilteringFeature.js.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +0 -160
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +0 -212
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +0 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +0 -143
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +0 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +0 -110
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +0 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +0 -16
- package/dist/features/column-filtering/createFilteredRowModel.js.map +0 -1
- package/dist/features/column-filtering/filterRowsUtils.cjs +0 -81
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +0 -1
- package/dist/features/column-filtering/filterRowsUtils.js.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +0 -67
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +0 -10
- package/dist/features/column-grouping/columnGroupingFeature.js.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +0 -165
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +0 -250
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +0 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +0 -190
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +0 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +0 -119
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +0 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +0 -16
- package/dist/features/column-grouping/createGroupedRowModel.js.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +0 -58
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.d.cts +0 -10
- package/dist/features/column-ordering/columnOrderingFeature.js.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +0 -56
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +0 -172
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +0 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +0 -107
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +0 -221
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +0 -10
- package/dist/features/column-pinning/columnPinningFeature.js.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +0 -178
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +0 -585
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +0 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +0 -375
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.cjs +0 -41
- package/dist/features/column-resizing/columnResizingFeature.cjs.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.d.cts +0 -10
- package/dist/features/column-resizing/columnResizingFeature.js.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +0 -81
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +0 -246
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +0 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +0 -109
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +0 -124
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.d.cts +0 -10
- package/dist/features/column-sizing/columnSizingFeature.js.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +0 -96
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +0 -256
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +0 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +0 -182
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +0 -94
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.d.cts +0 -10
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +0 -97
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +0 -283
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +0 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +0 -189
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +0 -41
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.d.cts +0 -10
- package/dist/features/global-filtering/globalFilteringFeature.js.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +0 -71
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +0 -88
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +0 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +0 -74
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +0 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs +0 -59
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +0 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.cts +0 -21
- package/dist/features/row-expanding/createExpandedRowModel.js.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.cjs +0 -47
- package/dist/features/row-expanding/rowExpandingFeature.cjs.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.d.cts +0 -10
- package/dist/features/row-expanding/rowExpandingFeature.js.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +0 -127
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +0 -281
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +0 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +0 -191
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +0 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs +0 -62
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +0 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +0 -15
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.cjs +0 -45
- package/dist/features/row-pagination/rowPaginationFeature.cjs.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.d.cts +0 -10
- package/dist/features/row-pagination/rowPaginationFeature.js.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +0 -135
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +0 -312
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +0 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +0 -218
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.cjs +0 -67
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.d.cts +0 -10
- package/dist/features/row-pinning/rowPinningFeature.js.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +0 -83
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +0 -229
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +0 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +0 -143
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +0 -75
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.d.cts +0 -10
- package/dist/features/row-selection/rowSelectionFeature.js.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +0 -136
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +0 -514
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +0 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +0 -318
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +0 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +0 -95
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +0 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +0 -16
- package/dist/features/row-sorting/createSortedRowModel.js.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.cjs +0 -55
- package/dist/features/row-sorting/rowSortingFeature.cjs.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.d.cts +0 -10
- package/dist/features/row-sorting/rowSortingFeature.js.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +0 -188
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +0 -305
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +0 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +0 -193
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +0 -1
- package/dist/features/stockFeatures.cjs +0 -41
- package/dist/features/stockFeatures.cjs.map +0 -1
- package/dist/features/stockFeatures.d.cts +0 -41
- package/dist/features/stockFeatures.js.map +0 -1
- package/dist/flex-render.cjs +0 -29
- package/dist/flex-render.cjs.map +0 -1
- package/dist/flex-render.d.cts +0 -34
- package/dist/flex-render.js.map +0 -1
- package/dist/fns/aggregationFns.cjs +0 -161
- package/dist/fns/aggregationFns.cjs.map +0 -1
- package/dist/fns/aggregationFns.d.cts +0 -85
- package/dist/fns/aggregationFns.d.ts +0 -85
- package/dist/fns/aggregationFns.js +0 -151
- package/dist/fns/aggregationFns.js.map +0 -1
- package/dist/fns/filterFns.cjs +0 -201
- package/dist/fns/filterFns.cjs.map +0 -1
- package/dist/fns/filterFns.d.cts +0 -167
- package/dist/fns/filterFns.d.ts +0 -167
- package/dist/fns/filterFns.js +0 -185
- package/dist/fns/filterFns.js.map +0 -1
- package/dist/fns/sortFns.cjs +0 -130
- package/dist/fns/sortFns.cjs.map +0 -1
- package/dist/fns/sortFns.d.cts +0 -65
- package/dist/fns/sortFns.d.ts +0 -65
- package/dist/fns/sortFns.js +0 -122
- package/dist/fns/sortFns.js.map +0 -1
- package/dist/helpers/columnHelper.cjs +0 -41
- package/dist/helpers/columnHelper.cjs.map +0 -1
- package/dist/helpers/columnHelper.d.cts +0 -71
- package/dist/helpers/columnHelper.js.map +0 -1
- package/dist/helpers/tableFeatures.cjs +0 -20
- package/dist/helpers/tableFeatures.cjs.map +0 -1
- package/dist/helpers/tableFeatures.d.cts +0 -18
- package/dist/helpers/tableFeatures.js.map +0 -1
- package/dist/helpers/tableOptions.cjs +0 -15
- package/dist/helpers/tableOptions.cjs.map +0 -1
- package/dist/helpers/tableOptions.d.cts +0 -57
- package/dist/helpers/tableOptions.js.map +0 -1
- package/dist/index.cjs +0 -133
- package/dist/index.d.cts +0 -78
- package/dist/reactivity.cjs +0 -4
- package/dist/reactivity.d.cts +0 -3
- package/dist/static-functions.cjs +0 -263
- package/dist/static-functions.d.cts +0 -21
- package/dist/store-reactivity-bindings.cjs +0 -44
- package/dist/store-reactivity-bindings.cjs.map +0 -1
- package/dist/store-reactivity-bindings.d.cts +0 -22
- package/dist/store-reactivity-bindings.js.map +0 -1
- package/dist/types/Cell.d.cts +0 -14
- package/dist/types/Column.d.cts +0 -36
- package/dist/types/ColumnDef.d.cts +0 -109
- package/dist/types/Header.d.cts +0 -16
- package/dist/types/HeaderGroup.d.cts +0 -10
- package/dist/types/Row.d.cts +0 -26
- package/dist/types/RowModel.d.cts +0 -36
- package/dist/types/RowModelFns.d.cts +0 -18
- package/dist/types/Table.d.cts +0 -70
- package/dist/types/TableFeatures.d.cts +0 -53
- package/dist/types/TableOptions.d.cts +0 -69
- package/dist/types/TableState.d.cts +0 -48
- package/dist/types/type-utils.d.cts +0 -23
- package/dist/utils.cjs +0 -243
- package/dist/utils.cjs.map +0 -1
- package/dist/utils.d.cts +0 -114
- package/dist/utils.js.map +0 -1
- package/skills/column-definitions/SKILL.md +0 -333
- package/skills/column-layout/SKILL.md +0 -328
- package/skills/column-layout/references/subsystems.md +0 -220
- package/skills/customizing-feature-behavior/SKILL.md +0 -416
- package/skills/filtering/SKILL.md +0 -357
- package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
- package/skills/row-expanding/SKILL.md +0 -348
- package/skills/setup/SKILL.md +0 -400
- package/skills/state-management/SKILL.md +0 -388
- package/src/core/cells/constructCell.ts +0 -55
- package/src/core/cells/coreCellsFeature.ts +0 -27
- package/src/core/cells/coreCellsFeature.types.ts +0 -68
- package/src/core/cells/coreCellsFeature.utils.ts +0 -68
- package/src/core/columns/constructColumn.ts +0 -119
- package/src/core/columns/coreColumnsFeature.ts +0 -73
- package/src/core/columns/coreColumnsFeature.types.ts +0 -108
- package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
- package/src/core/coreFeatures.ts +0 -31
- package/src/core/headers/buildHeaderGroups.ts +0 -182
- package/src/core/headers/constructHeader.ts +0 -67
- package/src/core/headers/coreHeadersFeature.ts +0 -56
- package/src/core/headers/coreHeadersFeature.types.ts +0 -125
- package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
- package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
- package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
- package/src/core/row-models/coreRowModelsFeature.ts +0 -62
- package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
- package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
- package/src/core/row-models/createCoreRowModel.ts +0 -93
- package/src/core/rows/constructRow.ts +0 -66
- package/src/core/rows/coreRowsFeature.ts +0 -62
- package/src/core/rows/coreRowsFeature.types.ts +0 -117
- package/src/core/rows/coreRowsFeature.utils.ts +0 -264
- package/src/core/table/constructTable.ts +0 -172
- package/src/core/table/coreTablesFeature.ts +0 -19
- package/src/core/table/coreTablesFeature.types.ts +0 -216
- package/src/core/table/coreTablesFeature.utils.ts +0 -131
- package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
- package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
- package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
- package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
- package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
- package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
- package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
- package/src/features/column-filtering/filterRowsUtils.ts +0 -157
- package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
- package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
- package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
- package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
- package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
- package/src/features/column-pinning/columnPinningFeature.ts +0 -316
- package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
- package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
- package/src/features/column-resizing/columnResizingFeature.ts +0 -65
- package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
- package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
- package/src/features/column-sizing/columnSizingFeature.ts +0 -145
- package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
- package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
- package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
- package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
- package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
- package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
- package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
- package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
- package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
- package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
- package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
- package/src/features/row-pinning/rowPinningFeature.ts +0 -97
- package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
- package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
- package/src/features/row-selection/rowSelectionFeature.ts +0 -140
- package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
- package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -745
- package/src/features/row-sorting/createSortedRowModel.ts +0 -157
- package/src/features/row-sorting/rowSortingFeature.ts +0 -103
- package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
- package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
- package/src/features/stockFeatures.ts +0 -53
- package/src/flex-render.ts +0 -70
- package/src/fns/aggregationFns.ts +0 -245
- package/src/fns/filterFns.ts +0 -382
- package/src/fns/sortFns.ts +0 -240
- package/src/helpers/columnHelper.ts +0 -122
- package/src/helpers/tableFeatures.ts +0 -24
- package/src/helpers/tableOptions.ts +0 -117
- package/src/index.ts +0 -138
- package/src/process-env.d.ts +0 -6
- package/src/reactivity.ts +0 -2
- package/src/static-functions.ts +0 -31
- package/src/store-reactivity-bindings.ts +0 -47
- package/src/types/Cell.ts +0 -21
- package/src/types/Column.ts +0 -51
- package/src/types/ColumnDef.ts +0 -228
- package/src/types/Header.ts +0 -23
- package/src/types/HeaderGroup.ts +0 -13
- package/src/types/Row.ts +0 -34
- package/src/types/RowModel.ts +0 -98
- package/src/types/RowModelFns.ts +0 -32
- package/src/types/Table.ts +0 -91
- package/src/types/TableFeatures.ts +0 -101
- package/src/types/TableOptions.ts +0 -101
- package/src/types/TableState.ts +0 -47
- package/src/types/type-utils.ts +0 -84
- package/src/utils.ts +0 -441
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
import type { RowData } from '../types/type-utils'
|
|
2
|
-
import type { TableFeatures } from '../types/TableFeatures'
|
|
3
|
-
import type { Row } from '../types/Row'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Sums numeric child-row values for a grouped column.
|
|
7
|
-
*
|
|
8
|
-
* Non-number values contribute `0`. Child rows are used so nested group totals
|
|
9
|
-
* can reuse already aggregated values.
|
|
10
|
-
*/
|
|
11
|
-
export function aggregationFn_sum<
|
|
12
|
-
TFeatures extends TableFeatures,
|
|
13
|
-
TData extends RowData,
|
|
14
|
-
>(
|
|
15
|
-
columnId: string,
|
|
16
|
-
_leafRows: Array<Row<TFeatures, TData>>,
|
|
17
|
-
childRows: Array<Row<TFeatures, TData>>,
|
|
18
|
-
) {
|
|
19
|
-
// It's faster to just add the aggregations together instead of
|
|
20
|
-
// process leaf nodes individually
|
|
21
|
-
return childRows.reduce((sumValue, next) => {
|
|
22
|
-
const nextValue = next.getValue(columnId)
|
|
23
|
-
return sumValue + (typeof nextValue === 'number' ? nextValue : 0)
|
|
24
|
-
}, 0)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Finds the minimum numeric child-row value for a grouped column.
|
|
29
|
-
*
|
|
30
|
-
* Nullish and non-number values are ignored. Returns `undefined` when no
|
|
31
|
-
* numeric value is found.
|
|
32
|
-
*/
|
|
33
|
-
export function aggregationFn_min<
|
|
34
|
-
TFeatures extends TableFeatures,
|
|
35
|
-
TData extends RowData,
|
|
36
|
-
>(
|
|
37
|
-
columnId: string,
|
|
38
|
-
_leafRows: Array<Row<TFeatures, TData>>,
|
|
39
|
-
childRows: Array<Row<TFeatures, TData>>,
|
|
40
|
-
) {
|
|
41
|
-
let minValue: number | undefined
|
|
42
|
-
|
|
43
|
-
childRows.forEach((row) => {
|
|
44
|
-
const value = row.getValue(columnId)
|
|
45
|
-
|
|
46
|
-
if (
|
|
47
|
-
value != null &&
|
|
48
|
-
typeof value === 'number' &&
|
|
49
|
-
(minValue === undefined || value < minValue)
|
|
50
|
-
) {
|
|
51
|
-
minValue = value
|
|
52
|
-
}
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
return minValue
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Finds the maximum numeric child-row value for a grouped column.
|
|
60
|
-
*
|
|
61
|
-
* Nullish and non-number values are ignored. Returns `undefined` when no
|
|
62
|
-
* numeric value is found.
|
|
63
|
-
*/
|
|
64
|
-
export function aggregationFn_max<
|
|
65
|
-
TFeatures extends TableFeatures,
|
|
66
|
-
TData extends RowData,
|
|
67
|
-
>(
|
|
68
|
-
columnId: string,
|
|
69
|
-
_leafRows: Array<Row<TFeatures, TData>>,
|
|
70
|
-
childRows: Array<Row<TFeatures, TData>>,
|
|
71
|
-
) {
|
|
72
|
-
let maxValue: number | undefined
|
|
73
|
-
|
|
74
|
-
childRows.forEach((row) => {
|
|
75
|
-
const value = row.getValue(columnId)
|
|
76
|
-
if (
|
|
77
|
-
value != null &&
|
|
78
|
-
typeof value === 'number' &&
|
|
79
|
-
(maxValue === undefined || value > maxValue)
|
|
80
|
-
) {
|
|
81
|
-
maxValue = value
|
|
82
|
-
}
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
return maxValue
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Finds the numeric extent for a grouped column.
|
|
90
|
-
*
|
|
91
|
-
* Returns `[min, max]`, where each entry is `undefined` when no numeric value is
|
|
92
|
-
* present.
|
|
93
|
-
*/
|
|
94
|
-
export function aggregationFn_extent<
|
|
95
|
-
TFeatures extends TableFeatures,
|
|
96
|
-
TData extends RowData,
|
|
97
|
-
>(
|
|
98
|
-
columnId: string,
|
|
99
|
-
_leafRows: Array<Row<TFeatures, TData>>,
|
|
100
|
-
childRows: Array<Row<TFeatures, TData>>,
|
|
101
|
-
) {
|
|
102
|
-
let minValue: number | undefined
|
|
103
|
-
let maxValue: number | undefined
|
|
104
|
-
|
|
105
|
-
childRows.forEach((row) => {
|
|
106
|
-
const value = row.getValue(columnId)
|
|
107
|
-
if (value != null && typeof value === 'number') {
|
|
108
|
-
if (minValue === undefined) {
|
|
109
|
-
minValue = maxValue = value
|
|
110
|
-
} else {
|
|
111
|
-
if (minValue > value) minValue = value
|
|
112
|
-
if (maxValue! < value) maxValue = value
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
return [minValue, maxValue]
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Averages numeric leaf-row values for a grouped column.
|
|
122
|
-
*
|
|
123
|
-
* Number-like values are coerced with unary `+`; nullish and non-numeric values
|
|
124
|
-
* are ignored.
|
|
125
|
-
*/
|
|
126
|
-
export function aggregationFn_mean<
|
|
127
|
-
TFeatures extends TableFeatures,
|
|
128
|
-
TData extends RowData,
|
|
129
|
-
>(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
|
|
130
|
-
let count = 0
|
|
131
|
-
let sumValue = 0
|
|
132
|
-
|
|
133
|
-
leafRows.forEach((row) => {
|
|
134
|
-
const value = row.getValue(columnId)
|
|
135
|
-
if (value != null && typeof value === 'number') {
|
|
136
|
-
++count
|
|
137
|
-
sumValue += value
|
|
138
|
-
} else if (value != null) {
|
|
139
|
-
const numValue = +value
|
|
140
|
-
if (!Number.isNaN(numValue)) {
|
|
141
|
-
++count
|
|
142
|
-
sumValue += numValue
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
if (count) return sumValue / count
|
|
148
|
-
|
|
149
|
-
return
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Computes the median of numeric leaf-row values for a grouped column.
|
|
154
|
-
*
|
|
155
|
-
* All values must be numbers. If any value is non-numeric, or no leaf rows are
|
|
156
|
-
* present, the result is `undefined`.
|
|
157
|
-
*/
|
|
158
|
-
export function aggregationFn_median<
|
|
159
|
-
TFeatures extends TableFeatures,
|
|
160
|
-
TData extends RowData,
|
|
161
|
-
>(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
|
|
162
|
-
if (!leafRows.length) {
|
|
163
|
-
return
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const values: Array<number> = new Array(leafRows.length)
|
|
167
|
-
for (let i = 0; i < leafRows.length; i++) {
|
|
168
|
-
const v = leafRows[i]!.getValue(columnId)
|
|
169
|
-
if (typeof v !== 'number') return
|
|
170
|
-
values[i] = v
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
if (values.length === 1) {
|
|
174
|
-
return values[0]
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
const mid = Math.floor(values.length / 2)
|
|
178
|
-
values.sort((a, b) => a - b)
|
|
179
|
-
return values.length % 2 !== 0
|
|
180
|
-
? values[mid]
|
|
181
|
-
: (values[mid - 1]! + values[mid]!) / 2
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Collects unique leaf-row values for a grouped column.
|
|
186
|
-
*
|
|
187
|
-
* Values are compared with JavaScript `Set` semantics.
|
|
188
|
-
*/
|
|
189
|
-
export function aggregationFn_unique<
|
|
190
|
-
TFeatures extends TableFeatures,
|
|
191
|
-
TData extends RowData,
|
|
192
|
-
>(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
|
|
193
|
-
const set = new Set<unknown>()
|
|
194
|
-
for (let i = 0; i < leafRows.length; i++) {
|
|
195
|
-
set.add(leafRows[i]!.getValue(columnId))
|
|
196
|
-
}
|
|
197
|
-
return Array.from(set.values())
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Counts unique leaf-row values for a grouped column.
|
|
202
|
-
*
|
|
203
|
-
* Values are compared with JavaScript `Set` semantics.
|
|
204
|
-
*/
|
|
205
|
-
export function aggregationFn_uniqueCount<
|
|
206
|
-
TFeatures extends TableFeatures,
|
|
207
|
-
TData extends RowData,
|
|
208
|
-
>(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
|
|
209
|
-
const set = new Set<unknown>()
|
|
210
|
-
for (let i = 0; i < leafRows.length; i++) {
|
|
211
|
-
set.add(leafRows[i]!.getValue(columnId))
|
|
212
|
-
}
|
|
213
|
-
return set.size
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Counts the number of leaf rows in the group.
|
|
218
|
-
*
|
|
219
|
-
* The column id is ignored because the result is based only on group size.
|
|
220
|
-
*/
|
|
221
|
-
export function aggregationFn_count<
|
|
222
|
-
TFeatures extends TableFeatures,
|
|
223
|
-
TData extends RowData,
|
|
224
|
-
>(_columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
|
|
225
|
-
return leafRows.length
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* The built-in aggregation function registry.
|
|
230
|
-
*
|
|
231
|
-
* Pass this object to grouped row model creation or extend it with custom aggregation functions for grouped columns.
|
|
232
|
-
*/
|
|
233
|
-
export const aggregationFns = {
|
|
234
|
-
sum: aggregationFn_sum,
|
|
235
|
-
min: aggregationFn_min,
|
|
236
|
-
max: aggregationFn_max,
|
|
237
|
-
extent: aggregationFn_extent,
|
|
238
|
-
mean: aggregationFn_mean,
|
|
239
|
-
median: aggregationFn_median,
|
|
240
|
-
unique: aggregationFn_unique,
|
|
241
|
-
uniqueCount: aggregationFn_uniqueCount,
|
|
242
|
-
count: aggregationFn_count,
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
export type BuiltInAggregationFn = keyof typeof aggregationFns
|
package/src/fns/filterFns.ts
DELETED
|
@@ -1,382 +0,0 @@
|
|
|
1
|
-
import type { RowData } from '../types/type-utils'
|
|
2
|
-
import type { TableFeatures } from '../types/TableFeatures'
|
|
3
|
-
import type { Row } from '../types/Row'
|
|
4
|
-
|
|
5
|
-
// Basic filters
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Keeps rows whose column value is strictly equal to the filter value.
|
|
9
|
-
*
|
|
10
|
-
* Uses JavaScript `===` comparison and auto-removes empty filter values.
|
|
11
|
-
*/
|
|
12
|
-
export const filterFn_equals = Object.assign(
|
|
13
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
14
|
-
row: Row<TFeatures, TData>,
|
|
15
|
-
columnId: string,
|
|
16
|
-
filterValue: unknown,
|
|
17
|
-
) => {
|
|
18
|
-
return row.getValue(columnId) === filterValue
|
|
19
|
-
},
|
|
20
|
-
{ autoRemove: (val: any) => testFalsy(val) },
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Keeps rows whose column value is loosely equal to the filter value.
|
|
25
|
-
*
|
|
26
|
-
* Uses JavaScript `==` comparison and auto-removes empty filter values. This is
|
|
27
|
-
* useful for matching string input against numeric row values.
|
|
28
|
-
*/
|
|
29
|
-
export const filterFn_weakEquals = Object.assign(
|
|
30
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
31
|
-
row: Row<TFeatures, TData>,
|
|
32
|
-
columnId: string,
|
|
33
|
-
filterValue: unknown,
|
|
34
|
-
) => {
|
|
35
|
-
return row.getValue(columnId) == filterValue
|
|
36
|
-
},
|
|
37
|
-
{ autoRemove: (val: any) => testFalsy(val) },
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
// String filters
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Keeps rows whose stringified column value includes the filter text.
|
|
44
|
-
*
|
|
45
|
-
* Matching is case-sensitive and empty filter values are auto-removed.
|
|
46
|
-
*/
|
|
47
|
-
export const filterFn_includesStringSensitive = Object.assign(
|
|
48
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
49
|
-
row: Row<TFeatures, TData>,
|
|
50
|
-
columnId: string,
|
|
51
|
-
filterValue: unknown,
|
|
52
|
-
) => {
|
|
53
|
-
return Boolean(
|
|
54
|
-
row.getValue(columnId)?.toString().includes(String(filterValue)),
|
|
55
|
-
)
|
|
56
|
-
},
|
|
57
|
-
{ autoRemove: (val: any) => testFalsy(val) },
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Keeps rows whose stringified column value includes the filter text.
|
|
62
|
-
*
|
|
63
|
-
* Both values are lowercased before comparison, and empty filter values are
|
|
64
|
-
* auto-removed.
|
|
65
|
-
*/
|
|
66
|
-
export const filterFn_includesString = Object.assign(
|
|
67
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
68
|
-
row: Row<TFeatures, TData>,
|
|
69
|
-
columnId: string,
|
|
70
|
-
filterValue: unknown,
|
|
71
|
-
) => {
|
|
72
|
-
return Boolean(
|
|
73
|
-
row
|
|
74
|
-
.getValue(columnId)
|
|
75
|
-
?.toString()
|
|
76
|
-
.toLowerCase()
|
|
77
|
-
.includes(String(filterValue).toLowerCase()),
|
|
78
|
-
)
|
|
79
|
-
},
|
|
80
|
-
{ autoRemove: (val: any) => testFalsy(val) },
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Keeps rows whose stringified column value equals the filter text.
|
|
85
|
-
*
|
|
86
|
-
* Both values are lowercased before comparison, and empty filter values are
|
|
87
|
-
* auto-removed.
|
|
88
|
-
*/
|
|
89
|
-
export const filterFn_equalsString = Object.assign(
|
|
90
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
91
|
-
row: Row<TFeatures, TData>,
|
|
92
|
-
columnId: string,
|
|
93
|
-
filterValue: unknown,
|
|
94
|
-
) => {
|
|
95
|
-
return (
|
|
96
|
-
row.getValue(columnId)?.toString().toLowerCase() ===
|
|
97
|
-
String(filterValue).toLowerCase()
|
|
98
|
-
)
|
|
99
|
-
},
|
|
100
|
-
{ autoRemove: (val: any) => testFalsy(val) },
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Keeps rows whose stringified column value exactly equals the filter text.
|
|
105
|
-
*
|
|
106
|
-
* Matching is case-sensitive and empty filter values are auto-removed.
|
|
107
|
-
*/
|
|
108
|
-
export const filterFn_equalsStringSensitive = Object.assign(
|
|
109
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
110
|
-
row: Row<TFeatures, TData>,
|
|
111
|
-
columnId: string,
|
|
112
|
-
filterValue: unknown,
|
|
113
|
-
) => {
|
|
114
|
-
return row.getValue(columnId)?.toString() === String(filterValue)
|
|
115
|
-
},
|
|
116
|
-
{ autoRemove: (val: any) => testFalsy(val) },
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
// Number filters
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Keeps rows whose value is greater than the filter value.
|
|
123
|
-
*
|
|
124
|
-
* Numeric values are compared numerically when both sides can be coerced to
|
|
125
|
-
* numbers; otherwise normalized strings are compared.
|
|
126
|
-
*/
|
|
127
|
-
export const filterFn_greaterThan = Object.assign(
|
|
128
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
129
|
-
row: Row<TFeatures, TData>,
|
|
130
|
-
columnId: string,
|
|
131
|
-
filterValue: unknown,
|
|
132
|
-
) => {
|
|
133
|
-
const rowValue = row.getValue(columnId)
|
|
134
|
-
const numericRowValue =
|
|
135
|
-
rowValue === null || rowValue === undefined ? 0 : +rowValue
|
|
136
|
-
const numericFilterValue = Number(filterValue)
|
|
137
|
-
|
|
138
|
-
if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {
|
|
139
|
-
return numericRowValue > numericFilterValue
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
const stringValue = (rowValue ?? '').toString().toLowerCase().trim()
|
|
143
|
-
const stringFilterValue = String(filterValue).toLowerCase().trim()
|
|
144
|
-
return stringValue > stringFilterValue
|
|
145
|
-
},
|
|
146
|
-
{ resolveFilterValue: (val: any) => testFalsy(val) },
|
|
147
|
-
)
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Keeps rows whose value is greater than or equal to the filter value.
|
|
151
|
-
*
|
|
152
|
-
* Delegates to the built-in greater-than and equality comparisons.
|
|
153
|
-
*/
|
|
154
|
-
export const filterFn_greaterThanOrEqualTo = Object.assign(
|
|
155
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
156
|
-
row: Row<TFeatures, TData>,
|
|
157
|
-
columnId: string,
|
|
158
|
-
filterValue: unknown,
|
|
159
|
-
) => {
|
|
160
|
-
return (
|
|
161
|
-
filterFn_greaterThan(row, columnId, filterValue) ||
|
|
162
|
-
filterFn_equals(row, columnId, filterValue)
|
|
163
|
-
)
|
|
164
|
-
},
|
|
165
|
-
{ resolveFilterValue: (val: any) => testFalsy(val) },
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Keeps rows whose value is less than the filter value.
|
|
170
|
-
*
|
|
171
|
-
* This is implemented as the inverse of greater-than-or-equal comparison.
|
|
172
|
-
*/
|
|
173
|
-
export const filterFn_lessThan = Object.assign(
|
|
174
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
175
|
-
row: Row<TFeatures, TData>,
|
|
176
|
-
columnId: string,
|
|
177
|
-
filterValue: unknown,
|
|
178
|
-
) => {
|
|
179
|
-
return !filterFn_greaterThanOrEqualTo(row, columnId, filterValue)
|
|
180
|
-
},
|
|
181
|
-
{ resolveFilterValue: (val: any) => testFalsy(val) },
|
|
182
|
-
)
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Keeps rows whose value is less than or equal to the filter value.
|
|
186
|
-
*
|
|
187
|
-
* This is implemented as the inverse of greater-than comparison.
|
|
188
|
-
*/
|
|
189
|
-
export const filterFn_lessThanOrEqualTo = Object.assign(
|
|
190
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
191
|
-
row: Row<TFeatures, TData>,
|
|
192
|
-
columnId: string,
|
|
193
|
-
filterValue: unknown,
|
|
194
|
-
) => {
|
|
195
|
-
return !filterFn_greaterThan(row, columnId, filterValue)
|
|
196
|
-
},
|
|
197
|
-
{ resolveFilterValue: (val: any) => testFalsy(val) },
|
|
198
|
-
)
|
|
199
|
-
|
|
200
|
-
// Range filters
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Keeps rows whose value falls between an exclusive min/max pair.
|
|
204
|
-
*
|
|
205
|
-
* Blank range endpoints are treated as open-ended.
|
|
206
|
-
*/
|
|
207
|
-
const filterFn_between = Object.assign(
|
|
208
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
209
|
-
row: Row<TFeatures, TData>,
|
|
210
|
-
columnId: string,
|
|
211
|
-
filterValues: [unknown, unknown],
|
|
212
|
-
): boolean =>
|
|
213
|
-
((['', undefined] as Array<any>).includes(filterValues[0]) ||
|
|
214
|
-
filterFn_greaterThan(row, columnId, filterValues[0])) &&
|
|
215
|
-
((!isNaN(Number(filterValues[0])) &&
|
|
216
|
-
!isNaN(Number(filterValues[1])) &&
|
|
217
|
-
Number(filterValues[0]) > Number(filterValues[1])) ||
|
|
218
|
-
(['', undefined] as Array<any>).includes(filterValues[1]) ||
|
|
219
|
-
filterFn_lessThan(row, columnId, filterValues[1])),
|
|
220
|
-
{ autoRemove: (val: any) => !val },
|
|
221
|
-
)
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Keeps rows whose value falls between an inclusive min/max pair.
|
|
225
|
-
*
|
|
226
|
-
* Blank range endpoints are treated as open-ended.
|
|
227
|
-
*/
|
|
228
|
-
const filterFn_betweenInclusive = Object.assign(
|
|
229
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
230
|
-
row: Row<TFeatures, TData>,
|
|
231
|
-
columnId: string,
|
|
232
|
-
filterValues: [unknown, unknown],
|
|
233
|
-
): boolean =>
|
|
234
|
-
((['', undefined] as Array<any>).includes(filterValues[0]) ||
|
|
235
|
-
filterFn_greaterThanOrEqualTo(row, columnId, filterValues[0])) &&
|
|
236
|
-
((!isNaN(Number(filterValues[0])) &&
|
|
237
|
-
!isNaN(Number(filterValues[1])) &&
|
|
238
|
-
Number(filterValues[0]) > Number(filterValues[1])) ||
|
|
239
|
-
(['', undefined] as Array<any>).includes(filterValues[1]) ||
|
|
240
|
-
filterFn_lessThanOrEqualTo(row, columnId, filterValues[1])),
|
|
241
|
-
{ autoRemove: (val: any) => !val },
|
|
242
|
-
)
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* Keeps rows whose numeric value is inside an inclusive `[min, max]` range.
|
|
246
|
-
*
|
|
247
|
-
* Filter values are normalized so blank endpoints become open-ended and
|
|
248
|
-
* reversed endpoints are swapped.
|
|
249
|
-
*/
|
|
250
|
-
export const filterFn_inNumberRange = Object.assign(
|
|
251
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
252
|
-
row: Row<TFeatures, TData>,
|
|
253
|
-
columnId: string,
|
|
254
|
-
filterValue: [number, number],
|
|
255
|
-
) => {
|
|
256
|
-
const [min, max] = filterValue
|
|
257
|
-
|
|
258
|
-
const rowValue: number = row.getValue(columnId)
|
|
259
|
-
return rowValue >= min && rowValue <= max
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
resolveFilterValue: (val: [any, any]) => {
|
|
263
|
-
const [unsafeMin, unsafeMax] = val
|
|
264
|
-
|
|
265
|
-
const parsedMin =
|
|
266
|
-
typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin
|
|
267
|
-
const parsedMax =
|
|
268
|
-
typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax
|
|
269
|
-
|
|
270
|
-
let min =
|
|
271
|
-
unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin
|
|
272
|
-
let max =
|
|
273
|
-
unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax
|
|
274
|
-
|
|
275
|
-
if (min > max) {
|
|
276
|
-
const temp = min
|
|
277
|
-
min = max
|
|
278
|
-
max = temp
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
return [min, max] as const
|
|
282
|
-
},
|
|
283
|
-
autoRemove: (val: any) =>
|
|
284
|
-
testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1])),
|
|
285
|
-
},
|
|
286
|
-
)
|
|
287
|
-
|
|
288
|
-
// Array filters
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Keeps rows whose scalar column value equals at least one filter value.
|
|
292
|
-
*/
|
|
293
|
-
export const filterFn_arrHas = <
|
|
294
|
-
TFeatures extends TableFeatures,
|
|
295
|
-
TData extends RowData,
|
|
296
|
-
>(
|
|
297
|
-
row: Row<TFeatures, TData>,
|
|
298
|
-
columnId: string,
|
|
299
|
-
filterValue: Array<unknown>,
|
|
300
|
-
) => {
|
|
301
|
-
return filterValue.some((val) => row.getValue<unknown>(columnId) === val)
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Keeps rows whose array or string column value includes at least one filter value.
|
|
306
|
-
*/
|
|
307
|
-
export const filterFn_arrIncludes = Object.assign(
|
|
308
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
309
|
-
row: Row<TFeatures, TData>,
|
|
310
|
-
columnId: string,
|
|
311
|
-
filterValue: Array<unknown>,
|
|
312
|
-
) => {
|
|
313
|
-
return filterValue.some((val) =>
|
|
314
|
-
(row.getValue<unknown>(columnId) as Array<unknown> | string).includes(
|
|
315
|
-
val as any,
|
|
316
|
-
),
|
|
317
|
-
)
|
|
318
|
-
},
|
|
319
|
-
{ autoRemove: (val: any) => testFalsy(val) || !val?.length },
|
|
320
|
-
)
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* Keeps rows whose array column value includes every filter value.
|
|
324
|
-
*/
|
|
325
|
-
export const filterFn_arrIncludesAll = Object.assign(
|
|
326
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
327
|
-
row: Row<TFeatures, TData>,
|
|
328
|
-
columnId: string,
|
|
329
|
-
filterValue: Array<unknown>,
|
|
330
|
-
) => {
|
|
331
|
-
const value = row.getValue<Array<unknown>>(columnId)
|
|
332
|
-
if (!Array.isArray(value)) return false
|
|
333
|
-
return !filterValue.some((val) => !value.includes(val))
|
|
334
|
-
},
|
|
335
|
-
{ autoRemove: (val: any) => testFalsy(val) || !val?.length },
|
|
336
|
-
)
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Keeps rows whose array column value includes at least one filter value.
|
|
340
|
-
*/
|
|
341
|
-
export const filterFn_arrIncludesSome = Object.assign(
|
|
342
|
-
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
343
|
-
row: Row<TFeatures, TData>,
|
|
344
|
-
columnId: string,
|
|
345
|
-
filterValue: Array<unknown>,
|
|
346
|
-
) => {
|
|
347
|
-
const value = row.getValue<Array<unknown>>(columnId)
|
|
348
|
-
if (!Array.isArray(value)) return false
|
|
349
|
-
return filterValue.some((val) => value.includes(val))
|
|
350
|
-
},
|
|
351
|
-
{ autoRemove: (val: any) => testFalsy(val) || !val?.length },
|
|
352
|
-
)
|
|
353
|
-
|
|
354
|
-
// Export
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* The built-in filter function registry.
|
|
358
|
-
*
|
|
359
|
-
* Pass this object to filtered row model creation or extend it with custom filter functions.
|
|
360
|
-
*/
|
|
361
|
-
export const filterFns = {
|
|
362
|
-
arrIncludes: filterFn_arrIncludes,
|
|
363
|
-
arrIncludesAll: filterFn_arrIncludesAll,
|
|
364
|
-
arrHas: filterFn_arrHas,
|
|
365
|
-
arrIncludesSome: filterFn_arrIncludesSome,
|
|
366
|
-
between: filterFn_between,
|
|
367
|
-
betweenInclusive: filterFn_betweenInclusive,
|
|
368
|
-
equals: filterFn_equals,
|
|
369
|
-
equalsString: filterFn_equalsString,
|
|
370
|
-
inNumberRange: filterFn_inNumberRange,
|
|
371
|
-
includesString: filterFn_includesString,
|
|
372
|
-
includesStringSensitive: filterFn_includesStringSensitive,
|
|
373
|
-
weakEquals: filterFn_weakEquals,
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
export type BuiltInFilterFn = keyof typeof filterFns
|
|
377
|
-
|
|
378
|
-
// Utils
|
|
379
|
-
|
|
380
|
-
function testFalsy(val: any) {
|
|
381
|
-
return val === undefined || val === null || val === ''
|
|
382
|
-
}
|