@tanstack/table-core 9.0.0-beta.7 → 9.0.0-beta.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +27 -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 +2 -2
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +61 -24
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +31 -22
- package/dist/features/row-sorting/rowSortingFeature.utils.js +51 -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 +12 -9
- package/dist/static-functions.js +12 -9
- 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
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
//#region src/features/row-sorting/sortFns.ts
|
|
2
|
+
/**
|
|
3
|
+
* Regular expression used to split mixed text and numeric chunks.
|
|
4
|
+
*
|
|
5
|
+
* The alphanumeric sort functions use these chunks for natural sorting of
|
|
6
|
+
* strings like `item2` before `item10`.
|
|
7
|
+
*/
|
|
8
|
+
const reSplitAlphaNumeric = /([0-9]+)/gm;
|
|
9
|
+
/**
|
|
10
|
+
* Builds a `SortFn` from a value-level comparator plus an optional
|
|
11
|
+
* `resolveDataValue` normalizer.
|
|
12
|
+
*
|
|
13
|
+
* The `sort` comparator receives both rows' data values, each already passed
|
|
14
|
+
* through `resolveDataValue` when one is defined. Keeping normalization in the
|
|
15
|
+
* resolver means a variant of an existing sorting function only has to swap
|
|
16
|
+
* the resolver, not re-implement the comparison.
|
|
17
|
+
*
|
|
18
|
+
* The definition is attached to the returned function, so a variant can be
|
|
19
|
+
* created by spreading a built-in sorting function and overriding what
|
|
20
|
+
* differs:
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* const stripDiacritics = (value: string) =>
|
|
24
|
+
* value.normalize('NFD').replace(/\p{Diacritic}/gu, '')
|
|
25
|
+
*
|
|
26
|
+
* const alphanumericIgnoreDiacritics = constructSortFn({
|
|
27
|
+
* ...sortFn_alphanumeric,
|
|
28
|
+
* resolveDataValue: (value) =>
|
|
29
|
+
* stripDiacritics(sortFn_alphanumeric.resolveDataValue!(value)),
|
|
30
|
+
* })
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function constructSortFn(def) {
|
|
34
|
+
const sortFn = Object.assign((rowA, rowB, columnId) => {
|
|
35
|
+
let dataValueA = rowA.getValue(columnId);
|
|
36
|
+
let dataValueB = rowB.getValue(columnId);
|
|
37
|
+
const resolveDataValue = sortFn.resolveDataValue;
|
|
38
|
+
if (resolveDataValue) {
|
|
39
|
+
dataValueA = resolveDataValue(dataValueA);
|
|
40
|
+
dataValueB = resolveDataValue(dataValueB);
|
|
41
|
+
}
|
|
42
|
+
return sortFn.sort(dataValueA, dataValueB, rowA, rowB, columnId);
|
|
43
|
+
}, def);
|
|
44
|
+
return sortFn;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Sorts rows with the built-in alphanumeric strategy.
|
|
48
|
+
*
|
|
49
|
+
* This comparator returns ascending-order results; descending order is applied by the sorting row model.
|
|
50
|
+
*/
|
|
51
|
+
const sortFn_alphanumeric = constructSortFn({
|
|
52
|
+
resolveDataValue: (dataValue) => toString(dataValue).toLowerCase(),
|
|
53
|
+
sort: (dataValueA, dataValueB) => compareAlphanumeric(dataValueA, dataValueB)
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* Sorts rows with the built-in alphanumeric case sensitive strategy.
|
|
57
|
+
*
|
|
58
|
+
* This comparator returns ascending-order results; descending order is applied by the sorting row model.
|
|
59
|
+
*/
|
|
60
|
+
const sortFn_alphanumericCaseSensitive = constructSortFn({
|
|
61
|
+
resolveDataValue: (dataValue) => toString(dataValue),
|
|
62
|
+
sort: (dataValueA, dataValueB) => compareAlphanumeric(dataValueA, dataValueB)
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Sorts rows with the built-in text strategy.
|
|
66
|
+
*
|
|
67
|
+
* This comparator returns ascending-order results; descending order is applied by the sorting row model.
|
|
68
|
+
*/
|
|
69
|
+
const sortFn_text = constructSortFn({
|
|
70
|
+
resolveDataValue: (dataValue) => toString(dataValue).toLowerCase(),
|
|
71
|
+
sort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB)
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* Sorts rows with the built-in text case sensitive strategy.
|
|
75
|
+
*
|
|
76
|
+
* This comparator returns ascending-order results; descending order is applied by the sorting row model.
|
|
77
|
+
*/
|
|
78
|
+
const sortFn_textCaseSensitive = constructSortFn({
|
|
79
|
+
resolveDataValue: (dataValue) => toString(dataValue),
|
|
80
|
+
sort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB)
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* Sorts rows with the built-in datetime strategy.
|
|
84
|
+
*
|
|
85
|
+
* This comparator returns ascending-order results; descending order is applied by the sorting row model.
|
|
86
|
+
*/
|
|
87
|
+
const sortFn_datetime = constructSortFn({
|
|
88
|
+
resolveDataValue: (dataValue) => toDateSortValue(dataValue),
|
|
89
|
+
sort: (dataValueA, dataValueB) => dataValueA > dataValueB ? 1 : dataValueA < dataValueB ? -1 : 0
|
|
90
|
+
});
|
|
91
|
+
/**
|
|
92
|
+
* Sorts rows with the built-in basic strategy.
|
|
93
|
+
*
|
|
94
|
+
* This comparator returns ascending-order results; descending order is applied by the sorting row model.
|
|
95
|
+
*/
|
|
96
|
+
const sortFn_basic = constructSortFn({ sort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB) });
|
|
97
|
+
function compareBasic(a, b) {
|
|
98
|
+
return a === b ? 0 : a > b ? 1 : -1;
|
|
99
|
+
}
|
|
100
|
+
function toDateSortValue(value) {
|
|
101
|
+
return value instanceof Date ? value.getTime() : value;
|
|
102
|
+
}
|
|
103
|
+
function toString(a) {
|
|
104
|
+
if (typeof a === "number") {
|
|
105
|
+
if (isNaN(a) || a === Infinity || a === -Infinity) return "";
|
|
106
|
+
return String(a);
|
|
107
|
+
}
|
|
108
|
+
if (typeof a === "string") return a;
|
|
109
|
+
return "";
|
|
110
|
+
}
|
|
111
|
+
function compareAlphanumeric(aStr, bStr) {
|
|
112
|
+
let ai = 0;
|
|
113
|
+
let bi = 0;
|
|
114
|
+
const aLen = aStr.length;
|
|
115
|
+
const bLen = bStr.length;
|
|
116
|
+
while (ai < aLen && bi < bLen) {
|
|
117
|
+
const aIsNumeric = isDigit(aStr.charCodeAt(ai));
|
|
118
|
+
const bIsNumeric = isDigit(bStr.charCodeAt(bi));
|
|
119
|
+
const aEnd = findChunkEnd(aStr, ai, aIsNumeric);
|
|
120
|
+
const bEnd = findChunkEnd(bStr, bi, bIsNumeric);
|
|
121
|
+
if (!aIsNumeric && !bIsNumeric) {
|
|
122
|
+
const stringComparison = compareStringChunks(aStr, ai, aEnd, bStr, bi, bEnd);
|
|
123
|
+
if (stringComparison) return stringComparison;
|
|
124
|
+
ai = aEnd;
|
|
125
|
+
bi = bEnd;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (aIsNumeric !== bIsNumeric) return aIsNumeric ? 1 : -1;
|
|
129
|
+
const numericComparison = compareNumericChunks(aStr, ai, aEnd, bStr, bi, bEnd);
|
|
130
|
+
if (numericComparison) return numericComparison;
|
|
131
|
+
ai = aEnd;
|
|
132
|
+
bi = bEnd;
|
|
133
|
+
}
|
|
134
|
+
return countRemainingChunks(aStr, ai) - countRemainingChunks(bStr, bi);
|
|
135
|
+
}
|
|
136
|
+
function isDigit(charCode) {
|
|
137
|
+
return charCode >= 48 && charCode <= 57;
|
|
138
|
+
}
|
|
139
|
+
function findChunkEnd(str, start, isNumeric) {
|
|
140
|
+
let end = start + 1;
|
|
141
|
+
while (end < str.length && isDigit(str.charCodeAt(end)) === isNumeric) end++;
|
|
142
|
+
return end;
|
|
143
|
+
}
|
|
144
|
+
function compareStringChunks(aStr, aStart, aEnd, bStr, bStart, bEnd) {
|
|
145
|
+
const aLength = aEnd - aStart;
|
|
146
|
+
const bLength = bEnd - bStart;
|
|
147
|
+
const minLength = aLength < bLength ? aLength : bLength;
|
|
148
|
+
for (let i = 0; i < minLength; i++) {
|
|
149
|
+
const aCode = aStr.charCodeAt(aStart + i);
|
|
150
|
+
const bCode = bStr.charCodeAt(bStart + i);
|
|
151
|
+
if (aCode > bCode) return 1;
|
|
152
|
+
if (bCode > aCode) return -1;
|
|
153
|
+
}
|
|
154
|
+
if (aLength > bLength) return 1;
|
|
155
|
+
if (bLength > aLength) return -1;
|
|
156
|
+
return 0;
|
|
157
|
+
}
|
|
158
|
+
function compareNumericChunks(aStr, aStart, aEnd, bStr, bStart, bEnd) {
|
|
159
|
+
let aSignificantStart = aStart;
|
|
160
|
+
while (aSignificantStart < aEnd && aStr.charCodeAt(aSignificantStart) === 48) aSignificantStart++;
|
|
161
|
+
let bSignificantStart = bStart;
|
|
162
|
+
while (bSignificantStart < bEnd && bStr.charCodeAt(bSignificantStart) === 48) bSignificantStart++;
|
|
163
|
+
const aSignificantLength = aEnd - aSignificantStart;
|
|
164
|
+
const bSignificantLength = bEnd - bSignificantStart;
|
|
165
|
+
if (aSignificantLength === 0 && bSignificantLength === 0) return 0;
|
|
166
|
+
if (aSignificantLength <= 15 && bSignificantLength <= 15) {
|
|
167
|
+
const an = parseSmallInt(aStr, aSignificantStart, aEnd);
|
|
168
|
+
const bn = parseSmallInt(bStr, bSignificantStart, bEnd);
|
|
169
|
+
if (an > bn) return 1;
|
|
170
|
+
if (bn > an) return -1;
|
|
171
|
+
return 0;
|
|
172
|
+
}
|
|
173
|
+
const an = parseInt(aStr.slice(aStart, aEnd), 10);
|
|
174
|
+
const bn = parseInt(bStr.slice(bStart, bEnd), 10);
|
|
175
|
+
if (an > bn) return 1;
|
|
176
|
+
if (bn > an) return -1;
|
|
177
|
+
return 0;
|
|
178
|
+
}
|
|
179
|
+
function parseSmallInt(str, start, end) {
|
|
180
|
+
let result = 0;
|
|
181
|
+
for (let i = start; i < end; i++) result = result * 10 + str.charCodeAt(i) - 48;
|
|
182
|
+
return result;
|
|
183
|
+
}
|
|
184
|
+
function countRemainingChunks(str, start) {
|
|
185
|
+
let count = 0;
|
|
186
|
+
let index = start;
|
|
187
|
+
while (index < str.length) {
|
|
188
|
+
count++;
|
|
189
|
+
index = findChunkEnd(str, index, isDigit(str.charCodeAt(index)));
|
|
190
|
+
}
|
|
191
|
+
return count;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* The built-in sorting function registry.
|
|
195
|
+
*
|
|
196
|
+
* Registering this full object opts out of tree-shaking: every built-in
|
|
197
|
+
* sorting function ends up in your bundle. Prefer importing the `sortFn_*`
|
|
198
|
+
* functions you actually use and registering just those in the `sortFns`
|
|
199
|
+
* slot, or passing them directly to the `sortFn` column option.
|
|
200
|
+
*
|
|
201
|
+
* @deprecated Import individual `sortFn_*` functions instead for a smaller
|
|
202
|
+
* bundle. This export still works and is not going away in v9, but built-in
|
|
203
|
+
* name resolution (including `sortFn: 'auto'`) only finds functions you
|
|
204
|
+
* register yourself.
|
|
205
|
+
*/
|
|
206
|
+
const sortFns = {
|
|
207
|
+
alphanumeric: sortFn_alphanumeric,
|
|
208
|
+
alphanumericCaseSensitive: sortFn_alphanumericCaseSensitive,
|
|
209
|
+
basic: sortFn_basic,
|
|
210
|
+
datetime: sortFn_datetime,
|
|
211
|
+
text: sortFn_text,
|
|
212
|
+
textCaseSensitive: sortFn_textCaseSensitive
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
//#endregion
|
|
216
|
+
export { constructSortFn, reSplitAlphaNumeric, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns };
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { cellSelectionFeature } from "./cell-selection/cellSelectionFeature.js";
|
|
2
|
+
import { cellSpanningFeature } from "./cell-spanning/cellSpanningFeature.js";
|
|
1
3
|
import { columnFacetingFeature } from "./column-faceting/columnFacetingFeature.js";
|
|
4
|
+
import { rowAggregationFeature } from "./row-aggregation/rowAggregationFeature.js";
|
|
2
5
|
import { columnFilteringFeature } from "./column-filtering/columnFilteringFeature.js";
|
|
3
6
|
import { columnGroupingFeature } from "./column-grouping/columnGroupingFeature.js";
|
|
4
7
|
import { columnOrderingFeature } from "./column-ordering/columnOrderingFeature.js";
|
|
@@ -12,9 +15,10 @@ import { rowPaginationFeature } from "./row-pagination/rowPaginationFeature.js";
|
|
|
12
15
|
import { rowPinningFeature } from "./row-pinning/rowPinningFeature.js";
|
|
13
16
|
import { rowSelectionFeature } from "./row-selection/rowSelectionFeature.js";
|
|
14
17
|
import { rowSortingFeature } from "./row-sorting/rowSortingFeature.js";
|
|
15
|
-
|
|
16
18
|
//#region src/features/stockFeatures.d.ts
|
|
17
19
|
interface StockFeatures {
|
|
20
|
+
cellSelectionFeature: typeof cellSelectionFeature;
|
|
21
|
+
cellSpanningFeature: typeof cellSpanningFeature;
|
|
18
22
|
columnFacetingFeature: typeof columnFacetingFeature;
|
|
19
23
|
columnFilteringFeature: typeof columnFilteringFeature;
|
|
20
24
|
columnGroupingFeature: typeof columnGroupingFeature;
|
|
@@ -24,6 +28,7 @@ interface StockFeatures {
|
|
|
24
28
|
columnSizingFeature: typeof columnSizingFeature;
|
|
25
29
|
columnVisibilityFeature: typeof columnVisibilityFeature;
|
|
26
30
|
globalFilteringFeature: typeof globalFilteringFeature;
|
|
31
|
+
rowAggregationFeature: typeof rowAggregationFeature;
|
|
27
32
|
rowExpandingFeature: typeof rowExpandingFeature;
|
|
28
33
|
rowPaginationFeature: typeof rowPaginationFeature;
|
|
29
34
|
rowPinningFeature: typeof rowPinningFeature;
|
|
@@ -37,5 +42,4 @@ interface StockFeatures {
|
|
|
37
42
|
*/
|
|
38
43
|
declare const stockFeatures: StockFeatures;
|
|
39
44
|
//#endregion
|
|
40
|
-
export { StockFeatures, stockFeatures };
|
|
41
|
-
//# sourceMappingURL=stockFeatures.d.ts.map
|
|
45
|
+
export { StockFeatures, stockFeatures };
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { cellSelectionFeature } from "./cell-selection/cellSelectionFeature.js";
|
|
2
|
+
import { cellSpanningFeature } from "./cell-spanning/cellSpanningFeature.js";
|
|
1
3
|
import { columnFacetingFeature } from "./column-faceting/columnFacetingFeature.js";
|
|
4
|
+
import { rowAggregationFeature } from "./row-aggregation/rowAggregationFeature.js";
|
|
2
5
|
import { columnFilteringFeature } from "./column-filtering/columnFilteringFeature.js";
|
|
3
6
|
import { columnGroupingFeature } from "./column-grouping/columnGroupingFeature.js";
|
|
4
7
|
import { columnOrderingFeature } from "./column-ordering/columnOrderingFeature.js";
|
|
@@ -20,6 +23,8 @@ import { rowSortingFeature } from "./row-sorting/rowSortingFeature.js";
|
|
|
20
23
|
* Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.
|
|
21
24
|
*/
|
|
22
25
|
const stockFeatures = {
|
|
26
|
+
cellSelectionFeature,
|
|
27
|
+
cellSpanningFeature,
|
|
23
28
|
columnFacetingFeature,
|
|
24
29
|
columnFilteringFeature,
|
|
25
30
|
columnGroupingFeature,
|
|
@@ -29,6 +34,7 @@ const stockFeatures = {
|
|
|
29
34
|
columnSizingFeature,
|
|
30
35
|
columnVisibilityFeature,
|
|
31
36
|
globalFilteringFeature,
|
|
37
|
+
rowAggregationFeature,
|
|
32
38
|
rowExpandingFeature,
|
|
33
39
|
rowPaginationFeature,
|
|
34
40
|
rowPinningFeature,
|
|
@@ -37,5 +43,4 @@ const stockFeatures = {
|
|
|
37
43
|
};
|
|
38
44
|
|
|
39
45
|
//#endregion
|
|
40
|
-
export { stockFeatures };
|
|
41
|
-
//# sourceMappingURL=stockFeatures.js.map
|
|
46
|
+
export { stockFeatures };
|
package/dist/flex-render.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { CellData, RowData } from "./types/type-utils.js";
|
|
2
2
|
import { Header } from "./types/Header.js";
|
|
3
|
-
import { TableFeatures } from "./types/TableFeatures.js";
|
|
4
3
|
import { Cell } from "./types/Cell.js";
|
|
5
|
-
|
|
4
|
+
import { TableFeatures } from "./types/TableFeatures.js";
|
|
6
5
|
//#region src/flex-render.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* Renders a static value or render function with the provided props.
|
|
@@ -30,5 +29,4 @@ type FlexRenderProps<TFeatures extends TableFeatures, TData extends RowData, TVa
|
|
|
30
29
|
*/
|
|
31
30
|
declare function FlexRender<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(props: FlexRenderProps<TFeatures, TData, TValue>): unknown | null;
|
|
32
31
|
//#endregion
|
|
33
|
-
export { FlexRender, FlexRenderProps, flexRender };
|
|
34
|
-
//# sourceMappingURL=flex-render.d.ts.map
|
|
32
|
+
export { FlexRender, FlexRenderProps, flexRender };
|
package/dist/flex-render.js
CHANGED
|
@@ -15,12 +15,19 @@ function flexRender(comp, props) {
|
|
|
15
15
|
* Framework adapters use this helper to support column definitions that contain either plain values or template functions.
|
|
16
16
|
*/
|
|
17
17
|
function FlexRender(props) {
|
|
18
|
-
if ("cell" in props && props.cell)
|
|
18
|
+
if ("cell" in props && props.cell) {
|
|
19
|
+
const cell = props.cell;
|
|
20
|
+
const def = cell.column.columnDef;
|
|
21
|
+
const groupingCell = cell;
|
|
22
|
+
const groupingDef = def;
|
|
23
|
+
if (groupingCell.getIsAggregated?.()) return flexRender(groupingDef.aggregatedCell ?? def.cell, cell.getContext());
|
|
24
|
+
if (groupingCell.getIsPlaceholder?.()) return null;
|
|
25
|
+
return flexRender(def.cell, cell.getContext());
|
|
26
|
+
}
|
|
19
27
|
if ("header" in props && props.header) return flexRender(props.header.column.columnDef.header, props.header.getContext());
|
|
20
28
|
if ("footer" in props && props.footer) return flexRender(props.footer.column.columnDef.footer, props.footer.getContext());
|
|
21
29
|
return null;
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
//#endregion
|
|
25
|
-
export { FlexRender, flexRender };
|
|
26
|
-
//# sourceMappingURL=flex-render.js.map
|
|
33
|
+
export { FlexRender, flexRender };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { DeepKeys, DeepValue, RowData } from "../types/type-utils.js";
|
|
2
2
|
import { AccessorFn, AccessorFnColumnDef, AccessorKeyColumnDef, ColumnDef, DisplayColumnDef, GroupColumnDef, IdentifiedColumnDef } from "../types/ColumnDef.js";
|
|
3
3
|
import { TableFeatures } from "../types/TableFeatures.js";
|
|
4
|
-
|
|
5
4
|
//#region src/helpers/columnHelper.d.ts
|
|
6
|
-
|
|
5
|
+
interface ColumnHelper<in out TFeatures extends TableFeatures, in out TData extends RowData> {
|
|
7
6
|
/**
|
|
8
7
|
* Creates a data column definition with an accessor key or function to extract the cell value.
|
|
9
8
|
* @example
|
|
@@ -45,7 +44,7 @@ type ColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = {
|
|
|
45
44
|
* ```
|
|
46
45
|
*/
|
|
47
46
|
group: (column: GroupColumnDef<TFeatures, TData, unknown>) => GroupColumnDef<TFeatures, TData, unknown>;
|
|
48
|
-
}
|
|
47
|
+
}
|
|
49
48
|
/**
|
|
50
49
|
* Creates helper functions for authoring column definitions with stronger value
|
|
51
50
|
* inference.
|
|
@@ -67,5 +66,4 @@ type ColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = {
|
|
|
67
66
|
*/
|
|
68
67
|
declare function createColumnHelper<TFeatures extends TableFeatures, TData extends RowData>(): ColumnHelper<TFeatures, TData>;
|
|
69
68
|
//#endregion
|
|
70
|
-
export { ColumnHelper, createColumnHelper };
|
|
71
|
-
//# sourceMappingURL=columnHelper.d.ts.map
|
|
69
|
+
export { ColumnHelper, createColumnHelper };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/helpers/metaHelper.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* A helper for declaring the `tableMeta`/`columnMeta` type-only slots in the
|
|
4
|
+
* `features` option without a type assertion.
|
|
5
|
+
*
|
|
6
|
+
* Equivalent to `{} as TMeta`, but reads as type-only at the call site and
|
|
7
|
+
* avoids `@typescript-eslint/no-unnecessary-type-assertion` false positives
|
|
8
|
+
* when the meta type has only optional properties (where an auto-fix removing
|
|
9
|
+
* the assertion would silently degrade the inferred meta type to `{}`).
|
|
10
|
+
*
|
|
11
|
+
* The returned value is a phantom — it is ignored and stripped from the
|
|
12
|
+
* table's registered features at runtime; only its type is used.
|
|
13
|
+
* @example
|
|
14
|
+
* ```
|
|
15
|
+
* import { metaHelper, tableFeatures, rowSortingFeature } from '@tanstack/react-table'
|
|
16
|
+
* const features = tableFeatures({
|
|
17
|
+
* rowSortingFeature,
|
|
18
|
+
* tableMeta: metaHelper<MyTableMeta>(),
|
|
19
|
+
* columnMeta: metaHelper<MyColumnMeta>(),
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare function metaHelper<TMeta extends object>(): TMeta;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { metaHelper };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/helpers/metaHelper.ts
|
|
2
|
+
/**
|
|
3
|
+
* A helper for declaring the `tableMeta`/`columnMeta` type-only slots in the
|
|
4
|
+
* `features` option without a type assertion.
|
|
5
|
+
*
|
|
6
|
+
* Equivalent to `{} as TMeta`, but reads as type-only at the call site and
|
|
7
|
+
* avoids `@typescript-eslint/no-unnecessary-type-assertion` false positives
|
|
8
|
+
* when the meta type has only optional properties (where an auto-fix removing
|
|
9
|
+
* the assertion would silently degrade the inferred meta type to `{}`).
|
|
10
|
+
*
|
|
11
|
+
* The returned value is a phantom — it is ignored and stripped from the
|
|
12
|
+
* table's registered features at runtime; only its type is used.
|
|
13
|
+
* @example
|
|
14
|
+
* ```
|
|
15
|
+
* import { metaHelper, tableFeatures, rowSortingFeature } from '@tanstack/react-table'
|
|
16
|
+
* const features = tableFeatures({
|
|
17
|
+
* rowSortingFeature,
|
|
18
|
+
* tableMeta: metaHelper<MyTableMeta>(),
|
|
19
|
+
* columnMeta: metaHelper<MyColumnMeta>(),
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
function metaHelper() {
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { metaHelper };
|
|
@@ -1,18 +1,45 @@
|
|
|
1
|
-
import { TableFeatures } from "../types/TableFeatures.js";
|
|
2
|
-
|
|
1
|
+
import { TableFeatures, ValidateFeatureSlots } from "../types/TableFeatures.js";
|
|
3
2
|
//#region src/helpers/tableFeatures.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* A helper function to help define the features that are to be imported and applied to a table instance.
|
|
6
5
|
* Use this utility to make it easier to have the correct type inference for the features that are being imported.
|
|
7
6
|
* **Note:** It is recommended to use this utility statically outside of a component.
|
|
7
|
+
*
|
|
8
|
+
* Alongside feature modules, this object carries everything else that is
|
|
9
|
+
* statically stitched into the table:
|
|
10
|
+
*
|
|
11
|
+
* - Row model factories (`sortedRowModel`, `filteredRowModel`, etc.)
|
|
12
|
+
* - Row model function registries (`sortFns`, `filterFns`, `aggregationFns`),
|
|
13
|
+
* whose keys become the valid string values for `sortFn`, `filterFn`,
|
|
14
|
+
* `globalFilterFn`, and `aggregationFn` with full inference
|
|
15
|
+
* - Type-only `tableMeta`/`columnMeta` slots for declaring per-table meta types
|
|
16
|
+
* instead of using global declaration merging. The values are phantom
|
|
17
|
+
* (ignored and stripped at runtime); only their types are used.
|
|
8
18
|
* @example
|
|
9
19
|
* ```
|
|
10
|
-
* import {
|
|
11
|
-
*
|
|
12
|
-
*
|
|
20
|
+
* import {
|
|
21
|
+
* columnFilteringFeature,
|
|
22
|
+
* createFilteredRowModel,
|
|
23
|
+
* createSortedRowModel,
|
|
24
|
+
* filterFn_includesString,
|
|
25
|
+
* rowSortingFeature,
|
|
26
|
+
* sortFn_alphanumeric,
|
|
27
|
+
* sortFn_text,
|
|
28
|
+
* tableFeatures,
|
|
29
|
+
* } from '@tanstack/react-table'
|
|
30
|
+
* const features = tableFeatures({
|
|
31
|
+
* columnFilteringFeature,
|
|
32
|
+
* rowSortingFeature,
|
|
33
|
+
* filteredRowModel: createFilteredRowModel(),
|
|
34
|
+
* sortedRowModel: createSortedRowModel(),
|
|
35
|
+
* filterFns: { includesString: filterFn_includesString, myCustomFilterFn },
|
|
36
|
+
* sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },
|
|
37
|
+
* tableMeta: {} as { updateData: (rowIndex: number, columnId: string, value: unknown) => void },
|
|
38
|
+
* columnMeta: {} as { align?: 'left' | 'right' },
|
|
39
|
+
* });
|
|
40
|
+
* const table = useTable({ features, columns, data });
|
|
13
41
|
* ```
|
|
14
42
|
*/
|
|
15
|
-
declare function tableFeatures<TFeatures extends TableFeatures>(features: TFeatures): TFeatures;
|
|
43
|
+
declare function tableFeatures<TFeatures extends TableFeatures>(features: TFeatures & ValidateFeatureSlots<TFeatures>): TFeatures;
|
|
16
44
|
//#endregion
|
|
17
|
-
export { tableFeatures };
|
|
18
|
-
//# sourceMappingURL=tableFeatures.d.ts.map
|
|
45
|
+
export { tableFeatures };
|
|
@@ -3,11 +3,40 @@
|
|
|
3
3
|
* A helper function to help define the features that are to be imported and applied to a table instance.
|
|
4
4
|
* Use this utility to make it easier to have the correct type inference for the features that are being imported.
|
|
5
5
|
* **Note:** It is recommended to use this utility statically outside of a component.
|
|
6
|
+
*
|
|
7
|
+
* Alongside feature modules, this object carries everything else that is
|
|
8
|
+
* statically stitched into the table:
|
|
9
|
+
*
|
|
10
|
+
* - Row model factories (`sortedRowModel`, `filteredRowModel`, etc.)
|
|
11
|
+
* - Row model function registries (`sortFns`, `filterFns`, `aggregationFns`),
|
|
12
|
+
* whose keys become the valid string values for `sortFn`, `filterFn`,
|
|
13
|
+
* `globalFilterFn`, and `aggregationFn` with full inference
|
|
14
|
+
* - Type-only `tableMeta`/`columnMeta` slots for declaring per-table meta types
|
|
15
|
+
* instead of using global declaration merging. The values are phantom
|
|
16
|
+
* (ignored and stripped at runtime); only their types are used.
|
|
6
17
|
* @example
|
|
7
18
|
* ```
|
|
8
|
-
* import {
|
|
9
|
-
*
|
|
10
|
-
*
|
|
19
|
+
* import {
|
|
20
|
+
* columnFilteringFeature,
|
|
21
|
+
* createFilteredRowModel,
|
|
22
|
+
* createSortedRowModel,
|
|
23
|
+
* filterFn_includesString,
|
|
24
|
+
* rowSortingFeature,
|
|
25
|
+
* sortFn_alphanumeric,
|
|
26
|
+
* sortFn_text,
|
|
27
|
+
* tableFeatures,
|
|
28
|
+
* } from '@tanstack/react-table'
|
|
29
|
+
* const features = tableFeatures({
|
|
30
|
+
* columnFilteringFeature,
|
|
31
|
+
* rowSortingFeature,
|
|
32
|
+
* filteredRowModel: createFilteredRowModel(),
|
|
33
|
+
* sortedRowModel: createSortedRowModel(),
|
|
34
|
+
* filterFns: { includesString: filterFn_includesString, myCustomFilterFn },
|
|
35
|
+
* sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },
|
|
36
|
+
* tableMeta: {} as { updateData: (rowIndex: number, columnId: string, value: unknown) => void },
|
|
37
|
+
* columnMeta: {} as { align?: 'left' | 'right' },
|
|
38
|
+
* });
|
|
39
|
+
* const table = useTable({ features, columns, data });
|
|
11
40
|
* ```
|
|
12
41
|
*/
|
|
13
42
|
function tableFeatures(features) {
|
|
@@ -15,5 +44,4 @@ function tableFeatures(features) {
|
|
|
15
44
|
}
|
|
16
45
|
|
|
17
46
|
//#endregion
|
|
18
|
-
export { tableFeatures };
|
|
19
|
-
//# sourceMappingURL=tableFeatures.js.map
|
|
47
|
+
export { tableFeatures };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { RowData } from "../types/type-utils.js";
|
|
2
2
|
import { TableOptions } from "../types/TableOptions.js";
|
|
3
3
|
import { TableFeatures } from "../types/TableFeatures.js";
|
|
4
|
-
|
|
5
4
|
//#region src/helpers/tableOptions.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Preserves table option inference when reusable options omit `columns`.
|
|
@@ -53,5 +52,4 @@ declare function tableOptions<TFeatures extends TableFeatures, TData extends Row
|
|
|
53
52
|
*/
|
|
54
53
|
declare function tableOptions<TFeatures extends TableFeatures, TData extends RowData = any>(options: Omit<TableOptions<TFeatures, TData>, 'data' | 'columns' | 'features'>): Omit<TableOptions<TFeatures, TData>, 'data' | 'columns' | 'features'>;
|
|
55
54
|
//#endregion
|
|
56
|
-
export { tableOptions };
|
|
57
|
-
//# sourceMappingURL=tableOptions.d.ts.map
|
|
55
|
+
export { tableOptions };
|