@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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { makeObjectMap } from '../../utils'
|
|
1
2
|
import type { CellData, RowData } from '../../types/type-utils'
|
|
2
3
|
import type { TableFeatures } from '../../types/TableFeatures'
|
|
3
4
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
@@ -23,9 +24,16 @@ export function column_getFacetedMinMaxValues<
|
|
|
23
24
|
column: Column_Internal<TFeatures, TData, TValue>,
|
|
24
25
|
table: Table_Internal<TFeatures, TData>,
|
|
25
26
|
): [number, number] | undefined {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const facetedMinMaxValues = (table._rowModels.facetedMinMaxValues ??=
|
|
28
|
+
makeObjectMap())
|
|
29
|
+
let facetedMinMaxValuesFn = facetedMinMaxValues[column.id]
|
|
30
|
+
|
|
31
|
+
if (!facetedMinMaxValuesFn) {
|
|
32
|
+
facetedMinMaxValuesFn = facetedMinMaxValues[column.id] =
|
|
33
|
+
table.options.features.facetedMinMaxValues?.(table, column.id) ??
|
|
34
|
+
(() => undefined)
|
|
35
|
+
}
|
|
36
|
+
|
|
29
37
|
return facetedMinMaxValuesFn()
|
|
30
38
|
}
|
|
31
39
|
|
|
@@ -49,9 +57,17 @@ export function column_getFacetedRowModel<
|
|
|
49
57
|
column: Column_Internal<TFeatures, TData, TValue> | undefined,
|
|
50
58
|
table: Table_Internal<TFeatures, TData>,
|
|
51
59
|
): RowModel<TFeatures, TData> {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
(
|
|
60
|
+
const columnId = column?.id ?? ''
|
|
61
|
+
const facetedRowModels = (table._rowModels.facetedRowModels ??=
|
|
62
|
+
makeObjectMap())
|
|
63
|
+
let facetedRowModelFn = facetedRowModels[columnId]
|
|
64
|
+
|
|
65
|
+
if (!facetedRowModelFn) {
|
|
66
|
+
facetedRowModelFn = facetedRowModels[columnId] =
|
|
67
|
+
table.options.features.facetedRowModel?.(table, columnId) ??
|
|
68
|
+
(() => table.getPreFilteredRowModel())
|
|
69
|
+
}
|
|
70
|
+
|
|
55
71
|
return facetedRowModelFn()
|
|
56
72
|
}
|
|
57
73
|
|
|
@@ -74,9 +90,16 @@ export function column_getFacetedUniqueValues<
|
|
|
74
90
|
column: Column_Internal<TFeatures, TData, TValue>,
|
|
75
91
|
table: Table_Internal<TFeatures, TData>,
|
|
76
92
|
): Map<any, number> {
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
93
|
+
const facetedUniqueValues = (table._rowModels.facetedUniqueValues ??=
|
|
94
|
+
makeObjectMap())
|
|
95
|
+
let facetedUniqueValuesFn = facetedUniqueValues[column.id]
|
|
96
|
+
|
|
97
|
+
if (!facetedUniqueValuesFn) {
|
|
98
|
+
facetedUniqueValuesFn = facetedUniqueValues[column.id] =
|
|
99
|
+
table.options.features.facetedUniqueValues?.(table, column.id) ??
|
|
100
|
+
(() => new Map<any, number>())
|
|
101
|
+
}
|
|
102
|
+
|
|
80
103
|
return facetedUniqueValuesFn()
|
|
81
104
|
}
|
|
82
105
|
|
|
@@ -95,9 +118,13 @@ export function table_getGlobalFacetedMinMaxValues<
|
|
|
95
118
|
TFeatures extends TableFeatures,
|
|
96
119
|
TData extends RowData,
|
|
97
120
|
>(table: Table_Internal<TFeatures, TData>): undefined | [number, number] {
|
|
98
|
-
|
|
99
|
-
table.
|
|
100
|
-
|
|
121
|
+
if (!table._rowModels.globalFacetedMinMaxValues) {
|
|
122
|
+
table._rowModels.globalFacetedMinMaxValues =
|
|
123
|
+
table.options.features.facetedMinMaxValues?.(table, '__global__') ??
|
|
124
|
+
(() => undefined)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const facetedMinMaxValuesFn = table._rowModels.globalFacetedMinMaxValues
|
|
101
128
|
return facetedMinMaxValuesFn()
|
|
102
129
|
}
|
|
103
130
|
|
|
@@ -117,9 +144,13 @@ export function table_getGlobalFacetedRowModel<
|
|
|
117
144
|
TFeatures extends TableFeatures,
|
|
118
145
|
TData extends RowData,
|
|
119
146
|
>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
|
|
120
|
-
|
|
121
|
-
table.
|
|
122
|
-
|
|
147
|
+
if (!table._rowModels.globalFacetedRowModel) {
|
|
148
|
+
table._rowModels.globalFacetedRowModel =
|
|
149
|
+
table.options.features.facetedRowModel?.(table, '__global__') ??
|
|
150
|
+
(() => table.getPreFilteredRowModel())
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const facetedRowModelFn = table._rowModels.globalFacetedRowModel
|
|
123
154
|
return facetedRowModelFn()
|
|
124
155
|
}
|
|
125
156
|
|
|
@@ -138,8 +169,12 @@ export function table_getGlobalFacetedUniqueValues<
|
|
|
138
169
|
TFeatures extends TableFeatures,
|
|
139
170
|
TData extends RowData,
|
|
140
171
|
>(table: Table_Internal<TFeatures, TData>): Map<any, number> {
|
|
141
|
-
|
|
142
|
-
table.
|
|
143
|
-
|
|
172
|
+
if (!table._rowModels.globalFacetedUniqueValues) {
|
|
173
|
+
table._rowModels.globalFacetedUniqueValues =
|
|
174
|
+
table.options.features.facetedUniqueValues?.(table, '__global__') ??
|
|
175
|
+
(() => new Map())
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const facetedUniqueValuesFn = table._rowModels.globalFacetedUniqueValues
|
|
144
179
|
return facetedUniqueValuesFn()
|
|
145
180
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { callMemoOrStaticFn, tableMemo } from '../../utils'
|
|
2
|
-
import {
|
|
2
|
+
import { column_getCanGlobalFilter } from '../global-filtering/globalFilteringFeature.utils'
|
|
3
|
+
import {
|
|
4
|
+
column_getFacetedRowModel,
|
|
5
|
+
table_getGlobalFacetedRowModel,
|
|
6
|
+
} from './columnFacetingFeature.utils'
|
|
3
7
|
import type { Row } from '../../types/Row'
|
|
4
8
|
import type { Table, Table_Internal } from '../../types/Table'
|
|
5
9
|
import type { TableFeatures } from '../../types/TableFeatures'
|
|
@@ -21,9 +25,18 @@ export function createFacetedMinMaxValues<
|
|
|
21
25
|
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
22
26
|
return tableMemo({
|
|
23
27
|
feature: 'columnFacetingFeature',
|
|
24
|
-
fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows),
|
|
28
|
+
fn: (flatRows) => _createFacetedMinMaxValues(table, columnId, flatRows),
|
|
25
29
|
fnName: 'table.getFacetedMinMaxValues',
|
|
26
30
|
memoDeps: () => {
|
|
31
|
+
if (columnId === '__global__') {
|
|
32
|
+
return [
|
|
33
|
+
callMemoOrStaticFn(
|
|
34
|
+
table,
|
|
35
|
+
'getGlobalFacetedRowModel',
|
|
36
|
+
table_getGlobalFacetedRowModel,
|
|
37
|
+
).flatRows,
|
|
38
|
+
]
|
|
39
|
+
}
|
|
27
40
|
const column = table.getColumn(columnId)
|
|
28
41
|
if (!column) return [table.getPreFilteredRowModel().flatRows]
|
|
29
42
|
return [
|
|
@@ -44,21 +57,34 @@ function _createFacetedMinMaxValues<
|
|
|
44
57
|
TFeatures extends TableFeatures,
|
|
45
58
|
TData extends RowData = any,
|
|
46
59
|
>(
|
|
60
|
+
table: Table_Internal<TFeatures, TData>,
|
|
47
61
|
columnId: string,
|
|
48
62
|
flatRows: Array<Row<TFeatures, TData>>,
|
|
49
63
|
): undefined | [number, number] {
|
|
50
64
|
if (!flatRows.length) return undefined
|
|
51
65
|
|
|
66
|
+
// The global context aggregates values across every column that
|
|
67
|
+
// participates in global filtering
|
|
68
|
+
const columnIds =
|
|
69
|
+
columnId === '__global__'
|
|
70
|
+
? table
|
|
71
|
+
.getAllLeafColumns()
|
|
72
|
+
.filter((column) => column_getCanGlobalFilter(column))
|
|
73
|
+
.map((column) => column.id)
|
|
74
|
+
: [columnId]
|
|
75
|
+
|
|
52
76
|
let facetedMinValue = Number.POSITIVE_INFINITY
|
|
53
77
|
let facetedMaxValue = Number.NEGATIVE_INFINITY
|
|
54
78
|
let foundAny = false
|
|
55
79
|
|
|
56
80
|
for (let i = 0; i < flatRows.length; i++) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
81
|
+
for (let c = 0; c < columnIds.length; c++) {
|
|
82
|
+
const value = Number(flatRows[i]!.getValue(columnIds[c]!))
|
|
83
|
+
if (Number.isNaN(value)) continue
|
|
84
|
+
foundAny = true
|
|
85
|
+
if (value < facetedMinValue) facetedMinValue = value
|
|
86
|
+
if (value > facetedMaxValue) facetedMaxValue = value
|
|
87
|
+
}
|
|
62
88
|
}
|
|
63
89
|
|
|
64
90
|
if (!foundAny) return undefined
|
|
@@ -67,7 +67,14 @@ function _createFacetedRowModel<
|
|
|
67
67
|
if (id !== columnId) filterableIds.push(id)
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
// The global context excludes the global filter itself, mirroring how a
|
|
71
|
+
// column's faceted model excludes that column's own filter
|
|
72
|
+
if (globalFilter && columnId !== '__global__')
|
|
73
|
+
filterableIds.push('__global__')
|
|
74
|
+
|
|
75
|
+
if (!filterableIds.length) {
|
|
76
|
+
return preRowModel
|
|
77
|
+
}
|
|
71
78
|
|
|
72
79
|
const filterRowsImpl = (
|
|
73
80
|
row: Row<TFeatures, TData> & Partial<Row_ColumnFiltering<TFeatures, TData>>,
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { callMemoOrStaticFn, tableMemo } from '../../utils'
|
|
2
|
-
import {
|
|
2
|
+
import { column_getCanGlobalFilter } from '../global-filtering/globalFilteringFeature.utils'
|
|
3
|
+
import {
|
|
4
|
+
column_getFacetedRowModel,
|
|
5
|
+
table_getGlobalFacetedRowModel,
|
|
6
|
+
} from './columnFacetingFeature.utils'
|
|
3
7
|
import type { Row } from '../../types/Row'
|
|
4
8
|
import type { Table, Table_Internal } from '../../types/Table'
|
|
5
9
|
import type { TableFeatures } from '../../types/TableFeatures'
|
|
@@ -24,6 +28,15 @@ export function createFacetedUniqueValues<
|
|
|
24
28
|
table,
|
|
25
29
|
fnName: 'table.getFacetedUniqueValues',
|
|
26
30
|
memoDeps: () => {
|
|
31
|
+
if (columnId === '__global__') {
|
|
32
|
+
return [
|
|
33
|
+
callMemoOrStaticFn(
|
|
34
|
+
table,
|
|
35
|
+
'getGlobalFacetedRowModel',
|
|
36
|
+
table_getGlobalFacetedRowModel,
|
|
37
|
+
).flatRows,
|
|
38
|
+
]
|
|
39
|
+
}
|
|
27
40
|
const column = table.getColumn(columnId)
|
|
28
41
|
if (!column) return [table.getPreFilteredRowModel().flatRows]
|
|
29
42
|
return [
|
|
@@ -35,7 +48,7 @@ export function createFacetedUniqueValues<
|
|
|
35
48
|
).flatRows,
|
|
36
49
|
]
|
|
37
50
|
},
|
|
38
|
-
fn: (flatRows) => _createFacetedUniqueValues(columnId, flatRows),
|
|
51
|
+
fn: (flatRows) => _createFacetedUniqueValues(table, columnId, flatRows),
|
|
39
52
|
})
|
|
40
53
|
}
|
|
41
54
|
}
|
|
@@ -43,21 +56,39 @@ export function createFacetedUniqueValues<
|
|
|
43
56
|
function _createFacetedUniqueValues<
|
|
44
57
|
TFeatures extends TableFeatures,
|
|
45
58
|
TData extends RowData = any,
|
|
46
|
-
>(
|
|
59
|
+
>(
|
|
60
|
+
table: Table_Internal<TFeatures, TData>,
|
|
61
|
+
columnId: string,
|
|
62
|
+
flatRows: Array<Row<TFeatures, TData>>,
|
|
63
|
+
): Map<any, number> {
|
|
64
|
+
// The global context aggregates unique values across every column that
|
|
65
|
+
// participates in global filtering
|
|
66
|
+
const columnIds =
|
|
67
|
+
columnId === '__global__'
|
|
68
|
+
? table
|
|
69
|
+
.getAllLeafColumns()
|
|
70
|
+
.filter((column) => column_getCanGlobalFilter(column))
|
|
71
|
+
.map((column) => column.id)
|
|
72
|
+
: [columnId]
|
|
73
|
+
|
|
47
74
|
const facetedUniqueValues = new Map<any, number>()
|
|
48
75
|
|
|
49
76
|
for (let i = 0; i < flatRows.length; i++) {
|
|
50
|
-
|
|
77
|
+
for (let c = 0; c < columnIds.length; c++) {
|
|
78
|
+
// the declared return type is Array, but rows return undefined for
|
|
79
|
+
// columns without an accessor (e.g. display columns)
|
|
80
|
+
const values = flatRows[i]!.getUniqueValues(columnIds[c]!) as
|
|
81
|
+
| Array<unknown>
|
|
82
|
+
| undefined
|
|
83
|
+
if (!values) continue
|
|
51
84
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
85
|
+
for (let j = 0; j < values.length; j++) {
|
|
86
|
+
const value = values[j]
|
|
87
|
+
const previousValue = facetedUniqueValues.get(value)
|
|
55
88
|
facetedUniqueValues.set(
|
|
56
89
|
value,
|
|
57
|
-
|
|
90
|
+
previousValue === undefined ? 1 : previousValue + 1,
|
|
58
91
|
)
|
|
59
|
-
} else {
|
|
60
|
-
facetedUniqueValues.set(value, 1)
|
|
61
92
|
}
|
|
62
93
|
}
|
|
63
94
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assignPrototypeAPIs,
|
|
3
3
|
assignTableAPIs,
|
|
4
|
+
makeObjectMap,
|
|
4
5
|
makeStateUpdater,
|
|
5
6
|
} from '../../utils'
|
|
6
7
|
import {
|
|
@@ -69,8 +70,8 @@ export const columnFilteringFeature: TableFeature = {
|
|
|
69
70
|
},
|
|
70
71
|
|
|
71
72
|
initRowInstanceData: (row) => {
|
|
72
|
-
;(row as any).columnFilters =
|
|
73
|
-
;(row as any).columnFiltersMeta =
|
|
73
|
+
;(row as any).columnFilters = makeObjectMap()
|
|
74
|
+
;(row as any).columnFiltersMeta = makeObjectMap()
|
|
74
75
|
},
|
|
75
76
|
|
|
76
77
|
constructTableAPIs: (table) => {
|
|
@@ -1,18 +1,33 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { BuiltInFilterFn } from '../../fns/filterFns'
|
|
1
|
+
import type { BuiltInFilterFn } from './filterFns'
|
|
3
2
|
import type {
|
|
4
3
|
CellData,
|
|
5
4
|
OnChangeFn,
|
|
6
5
|
RowData,
|
|
6
|
+
TransformDataValueFn,
|
|
7
7
|
Updater,
|
|
8
8
|
} from '../../types/type-utils'
|
|
9
|
-
import type { TableFeatures } from '../../types/TableFeatures'
|
|
9
|
+
import type { IsAny, TableFeatures } from '../../types/TableFeatures'
|
|
10
10
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
11
11
|
import type { Row } from '../../types/Row'
|
|
12
12
|
import type { Column } from '../../types/Column'
|
|
13
13
|
|
|
14
14
|
export interface FilterMeta {}
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Resolves the type of the filter meta attached to rows for a feature set.
|
|
18
|
+
*
|
|
19
|
+
* When the features object declares a `filterMeta` type-only slot
|
|
20
|
+
* (`tableFeatures({ ..., filterMeta: {} as MyFilterMeta })`), that type wins.
|
|
21
|
+
* Otherwise this falls back to the global declaration-merged `FilterMeta`
|
|
22
|
+
* interface.
|
|
23
|
+
*/
|
|
24
|
+
export type ExtractFilterMeta<TFeatures extends TableFeatures> =
|
|
25
|
+
IsAny<TFeatures> extends true
|
|
26
|
+
? FilterMeta
|
|
27
|
+
: TFeatures extends { filterMeta: infer TFilterMeta extends object }
|
|
28
|
+
? TFilterMeta
|
|
29
|
+
: FilterMeta
|
|
30
|
+
|
|
16
31
|
export interface FilterFns {}
|
|
17
32
|
|
|
18
33
|
export interface TableState_ColumnFiltering {
|
|
@@ -27,8 +42,8 @@ export interface ColumnFilter {
|
|
|
27
42
|
}
|
|
28
43
|
|
|
29
44
|
export interface ResolvedColumnFilter<
|
|
30
|
-
TFeatures extends TableFeatures,
|
|
31
|
-
TData extends RowData,
|
|
45
|
+
in out TFeatures extends TableFeatures,
|
|
46
|
+
in out TData extends RowData,
|
|
32
47
|
> {
|
|
33
48
|
filterFn: FilterFn<TFeatures, TData>
|
|
34
49
|
id: string
|
|
@@ -36,24 +51,83 @@ export interface ResolvedColumnFilter<
|
|
|
36
51
|
}
|
|
37
52
|
|
|
38
53
|
export interface RowModelFns_ColumnFiltering<
|
|
39
|
-
TFeatures extends TableFeatures,
|
|
40
|
-
TData extends RowData,
|
|
54
|
+
in out TFeatures extends TableFeatures,
|
|
55
|
+
in out TData extends RowData,
|
|
41
56
|
> {
|
|
42
|
-
filterFns: Record<
|
|
57
|
+
filterFns: Record<string, FilterFn<TFeatures, TData>>
|
|
43
58
|
}
|
|
44
59
|
|
|
45
60
|
export interface FilterFn<
|
|
46
|
-
TFeatures extends TableFeatures,
|
|
47
|
-
TData extends RowData,
|
|
61
|
+
in out TFeatures extends TableFeatures,
|
|
62
|
+
in out TData extends RowData,
|
|
48
63
|
> {
|
|
49
64
|
(
|
|
50
65
|
row: Row<TFeatures, TData>,
|
|
51
66
|
columnId: string,
|
|
52
67
|
filterValue: any,
|
|
53
|
-
addMeta?: (meta:
|
|
68
|
+
addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void,
|
|
54
69
|
): boolean
|
|
70
|
+
/**
|
|
71
|
+
* Removes the filter from `state.columnFilters` when the filter value fails
|
|
72
|
+
* this test (e.g. empty strings for text filters).
|
|
73
|
+
*/
|
|
55
74
|
autoRemove?: ColumnFilterAutoRemoveTestFn<TFeatures, TData>
|
|
75
|
+
/**
|
|
76
|
+
* Normalizes the filter value before filtering runs.
|
|
77
|
+
*
|
|
78
|
+
* The table applies this once per filter (not per row) and passes the
|
|
79
|
+
* resolved value to the filter function as `filterValue`.
|
|
80
|
+
*/
|
|
56
81
|
resolveFilterValue?: TransformFilterValueFn<TFeatures, TData>
|
|
82
|
+
/**
|
|
83
|
+
* Normalizes each row's value before it is compared against the filter
|
|
84
|
+
* value. Only honored by filter functions built with `constructFilterFn`
|
|
85
|
+
* (including all built-in filter functions).
|
|
86
|
+
*/
|
|
87
|
+
resolveDataValue?: TransformDataValueFn
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* The definition object accepted by `constructFilterFn`.
|
|
92
|
+
*
|
|
93
|
+
* `filter` is a value-level comparator: it receives the row's (resolved) data
|
|
94
|
+
* value and the (resolved) filter value instead of the whole row, so
|
|
95
|
+
* normalization concerns stay in `resolveDataValue`/`resolveFilterValue`.
|
|
96
|
+
*/
|
|
97
|
+
export interface FilterFnDef<
|
|
98
|
+
in out TFeatures extends TableFeatures,
|
|
99
|
+
in out TData extends RowData,
|
|
100
|
+
> {
|
|
101
|
+
filter: (
|
|
102
|
+
dataValue: any,
|
|
103
|
+
filterValue: any,
|
|
104
|
+
row: Row<TFeatures, TData>,
|
|
105
|
+
columnId: string,
|
|
106
|
+
addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void,
|
|
107
|
+
) => boolean
|
|
108
|
+
autoRemove?: (filterValue: any) => boolean
|
|
109
|
+
resolveFilterValue?: (filterValue: any) => any
|
|
110
|
+
resolveDataValue?: TransformDataValueFn
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* The shape returned by `constructFilterFn`: a `FilterFn` with its definition
|
|
115
|
+
* attached, so variants can be built by spreading it into another
|
|
116
|
+
* `constructFilterFn` call.
|
|
117
|
+
*
|
|
118
|
+
* The call signature is generic so a created filter function can be used with
|
|
119
|
+
* any table's rows, regardless of the feature set it was defined against.
|
|
120
|
+
*/
|
|
121
|
+
export interface CreatedFilterFn<
|
|
122
|
+
in out TFeatures extends TableFeatures,
|
|
123
|
+
in out TData extends RowData,
|
|
124
|
+
> extends FilterFnDef<TFeatures, TData> {
|
|
125
|
+
<TRowFeatures extends TableFeatures, TRowData extends RowData>(
|
|
126
|
+
row: Row<TRowFeatures, TRowData>,
|
|
127
|
+
columnId: string,
|
|
128
|
+
filterValue: any,
|
|
129
|
+
addMeta?: (meta: ExtractFilterMeta<TRowFeatures>) => void,
|
|
130
|
+
): boolean
|
|
57
131
|
}
|
|
58
132
|
|
|
59
133
|
export type TransformFilterValueFn<
|
|
@@ -71,16 +145,33 @@ export type ColumnFilterAutoRemoveTestFn<
|
|
|
71
145
|
export type CustomFilterFns<
|
|
72
146
|
TFeatures extends TableFeatures,
|
|
73
147
|
TData extends RowData,
|
|
74
|
-
> = Record<string, FilterFn<TFeatures,
|
|
148
|
+
> = Record<string, FilterFn<TFeatures, TData>>
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Resolves the valid string names for `columnDef.filterFn` and
|
|
152
|
+
* `options.globalFilterFn` for a feature set.
|
|
153
|
+
*
|
|
154
|
+
* When the features object declares a `filterFns` registry
|
|
155
|
+
* (`tableFeatures({ ..., filterFns })`), its keys are the only valid names; a
|
|
156
|
+
* name is only assignable if a filter function is actually registered for it.
|
|
157
|
+
* Otherwise this falls back to the global declaration-merged `FilterFns`
|
|
158
|
+
* interface.
|
|
159
|
+
*/
|
|
160
|
+
export type ExtractFilterFnKeys<TFeatures extends TableFeatures> =
|
|
161
|
+
IsAny<TFeatures> extends true
|
|
162
|
+
? keyof FilterFns | BuiltInFilterFn
|
|
163
|
+
: TFeatures extends { filterFns: infer TFilterFns extends object }
|
|
164
|
+
? Extract<keyof TFilterFns, string>
|
|
165
|
+
: keyof FilterFns
|
|
75
166
|
|
|
76
167
|
export type FilterFnOption<
|
|
77
168
|
TFeatures extends TableFeatures,
|
|
78
169
|
TData extends RowData,
|
|
79
|
-
> = 'auto' |
|
|
170
|
+
> = 'auto' | ExtractFilterFnKeys<TFeatures> | FilterFn<TFeatures, TData>
|
|
80
171
|
|
|
81
172
|
export interface ColumnDef_ColumnFiltering<
|
|
82
|
-
TFeatures extends TableFeatures,
|
|
83
|
-
TData extends RowData,
|
|
173
|
+
in out TFeatures extends TableFeatures,
|
|
174
|
+
in out TData extends RowData,
|
|
84
175
|
> {
|
|
85
176
|
/**
|
|
86
177
|
* Enables this column to participate in column-specific filtering.
|
|
@@ -96,8 +187,8 @@ export interface ColumnDef_ColumnFiltering<
|
|
|
96
187
|
}
|
|
97
188
|
|
|
98
189
|
export interface Column_ColumnFiltering<
|
|
99
|
-
TFeatures extends TableFeatures,
|
|
100
|
-
TData extends RowData,
|
|
190
|
+
in out TFeatures extends TableFeatures,
|
|
191
|
+
in out TData extends RowData,
|
|
101
192
|
> {
|
|
102
193
|
/**
|
|
103
194
|
* Returns an automatically calculated filter function for the column based off of the columns first known value.
|
|
@@ -133,8 +224,8 @@ export interface Column_ColumnFiltering<
|
|
|
133
224
|
}
|
|
134
225
|
|
|
135
226
|
export interface Row_ColumnFiltering<
|
|
136
|
-
TFeatures extends TableFeatures,
|
|
137
|
-
|
|
227
|
+
in out TFeatures extends TableFeatures,
|
|
228
|
+
in out _TData extends RowData,
|
|
138
229
|
> {
|
|
139
230
|
/**
|
|
140
231
|
* The column filters map for the row. This object tracks whether a row is passing/failing specific filters by their column ID.
|
|
@@ -143,12 +234,12 @@ export interface Row_ColumnFiltering<
|
|
|
143
234
|
/**
|
|
144
235
|
* 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
236
|
*/
|
|
146
|
-
columnFiltersMeta: Record<string,
|
|
237
|
+
columnFiltersMeta: Record<string, ExtractFilterMeta<TFeatures>>
|
|
147
238
|
}
|
|
148
239
|
|
|
149
240
|
export interface TableOptions_ColumnFiltering<
|
|
150
|
-
|
|
151
|
-
|
|
241
|
+
in out _TFeatures extends TableFeatures,
|
|
242
|
+
in out _TData extends RowData,
|
|
152
243
|
> {
|
|
153
244
|
/**
|
|
154
245
|
* Enables column-specific filtering for all columns that also allow it.
|
|
@@ -196,8 +287,8 @@ export interface Table_ColumnFiltering {
|
|
|
196
287
|
}
|
|
197
288
|
|
|
198
289
|
export interface Table_RowModels_Filtered<
|
|
199
|
-
TFeatures extends TableFeatures,
|
|
200
|
-
TData extends RowData,
|
|
290
|
+
in out TFeatures extends TableFeatures,
|
|
291
|
+
in out TData extends RowData,
|
|
201
292
|
> {
|
|
202
293
|
/**
|
|
203
294
|
* Resolves the row model after column and global filters have been applied.
|
|
@@ -209,24 +300,9 @@ export interface Table_RowModels_Filtered<
|
|
|
209
300
|
getPreFilteredRowModel: () => RowModel<TFeatures, TData>
|
|
210
301
|
}
|
|
211
302
|
|
|
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
303
|
export interface CachedRowModel_Filtered<
|
|
228
|
-
TFeatures extends TableFeatures,
|
|
229
|
-
TData extends RowData,
|
|
304
|
+
in out TFeatures extends TableFeatures,
|
|
305
|
+
in out TData extends RowData,
|
|
230
306
|
> {
|
|
231
307
|
filteredRowModel: () => RowModel<TFeatures, TData>
|
|
232
308
|
}
|
|
@@ -27,8 +27,12 @@ export function getDefaultColumnFiltersState(): ColumnFiltersState {
|
|
|
27
27
|
* Chooses a built-in filter function from the column's first core row value.
|
|
28
28
|
*
|
|
29
29
|
* Strings use `includesString`, numbers use `inNumberRange`, booleans and
|
|
30
|
-
* objects use `equals`,
|
|
31
|
-
* to `weakEquals`.
|
|
30
|
+
* objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,
|
|
31
|
+
* and unknown values fall back to `weakEquals`.
|
|
32
|
+
*
|
|
33
|
+
* The chosen filter function is looked up in the table's `filterFns`
|
|
34
|
+
* registry. When it is not registered there, this returns `undefined` and
|
|
35
|
+
* warns in development instead of substituting a different filter function.
|
|
32
36
|
*
|
|
33
37
|
* @example
|
|
34
38
|
* ```ts
|
|
@@ -40,34 +44,40 @@ export function column_getAutoFilterFn<
|
|
|
40
44
|
TData extends RowData,
|
|
41
45
|
TValue extends CellData = CellData,
|
|
42
46
|
>(column: Column_Internal<TFeatures, TData, TValue>) {
|
|
43
|
-
const filterFns: Record<string, FilterFn<TFeatures,
|
|
47
|
+
const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
|
|
44
48
|
column.table._rowModelFns.filterFns
|
|
45
49
|
|
|
46
50
|
const firstRow = column.table.getCoreRowModel().flatRows[0]
|
|
47
51
|
|
|
48
52
|
const value = firstRow ? firstRow.getValue(column.id) : undefined
|
|
49
53
|
|
|
50
|
-
|
|
51
|
-
return filterFns?.includesString
|
|
52
|
-
}
|
|
54
|
+
let filterFnName: string
|
|
53
55
|
|
|
54
|
-
if (typeof value === '
|
|
55
|
-
|
|
56
|
+
if (typeof value === 'string') {
|
|
57
|
+
filterFnName = 'includesString'
|
|
58
|
+
} else if (typeof value === 'number') {
|
|
59
|
+
filterFnName = 'inNumberRange'
|
|
60
|
+
} else if (typeof value === 'boolean') {
|
|
61
|
+
filterFnName = 'equals'
|
|
62
|
+
} else if (Array.isArray(value)) {
|
|
63
|
+
filterFnName = 'arrIncludes'
|
|
64
|
+
} else if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
65
|
+
filterFnName = 'inDateRange'
|
|
66
|
+
} else if (value !== null && typeof value === 'object') {
|
|
67
|
+
filterFnName = 'equals'
|
|
68
|
+
} else {
|
|
69
|
+
filterFnName = 'weakEquals'
|
|
56
70
|
}
|
|
57
71
|
|
|
58
|
-
|
|
59
|
-
return filterFns?.equals
|
|
60
|
-
}
|
|
72
|
+
const filterFn = filterFns?.[filterFnName]
|
|
61
73
|
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (Array.isArray(value)) {
|
|
67
|
-
return filterFns?.arrIncludes
|
|
74
|
+
if (process.env.NODE_ENV === 'development' && !filterFn) {
|
|
75
|
+
console.warn(
|
|
76
|
+
`filterFn '${filterFnName}' (auto) for column '${column.id}' is not registered`,
|
|
77
|
+
)
|
|
68
78
|
}
|
|
69
79
|
|
|
70
|
-
return
|
|
80
|
+
return filterFn
|
|
71
81
|
}
|
|
72
82
|
|
|
73
83
|
/**
|
|
@@ -90,7 +100,7 @@ export function column_getFilterFn<
|
|
|
90
100
|
column: Column_Internal<TFeatures, TData, TValue>,
|
|
91
101
|
): FilterFn<TFeatures, TData> | undefined {
|
|
92
102
|
let filterFn = null
|
|
93
|
-
const filterFns: Record<string, FilterFn<TFeatures,
|
|
103
|
+
const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
|
|
94
104
|
column.table._rowModelFns.filterFns
|
|
95
105
|
filterFn = isFunction(column.columnDef.filterFn)
|
|
96
106
|
? column.columnDef.filterFn
|
|
@@ -98,13 +108,17 @@ export function column_getFilterFn<
|
|
|
98
108
|
? column_getAutoFilterFn(column)
|
|
99
109
|
: filterFns?.[column.columnDef.filterFn as string]
|
|
100
110
|
|
|
101
|
-
if (
|
|
111
|
+
if (
|
|
112
|
+
process.env.NODE_ENV === 'development' &&
|
|
113
|
+
!filterFn &&
|
|
114
|
+
column.columnDef.filterFn !== 'auto' // the auto picker warns on its own
|
|
115
|
+
) {
|
|
102
116
|
console.warn(
|
|
103
|
-
`
|
|
117
|
+
`filterFn '${String(column.columnDef.filterFn)}' for column '${column.id}' is not registered`,
|
|
104
118
|
)
|
|
105
119
|
}
|
|
106
120
|
|
|
107
|
-
return filterFn
|
|
121
|
+
return filterFn ?? undefined
|
|
108
122
|
}
|
|
109
123
|
|
|
110
124
|
/**
|
|
@@ -323,7 +337,7 @@ export function shouldAutoRemoveFilter<
|
|
|
323
337
|
) {
|
|
324
338
|
return (
|
|
325
339
|
(filterFn && filterFn.autoRemove
|
|
326
|
-
? filterFn.autoRemove(value, column as
|
|
340
|
+
? filterFn.autoRemove(value, column as any)
|
|
327
341
|
: false) ||
|
|
328
342
|
typeof value === 'undefined' ||
|
|
329
343
|
(typeof value === 'string' && !value)
|