@tanstack/table-core 9.0.0-alpha.46 → 9.0.0-alpha.48
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 +10 -0
- package/dist/core/cells/constructCell.cjs +4 -3
- package/dist/core/cells/constructCell.cjs.map +1 -1
- package/dist/core/cells/constructCell.js +4 -3
- package/dist/core/cells/constructCell.js.map +1 -1
- package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
- package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
- package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
- package/dist/core/cells/coreCellsFeature.utils.js +11 -8
- package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
- package/dist/core/columns/constructColumn.cjs +6 -4
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.js +6 -4
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
- package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
- package/dist/core/columns/coreColumnsFeature.utils.cjs +47 -29
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.js +47 -29
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs +27 -19
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.js +27 -19
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.cjs +4 -3
- package/dist/core/headers/constructHeader.cjs.map +1 -1
- package/dist/core/headers/constructHeader.js +4 -3
- package/dist/core/headers/constructHeader.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.cjs +1 -6
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.js +2 -7
- package/dist/core/headers/coreHeadersFeature.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
- package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
- package/dist/core/headers/coreHeadersFeature.utils.cjs +43 -36
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +24 -19
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +24 -19
- package/dist/core/headers/coreHeadersFeature.utils.js +44 -37
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/reactivity/coreReactivityFeature.types.d.cts +4 -0
- package/dist/core/reactivity/coreReactivityFeature.types.d.ts +4 -0
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +8 -6
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.js +8 -6
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
- package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
- package/dist/core/rows/coreRowsFeature.utils.cjs +43 -32
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
- package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
- package/dist/core/rows/coreRowsFeature.utils.js +43 -32
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/constructTable.cjs +9 -5
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.js +9 -5
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
- package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
- package/dist/core/table/coreTablesFeature.utils.cjs +7 -3
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
- package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
- package/dist/core/table/coreTablesFeature.utils.js +7 -3
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +8 -5
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs +8 -3
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js +8 -3
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +7 -4
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js +7 -4
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +11 -5
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.js +11 -5
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +46 -29
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +46 -29
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +152 -115
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +116 -95
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +116 -95
- package/dist/features/column-pinning/columnPinningFeature.utils.js +153 -116
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.js +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +28 -4
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.js +28 -4
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +23 -14
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.js +24 -15
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +19 -12
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +19 -12
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +91 -52
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +63 -40
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +63 -40
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +91 -53
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +58 -43
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +58 -43
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +52 -36
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.js +52 -36
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +95 -72
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.js +95 -72
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +13 -8
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.js +13 -8
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +63 -46
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
- package/dist/features/row-sorting/rowSortingFeature.utils.js +63 -46
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/fns/aggregationFns.cjs +47 -16
- package/dist/fns/aggregationFns.cjs.map +1 -1
- package/dist/fns/aggregationFns.d.cts +33 -9
- package/dist/fns/aggregationFns.d.ts +33 -9
- package/dist/fns/aggregationFns.js +47 -17
- package/dist/fns/aggregationFns.js.map +1 -1
- package/dist/fns/filterFns.cjs +48 -17
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.d.cts +42 -15
- package/dist/fns/filterFns.d.ts +42 -15
- package/dist/fns/filterFns.js +48 -17
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/helpers/columnHelper.cjs +9 -4
- package/dist/helpers/columnHelper.cjs.map +1 -1
- package/dist/helpers/columnHelper.d.cts +9 -4
- package/dist/helpers/columnHelper.d.ts +9 -4
- package/dist/helpers/columnHelper.js +9 -4
- package/dist/helpers/columnHelper.js.map +1 -1
- package/dist/helpers/tableOptions.cjs.map +1 -1
- package/dist/helpers/tableOptions.d.cts +12 -9
- package/dist/helpers/tableOptions.d.ts +12 -9
- package/dist/helpers/tableOptions.js.map +1 -1
- package/dist/index.cjs +0 -4
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/static-functions.cjs +1 -0
- package/dist/static-functions.d.cts +2 -2
- package/dist/static-functions.d.ts +2 -2
- package/dist/static-functions.js +2 -2
- package/dist/store-reactivity-bindings.cjs +1 -0
- package/dist/store-reactivity-bindings.cjs.map +1 -1
- package/dist/store-reactivity-bindings.js +1 -0
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/ColumnDef.d.cts +38 -0
- package/dist/types/ColumnDef.d.ts +38 -0
- package/dist/types/TableOptions.d.cts +15 -0
- package/dist/types/TableOptions.d.ts +15 -0
- package/dist/types/TableState.d.cts +12 -0
- package/dist/types/TableState.d.ts +12 -0
- package/dist/utils.cjs +18 -39
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -23
- package/dist/utils.d.ts +1 -23
- package/dist/utils.js +19 -36
- package/dist/utils.js.map +1 -1
- package/package.json +5 -3
- package/skills/column-definitions/SKILL.md +333 -0
- package/skills/column-layout/SKILL.md +328 -0
- package/skills/column-layout/references/subsystems.md +220 -0
- package/skills/customizing-feature-behavior/SKILL.md +416 -0
- package/skills/filtering/SKILL.md +357 -0
- package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
- package/skills/grouping/SKILL.md +448 -0
- package/skills/migrate-v8-to-v9/SKILL.md +495 -0
- package/skills/pagination/SKILL.md +385 -0
- package/skills/row-expanding/SKILL.md +348 -0
- package/skills/row-pinning/SKILL.md +269 -0
- package/skills/row-selection/SKILL.md +391 -0
- package/skills/setup/SKILL.md +400 -0
- package/skills/sorting/SKILL.md +344 -0
- package/skills/state-management/SKILL.md +388 -0
- package/src/core/cells/constructCell.ts +3 -2
- package/src/core/cells/coreCellsFeature.utils.ts +11 -8
- package/src/core/columns/constructColumn.ts +5 -3
- package/src/core/columns/coreColumnsFeature.types.ts +7 -6
- package/src/core/columns/coreColumnsFeature.utils.ts +43 -29
- package/src/core/headers/buildHeaderGroups.ts +29 -30
- package/src/core/headers/constructHeader.ts +3 -2
- package/src/core/headers/coreHeadersFeature.ts +2 -27
- package/src/core/headers/coreHeadersFeature.types.ts +6 -4
- package/src/core/headers/coreHeadersFeature.utils.ts +52 -61
- package/src/core/reactivity/coreReactivityFeature.types.ts +4 -0
- package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
- package/src/core/rows/constructRow.ts +6 -4
- package/src/core/rows/coreRowsFeature.types.ts +4 -4
- package/src/core/rows/coreRowsFeature.utils.ts +45 -32
- package/src/core/table/constructTable.ts +6 -4
- package/src/core/table/coreTablesFeature.types.ts +6 -2
- package/src/core/table/coreTablesFeature.utils.ts +5 -3
- package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +8 -10
- package/src/features/column-faceting/createFacetedRowModel.ts +10 -6
- package/src/features/column-faceting/createFacetedUniqueValues.ts +4 -3
- package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
- package/src/features/column-filtering/createFilteredRowModel.ts +14 -8
- package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
- package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +44 -29
- package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
- package/src/features/column-pinning/columnPinningFeature.utils.ts +164 -128
- package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
- package/src/features/column-resizing/columnResizingFeature.utils.ts +28 -19
- package/src/features/column-sizing/columnSizingFeature.ts +16 -0
- package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
- package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
- package/src/features/column-visibility/columnVisibilityFeature.ts +8 -0
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +22 -12
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +101 -56
- package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
- package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +58 -43
- package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
- package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
- package/src/features/row-pinning/rowPinningFeature.utils.ts +59 -47
- package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
- package/src/features/row-selection/rowSelectionFeature.utils.ts +109 -88
- package/src/features/row-sorting/createSortedRowModel.ts +16 -13
- package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
- package/src/features/row-sorting/rowSortingFeature.utils.ts +63 -46
- package/src/fns/aggregationFns.ts +53 -17
- package/src/fns/filterFns.ts +48 -17
- package/src/helpers/columnHelper.ts +9 -4
- package/src/helpers/tableOptions.ts +12 -9
- package/src/store-reactivity-bindings.ts +1 -0
- package/src/types/ColumnDef.ts +38 -0
- package/src/types/TableOptions.ts +15 -0
- package/src/types/TableState.ts +12 -0
- package/src/utils.ts +19 -46
|
@@ -13,13 +13,14 @@ import type {
|
|
|
13
13
|
// State Utils
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Creates the default sorting state.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* The feature default is an empty array, meaning no columns are sorted. Reset
|
|
19
|
+
* APIs use this value when `defaultState` is `true`.
|
|
19
20
|
*
|
|
20
21
|
* @example
|
|
21
22
|
* ```ts
|
|
22
|
-
* const
|
|
23
|
+
* const sorting = getDefaultSortingState()
|
|
23
24
|
* ```
|
|
24
25
|
*/
|
|
25
26
|
export function getDefaultSortingState(): SortingState {
|
|
@@ -27,13 +28,14 @@ export function getDefaultSortingState(): SortingState {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
+
* Routes a sorting updater through the table's sorting change handler.
|
|
31
32
|
*
|
|
32
|
-
* The updater
|
|
33
|
+
* The updater may be a next `SortingState` array or a function of the previous
|
|
34
|
+
* sorting state, matching the instance `table.setSorting` behavior.
|
|
33
35
|
*
|
|
34
36
|
* @example
|
|
35
37
|
* ```ts
|
|
36
|
-
* table_setSorting(table, (old) => old)
|
|
38
|
+
* table_setSorting(table, (old) => [...old, { id: 'age', desc: true }])
|
|
37
39
|
* ```
|
|
38
40
|
*/
|
|
39
41
|
export function table_setSorting<
|
|
@@ -44,9 +46,10 @@ export function table_setSorting<
|
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
|
-
* Resets the
|
|
49
|
+
* Resets `sorting` to the configured initial state or feature default.
|
|
48
50
|
*
|
|
49
|
-
*
|
|
51
|
+
* With no argument, the reset clones `table.initialState.sorting` when it
|
|
52
|
+
* exists. Passing `true` ignores initial state and resets to `[]`.
|
|
50
53
|
*
|
|
51
54
|
* @example
|
|
52
55
|
* ```ts
|
|
@@ -67,13 +70,15 @@ export function table_resetSorting<
|
|
|
67
70
|
// Column Utils
|
|
68
71
|
|
|
69
72
|
/**
|
|
70
|
-
*
|
|
73
|
+
* Chooses a built-in sorting function from sampled filtered row values.
|
|
71
74
|
*
|
|
72
|
-
*
|
|
75
|
+
* Date-like values use `datetime`, mixed text/numeric strings use
|
|
76
|
+
* `alphanumeric`, plain strings use `text`, and unknown values fall back to
|
|
77
|
+
* `basic`.
|
|
73
78
|
*
|
|
74
79
|
* @example
|
|
75
80
|
* ```ts
|
|
76
|
-
* const
|
|
81
|
+
* const sortFn = column_getAutoSortFn(column)
|
|
77
82
|
* ```
|
|
78
83
|
*/
|
|
79
84
|
export function column_getAutoSortFn<
|
|
@@ -90,8 +95,8 @@ export function column_getAutoSortFn<
|
|
|
90
95
|
|
|
91
96
|
let isString = false
|
|
92
97
|
|
|
93
|
-
for (
|
|
94
|
-
const value =
|
|
98
|
+
for (let i = 0; i < firstRows.length; i++) {
|
|
99
|
+
const value = firstRows[i]!.getValue(column.id)
|
|
95
100
|
|
|
96
101
|
if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
97
102
|
sortFn = sortFns?.datetime
|
|
@@ -114,13 +119,14 @@ export function column_getAutoSortFn<
|
|
|
114
119
|
}
|
|
115
120
|
|
|
116
121
|
/**
|
|
117
|
-
*
|
|
122
|
+
* Chooses the default first sort direction from the first filtered row value.
|
|
118
123
|
*
|
|
119
|
-
*
|
|
124
|
+
* String columns start ascending so alphabetical order is natural; other value
|
|
125
|
+
* types start descending.
|
|
120
126
|
*
|
|
121
127
|
* @example
|
|
122
128
|
* ```ts
|
|
123
|
-
* const
|
|
129
|
+
* const direction = column_getAutoSortDir(column)
|
|
124
130
|
* ```
|
|
125
131
|
*/
|
|
126
132
|
export function column_getAutoSortDir<
|
|
@@ -140,13 +146,15 @@ export function column_getAutoSortDir<
|
|
|
140
146
|
}
|
|
141
147
|
|
|
142
148
|
/**
|
|
143
|
-
*
|
|
149
|
+
* Resolves the sorting function configured for a column.
|
|
144
150
|
*
|
|
145
|
-
*
|
|
151
|
+
* Function-valued `columnDef.sortFn` is returned directly, `'auto'` delegates
|
|
152
|
+
* to `column_getAutoSortFn`, and string values are looked up in the table's
|
|
153
|
+
* sorting function registry before falling back to `basic`.
|
|
146
154
|
*
|
|
147
155
|
* @example
|
|
148
156
|
* ```ts
|
|
149
|
-
* const
|
|
157
|
+
* const sortFn = column_getSortFn(column)
|
|
150
158
|
* ```
|
|
151
159
|
*/
|
|
152
160
|
export function column_getSortFn<
|
|
@@ -165,13 +173,15 @@ export function column_getSortFn<
|
|
|
165
173
|
}
|
|
166
174
|
|
|
167
175
|
/**
|
|
168
|
-
*
|
|
176
|
+
* Applies the next sorting state for this column.
|
|
169
177
|
*
|
|
170
|
-
* The
|
|
178
|
+
* The toggle can add, replace, flip, or remove this column's sort entry. Multi
|
|
179
|
+
* sorting respects `enableMultiSort`, `maxMultiSortColCount`, and the `multi`
|
|
180
|
+
* argument.
|
|
171
181
|
*
|
|
172
182
|
* @example
|
|
173
183
|
* ```ts
|
|
174
|
-
* column_toggleSorting(column)
|
|
184
|
+
* column_toggleSorting(column, undefined, true)
|
|
175
185
|
* ```
|
|
176
186
|
*/
|
|
177
187
|
export function column_toggleSorting<
|
|
@@ -278,13 +288,14 @@ export function column_toggleSorting<
|
|
|
278
288
|
}
|
|
279
289
|
|
|
280
290
|
/**
|
|
281
|
-
*
|
|
291
|
+
* Resolves the first direction used when this column begins sorting.
|
|
282
292
|
*
|
|
283
|
-
*
|
|
293
|
+
* Column-level `sortDescFirst` wins, then table-level `sortDescFirst`, then the
|
|
294
|
+
* auto direction inferred from sampled values.
|
|
284
295
|
*
|
|
285
296
|
* @example
|
|
286
297
|
* ```ts
|
|
287
|
-
* const
|
|
298
|
+
* const firstDirection = column_getFirstSortDir(column)
|
|
288
299
|
* ```
|
|
289
300
|
*/
|
|
290
301
|
export function column_getFirstSortDir<
|
|
@@ -300,13 +311,14 @@ export function column_getFirstSortDir<
|
|
|
300
311
|
}
|
|
301
312
|
|
|
302
313
|
/**
|
|
303
|
-
*
|
|
314
|
+
* Resolves the next sort order for this column's toggle cycle.
|
|
304
315
|
*
|
|
305
|
-
*
|
|
316
|
+
* The cycle starts with the first sort direction, flips between `asc` and
|
|
317
|
+
* `desc`, and can return `false` when sorting removal is enabled.
|
|
306
318
|
*
|
|
307
319
|
* @example
|
|
308
320
|
* ```ts
|
|
309
|
-
* const
|
|
321
|
+
* const nextOrder = column_getNextSortingOrder(column)
|
|
310
322
|
* ```
|
|
311
323
|
*/
|
|
312
324
|
export function column_getNextSortingOrder<
|
|
@@ -332,13 +344,14 @@ export function column_getNextSortingOrder<
|
|
|
332
344
|
}
|
|
333
345
|
|
|
334
346
|
/**
|
|
335
|
-
*
|
|
347
|
+
* Checks whether this accessor column can participate in sorting.
|
|
336
348
|
*
|
|
337
|
-
*
|
|
349
|
+
* The column must have an accessor and sorting must be enabled by both the
|
|
350
|
+
* column definition and table options.
|
|
338
351
|
*
|
|
339
352
|
* @example
|
|
340
353
|
* ```ts
|
|
341
|
-
* const
|
|
354
|
+
* const canSort = column_getCanSort(column)
|
|
342
355
|
* ```
|
|
343
356
|
*/
|
|
344
357
|
export function column_getCanSort<
|
|
@@ -354,13 +367,14 @@ export function column_getCanSort<
|
|
|
354
367
|
}
|
|
355
368
|
|
|
356
369
|
/**
|
|
357
|
-
*
|
|
370
|
+
* Checks whether this column can be added to a multi-sort state.
|
|
358
371
|
*
|
|
359
|
-
*
|
|
372
|
+
* Column-level `enableMultiSort` wins over table-level `enableMultiSort`; if
|
|
373
|
+
* neither is set, accessor columns can multi-sort by default.
|
|
360
374
|
*
|
|
361
375
|
* @example
|
|
362
376
|
* ```ts
|
|
363
|
-
* const
|
|
377
|
+
* const canMultiSort = column_getCanMultiSort(column)
|
|
364
378
|
* ```
|
|
365
379
|
*/
|
|
366
380
|
export function column_getCanMultiSort<
|
|
@@ -376,13 +390,14 @@ export function column_getCanMultiSort<
|
|
|
376
390
|
}
|
|
377
391
|
|
|
378
392
|
/**
|
|
379
|
-
*
|
|
393
|
+
* Reads this column's current sort direction.
|
|
380
394
|
*
|
|
381
|
-
*
|
|
395
|
+
* The result is `false` when the column is not sorted, otherwise `'asc'` or
|
|
396
|
+
* `'desc'` based on the column's entry in `state.sorting`.
|
|
382
397
|
*
|
|
383
398
|
* @example
|
|
384
399
|
* ```ts
|
|
385
|
-
* const
|
|
400
|
+
* const direction = column_getIsSorted(column)
|
|
386
401
|
* ```
|
|
387
402
|
*/
|
|
388
403
|
export function column_getIsSorted<
|
|
@@ -397,13 +412,13 @@ export function column_getIsSorted<
|
|
|
397
412
|
}
|
|
398
413
|
|
|
399
414
|
/**
|
|
400
|
-
*
|
|
415
|
+
* Finds this column's position in the ordered `state.sorting` array.
|
|
401
416
|
*
|
|
402
|
-
*
|
|
417
|
+
* The result is `-1` when the column is not sorted.
|
|
403
418
|
*
|
|
404
419
|
* @example
|
|
405
420
|
* ```ts
|
|
406
|
-
* const
|
|
421
|
+
* const index = column_getSortIndex(column)
|
|
407
422
|
* ```
|
|
408
423
|
*/
|
|
409
424
|
export function column_getSortIndex<
|
|
@@ -418,13 +433,13 @@ export function column_getSortIndex<
|
|
|
418
433
|
}
|
|
419
434
|
|
|
420
435
|
/**
|
|
421
|
-
*
|
|
436
|
+
* Removes this column from the sorting state.
|
|
422
437
|
*
|
|
423
|
-
*
|
|
438
|
+
* Other sorted columns are preserved, including their relative order.
|
|
424
439
|
*
|
|
425
440
|
* @example
|
|
426
441
|
* ```ts
|
|
427
|
-
*
|
|
442
|
+
* column_clearSorting(column)
|
|
428
443
|
* ```
|
|
429
444
|
*/
|
|
430
445
|
export function column_clearSorting<
|
|
@@ -439,13 +454,15 @@ export function column_clearSorting<
|
|
|
439
454
|
}
|
|
440
455
|
|
|
441
456
|
/**
|
|
442
|
-
*
|
|
457
|
+
* Creates a header event handler that toggles this column's sorting.
|
|
443
458
|
*
|
|
444
|
-
* The handler
|
|
459
|
+
* The handler ignores events when the column cannot sort, persists React-style
|
|
460
|
+
* synthetic events when present, and asks `options.isMultiSortEvent` whether
|
|
461
|
+
* the event should add to a multi-sort.
|
|
445
462
|
*
|
|
446
463
|
* @example
|
|
447
464
|
* ```ts
|
|
448
|
-
* const
|
|
465
|
+
* const onClick = column_getToggleSortingHandler(column)
|
|
449
466
|
* ```
|
|
450
467
|
*/
|
|
451
468
|
export function column_getToggleSortingHandler<
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { isNumberArray } from '../utils'
|
|
2
1
|
import type { RowData } from '../types/type-utils'
|
|
3
2
|
import type { TableFeatures } from '../types/TableFeatures'
|
|
4
3
|
import type { Row } from '../types/Row'
|
|
5
4
|
import type { AggregationFn } from '../features/column-grouping/columnGroupingFeature.types'
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* Sums numeric child-row values for a grouped column.
|
|
8
|
+
*
|
|
9
|
+
* Non-number values contribute `0`. Child rows are used so nested group totals
|
|
10
|
+
* can reuse already aggregated values.
|
|
9
11
|
*/
|
|
10
12
|
export const aggregationFn_sum: AggregationFn<any, any> = <
|
|
11
13
|
TFeatures extends TableFeatures,
|
|
@@ -24,7 +26,10 @@ export const aggregationFn_sum: AggregationFn<any, any> = <
|
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
/**
|
|
27
|
-
*
|
|
29
|
+
* Finds the minimum numeric child-row value for a grouped column.
|
|
30
|
+
*
|
|
31
|
+
* Nullish and non-number values are ignored. Returns `undefined` when no
|
|
32
|
+
* numeric value is found.
|
|
28
33
|
*/
|
|
29
34
|
export const aggregationFn_min: AggregationFn<any, any> = <
|
|
30
35
|
TFeatures extends TableFeatures,
|
|
@@ -52,7 +57,10 @@ export const aggregationFn_min: AggregationFn<any, any> = <
|
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
/**
|
|
55
|
-
*
|
|
60
|
+
* Finds the maximum numeric child-row value for a grouped column.
|
|
61
|
+
*
|
|
62
|
+
* Nullish and non-number values are ignored. Returns `undefined` when no
|
|
63
|
+
* numeric value is found.
|
|
56
64
|
*/
|
|
57
65
|
export const aggregationFn_max: AggregationFn<any, any> = <
|
|
58
66
|
TFeatures extends TableFeatures,
|
|
@@ -79,7 +87,10 @@ export const aggregationFn_max: AggregationFn<any, any> = <
|
|
|
79
87
|
}
|
|
80
88
|
|
|
81
89
|
/**
|
|
82
|
-
*
|
|
90
|
+
* Finds the numeric extent for a grouped column.
|
|
91
|
+
*
|
|
92
|
+
* Returns `[min, max]`, where each entry is `undefined` when no numeric value is
|
|
93
|
+
* present.
|
|
83
94
|
*/
|
|
84
95
|
export const aggregationFn_extent: AggregationFn<any, any> = <
|
|
85
96
|
TFeatures extends TableFeatures,
|
|
@@ -108,7 +119,10 @@ export const aggregationFn_extent: AggregationFn<any, any> = <
|
|
|
108
119
|
}
|
|
109
120
|
|
|
110
121
|
/**
|
|
111
|
-
*
|
|
122
|
+
* Averages numeric leaf-row values for a grouped column.
|
|
123
|
+
*
|
|
124
|
+
* Number-like values are coerced with unary `+`; nullish and non-numeric values
|
|
125
|
+
* are ignored.
|
|
112
126
|
*/
|
|
113
127
|
export const aggregationFn_mean: AggregationFn<any, any> = <
|
|
114
128
|
TFeatures extends TableFeatures,
|
|
@@ -140,7 +154,10 @@ export const aggregationFn_mean: AggregationFn<any, any> = <
|
|
|
140
154
|
}
|
|
141
155
|
|
|
142
156
|
/**
|
|
143
|
-
*
|
|
157
|
+
* Computes the median of numeric leaf-row values for a grouped column.
|
|
158
|
+
*
|
|
159
|
+
* All values must be numbers. If any value is non-numeric, or no leaf rows are
|
|
160
|
+
* present, the result is `undefined`.
|
|
144
161
|
*/
|
|
145
162
|
export const aggregationFn_median: AggregationFn<any, any> = <
|
|
146
163
|
TFeatures extends TableFeatures,
|
|
@@ -153,21 +170,28 @@ export const aggregationFn_median: AggregationFn<any, any> = <
|
|
|
153
170
|
return
|
|
154
171
|
}
|
|
155
172
|
|
|
156
|
-
const values = leafRows.
|
|
157
|
-
|
|
158
|
-
|
|
173
|
+
const values: Array<number> = new Array(leafRows.length)
|
|
174
|
+
for (let i = 0; i < leafRows.length; i++) {
|
|
175
|
+
const v = leafRows[i]!.getValue(columnId)
|
|
176
|
+
if (typeof v !== 'number') return
|
|
177
|
+
values[i] = v
|
|
159
178
|
}
|
|
179
|
+
|
|
160
180
|
if (values.length === 1) {
|
|
161
181
|
return values[0]
|
|
162
182
|
}
|
|
163
183
|
|
|
164
184
|
const mid = Math.floor(values.length / 2)
|
|
165
|
-
|
|
166
|
-
return values.length % 2 !== 0
|
|
185
|
+
values.sort((a, b) => a - b)
|
|
186
|
+
return values.length % 2 !== 0
|
|
187
|
+
? values[mid]
|
|
188
|
+
: (values[mid - 1]! + values[mid]!) / 2
|
|
167
189
|
}
|
|
168
190
|
|
|
169
191
|
/**
|
|
170
|
-
*
|
|
192
|
+
* Collects unique leaf-row values for a grouped column.
|
|
193
|
+
*
|
|
194
|
+
* Values are compared with JavaScript `Set` semantics.
|
|
171
195
|
*/
|
|
172
196
|
export const aggregationFn_unique: AggregationFn<any, any> = <
|
|
173
197
|
TFeatures extends TableFeatures,
|
|
@@ -176,11 +200,17 @@ export const aggregationFn_unique: AggregationFn<any, any> = <
|
|
|
176
200
|
columnId: string,
|
|
177
201
|
leafRows: Array<Row<any, any>>,
|
|
178
202
|
) => {
|
|
179
|
-
|
|
203
|
+
const set = new Set<unknown>()
|
|
204
|
+
for (let i = 0; i < leafRows.length; i++) {
|
|
205
|
+
set.add(leafRows[i]!.getValue(columnId))
|
|
206
|
+
}
|
|
207
|
+
return Array.from(set.values())
|
|
180
208
|
}
|
|
181
209
|
|
|
182
210
|
/**
|
|
183
|
-
*
|
|
211
|
+
* Counts unique leaf-row values for a grouped column.
|
|
212
|
+
*
|
|
213
|
+
* Values are compared with JavaScript `Set` semantics.
|
|
184
214
|
*/
|
|
185
215
|
export const aggregationFn_uniqueCount: AggregationFn<any, any> = <
|
|
186
216
|
TFeatures extends TableFeatures,
|
|
@@ -189,11 +219,17 @@ export const aggregationFn_uniqueCount: AggregationFn<any, any> = <
|
|
|
189
219
|
columnId: string,
|
|
190
220
|
leafRows: Array<Row<any, any>>,
|
|
191
221
|
) => {
|
|
192
|
-
|
|
222
|
+
const set = new Set<unknown>()
|
|
223
|
+
for (let i = 0; i < leafRows.length; i++) {
|
|
224
|
+
set.add(leafRows[i]!.getValue(columnId))
|
|
225
|
+
}
|
|
226
|
+
return set.size
|
|
193
227
|
}
|
|
194
228
|
|
|
195
229
|
/**
|
|
196
|
-
*
|
|
230
|
+
* Counts the number of leaf rows in the group.
|
|
231
|
+
*
|
|
232
|
+
* The column id is ignored because the result is based only on group size.
|
|
197
233
|
*/
|
|
198
234
|
export const aggregationFn_count: AggregationFn<any, any> = <
|
|
199
235
|
TFeatures extends TableFeatures,
|
package/src/fns/filterFns.ts
CHANGED
|
@@ -6,7 +6,9 @@ import type { FilterFn } from '../features/column-filtering/columnFilteringFeatu
|
|
|
6
6
|
// Basic filters
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Keeps rows whose column value is strictly equal to the filter value.
|
|
10
|
+
*
|
|
11
|
+
* Uses JavaScript `===` comparison and auto-removes empty filter values.
|
|
10
12
|
*/
|
|
11
13
|
export const filterFn_equals: FilterFn<any, any> = <
|
|
12
14
|
TFeatures extends TableFeatures,
|
|
@@ -22,7 +24,10 @@ export const filterFn_equals: FilterFn<any, any> = <
|
|
|
22
24
|
filterFn_equals.autoRemove = (val: any) => testFalsy(val)
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
|
-
*
|
|
27
|
+
* Keeps rows whose column value is loosely equal to the filter value.
|
|
28
|
+
*
|
|
29
|
+
* Uses JavaScript `==` comparison and auto-removes empty filter values. This is
|
|
30
|
+
* useful for matching string input against numeric row values.
|
|
26
31
|
*/
|
|
27
32
|
export const filterFn_weakEquals: FilterFn<any, any> = <
|
|
28
33
|
TFeatures extends TableFeatures,
|
|
@@ -40,7 +45,9 @@ filterFn_weakEquals.autoRemove = (val: any) => testFalsy(val)
|
|
|
40
45
|
// String filters
|
|
41
46
|
|
|
42
47
|
/**
|
|
43
|
-
*
|
|
48
|
+
* Keeps rows whose stringified column value includes the filter text.
|
|
49
|
+
*
|
|
50
|
+
* Matching is case-sensitive and empty filter values are auto-removed.
|
|
44
51
|
*/
|
|
45
52
|
export const filterFn_includesStringSensitive: FilterFn<any, any> = <
|
|
46
53
|
TFeatures extends TableFeatures,
|
|
@@ -58,7 +65,10 @@ export const filterFn_includesStringSensitive: FilterFn<any, any> = <
|
|
|
58
65
|
filterFn_includesStringSensitive.autoRemove = (val: any) => testFalsy(val)
|
|
59
66
|
|
|
60
67
|
/**
|
|
61
|
-
*
|
|
68
|
+
* Keeps rows whose stringified column value includes the filter text.
|
|
69
|
+
*
|
|
70
|
+
* Both values are lowercased before comparison, and empty filter values are
|
|
71
|
+
* auto-removed.
|
|
62
72
|
*/
|
|
63
73
|
export const filterFn_includesString: FilterFn<any, any> = <
|
|
64
74
|
TFeatures extends TableFeatures,
|
|
@@ -80,7 +90,10 @@ export const filterFn_includesString: FilterFn<any, any> = <
|
|
|
80
90
|
filterFn_includesString.autoRemove = (val: any) => testFalsy(val)
|
|
81
91
|
|
|
82
92
|
/**
|
|
83
|
-
*
|
|
93
|
+
* Keeps rows whose stringified column value equals the filter text.
|
|
94
|
+
*
|
|
95
|
+
* Both values are lowercased before comparison, and empty filter values are
|
|
96
|
+
* auto-removed.
|
|
84
97
|
*/
|
|
85
98
|
export const filterFn_equalsString: FilterFn<any, any> = <
|
|
86
99
|
TFeatures extends TableFeatures,
|
|
@@ -99,7 +112,9 @@ export const filterFn_equalsString: FilterFn<any, any> = <
|
|
|
99
112
|
filterFn_equalsString.autoRemove = (val: any) => testFalsy(val)
|
|
100
113
|
|
|
101
114
|
/**
|
|
102
|
-
*
|
|
115
|
+
* Keeps rows whose stringified column value exactly equals the filter text.
|
|
116
|
+
*
|
|
117
|
+
* Matching is case-sensitive and empty filter values are auto-removed.
|
|
103
118
|
*/
|
|
104
119
|
export const filterFn_equalsStringSensitive: FilterFn<any, any> = <
|
|
105
120
|
TFeatures extends TableFeatures,
|
|
@@ -117,7 +132,10 @@ filterFn_equalsStringSensitive.autoRemove = (val: any) => testFalsy(val)
|
|
|
117
132
|
// Number filters
|
|
118
133
|
|
|
119
134
|
/**
|
|
120
|
-
*
|
|
135
|
+
* Keeps rows whose value is greater than the filter value.
|
|
136
|
+
*
|
|
137
|
+
* Numeric values are compared numerically when both sides can be coerced to
|
|
138
|
+
* numbers; otherwise normalized strings are compared.
|
|
121
139
|
*/
|
|
122
140
|
export const filterFn_greaterThan: FilterFn<any, any> = <
|
|
123
141
|
TFeatures extends TableFeatures,
|
|
@@ -144,7 +162,9 @@ export const filterFn_greaterThan: FilterFn<any, any> = <
|
|
|
144
162
|
filterFn_greaterThan.resolveFilterValue = (val: any) => testFalsy(val)
|
|
145
163
|
|
|
146
164
|
/**
|
|
147
|
-
*
|
|
165
|
+
* Keeps rows whose value is greater than or equal to the filter value.
|
|
166
|
+
*
|
|
167
|
+
* Delegates to the built-in greater-than and equality comparisons.
|
|
148
168
|
*/
|
|
149
169
|
export const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <
|
|
150
170
|
TFeatures extends TableFeatures,
|
|
@@ -163,7 +183,9 @@ export const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <
|
|
|
163
183
|
filterFn_greaterThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)
|
|
164
184
|
|
|
165
185
|
/**
|
|
166
|
-
*
|
|
186
|
+
* Keeps rows whose value is less than the filter value.
|
|
187
|
+
*
|
|
188
|
+
* This is implemented as the inverse of greater-than-or-equal comparison.
|
|
167
189
|
*/
|
|
168
190
|
export const filterFn_lessThan: FilterFn<any, any> = <
|
|
169
191
|
TFeatures extends TableFeatures,
|
|
@@ -179,7 +201,9 @@ export const filterFn_lessThan: FilterFn<any, any> = <
|
|
|
179
201
|
filterFn_lessThan.resolveFilterValue = (val: any) => testFalsy(val)
|
|
180
202
|
|
|
181
203
|
/**
|
|
182
|
-
*
|
|
204
|
+
* Keeps rows whose value is less than or equal to the filter value.
|
|
205
|
+
*
|
|
206
|
+
* This is implemented as the inverse of greater-than comparison.
|
|
183
207
|
*/
|
|
184
208
|
export const filterFn_lessThanOrEqualTo: FilterFn<any, any> = <
|
|
185
209
|
TFeatures extends TableFeatures,
|
|
@@ -197,7 +221,9 @@ filterFn_lessThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)
|
|
|
197
221
|
// Range filters
|
|
198
222
|
|
|
199
223
|
/**
|
|
200
|
-
*
|
|
224
|
+
* Keeps rows whose value falls between an exclusive min/max pair.
|
|
225
|
+
*
|
|
226
|
+
* Blank range endpoints are treated as open-ended.
|
|
201
227
|
*/
|
|
202
228
|
const filterFn_between: FilterFn<any, any> = <
|
|
203
229
|
TFeatures extends TableFeatures,
|
|
@@ -218,7 +244,9 @@ const filterFn_between: FilterFn<any, any> = <
|
|
|
218
244
|
filterFn_between.autoRemove = (val: any) => !val
|
|
219
245
|
|
|
220
246
|
/**
|
|
221
|
-
*
|
|
247
|
+
* Keeps rows whose value falls between an inclusive min/max pair.
|
|
248
|
+
*
|
|
249
|
+
* Blank range endpoints are treated as open-ended.
|
|
222
250
|
*/
|
|
223
251
|
const filterFn_betweenInclusive: FilterFn<any, any> = <
|
|
224
252
|
TFeatures extends TableFeatures,
|
|
@@ -239,7 +267,10 @@ const filterFn_betweenInclusive: FilterFn<any, any> = <
|
|
|
239
267
|
filterFn_betweenInclusive.autoRemove = (val: any) => !val
|
|
240
268
|
|
|
241
269
|
/**
|
|
242
|
-
*
|
|
270
|
+
* Keeps rows whose numeric value is inside an inclusive `[min, max]` range.
|
|
271
|
+
*
|
|
272
|
+
* Filter values are normalized so blank endpoints become open-ended and
|
|
273
|
+
* reversed endpoints are swapped.
|
|
243
274
|
*/
|
|
244
275
|
export const filterFn_inNumberRange: FilterFn<any, any> = <
|
|
245
276
|
TFeatures extends TableFeatures,
|
|
@@ -282,7 +313,7 @@ filterFn_inNumberRange.autoRemove = (val: any) =>
|
|
|
282
313
|
// Array filters
|
|
283
314
|
|
|
284
315
|
/**
|
|
285
|
-
*
|
|
316
|
+
* Keeps rows whose scalar column value equals at least one filter value.
|
|
286
317
|
*/
|
|
287
318
|
export const filterFn_arrHas: FilterFn<any, any> = <
|
|
288
319
|
TFeatures extends TableFeatures,
|
|
@@ -296,7 +327,7 @@ export const filterFn_arrHas: FilterFn<any, any> = <
|
|
|
296
327
|
}
|
|
297
328
|
|
|
298
329
|
/**
|
|
299
|
-
*
|
|
330
|
+
* Keeps rows whose array or string column value includes at least one filter value.
|
|
300
331
|
*/
|
|
301
332
|
export const filterFn_arrIncludes: FilterFn<any, any> = <
|
|
302
333
|
TFeatures extends TableFeatures,
|
|
@@ -316,7 +347,7 @@ export const filterFn_arrIncludes: FilterFn<any, any> = <
|
|
|
316
347
|
filterFn_arrIncludes.autoRemove = (val: any) => testFalsy(val) || !val?.length
|
|
317
348
|
|
|
318
349
|
/**
|
|
319
|
-
*
|
|
350
|
+
* Keeps rows whose array column value includes every filter value.
|
|
320
351
|
*/
|
|
321
352
|
export const filterFn_arrIncludesAll: FilterFn<any, any> = <
|
|
322
353
|
TFeatures extends TableFeatures,
|
|
@@ -335,7 +366,7 @@ filterFn_arrIncludesAll.autoRemove = (val: any) =>
|
|
|
335
366
|
testFalsy(val) || !val?.length
|
|
336
367
|
|
|
337
368
|
/**
|
|
338
|
-
*
|
|
369
|
+
* Keeps rows whose array column value includes at least one filter value.
|
|
339
370
|
*/
|
|
340
371
|
export const filterFn_arrIncludesSome: FilterFn<any, any> = <
|
|
341
372
|
TFeatures extends TableFeatures,
|
|
@@ -78,16 +78,21 @@ export type ColumnHelper<
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
81
|
+
* Creates helper functions for authoring column definitions with stronger value
|
|
82
|
+
* inference.
|
|
83
|
+
*
|
|
84
|
+
* `accessor` infers `TValue` from an accessor key or accessor function,
|
|
85
|
+
* `display` creates non-data columns, `group` creates parent columns, and
|
|
86
|
+
* `columns` preserves tuple-level value types for arrays. At runtime these
|
|
87
|
+
* helpers only return column definition objects.
|
|
88
|
+
*
|
|
84
89
|
* @example
|
|
85
90
|
* ```tsx
|
|
86
91
|
* const helper = createColumnHelper<typeof _features, Person>() // _features is the result of `tableFeatures({})` helper
|
|
87
92
|
* const columns = [
|
|
88
93
|
* helper.display({ id: 'actions', header: 'Actions' }),
|
|
89
94
|
* helper.accessor('firstName', {}),
|
|
90
|
-
* helper.accessor((row) => row.lastName, {}
|
|
95
|
+
* helper.accessor((row) => row.lastName, { id: 'lastName' }),
|
|
91
96
|
* ]
|
|
92
97
|
* ```
|
|
93
98
|
*/
|