@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.10
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/dist/core/cells/constructCell.d.cts +1 -1
- package/dist/core/cells/constructCell.d.ts +1 -1
- package/dist/core/cells/coreCellsFeature.cjs +11 -20
- package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
- package/dist/core/cells/coreCellsFeature.d.cts +4 -12
- package/dist/core/cells/coreCellsFeature.d.ts +4 -12
- package/dist/core/cells/coreCellsFeature.js +12 -20
- package/dist/core/cells/coreCellsFeature.js.map +1 -1
- package/dist/core/cells/coreCellsFeature.types.d.cts +1 -1
- package/dist/core/cells/coreCellsFeature.types.d.ts +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.ts +1 -1
- package/dist/core/columns/constructColumn.d.cts +1 -1
- package/dist/core/columns/constructColumn.d.ts +1 -1
- package/dist/core/columns/coreColumnsFeature.cjs +59 -68
- package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
- package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
- package/dist/core/columns/coreColumnsFeature.js +60 -68
- package/dist/core/columns/coreColumnsFeature.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.ts +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +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.map +1 -1
- package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
- package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.d.cts +1 -1
- package/dist/core/headers/constructHeader.d.ts +1 -1
- package/dist/core/headers/coreHeadersFeature.cjs +44 -53
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
- package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
- package/dist/core/headers/coreHeadersFeature.js +45 -53
- package/dist/core/headers/coreHeadersFeature.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.ts +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
- package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
- package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
- package/dist/core/row-models/coreRowModelsFeature.js +18 -26
- package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -13
- package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +13 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +2 -2
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +2 -2
- package/dist/core/row-models/coreRowModelsFeature.utils.js +13 -13
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.d.cts +1 -1
- package/dist/core/row-models/createCoreRowModel.d.ts +1 -1
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.d.cts +1 -1
- package/dist/core/rows/constructRow.d.ts +1 -1
- package/dist/core/rows/coreRowsFeature.cjs +27 -36
- package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.d.cts +4 -12
- package/dist/core/rows/coreRowsFeature.d.ts +4 -12
- package/dist/core/rows/coreRowsFeature.js +28 -36
- package/dist/core/rows/coreRowsFeature.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.ts +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.ts +1 -1
- package/dist/core/table/constructTable.cjs +21 -6
- 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 +21 -6
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.cjs +7 -16
- package/dist/core/table/coreTablesFeature.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.d.cts +4 -12
- package/dist/core/table/coreTablesFeature.d.ts +4 -12
- package/dist/core/table/coreTablesFeature.js +8 -16
- package/dist/core/table/coreTablesFeature.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +23 -11
- package/dist/core/table/coreTablesFeature.types.d.ts +23 -11
- package/dist/core/table/coreTablesFeature.utils.cjs +1 -2
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.ts +1 -1
- package/dist/core/table/coreTablesFeature.utils.js +1 -2
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
- package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
- package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
- package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
- package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +4 -25
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +4 -25
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +12 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +12 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- 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.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.cts +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.d.ts +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- 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.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
- package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
- package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
- package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
- package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +31 -17
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +31 -17
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +4 -2
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.d.cts +5 -3
- package/dist/features/column-filtering/createFilteredRowModel.d.ts +5 -3
- package/dist/features/column-filtering/createFilteredRowModel.js +4 -2
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
- package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
- package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
- package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
- package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +17 -13
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +17 -13
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs +5 -2
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -3
- package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -3
- package/dist/features/column-grouping/createGroupedRowModel.js +5 -2
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
- package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
- package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +1 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
- package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
- package/dist/features/column-pinning/columnPinningFeature.js +210 -221
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +13 -13
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +13 -13
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
- package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
- package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
- package/dist/features/column-resizing/columnResizingFeature.js +32 -43
- package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
- package/dist/features/column-sizing/columnSizingFeature.js +113 -125
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +4 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +4 -4
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
- package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
- package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
- package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
- package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
- package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +7 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +7 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.cts +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.d.ts +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
- package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
- package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
- package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
- package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +1 -10
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +1 -10
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.cts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.d.ts +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
- package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
- package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
- package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
- package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +1 -10
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +1 -10
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +1 -1
- package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
- package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
- package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
- package/dist/features/row-pinning/rowPinningFeature.js +56 -67
- package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
- package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
- package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
- package/dist/features/row-selection/rowSelectionFeature.js +66 -77
- package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +10 -6
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js +10 -6
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +4 -2
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.d.cts +5 -3
- package/dist/features/row-sorting/createSortedRowModel.d.ts +5 -3
- package/dist/features/row-sorting/createSortedRowModel.js +4 -2
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
- package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
- package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
- package/dist/features/row-sorting/rowSortingFeature.js +46 -57
- package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +16 -13
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +16 -13
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/fns/aggregationFns.cjs +18 -18
- package/dist/fns/aggregationFns.cjs.map +1 -1
- package/dist/fns/aggregationFns.d.cts +21 -19
- package/dist/fns/aggregationFns.d.ts +21 -19
- package/dist/fns/aggregationFns.js +18 -18
- package/dist/fns/aggregationFns.js.map +1 -1
- package/dist/fns/filterFns.cjs +51 -65
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.d.cts +82 -28
- package/dist/fns/filterFns.d.ts +82 -28
- package/dist/fns/filterFns.js +51 -65
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/fns/sortFns.cjs +18 -6
- package/dist/fns/sortFns.cjs.map +1 -1
- package/dist/fns/sortFns.d.cts +15 -13
- package/dist/fns/sortFns.d.ts +15 -13
- package/dist/fns/sortFns.js +18 -6
- package/dist/fns/sortFns.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 +31 -3
- package/dist/helpers/tableFeatures.cjs.map +1 -1
- package/dist/helpers/tableFeatures.d.cts +33 -5
- package/dist/helpers/tableFeatures.d.ts +33 -5
- package/dist/helpers/tableFeatures.js +31 -3
- package/dist/helpers/tableFeatures.js.map +1 -1
- package/dist/index.cjs +2 -20
- package/dist/index.d.cts +44 -43
- package/dist/index.d.ts +44 -43
- package/dist/index.js +22 -21
- package/dist/store-reactivity-bindings.cjs +1 -1
- 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 +1 -1
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/Cell.d.cts +7 -9
- package/dist/types/Cell.d.ts +7 -9
- package/dist/types/Column.d.cts +18 -11
- package/dist/types/Column.d.ts +18 -11
- package/dist/types/ColumnDef.d.cts +29 -10
- package/dist/types/ColumnDef.d.ts +29 -10
- package/dist/types/Header.d.cts +9 -10
- package/dist/types/Header.d.ts +9 -10
- package/dist/types/HeaderGroup.d.cts +3 -8
- package/dist/types/HeaderGroup.d.ts +3 -8
- package/dist/types/Row.d.cts +14 -10
- package/dist/types/Row.d.ts +14 -10
- package/dist/types/RowModel.d.cts +19 -19
- package/dist/types/RowModel.d.ts +19 -19
- package/dist/types/RowModelFns.d.cts +9 -9
- package/dist/types/RowModelFns.d.ts +9 -9
- package/dist/types/Table.d.cts +25 -15
- package/dist/types/Table.d.ts +25 -15
- package/dist/types/TableFeatures.d.cts +178 -41
- package/dist/types/TableFeatures.d.ts +178 -41
- package/dist/types/TableOptions.d.cts +24 -9
- package/dist/types/TableOptions.d.ts +24 -9
- package/dist/types/TableState.d.cts +22 -13
- package/dist/types/TableState.d.ts +22 -13
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/skills/column-definitions/SKILL.md +3 -6
- package/skills/column-layout/SKILL.md +0 -2
- package/skills/customizing-feature-behavior/SKILL.md +63 -56
- package/skills/filtering/SKILL.md +60 -42
- package/skills/filtering/references/faceting-and-fuzzy.md +59 -32
- package/skills/grouping/SKILL.md +49 -54
- package/skills/migrate-v8-to-v9/SKILL.md +30 -33
- package/skills/pagination/SKILL.md +22 -20
- package/skills/row-expanding/SKILL.md +33 -25
- package/skills/row-pinning/SKILL.md +11 -7
- package/skills/row-selection/SKILL.md +0 -3
- package/skills/setup/SKILL.md +55 -65
- package/skills/sorting/SKILL.md +21 -21
- package/skills/state-management/SKILL.md +40 -25
- package/src/core/cells/coreCellsFeature.ts +17 -39
- package/src/core/columns/coreColumnsFeature.ts +56 -83
- package/src/core/coreFeatures.ts +1 -1
- package/src/core/headers/buildHeaderGroups.ts +1 -1
- package/src/core/headers/coreHeadersFeature.ts +42 -64
- package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
- package/src/core/row-models/coreRowModelsFeature.ts +43 -64
- package/src/core/row-models/coreRowModelsFeature.types.ts +1 -18
- package/src/core/row-models/coreRowModelsFeature.utils.ts +7 -7
- package/src/core/row-models/createCoreRowModel.ts +1 -1
- package/src/core/rows/coreRowsFeature.ts +45 -72
- package/src/core/table/constructTable.ts +49 -12
- package/src/core/table/coreTablesFeature.ts +13 -35
- package/src/core/table/coreTablesFeature.types.ts +33 -10
- package/src/core/table/coreTablesFeature.utils.ts +2 -3
- package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
- package/src/features/column-faceting/columnFacetingFeature.types.ts +3 -36
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +6 -6
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
- package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
- package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
- package/src/features/column-filtering/columnFilteringFeature.types.ts +37 -21
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +2 -2
- package/src/features/column-filtering/createFilteredRowModel.ts +5 -7
- package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
- package/src/features/column-grouping/columnGroupingFeature.types.ts +20 -19
- package/src/features/column-grouping/createGroupedRowModel.ts +7 -11
- package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
- package/src/features/column-pinning/columnPinningFeature.ts +268 -304
- package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
- package/src/features/column-resizing/columnResizingFeature.ts +44 -78
- package/src/features/column-sizing/columnSizingFeature.ts +115 -152
- package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
- package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
- package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
- package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
- package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -14
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
- package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -14
- package/src/features/row-pinning/rowPinningFeature.ts +72 -104
- package/src/features/row-selection/rowSelectionFeature.ts +103 -135
- package/src/features/row-selection/rowSelectionFeature.utils.ts +12 -7
- package/src/features/row-sorting/createSortedRowModel.ts +6 -6
- package/src/features/row-sorting/rowSortingFeature.ts +73 -114
- package/src/features/row-sorting/rowSortingFeature.types.ts +19 -18
- package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
- package/src/fns/aggregationFns.ts +26 -42
- package/src/fns/filterFns.ts +231 -264
- package/src/fns/sortFns.ts +51 -29
- package/src/helpers/metaHelper.ts +24 -0
- package/src/helpers/tableFeatures.ts +36 -5
- package/src/index.ts +1 -0
- package/src/store-reactivity-bindings.ts +1 -1
- package/src/types/Cell.ts +8 -28
- package/src/types/Column.ts +18 -53
- package/src/types/ColumnDef.ts +44 -45
- package/src/types/Header.ts +8 -30
- package/src/types/HeaderGroup.ts +2 -13
- package/src/types/Row.ts +15 -36
- package/src/types/RowModel.ts +21 -111
- package/src/types/RowModelFns.ts +11 -30
- package/src/types/Table.ts +24 -66
- package/src/types/TableFeatures.ts +253 -108
- package/src/types/TableOptions.ts +40 -72
- package/src/types/TableState.ts +20 -73
- package/src/utils.ts +5 -4
|
@@ -15,115 +15,72 @@ import {
|
|
|
15
15
|
table_resetColumnFilters,
|
|
16
16
|
table_setColumnFilters,
|
|
17
17
|
} from './columnFilteringFeature.utils'
|
|
18
|
-
import type {
|
|
19
|
-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
20
|
-
// import type {
|
|
21
|
-
// CachedRowModel_Filtered,
|
|
22
|
-
// ColumnDef_ColumnFiltering,
|
|
23
|
-
// Column_ColumnFiltering,
|
|
24
|
-
// CreateRowModel_Filtered,
|
|
25
|
-
// RowModelFns_ColumnFiltering,
|
|
26
|
-
// Row_ColumnFiltering,
|
|
27
|
-
// TableOptions_ColumnFiltering,
|
|
28
|
-
// TableState_ColumnFiltering,
|
|
29
|
-
// Table_ColumnFiltering,
|
|
30
|
-
// } from './columnFilteringFeature.types'
|
|
31
|
-
|
|
32
|
-
export interface ColumnFilteringFeatureConstructors<
|
|
33
|
-
TFeatures extends TableFeatures,
|
|
34
|
-
TData extends RowData,
|
|
35
|
-
> {
|
|
36
|
-
// CachedRowModel: CachedRowModel_Filtered<TFeatures, TData>
|
|
37
|
-
// Column: Column_ColumnFiltering<TFeatures, TData>
|
|
38
|
-
// ColumnDef: ColumnDef_ColumnFiltering<TFeatures, TData>
|
|
39
|
-
// CreateRowModels: CreateRowModel_Filtered<TFeatures, TData>
|
|
40
|
-
// Row: Row_ColumnFiltering<TFeatures, TData>
|
|
41
|
-
// RowModelFns: RowModelFns_ColumnFiltering<TFeatures, TData>
|
|
42
|
-
// Table: Table_ColumnFiltering<TFeatures, TData>
|
|
43
|
-
// TableOptions: TableOptions_ColumnFiltering<TFeatures, TData>
|
|
44
|
-
// TableState: TableState_ColumnFiltering
|
|
45
|
-
}
|
|
18
|
+
import type { TableFeature } from '../../types/TableFeatures'
|
|
46
19
|
|
|
47
20
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
21
|
+
* Feature that adds per-column filtering state, options, and column/table filter APIs.
|
|
51
22
|
*/
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
columnFilters: getDefaultColumnFiltersState(),
|
|
60
|
-
...initialState,
|
|
61
|
-
}
|
|
62
|
-
},
|
|
23
|
+
export const columnFilteringFeature: TableFeature = {
|
|
24
|
+
getInitialState: (initialState) => {
|
|
25
|
+
return {
|
|
26
|
+
columnFilters: getDefaultColumnFiltersState(),
|
|
27
|
+
...initialState,
|
|
28
|
+
}
|
|
29
|
+
},
|
|
63
30
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
31
|
+
getDefaultColumnDef: () => {
|
|
32
|
+
return {
|
|
33
|
+
filterFn: 'auto',
|
|
34
|
+
}
|
|
35
|
+
},
|
|
69
36
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
37
|
+
getDefaultTableOptions: (table) => {
|
|
38
|
+
return {
|
|
39
|
+
onColumnFiltersChange: makeStateUpdater('columnFilters', table),
|
|
40
|
+
filterFromLeafRows: false,
|
|
41
|
+
maxLeafRowFilterDepth: 100,
|
|
42
|
+
}
|
|
43
|
+
},
|
|
77
44
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
45
|
+
assignColumnPrototype: (prototype, table) => {
|
|
46
|
+
assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
|
|
47
|
+
column_getAutoFilterFn: {
|
|
48
|
+
fn: (column) => column_getAutoFilterFn(column),
|
|
49
|
+
},
|
|
50
|
+
column_getFilterFn: {
|
|
51
|
+
fn: (column) => column_getFilterFn(column),
|
|
52
|
+
},
|
|
53
|
+
column_getCanFilter: {
|
|
54
|
+
fn: (column) => column_getCanFilter(column),
|
|
55
|
+
},
|
|
56
|
+
column_getIsFiltered: {
|
|
57
|
+
fn: (column) => column_getIsFiltered(column),
|
|
58
|
+
},
|
|
59
|
+
column_getFilterValue: {
|
|
60
|
+
fn: (column) => column_getFilterValue(column),
|
|
61
|
+
},
|
|
62
|
+
column_getFilterIndex: {
|
|
63
|
+
fn: (column) => column_getFilterIndex(column),
|
|
64
|
+
},
|
|
65
|
+
column_setFilterValue: {
|
|
66
|
+
fn: (column, value) => column_setFilterValue(column, value),
|
|
67
|
+
},
|
|
68
|
+
})
|
|
69
|
+
},
|
|
103
70
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
71
|
+
initRowInstanceData: (row) => {
|
|
72
|
+
;(row as any).columnFilters = {}
|
|
73
|
+
;(row as any).columnFiltersMeta = {}
|
|
74
|
+
},
|
|
108
75
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
76
|
+
constructTableAPIs: (table) => {
|
|
77
|
+
assignTableAPIs('columnFilteringFeature', table, {
|
|
78
|
+
table_setColumnFilters: {
|
|
79
|
+
fn: (updater) => table_setColumnFilters(table, updater),
|
|
80
|
+
},
|
|
81
|
+
table_resetColumnFilters: {
|
|
82
|
+
fn: (defaultState) => table_resetColumnFilters(table, defaultState),
|
|
83
|
+
},
|
|
84
|
+
})
|
|
85
|
+
},
|
|
120
86
|
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* The stock column filtering feature.
|
|
124
|
-
*
|
|
125
|
-
* Register this feature to add column filter state, filter defaults, and
|
|
126
|
-
* table/row/column APIs for client-side or manual column filtering. Global
|
|
127
|
-
* filtering is provided by `globalFilteringFeature`.
|
|
128
|
-
*/
|
|
129
|
-
export const columnFilteringFeature = constructColumnFilteringFeature()
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Table } from '../../types/Table'
|
|
2
1
|
import type { BuiltInFilterFn } from '../../fns/filterFns'
|
|
3
2
|
import type {
|
|
4
3
|
CellData,
|
|
@@ -6,13 +5,28 @@ import type {
|
|
|
6
5
|
RowData,
|
|
7
6
|
Updater,
|
|
8
7
|
} from '../../types/type-utils'
|
|
9
|
-
import type { TableFeatures } from '../../types/TableFeatures'
|
|
8
|
+
import type { IsAny, TableFeatures } from '../../types/TableFeatures'
|
|
10
9
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
11
10
|
import type { Row } from '../../types/Row'
|
|
12
11
|
import type { Column } from '../../types/Column'
|
|
13
12
|
|
|
14
13
|
export interface FilterMeta {}
|
|
15
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Resolves the type of the filter meta attached to rows for a feature set.
|
|
17
|
+
*
|
|
18
|
+
* When the features object declares a `filterMeta` type-only slot
|
|
19
|
+
* (`tableFeatures({ ..., filterMeta: {} as MyFilterMeta })`), that type wins.
|
|
20
|
+
* Otherwise this falls back to the global declaration-merged `FilterMeta`
|
|
21
|
+
* interface.
|
|
22
|
+
*/
|
|
23
|
+
export type ExtractFilterMeta<TFeatures extends TableFeatures> =
|
|
24
|
+
IsAny<TFeatures> extends true
|
|
25
|
+
? FilterMeta
|
|
26
|
+
: TFeatures extends { filterMeta: infer TFilterMeta extends object }
|
|
27
|
+
? TFilterMeta
|
|
28
|
+
: FilterMeta
|
|
29
|
+
|
|
16
30
|
export interface FilterFns {}
|
|
17
31
|
|
|
18
32
|
export interface TableState_ColumnFiltering {
|
|
@@ -39,7 +53,7 @@ export interface RowModelFns_ColumnFiltering<
|
|
|
39
53
|
TFeatures extends TableFeatures,
|
|
40
54
|
TData extends RowData,
|
|
41
55
|
> {
|
|
42
|
-
filterFns: Record<
|
|
56
|
+
filterFns: Record<string, FilterFn<TFeatures, TData>>
|
|
43
57
|
}
|
|
44
58
|
|
|
45
59
|
export interface FilterFn<
|
|
@@ -50,7 +64,7 @@ export interface FilterFn<
|
|
|
50
64
|
row: Row<TFeatures, TData>,
|
|
51
65
|
columnId: string,
|
|
52
66
|
filterValue: any,
|
|
53
|
-
addMeta?: (meta:
|
|
67
|
+
addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void,
|
|
54
68
|
): boolean
|
|
55
69
|
autoRemove?: ColumnFilterAutoRemoveTestFn<TFeatures, TData>
|
|
56
70
|
resolveFilterValue?: TransformFilterValueFn<TFeatures, TData>
|
|
@@ -73,10 +87,27 @@ export type CustomFilterFns<
|
|
|
73
87
|
TData extends RowData,
|
|
74
88
|
> = Record<string, FilterFn<TFeatures, TData>>
|
|
75
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Resolves the valid string names for `columnDef.filterFn` and
|
|
92
|
+
* `options.globalFilterFn` for a feature set.
|
|
93
|
+
*
|
|
94
|
+
* When the features object declares a `filterFns` registry
|
|
95
|
+
* (`tableFeatures({ ..., filterFns })`), its keys are the only valid names; a
|
|
96
|
+
* name is only assignable if a filter function is actually registered for it.
|
|
97
|
+
* Otherwise this falls back to the global declaration-merged `FilterFns`
|
|
98
|
+
* interface.
|
|
99
|
+
*/
|
|
100
|
+
export type ExtractFilterFnKeys<TFeatures extends TableFeatures> =
|
|
101
|
+
IsAny<TFeatures> extends true
|
|
102
|
+
? keyof FilterFns | BuiltInFilterFn
|
|
103
|
+
: TFeatures extends { filterFns: infer TFilterFns extends object }
|
|
104
|
+
? Extract<keyof TFilterFns, string>
|
|
105
|
+
: keyof FilterFns
|
|
106
|
+
|
|
76
107
|
export type FilterFnOption<
|
|
77
108
|
TFeatures extends TableFeatures,
|
|
78
109
|
TData extends RowData,
|
|
79
|
-
> = 'auto' |
|
|
110
|
+
> = 'auto' | ExtractFilterFnKeys<TFeatures> | FilterFn<TFeatures, TData>
|
|
80
111
|
|
|
81
112
|
export interface ColumnDef_ColumnFiltering<
|
|
82
113
|
TFeatures extends TableFeatures,
|
|
@@ -143,7 +174,7 @@ export interface Row_ColumnFiltering<
|
|
|
143
174
|
/**
|
|
144
175
|
* The column filters meta map for the row. This object tracks any filter meta for a row as optionally provided during the filtering process.
|
|
145
176
|
*/
|
|
146
|
-
columnFiltersMeta: Record<string,
|
|
177
|
+
columnFiltersMeta: Record<string, ExtractFilterMeta<TFeatures>>
|
|
147
178
|
}
|
|
148
179
|
|
|
149
180
|
export interface TableOptions_ColumnFiltering<
|
|
@@ -209,21 +240,6 @@ export interface Table_RowModels_Filtered<
|
|
|
209
240
|
getPreFilteredRowModel: () => RowModel<TFeatures, TData>
|
|
210
241
|
}
|
|
211
242
|
|
|
212
|
-
export interface CreateRowModel_Filtered<
|
|
213
|
-
TFeatures extends TableFeatures,
|
|
214
|
-
TData extends RowData,
|
|
215
|
-
> {
|
|
216
|
-
/**
|
|
217
|
-
* If provided, this factory is called once per table and should return a
|
|
218
|
-
* function that calculates the filtered row model.
|
|
219
|
-
* - For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model.
|
|
220
|
-
* - For client-side filtering, pass the exported `createFilteredRowModel()` or implement your own factory.
|
|
221
|
-
*/
|
|
222
|
-
filteredRowModel?: (
|
|
223
|
-
table: Table<TFeatures, TData>,
|
|
224
|
-
) => () => RowModel<TFeatures, TData>
|
|
225
|
-
}
|
|
226
|
-
|
|
227
243
|
export interface CachedRowModel_Filtered<
|
|
228
244
|
TFeatures extends TableFeatures,
|
|
229
245
|
TData extends RowData,
|
|
@@ -104,7 +104,7 @@ export function column_getFilterFn<
|
|
|
104
104
|
)
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
return filterFn
|
|
107
|
+
return filterFn ?? undefined
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
/**
|
|
@@ -323,7 +323,7 @@ export function shouldAutoRemoveFilter<
|
|
|
323
323
|
) {
|
|
324
324
|
return (
|
|
325
325
|
(filterFn && filterFn.autoRemove
|
|
326
|
-
? filterFn.autoRemove(value, column)
|
|
326
|
+
? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)
|
|
327
327
|
: false) ||
|
|
328
328
|
typeof value === 'undefined' ||
|
|
329
329
|
(typeof value === 'string' && !value)
|
|
@@ -13,8 +13,6 @@ import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
|
13
13
|
import type { Table, Table_Internal } from '../../types/Table'
|
|
14
14
|
import type { Row } from '../../types/Row'
|
|
15
15
|
import type {
|
|
16
|
-
FilterFn,
|
|
17
|
-
FilterFns,
|
|
18
16
|
ResolvedColumnFilter,
|
|
19
17
|
Row_ColumnFiltering,
|
|
20
18
|
} from './columnFilteringFeature.types'
|
|
@@ -23,16 +21,16 @@ import type {
|
|
|
23
21
|
* Creates a memoized filtered row model factory.
|
|
24
22
|
*
|
|
25
23
|
* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
|
|
24
|
+
*
|
|
25
|
+
* Register filter functions with the `filterFns` slot on the `features` option:
|
|
26
|
+
* `tableFeatures({ columnFilteringFeature, filteredRowModel: createFilteredRowModel(), filterFns })`.
|
|
26
27
|
*/
|
|
27
28
|
export function createFilteredRowModel<
|
|
28
29
|
TFeatures extends TableFeatures,
|
|
29
30
|
TData extends RowData = any,
|
|
30
|
-
>(
|
|
31
|
-
filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>,
|
|
32
|
-
): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
31
|
+
>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
33
32
|
return (_table) => {
|
|
34
|
-
const table
|
|
35
|
-
if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns
|
|
33
|
+
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
36
34
|
return tableMemo({
|
|
37
35
|
feature: 'columnFilteringFeature',
|
|
38
36
|
table,
|
|
@@ -20,140 +20,96 @@ import {
|
|
|
20
20
|
table_resetGrouping,
|
|
21
21
|
table_setGrouping,
|
|
22
22
|
} from './columnGroupingFeature.utils'
|
|
23
|
-
import type {
|
|
24
|
-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
25
|
-
// import type {
|
|
26
|
-
// CachedRowModel_Grouped,
|
|
27
|
-
// Cell_ColumnGrouping,
|
|
28
|
-
// ColumnDef_ColumnGrouping,
|
|
29
|
-
// Column_ColumnGrouping,
|
|
30
|
-
// CreateRowModel_Grouped,
|
|
31
|
-
// RowModelFns_ColumnGrouping,
|
|
32
|
-
// Row_ColumnGrouping,
|
|
33
|
-
// TableOptions_ColumnGrouping,
|
|
34
|
-
// TableState_ColumnGrouping,
|
|
35
|
-
// Table_ColumnGrouping,
|
|
36
|
-
// } from './columnGroupingFeature.types'
|
|
37
|
-
|
|
38
|
-
export interface ColumnGroupingFeatureConstructors<
|
|
39
|
-
TFeatures extends TableFeatures,
|
|
40
|
-
TData extends RowData,
|
|
41
|
-
> {
|
|
42
|
-
// CachedRowModel: CachedRowModel_Grouped<TFeatures, TData>
|
|
43
|
-
// Cell: Cell_ColumnGrouping
|
|
44
|
-
// Column: Column_ColumnGrouping<TFeatures, TData>
|
|
45
|
-
// ColumnDef: ColumnDef_ColumnGrouping<TFeatures, TData>
|
|
46
|
-
// CreateRowModels: CreateRowModel_Grouped<TFeatures, TData>
|
|
47
|
-
// Row: Row_ColumnGrouping
|
|
48
|
-
// RowModelFns: RowModelFns_ColumnGrouping<TFeatures, TData>
|
|
49
|
-
// Table: Table_ColumnGrouping<TFeatures, TData>
|
|
50
|
-
// TableOptions: TableOptions_ColumnGrouping
|
|
51
|
-
// TableState: TableState_ColumnGrouping
|
|
52
|
-
}
|
|
23
|
+
import type { TableFeature } from '../../types/TableFeatures'
|
|
53
24
|
|
|
54
25
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
|
|
26
|
+
* Feature that adds column grouping state, aggregation defaults, and grouped row APIs.
|
|
58
27
|
*/
|
|
59
|
-
export
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
grouping: getDefaultGroupingState(),
|
|
67
|
-
...initialState,
|
|
68
|
-
}
|
|
69
|
-
},
|
|
28
|
+
export const columnGroupingFeature: TableFeature = {
|
|
29
|
+
getInitialState: (initialState) => {
|
|
30
|
+
return {
|
|
31
|
+
grouping: getDefaultGroupingState(),
|
|
32
|
+
...initialState,
|
|
33
|
+
}
|
|
34
|
+
},
|
|
70
35
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
36
|
+
getDefaultColumnDef: () => {
|
|
37
|
+
return {
|
|
38
|
+
aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
|
|
39
|
+
aggregationFn: 'auto',
|
|
40
|
+
}
|
|
41
|
+
},
|
|
77
42
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
43
|
+
getDefaultTableOptions: (table) => {
|
|
44
|
+
return {
|
|
45
|
+
onGroupingChange: makeStateUpdater('grouping', table),
|
|
46
|
+
groupedColumnMode: 'reorder',
|
|
47
|
+
}
|
|
48
|
+
},
|
|
84
49
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
50
|
+
assignCellPrototype: (prototype, table) => {
|
|
51
|
+
assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
|
|
52
|
+
cell_getIsGrouped: {
|
|
53
|
+
fn: (cell) => cell_getIsGrouped(cell),
|
|
54
|
+
},
|
|
55
|
+
cell_getIsPlaceholder: {
|
|
56
|
+
fn: (cell) => cell_getIsPlaceholder(cell),
|
|
57
|
+
},
|
|
58
|
+
cell_getIsAggregated: {
|
|
59
|
+
fn: (cell) => cell_getIsAggregated(cell),
|
|
60
|
+
},
|
|
61
|
+
})
|
|
62
|
+
},
|
|
98
63
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
64
|
+
assignColumnPrototype: (prototype, table) => {
|
|
65
|
+
assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
|
|
66
|
+
column_toggleGrouping: {
|
|
67
|
+
fn: (column) => column_toggleGrouping(column),
|
|
68
|
+
},
|
|
69
|
+
column_getCanGroup: {
|
|
70
|
+
fn: (column) => column_getCanGroup(column),
|
|
71
|
+
},
|
|
72
|
+
column_getIsGrouped: {
|
|
73
|
+
fn: (column) => column_getIsGrouped(column),
|
|
74
|
+
},
|
|
75
|
+
column_getGroupedIndex: {
|
|
76
|
+
fn: (column) => column_getGroupedIndex(column),
|
|
77
|
+
},
|
|
78
|
+
column_getToggleGroupingHandler: {
|
|
79
|
+
fn: (column) => column_getToggleGroupingHandler(column),
|
|
80
|
+
},
|
|
81
|
+
column_getAutoAggregationFn: {
|
|
82
|
+
fn: (column) => column_getAutoAggregationFn(column),
|
|
83
|
+
},
|
|
84
|
+
column_getAggregationFn: {
|
|
85
|
+
fn: (column) => column_getAggregationFn(column),
|
|
86
|
+
},
|
|
87
|
+
})
|
|
88
|
+
},
|
|
124
89
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
90
|
+
assignRowPrototype: (prototype, table) => {
|
|
91
|
+
assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
|
|
92
|
+
row_getIsGrouped: {
|
|
93
|
+
fn: (row) => row_getIsGrouped(row),
|
|
94
|
+
},
|
|
95
|
+
row_getGroupingValue: {
|
|
96
|
+
fn: (row, columnId) => row_getGroupingValue(row, columnId),
|
|
97
|
+
},
|
|
98
|
+
})
|
|
99
|
+
},
|
|
135
100
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
101
|
+
initRowInstanceData: (row) => {
|
|
102
|
+
;(row as any)._groupingValuesCache = {}
|
|
103
|
+
},
|
|
139
104
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
105
|
+
constructTableAPIs: (table) => {
|
|
106
|
+
assignTableAPIs('columnGroupingFeature', table, {
|
|
107
|
+
table_setGrouping: {
|
|
108
|
+
fn: (updater) => table_setGrouping(table, updater),
|
|
109
|
+
},
|
|
110
|
+
table_resetGrouping: {
|
|
111
|
+
fn: (defaultState) => table_resetGrouping(table, defaultState),
|
|
112
|
+
},
|
|
113
|
+
})
|
|
114
|
+
},
|
|
151
115
|
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* The stock column grouping feature.
|
|
155
|
-
*
|
|
156
|
-
* Register this feature to add grouping state, aggregation defaults, grouped
|
|
157
|
-
* row-model support, and table/row/column/cell grouping APIs.
|
|
158
|
-
*/
|
|
159
|
-
export const columnGroupingFeature = constructColumnGroupingFeature()
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
2
|
-
import type { Table } from '../../types/Table'
|
|
3
2
|
import type { BuiltInAggregationFn } from '../../fns/aggregationFns'
|
|
4
3
|
import type {
|
|
5
4
|
CellData,
|
|
@@ -7,7 +6,7 @@ import type {
|
|
|
7
6
|
RowData,
|
|
8
7
|
Updater,
|
|
9
8
|
} from '../../types/type-utils'
|
|
10
|
-
import type { TableFeatures } from '../../types/TableFeatures'
|
|
9
|
+
import type { IsAny, TableFeatures } from '../../types/TableFeatures'
|
|
11
10
|
import type { Row } from '../../types/Row'
|
|
12
11
|
import type { Cell } from '../../types/Cell'
|
|
13
12
|
import type { ColumnDefTemplate } from '../../types/ColumnDef'
|
|
@@ -22,7 +21,7 @@ export interface RowModelFns_ColumnGrouping<
|
|
|
22
21
|
TFeatures extends TableFeatures,
|
|
23
22
|
TData extends RowData,
|
|
24
23
|
> {
|
|
25
|
-
aggregationFns: Record<
|
|
24
|
+
aggregationFns: Record<string, AggregationFn<TFeatures, TData>>
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
export interface AggregationFns {}
|
|
@@ -41,13 +40,29 @@ export type CustomAggregationFns<
|
|
|
41
40
|
TData extends RowData,
|
|
42
41
|
> = Record<string, AggregationFn<TFeatures, TData>>
|
|
43
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Resolves the valid string names for `columnDef.aggregationFn` for a feature
|
|
45
|
+
* set.
|
|
46
|
+
*
|
|
47
|
+
* When the features object declares an `aggregationFns` registry
|
|
48
|
+
* (`tableFeatures({ ..., aggregationFns })`), its keys are the only valid
|
|
49
|
+
* names; a name is only assignable if an aggregation function is actually
|
|
50
|
+
* registered for it. Otherwise this falls back to the global
|
|
51
|
+
* declaration-merged `AggregationFns` interface.
|
|
52
|
+
*/
|
|
53
|
+
export type ExtractAggregationFnKeys<TFeatures extends TableFeatures> =
|
|
54
|
+
IsAny<TFeatures> extends true
|
|
55
|
+
? keyof AggregationFns | BuiltInAggregationFn
|
|
56
|
+
: TFeatures extends { aggregationFns: infer TAggregationFns extends object }
|
|
57
|
+
? Extract<keyof TAggregationFns, string>
|
|
58
|
+
: keyof AggregationFns
|
|
59
|
+
|
|
44
60
|
export type AggregationFnOption<
|
|
45
61
|
TFeatures extends TableFeatures,
|
|
46
62
|
TData extends RowData,
|
|
47
63
|
> =
|
|
48
64
|
| 'auto'
|
|
49
|
-
|
|
|
50
|
-
| BuiltInAggregationFn
|
|
65
|
+
| ExtractAggregationFnKeys<TFeatures>
|
|
51
66
|
| AggregationFn<TFeatures, TData>
|
|
52
67
|
|
|
53
68
|
export interface ColumnDef_ColumnGrouping<
|
|
@@ -204,20 +219,6 @@ export interface Table_RowModels_Grouped<
|
|
|
204
219
|
getPreGroupedRowModel: () => RowModel<TFeatures, TData>
|
|
205
220
|
}
|
|
206
221
|
|
|
207
|
-
export interface CreateRowModel_Grouped<
|
|
208
|
-
TFeatures extends TableFeatures,
|
|
209
|
-
TData extends RowData,
|
|
210
|
-
> {
|
|
211
|
-
/**
|
|
212
|
-
* Factory used to retrieve the grouped row model. If using server-side
|
|
213
|
-
* grouping, this is not required. To use client-side grouping, pass
|
|
214
|
-
* `createGroupedRowModel()` or implement your own factory.
|
|
215
|
-
*/
|
|
216
|
-
groupedRowModel?: (
|
|
217
|
-
table: Table<TFeatures, TData>,
|
|
218
|
-
) => () => RowModel<TFeatures, TData>
|
|
219
|
-
}
|
|
220
|
-
|
|
221
222
|
export interface CachedRowModel_Grouped<
|
|
222
223
|
TFeatures extends TableFeatures,
|
|
223
224
|
TData extends RowData,
|
|
@@ -8,11 +8,7 @@ import {
|
|
|
8
8
|
row_getGroupingValue,
|
|
9
9
|
} from './columnGroupingFeature.utils'
|
|
10
10
|
import type { Column } from '../../types/Column'
|
|
11
|
-
import type {
|
|
12
|
-
AggregationFn,
|
|
13
|
-
AggregationFns,
|
|
14
|
-
Row_ColumnGrouping,
|
|
15
|
-
} from './columnGroupingFeature.types'
|
|
11
|
+
import type { Row_ColumnGrouping } from './columnGroupingFeature.types'
|
|
16
12
|
import type { TableFeatures } from '../../types/TableFeatures'
|
|
17
13
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
18
14
|
import type { Table, Table_Internal } from '../../types/Table'
|
|
@@ -23,17 +19,17 @@ import type { RowData } from '../../types/type-utils'
|
|
|
23
19
|
* Creates a memoized grouped row model factory.
|
|
24
20
|
*
|
|
25
21
|
* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
|
|
22
|
+
*
|
|
23
|
+
* Register aggregation functions with the `aggregationFns` slot on the
|
|
24
|
+
* `features` option:
|
|
25
|
+
* `tableFeatures({ columnGroupingFeature, groupedRowModel: createGroupedRowModel(), aggregationFns })`.
|
|
26
26
|
*/
|
|
27
27
|
export function createGroupedRowModel<
|
|
28
28
|
TFeatures extends TableFeatures,
|
|
29
29
|
TData extends RowData = any,
|
|
30
|
-
>(
|
|
31
|
-
aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>,
|
|
32
|
-
): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
30
|
+
>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
33
31
|
return (_table) => {
|
|
34
|
-
const table
|
|
35
|
-
if (!table._rowModelFns.aggregationFns)
|
|
36
|
-
table._rowModelFns.aggregationFns = aggregationFns
|
|
32
|
+
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
37
33
|
return tableMemo({
|
|
38
34
|
feature: 'columnGroupingFeature',
|
|
39
35
|
table,
|