@tanstack/table-core 9.0.0-beta.5 → 9.0.0-beta.51
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 +2 -0
- package/dist/core/cells/constructCell.cjs +1 -4
- package/dist/core/cells/constructCell.cjs.map +1 -1
- package/dist/core/cells/constructCell.d.cts +4 -4
- package/dist/core/cells/constructCell.d.ts +4 -4
- package/dist/core/cells/constructCell.js +1 -4
- package/dist/core/cells/constructCell.js.map +1 -1
- package/dist/core/cells/coreCellsFeature.types.d.cts +7 -7
- package/dist/core/cells/coreCellsFeature.types.d.ts +7 -7
- package/dist/core/cells/coreCellsFeature.utils.d.cts +4 -4
- package/dist/core/cells/coreCellsFeature.utils.d.ts +4 -4
- package/dist/core/columns/constructColumn.cjs +4 -5
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.d.cts +3 -3
- package/dist/core/columns/constructColumn.d.ts +3 -3
- package/dist/core/columns/constructColumn.js +4 -5
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.cjs +12 -18
- package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.js +12 -18
- package/dist/core/columns/coreColumnsFeature.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
- package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
- package/dist/core/columns/coreColumnsFeature.utils.cjs +4 -8
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
- package/dist/core/columns/coreColumnsFeature.utils.js +5 -9
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/coreFeatures.cjs.map +1 -1
- package/dist/core/coreFeatures.d.cts +1 -1
- package/dist/core/coreFeatures.d.ts +1 -1
- package/dist/core/coreFeatures.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs +1 -2
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
- package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
- package/dist/core/headers/buildHeaderGroups.js +1 -2
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.cjs +1 -4
- package/dist/core/headers/constructHeader.cjs.map +1 -1
- package/dist/core/headers/constructHeader.d.cts +2 -2
- package/dist/core/headers/constructHeader.d.ts +2 -2
- package/dist/core/headers/constructHeader.js +1 -4
- package/dist/core/headers/constructHeader.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.cjs +8 -11
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.js +8 -11
- package/dist/core/headers/coreHeadersFeature.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
- package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.cjs +8 -10
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
- package/dist/core/headers/coreHeadersFeature.utils.js +8 -10
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +7 -15
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -15
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +8 -26
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +16 -16
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +16 -16
- package/dist/core/row-models/coreRowModelsFeature.utils.js +8 -26
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs +4 -6
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
- package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
- package/dist/core/row-models/createCoreRowModel.js +5 -7
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +6 -10
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.d.cts +2 -2
- package/dist/core/rows/constructRow.d.ts +2 -2
- package/dist/core/rows/constructRow.js +7 -10
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +18 -2
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.js +19 -3
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +41 -7
- package/dist/core/rows/coreRowsFeature.types.d.ts +41 -7
- package/dist/core/rows/coreRowsFeature.utils.cjs +62 -8
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +24 -5
- package/dist/core/rows/coreRowsFeature.utils.d.ts +24 -5
- package/dist/core/rows/coreRowsFeature.utils.js +61 -10
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/constructTable.cjs +24 -14
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.d.cts +1 -1
- package/dist/core/table/constructTable.d.ts +1 -1
- package/dist/core/table/constructTable.js +24 -14
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +32 -19
- package/dist/core/table/coreTablesFeature.types.d.ts +32 -19
- package/dist/core/table/coreTablesFeature.utils.cjs +38 -14
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +10 -7
- package/dist/core/table/coreTablesFeature.utils.d.ts +10 -7
- package/dist/core/table/coreTablesFeature.utils.js +38 -14
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/experimental-worker-plugin.cjs +14 -0
- package/dist/experimental-worker-plugin.d.cts +5 -0
- package/dist/experimental-worker-plugin.d.ts +5 -0
- package/dist/experimental-worker-plugin.js +6 -0
- package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
- package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +15 -33
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -33
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +23 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +9 -9
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +9 -9
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +24 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +7 -4
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +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 +10 -15
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.cts +2 -2
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +2 -2
- package/dist/features/column-faceting/createFacetedRowModel.js +10 -15
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +10 -6
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js +11 -7
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.js +3 -3
- package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +83 -29
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +83 -29
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +23 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +18 -14
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +18 -14
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +23 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +29 -25
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +10 -4
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +10 -4
- package/dist/features/column-filtering/createFilteredRowModel.js +30 -26
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-filtering/filterFns.cjs +399 -0
- package/dist/features/column-filtering/filterFns.cjs.map +1 -0
- package/dist/features/column-filtering/filterFns.d.cts +210 -0
- package/dist/features/column-filtering/filterFns.d.ts +210 -0
- package/dist/features/column-filtering/filterFns.js +375 -0
- package/dist/features/column-filtering/filterFns.js.map +1 -0
- package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.js +3 -2
- package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +4 -16
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.js +6 -18
- package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +14 -50
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -50
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +6 -61
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +12 -49
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -49
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -60
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +37 -24
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -4
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -4
- package/dist/features/column-grouping/createGroupedRowModel.js +39 -26
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -21
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.js +18 -22
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +28 -3
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -3
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +35 -15
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +26 -14
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -14
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -17
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +124 -143
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
- package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
- package/dist/features/column-pinning/columnPinningFeature.js +125 -144
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +52 -41
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +52 -41
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +161 -162
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +101 -92
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +101 -92
- package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -149
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +84 -44
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
- package/dist/features/column-resizing/columnResizingFeature.utils.js +85 -45
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +33 -67
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.js +34 -68
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +52 -9
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -9
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +88 -45
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +43 -25
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -25
- package/dist/features/column-sizing/columnSizingFeature.utils.js +88 -46
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -36
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.js +25 -36
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +30 -29
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +18 -18
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +18 -18
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +31 -30
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
- package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +6 -6
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +8 -11
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +8 -11
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +6 -6
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-aggregation/aggregationFns.cjs +246 -0
- package/dist/features/row-aggregation/aggregationFns.cjs.map +1 -0
- package/dist/features/row-aggregation/aggregationFns.d.cts +68 -0
- package/dist/features/row-aggregation/aggregationFns.d.ts +68 -0
- package/dist/features/row-aggregation/aggregationFns.js +235 -0
- package/dist/features/row-aggregation/aggregationFns.js.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.cjs +39 -0
- package/dist/features/row-aggregation/rowAggregationFeature.cjs.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.d.cts +10 -0
- package/dist/features/row-aggregation/rowAggregationFeature.d.ts +10 -0
- package/dist/features/row-aggregation/rowAggregationFeature.js +39 -0
- package/dist/features/row-aggregation/rowAggregationFeature.js.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.cjs +13 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.cjs.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.d.cts +195 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +195 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.js +12 -0
- package/dist/features/row-aggregation/rowAggregationFeature.types.js.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs +212 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs.map +1 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.d.cts +34 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +34 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.js +206 -0
- package/dist/features/row-aggregation/rowAggregationFeature.utils.js.map +1 -0
- package/dist/features/row-expanding/createExpandedRowModel.cjs +6 -10
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.cts +2 -2
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +2 -2
- package/dist/features/row-expanding/createExpandedRowModel.js +6 -10
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +6 -15
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -15
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +28 -26
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +29 -27
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs +6 -10
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +2 -2
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +2 -2
- package/dist/features/row-pagination/createPaginatedRowModel.js +6 -10
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +5 -14
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -14
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +9 -15
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +9 -15
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.cjs +4 -16
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.js +4 -16
- package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +9 -14
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
- package/dist/features/row-pinning/rowPinningFeature.utils.js +9 -14
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +66 -22
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.js +67 -23
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +49 -11
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +49 -11
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +128 -72
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +57 -30
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +57 -30
- package/dist/features/row-selection/rowSelectionFeature.utils.js +129 -74
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +69 -50
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +10 -4
- package/dist/features/row-sorting/createSortedRowModel.d.ts +10 -4
- package/dist/features/row-sorting/createSortedRowModel.js +70 -51
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +54 -22
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -22
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +31 -17
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
- package/dist/features/row-sorting/rowSortingFeature.utils.js +31 -17
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/sortFns.cjs +226 -0
- package/dist/features/row-sorting/sortFns.cjs.map +1 -0
- package/dist/features/row-sorting/sortFns.d.cts +98 -0
- package/dist/features/row-sorting/sortFns.d.ts +98 -0
- package/dist/features/row-sorting/sortFns.js +217 -0
- package/dist/features/row-sorting/sortFns.js.map +1 -0
- package/dist/features/stockFeatures.cjs +2 -0
- package/dist/features/stockFeatures.cjs.map +1 -1
- package/dist/features/stockFeatures.d.cts +2 -0
- package/dist/features/stockFeatures.d.ts +2 -0
- package/dist/features/stockFeatures.js +2 -0
- package/dist/features/stockFeatures.js.map +1 -1
- package/dist/flex-render.d.cts +1 -1
- package/dist/flex-render.d.ts +1 -1
- package/dist/helpers/columnHelper.cjs.map +1 -1
- package/dist/helpers/columnHelper.d.cts +2 -2
- package/dist/helpers/columnHelper.d.ts +2 -2
- package/dist/helpers/columnHelper.js.map +1 -1
- package/dist/helpers/metaHelper.cjs +30 -0
- package/dist/helpers/metaHelper.cjs.map +1 -0
- package/dist/helpers/metaHelper.d.cts +26 -0
- package/dist/helpers/metaHelper.d.ts +26 -0
- package/dist/helpers/metaHelper.js +29 -0
- package/dist/helpers/metaHelper.js.map +1 -0
- package/dist/helpers/tableFeatures.cjs +32 -3
- package/dist/helpers/tableFeatures.cjs.map +1 -1
- package/dist/helpers/tableFeatures.d.cts +34 -5
- package/dist/helpers/tableFeatures.d.ts +34 -5
- package/dist/helpers/tableFeatures.js +32 -3
- package/dist/helpers/tableFeatures.js.map +1 -1
- package/dist/index.cjs +23 -3
- package/dist/index.d.cts +31 -28
- package/dist/index.d.ts +31 -28
- package/dist/index.js +8 -5
- package/dist/static-functions.cjs +30 -19
- package/dist/static-functions.d.cts +8 -7
- package/dist/static-functions.d.ts +8 -7
- package/dist/static-functions.js +8 -7
- package/dist/store-reactivity-bindings.cjs +3 -3
- package/dist/store-reactivity-bindings.cjs.map +1 -1
- package/dist/store-reactivity-bindings.d.cts +1 -1
- package/dist/store-reactivity-bindings.d.ts +1 -1
- package/dist/store-reactivity-bindings.js +3 -3
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/Cell.d.cts +4 -2
- package/dist/types/Cell.d.ts +4 -2
- package/dist/types/Column.d.cts +15 -15
- package/dist/types/Column.d.ts +15 -15
- package/dist/types/ColumnDef.d.cts +30 -14
- package/dist/types/ColumnDef.d.ts +30 -14
- package/dist/types/Header.d.cts +2 -2
- package/dist/types/Header.d.ts +2 -2
- package/dist/types/HeaderGroup.d.cts +2 -2
- package/dist/types/HeaderGroup.d.ts +2 -2
- package/dist/types/Row.d.cts +6 -4
- package/dist/types/Row.d.ts +6 -4
- package/dist/types/RowModel.d.cts +11 -23
- package/dist/types/RowModel.d.ts +11 -23
- package/dist/types/RowModelFns.d.cts +4 -4
- package/dist/types/RowModelFns.d.ts +4 -4
- package/dist/types/Table.d.cts +26 -31
- package/dist/types/Table.d.ts +26 -31
- package/dist/types/TableFeatures.d.cts +350 -22
- package/dist/types/TableFeatures.d.ts +350 -22
- package/dist/types/TableOptions.d.cts +22 -14
- package/dist/types/TableOptions.d.ts +22 -14
- package/dist/types/TableState.d.cts +6 -6
- package/dist/types/TableState.d.ts +6 -6
- package/dist/types/type-utils.d.cts +8 -1
- package/dist/types/type-utils.d.ts +8 -1
- package/dist/utils.cjs +51 -29
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +30 -8
- package/dist/utils.d.ts +30 -8
- package/dist/utils.js +49 -30
- package/dist/utils.js.map +1 -1
- package/dist/worker/createTableWorker.cjs +189 -0
- package/dist/worker/createTableWorker.cjs.map +1 -0
- package/dist/worker/createTableWorker.d.cts +102 -0
- package/dist/worker/createTableWorker.d.ts +102 -0
- package/dist/worker/createTableWorker.js +186 -0
- package/dist/worker/createTableWorker.js.map +1 -0
- package/dist/worker/createWorkerRowModel.cjs +78 -0
- package/dist/worker/createWorkerRowModel.cjs.map +1 -0
- package/dist/worker/createWorkerRowModel.d.cts +42 -0
- package/dist/worker/createWorkerRowModel.d.ts +42 -0
- package/dist/worker/createWorkerRowModel.js +78 -0
- package/dist/worker/createWorkerRowModel.js.map +1 -0
- package/dist/worker/initTableWorker.cjs +100 -0
- package/dist/worker/initTableWorker.cjs.map +1 -0
- package/dist/worker/initTableWorker.d.cts +33 -0
- package/dist/worker/initTableWorker.d.ts +33 -0
- package/dist/worker/initTableWorker.js +100 -0
- package/dist/worker/initTableWorker.js.map +1 -0
- package/dist/worker/rebuildRowModel.cjs +72 -0
- package/dist/worker/rebuildRowModel.cjs.map +1 -0
- package/dist/worker/rebuildRowModel.d.cts +9 -0
- package/dist/worker/rebuildRowModel.d.ts +9 -0
- package/dist/worker/rebuildRowModel.js +72 -0
- package/dist/worker/rebuildRowModel.js.map +1 -0
- package/dist/worker/serializeRowModel.cjs +53 -0
- package/dist/worker/serializeRowModel.cjs.map +1 -0
- package/dist/worker/serializeRowModel.js +52 -0
- package/dist/worker/serializeRowModel.js.map +1 -0
- package/dist/worker/tableWorkerProtocol.cjs +29 -0
- package/dist/worker/tableWorkerProtocol.cjs.map +1 -0
- package/dist/worker/tableWorkerProtocol.d.cts +88 -0
- package/dist/worker/tableWorkerProtocol.d.ts +88 -0
- package/dist/worker/tableWorkerProtocol.js +27 -0
- package/dist/worker/tableWorkerProtocol.js.map +1 -0
- package/package.json +8 -3
- package/skills/aggregation/SKILL.md +141 -0
- package/skills/api-not-found/SKILL.md +113 -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 +274 -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/src/core/cells/coreCellsFeature.types.ts +6 -6
- package/src/core/columns/constructColumn.ts +6 -0
- package/src/core/columns/coreColumnsFeature.types.ts +8 -8
- package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
- package/src/core/coreFeatures.ts +1 -1
- package/src/core/headers/buildHeaderGroups.ts +4 -2
- package/src/core/headers/coreHeadersFeature.types.ts +12 -12
- package/src/core/headers/coreHeadersFeature.utils.ts +7 -8
- package/src/core/row-models/coreRowModelsFeature.types.ts +6 -20
- package/src/core/row-models/coreRowModelsFeature.utils.ts +8 -8
- package/src/core/row-models/createCoreRowModel.ts +7 -6
- package/src/core/rows/constructRow.ts +4 -2
- package/src/core/rows/coreRowsFeature.ts +21 -0
- package/src/core/rows/coreRowsFeature.types.ts +45 -8
- package/src/core/rows/coreRowsFeature.utils.ts +93 -5
- package/src/core/table/constructTable.ts +44 -6
- package/src/core/table/coreTablesFeature.types.ts +45 -20
- package/src/core/table/coreTablesFeature.utils.ts +59 -19
- package/src/experimental-worker-plugin.ts +22 -0
- package/src/features/column-faceting/columnFacetingFeature.types.ts +17 -48
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +33 -7
- package/src/features/column-faceting/createFacetedRowModel.ts +8 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +41 -10
- package/src/features/column-filtering/columnFilteringFeature.ts +3 -2
- package/src/features/column-filtering/columnFilteringFeature.types.ts +117 -41
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +37 -23
- package/src/features/column-filtering/createFilteredRowModel.ts +28 -17
- package/src/features/column-filtering/filterFns.ts +533 -0
- package/src/features/column-filtering/filterRowsUtils.ts +3 -2
- package/src/features/column-grouping/columnGroupingFeature.ts +3 -21
- package/src/features/column-grouping/columnGroupingFeature.types.ts +21 -95
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -87
- package/src/features/column-grouping/createGroupedRowModel.ts +46 -45
- package/src/features/column-ordering/columnOrderingFeature.ts +12 -7
- package/src/features/column-ordering/columnOrderingFeature.types.ts +29 -3
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +59 -8
- package/src/features/column-pinning/columnPinningFeature.ts +76 -59
- package/src/features/column-pinning/columnPinningFeature.types.ts +53 -42
- package/src/features/column-pinning/columnPinningFeature.utils.ts +184 -170
- package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
- package/src/features/column-resizing/columnResizingFeature.utils.ts +120 -52
- package/src/features/column-sizing/columnSizingFeature.ts +24 -24
- package/src/features/column-sizing/columnSizingFeature.types.ts +53 -8
- package/src/features/column-sizing/columnSizingFeature.utils.ts +143 -62
- package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +48 -30
- package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +13 -5
- package/src/features/row-aggregation/aggregationFns.ts +345 -0
- package/src/features/row-aggregation/rowAggregationFeature.ts +60 -0
- package/src/features/row-aggregation/rowAggregationFeature.types.ts +339 -0
- package/src/features/row-aggregation/rowAggregationFeature.utils.ts +430 -0
- package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -23
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -21
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +1 -1
- package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
- package/src/features/row-selection/rowSelectionFeature.ts +53 -3
- package/src/features/row-selection/rowSelectionFeature.types.ts +54 -10
- package/src/features/row-selection/rowSelectionFeature.utils.ts +273 -91
- package/src/features/row-sorting/createSortedRowModel.ts +107 -75
- package/src/features/row-sorting/rowSortingFeature.types.ts +87 -34
- package/src/features/row-sorting/rowSortingFeature.utils.ts +49 -23
- package/src/features/row-sorting/sortFns.ts +366 -0
- package/src/features/stockFeatures.ts +3 -0
- package/src/helpers/columnHelper.ts +4 -4
- package/src/helpers/metaHelper.ts +24 -0
- package/src/helpers/tableFeatures.ts +37 -5
- package/src/index.ts +8 -8
- package/src/static-functions.ts +1 -0
- package/src/store-reactivity-bindings.ts +1 -1
- package/src/types/Cell.ts +4 -2
- package/src/types/Column.ts +13 -9
- package/src/types/ColumnDef.ts +40 -10
- package/src/types/Header.ts +2 -2
- package/src/types/HeaderGroup.ts +6 -6
- package/src/types/Row.ts +6 -4
- package/src/types/RowModel.ts +19 -74
- package/src/types/RowModelFns.ts +10 -10
- package/src/types/Table.ts +52 -27
- package/src/types/TableFeatures.ts +392 -14
- package/src/types/TableOptions.ts +67 -14
- package/src/types/TableState.ts +15 -1
- package/src/types/type-utils.ts +8 -0
- package/src/utils.ts +60 -8
- package/src/worker/createTableWorker.ts +357 -0
- package/src/worker/createWorkerRowModel.ts +121 -0
- package/src/worker/initTableWorker.ts +164 -0
- package/src/worker/rebuildRowModel.ts +120 -0
- package/src/worker/serializeRowModel.ts +80 -0
- package/src/worker/tableWorkerProtocol.ts +105 -0
- 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 -118
- 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 -110
- package/dist/fns/sortFns.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/fns/aggregationFns.ts +0 -245
- package/src/fns/filterFns.ts +0 -382
- package/src/fns/sortFns.ts +0 -217
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import type { BuiltInAggregationFn } from './aggregationFns'
|
|
2
|
+
import type { Cell } from '../../types/Cell'
|
|
3
|
+
import type { Column } from '../../types/Column'
|
|
4
|
+
import type { ColumnDefTemplate } from '../../types/ColumnDef'
|
|
5
|
+
import type { IsAny, TableFeatures } from '../../types/TableFeatures'
|
|
6
|
+
import type { Row } from '../../types/Row'
|
|
7
|
+
import type { Table } from '../../types/Table'
|
|
8
|
+
import type { CellData, RowData } from '../../types/type-utils'
|
|
9
|
+
|
|
10
|
+
/** Declaration-merging fallback for named aggregation definitions. */
|
|
11
|
+
export interface AggregationFns {}
|
|
12
|
+
|
|
13
|
+
/** Values and table objects available while one aggregation is evaluated. */
|
|
14
|
+
export interface AggregationContext<
|
|
15
|
+
TFeatures extends TableFeatures,
|
|
16
|
+
TData extends RowData,
|
|
17
|
+
TValue = unknown,
|
|
18
|
+
> {
|
|
19
|
+
/** The column whose values are being aggregated. */
|
|
20
|
+
column: Column<TFeatures, TData, TValue>
|
|
21
|
+
/** Convenience alias for `column.id`. */
|
|
22
|
+
columnId: string
|
|
23
|
+
/** Maximum relative sub-row depth used to select `rows`. */
|
|
24
|
+
maxDepth: number
|
|
25
|
+
/**
|
|
26
|
+
* Immediate sub-rows for grouped aggregation. This property is omitted
|
|
27
|
+
* for root or caller-supplied-row aggregation. At a terminal grouping level
|
|
28
|
+
* these are the direct data rows; at a nested level they are sub-row groups.
|
|
29
|
+
*/
|
|
30
|
+
subRows?: ReadonlyArray<Row<TFeatures, TData>>
|
|
31
|
+
/** Reads this column's value from one of `rows`. */
|
|
32
|
+
getValue: (row: Row<TFeatures, TData>) => TValue
|
|
33
|
+
/**
|
|
34
|
+
* The synthetic grouped row receiving this result. This property is omitted
|
|
35
|
+
* for root or caller-supplied-row aggregation. Its `depth` identifies the
|
|
36
|
+
* grouping level when grouped aggregation needs that distinction.
|
|
37
|
+
*/
|
|
38
|
+
groupingRow?: Row<TFeatures, TData>
|
|
39
|
+
/**
|
|
40
|
+
* Unique rows selected at `maxDepth`. Branches that end before `maxDepth`
|
|
41
|
+
* contribute their deepest available row.
|
|
42
|
+
*/
|
|
43
|
+
rows: ReadonlyArray<Row<TFeatures, TData>>
|
|
44
|
+
/** The table that owns the column and rows. */
|
|
45
|
+
table: Table<TFeatures, TData>
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Additional values available when merging nested grouped results. */
|
|
49
|
+
export interface AggregationMergeContext<
|
|
50
|
+
TFeatures extends TableFeatures,
|
|
51
|
+
TData extends RowData,
|
|
52
|
+
TValue,
|
|
53
|
+
TResult,
|
|
54
|
+
> extends AggregationContext<TFeatures, TData, TValue> {
|
|
55
|
+
/** Results produced for each immediate sub-row group, in sub-row order. */
|
|
56
|
+
subRowResults: ReadonlyArray<TResult>
|
|
57
|
+
/** Immediate sub-row groups corresponding to `subRowResults`. */
|
|
58
|
+
subRows: ReadonlyArray<Row<TFeatures, TData>>
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** A context-based aggregation definition and optional grouped-result merge. */
|
|
62
|
+
export interface AggregationFnDef<
|
|
63
|
+
TFeatures extends TableFeatures = any,
|
|
64
|
+
TData extends RowData = any,
|
|
65
|
+
TValue = unknown,
|
|
66
|
+
TResult = unknown,
|
|
67
|
+
> {
|
|
68
|
+
/** Computes a result directly from the selected `rows`. */
|
|
69
|
+
aggregate: (context: AggregationContext<TFeatures, TData, TValue>) => TResult
|
|
70
|
+
/**
|
|
71
|
+
* Combines already-computed immediate sub-row results. When omitted,
|
|
72
|
+
* nested grouping falls back to `aggregate` over the group's selected rows.
|
|
73
|
+
*/
|
|
74
|
+
merge?: (
|
|
75
|
+
context: AggregationMergeContext<TFeatures, TData, TValue, TResult>,
|
|
76
|
+
) => TResult
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Creates a typed context-based aggregation definition for a column or
|
|
81
|
+
* aggregation-function registry.
|
|
82
|
+
*/
|
|
83
|
+
export function constructAggregationFn<
|
|
84
|
+
TFeatures extends TableFeatures = any,
|
|
85
|
+
TData extends RowData = any,
|
|
86
|
+
TValue = unknown,
|
|
87
|
+
TResult = unknown,
|
|
88
|
+
>(
|
|
89
|
+
definition: AggregationFnDef<TFeatures, TData, TValue, TResult>,
|
|
90
|
+
): AggregationFnDef<TFeatures, TData, TValue, TResult> {
|
|
91
|
+
return definition
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Aggregation-definition registry carried by a table feature set. */
|
|
95
|
+
export interface RowModelFns_Aggregation<
|
|
96
|
+
in out TFeatures extends TableFeatures,
|
|
97
|
+
in out TData extends RowData,
|
|
98
|
+
> {
|
|
99
|
+
aggregationFns: Record<string, AggregationFnDef<TFeatures, TData, any, any>>
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Named context-based aggregation definitions registered on a feature set. */
|
|
103
|
+
export type CustomAggregationFns<
|
|
104
|
+
TFeatures extends TableFeatures,
|
|
105
|
+
TData extends RowData,
|
|
106
|
+
> = Record<string, AggregationFnDef<TFeatures, TData, any, any>>
|
|
107
|
+
|
|
108
|
+
/** String names available from a feature set's aggregation registry. */
|
|
109
|
+
export type ExtractAggregationFnKeys<TFeatures extends TableFeatures> =
|
|
110
|
+
IsAny<TFeatures> extends true
|
|
111
|
+
? keyof AggregationFns | BuiltInAggregationFn
|
|
112
|
+
: TFeatures extends { aggregationFns: infer TAggregationFns extends object }
|
|
113
|
+
? Extract<keyof TAggregationFns, string>
|
|
114
|
+
: keyof AggregationFns
|
|
115
|
+
|
|
116
|
+
/** A registered name, automatic inference, or inline aggregation definition. */
|
|
117
|
+
export type AggregationFnRef<
|
|
118
|
+
TFeatures extends TableFeatures,
|
|
119
|
+
TData extends RowData,
|
|
120
|
+
TValue = unknown,
|
|
121
|
+
TResult = unknown,
|
|
122
|
+
> =
|
|
123
|
+
| 'auto'
|
|
124
|
+
| ExtractAggregationFnKeys<TFeatures>
|
|
125
|
+
| AggregationFnDef<TFeatures, TData, TValue, TResult>
|
|
126
|
+
|
|
127
|
+
/** Gives an aggregation reference a stable key in a multiple result. */
|
|
128
|
+
export interface AggregationFnDescriptor<
|
|
129
|
+
TFeatures extends TableFeatures,
|
|
130
|
+
TData extends RowData,
|
|
131
|
+
TValue = unknown,
|
|
132
|
+
TResult = unknown,
|
|
133
|
+
> {
|
|
134
|
+
/** The named, automatic, or inline definition to execute. */
|
|
135
|
+
aggregationFn: AggregationFnRef<TFeatures, TData, TValue, TResult>
|
|
136
|
+
/** Stable key used in the object returned by a multiple aggregation. */
|
|
137
|
+
id: string
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** One named or explicitly keyed entry in a multiple aggregation option. */
|
|
141
|
+
export type AggregationFnListItem<
|
|
142
|
+
TFeatures extends TableFeatures,
|
|
143
|
+
TData extends RowData,
|
|
144
|
+
TValue = unknown,
|
|
145
|
+
> =
|
|
146
|
+
| 'auto'
|
|
147
|
+
| ExtractAggregationFnKeys<TFeatures>
|
|
148
|
+
| AggregationFnDescriptor<TFeatures, TData, TValue, any>
|
|
149
|
+
|
|
150
|
+
/** A scalar aggregation reference or a list that produces a keyed object. */
|
|
151
|
+
export type AggregationFnOption<
|
|
152
|
+
TFeatures extends TableFeatures,
|
|
153
|
+
TData extends RowData,
|
|
154
|
+
TValue = unknown,
|
|
155
|
+
> =
|
|
156
|
+
| AggregationFnRef<TFeatures, TData, TValue, any>
|
|
157
|
+
| ReadonlyArray<AggregationFnListItem<TFeatures, TData, TValue>>
|
|
158
|
+
|
|
159
|
+
/** Extracts the result type produced by an aggregation definition. */
|
|
160
|
+
export type AggregationResultOf<TDefinition> =
|
|
161
|
+
TDefinition extends AggregationFnDef<any, any, any, infer TResult>
|
|
162
|
+
? TResult
|
|
163
|
+
: unknown
|
|
164
|
+
|
|
165
|
+
type RegisteredAggregationDefinition<
|
|
166
|
+
TFeatures extends TableFeatures,
|
|
167
|
+
TKey extends PropertyKey,
|
|
168
|
+
> = TFeatures extends {
|
|
169
|
+
aggregationFns: infer TRegistry extends Record<PropertyKey, unknown>
|
|
170
|
+
}
|
|
171
|
+
? TKey extends keyof TRegistry
|
|
172
|
+
? TRegistry[TKey]
|
|
173
|
+
: never
|
|
174
|
+
: never
|
|
175
|
+
|
|
176
|
+
type AggregationResultOfRef<TRef, TFeatures extends TableFeatures> =
|
|
177
|
+
TRef extends AggregationFnDef<any, any, any, any>
|
|
178
|
+
? AggregationResultOf<TRef>
|
|
179
|
+
: TRef extends 'auto'
|
|
180
|
+
? RegisteredAggregationResult<TFeatures>
|
|
181
|
+
: TRef extends PropertyKey
|
|
182
|
+
? AggregationResultOf<RegisteredAggregationDefinition<TFeatures, TRef>>
|
|
183
|
+
: unknown
|
|
184
|
+
|
|
185
|
+
type AggregationEntryId<TEntry> = TEntry extends string
|
|
186
|
+
? TEntry
|
|
187
|
+
: TEntry extends { id: infer TId extends string }
|
|
188
|
+
? TId
|
|
189
|
+
: never
|
|
190
|
+
|
|
191
|
+
type AggregationEntryDefinition<TEntry> = TEntry extends {
|
|
192
|
+
aggregationFn: infer TDefinition
|
|
193
|
+
}
|
|
194
|
+
? TDefinition
|
|
195
|
+
: TEntry
|
|
196
|
+
|
|
197
|
+
/** Infers the scalar or keyed result produced by an aggregation option. */
|
|
198
|
+
export type AggregationResult<TOption, TFeatures extends TableFeatures = any> =
|
|
199
|
+
TOption extends ReadonlyArray<infer TEntry>
|
|
200
|
+
? {
|
|
201
|
+
[TKey in AggregationEntryId<TEntry>]: AggregationResultOfRef<
|
|
202
|
+
AggregationEntryDefinition<Extract<TEntry, TKey | { id: TKey }>>,
|
|
203
|
+
TFeatures
|
|
204
|
+
>
|
|
205
|
+
}
|
|
206
|
+
: AggregationResultOfRef<TOption, TFeatures>
|
|
207
|
+
|
|
208
|
+
type RegisteredAggregationResult<TFeatures extends TableFeatures> =
|
|
209
|
+
TFeatures extends {
|
|
210
|
+
aggregationFns: infer TRegistry extends Record<string, unknown>
|
|
211
|
+
}
|
|
212
|
+
? AggregationResultOf<TRegistry[keyof TRegistry]>
|
|
213
|
+
: unknown
|
|
214
|
+
|
|
215
|
+
/** Default public result union when a column's precise option is not known. */
|
|
216
|
+
export type ColumnAggregationValue<TFeatures extends TableFeatures> =
|
|
217
|
+
| RegisteredAggregationResult<TFeatures>
|
|
218
|
+
| Record<string, RegisteredAggregationResult<TFeatures> | undefined>
|
|
219
|
+
| undefined
|
|
220
|
+
|
|
221
|
+
/** A validated aggregation entry returned by `column.getAggregationFns()`. */
|
|
222
|
+
export interface ResolvedAggregationFn<
|
|
223
|
+
TFeatures extends TableFeatures,
|
|
224
|
+
TData extends RowData,
|
|
225
|
+
> {
|
|
226
|
+
/** Resolved definition, or `undefined` when configuration is invalid. */
|
|
227
|
+
aggregationFn: AggregationFnDef<TFeatures, TData, any, any> | undefined
|
|
228
|
+
/** Key used for a multiple result; scalar inline definitions have no id. */
|
|
229
|
+
id: string | undefined
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** Column-definition options installed by `rowAggregationFeature`. */
|
|
233
|
+
export interface ColumnDef_Aggregation<
|
|
234
|
+
in out TFeatures extends TableFeatures,
|
|
235
|
+
in out TData extends RowData,
|
|
236
|
+
TValue extends CellData = CellData,
|
|
237
|
+
> {
|
|
238
|
+
/** Renderer used for a grouped row's aggregated cell. */
|
|
239
|
+
aggregatedCell?: ColumnDefTemplate<
|
|
240
|
+
ReturnType<Cell<TFeatures, TData, TValue>['getContext']>
|
|
241
|
+
>
|
|
242
|
+
/**
|
|
243
|
+
* One aggregation reference for a scalar result, or an array for a keyed
|
|
244
|
+
* result object. Inline definitions in an array require an explicit `id`.
|
|
245
|
+
*/
|
|
246
|
+
aggregationFn?: AggregationFnOption<TFeatures, TData, TValue>
|
|
247
|
+
/**
|
|
248
|
+
* Maximum relative sub-row depth used for grouped aggregation and cached
|
|
249
|
+
* default totals. `0` selects the supplied root rows, `1` their direct
|
|
250
|
+
* sub-rows, and so on. Defaults to `0`.
|
|
251
|
+
*/
|
|
252
|
+
maxAggregationDepth?: number
|
|
253
|
+
/**
|
|
254
|
+
* Optionally supplies a precomputed aggregation value for this column.
|
|
255
|
+
* Return `{ value }` to handle the request, including `{ value: undefined }`;
|
|
256
|
+
* return `undefined` to use the local aggregation fallback.
|
|
257
|
+
*/
|
|
258
|
+
getAggregationValue?: (
|
|
259
|
+
context: AggregationValueContext<TFeatures, TData, TValue>,
|
|
260
|
+
) => AggregationValueResult | undefined
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/** Column instance APIs installed by `rowAggregationFeature`. */
|
|
264
|
+
export interface Column_Aggregation<
|
|
265
|
+
in out TFeatures extends TableFeatures,
|
|
266
|
+
in out TData extends RowData,
|
|
267
|
+
> {
|
|
268
|
+
/** Resolves the configured scalar or multiple aggregation definitions. */
|
|
269
|
+
getAggregationFns: () => ReadonlyArray<
|
|
270
|
+
ResolvedAggregationFn<TFeatures, TData>
|
|
271
|
+
>
|
|
272
|
+
/**
|
|
273
|
+
* Aggregates this column over the default pre-grouped row model, or over a
|
|
274
|
+
* caller-provided array of rows. `options.maxDepth` overrides the column's
|
|
275
|
+
* `maxAggregationDepth`. Explicit-row calls are intentionally not cached.
|
|
276
|
+
*/
|
|
277
|
+
getAggregationValue: <TResult = ColumnAggregationValue<TFeatures>>(
|
|
278
|
+
options?: AggregationValueOptions<TFeatures, TData>,
|
|
279
|
+
) => TResult
|
|
280
|
+
/** Infers `sum` for a numeric first row and `extent` for a Date first row. */
|
|
281
|
+
getAutoAggregationFn: () =>
|
|
282
|
+
| AggregationFnDef<TFeatures, TData, any, any>
|
|
283
|
+
| undefined
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/** Options for a caller-requested column aggregation value. */
|
|
287
|
+
export interface AggregationValueOptions<
|
|
288
|
+
in out TFeatures extends TableFeatures,
|
|
289
|
+
in out TData extends RowData,
|
|
290
|
+
> {
|
|
291
|
+
/** Overrides the column's `maxAggregationDepth` for this request. */
|
|
292
|
+
maxDepth?: number
|
|
293
|
+
/** Rows to aggregate instead of the default pre-grouped row model. */
|
|
294
|
+
rows?: ReadonlyArray<Row<TFeatures, TData>>
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Cell instance APIs installed by `rowAggregationFeature`. */
|
|
298
|
+
export interface Cell_Aggregation {
|
|
299
|
+
/** Whether this cell displays an aggregate on a synthetic grouped row. */
|
|
300
|
+
getIsAggregated: () => boolean
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/** Internal per-row cache used while grouped aggregates are evaluated. */
|
|
304
|
+
export interface Row_Aggregation {
|
|
305
|
+
/** Cached aggregate results keyed by column id. */
|
|
306
|
+
_aggregationValuesCache: Record<string, unknown>
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/** Values passed to a column-level aggregation-value provider. */
|
|
310
|
+
export interface AggregationValueContext<
|
|
311
|
+
TFeatures extends TableFeatures,
|
|
312
|
+
TData extends RowData,
|
|
313
|
+
TValue extends CellData = CellData,
|
|
314
|
+
> {
|
|
315
|
+
/** The column whose value was requested. */
|
|
316
|
+
column: Column<TFeatures, TData, TValue>
|
|
317
|
+
/** Maximum relative sub-row depth used for the request. */
|
|
318
|
+
maxDepth: number
|
|
319
|
+
/** Caller-provided rows, or `undefined` for the default row model. */
|
|
320
|
+
rows?: ReadonlyArray<Row<TFeatures, TData>>
|
|
321
|
+
/** The table that owns the column. */
|
|
322
|
+
table: Table<TFeatures, TData>
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/** Marks an aggregation-value override as handled. */
|
|
326
|
+
export interface AggregationValueResult<TResult = unknown> {
|
|
327
|
+
/** The supplied value. `undefined` is still a handled result. */
|
|
328
|
+
value: TResult
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/** Table options installed by `rowAggregationFeature`. */
|
|
332
|
+
export interface TableOptions_Aggregation {
|
|
333
|
+
/**
|
|
334
|
+
* Disables local `column.getAggregationValue()` calculation when a column
|
|
335
|
+
* override does not handle the request. Group values supplied by manually
|
|
336
|
+
* grouped rows remain the responsibility of the data owner.
|
|
337
|
+
*/
|
|
338
|
+
manualAggregation?: boolean
|
|
339
|
+
}
|