@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,4 +1,4 @@
|
|
|
1
|
-
import { tableMemo } from '../../utils'
|
|
1
|
+
import { copyInstancePropertiesWithoutMemos, tableMemo } from '../../utils'
|
|
2
2
|
import { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'
|
|
3
3
|
import { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'
|
|
4
4
|
import type { Column_Internal } from '../../types/Column'
|
|
@@ -6,23 +6,27 @@ import type { TableFeatures } from '../../types/TableFeatures'
|
|
|
6
6
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
7
7
|
import type { Table, Table_Internal } from '../../types/Table'
|
|
8
8
|
import type { Row } from '../../types/Row'
|
|
9
|
-
import type { SortFn
|
|
9
|
+
import type { SortFn } from './rowSortingFeature.types'
|
|
10
10
|
import type { RowData } from '../../types/type-utils'
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Creates a memoized sorted row model factory.
|
|
14
14
|
*
|
|
15
15
|
* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
|
|
16
|
+
*
|
|
17
|
+
* Register the sorting functions you use with the `sortFns` slot on the
|
|
18
|
+
* `features` option:
|
|
19
|
+
* `tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns: { alphanumeric: sortFn_alphanumeric } })`.
|
|
20
|
+
* Importing individual `sortFn_*` functions keeps unused built-ins out of
|
|
21
|
+
* your bundle; sorting functions passed directly to the `sortFn` column
|
|
22
|
+
* option need no registration at all.
|
|
16
23
|
*/
|
|
17
24
|
export function createSortedRowModel<
|
|
18
25
|
TFeatures extends TableFeatures,
|
|
19
26
|
TData extends RowData,
|
|
20
|
-
>(
|
|
21
|
-
sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,
|
|
22
|
-
): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
27
|
+
>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
23
28
|
return (_table) => {
|
|
24
29
|
const table = _table as unknown as Table_Internal<TFeatures, TData>
|
|
25
|
-
if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns
|
|
26
30
|
return tableMemo({
|
|
27
31
|
feature: 'rowSortingFeature',
|
|
28
32
|
table,
|
|
@@ -51,106 +55,134 @@ function _createSortedRowModel<
|
|
|
51
55
|
const sortedFlatRows: Array<Row<TFeatures, TData>> = []
|
|
52
56
|
|
|
53
57
|
// Filter out sortings that correspond to non existing columns
|
|
54
|
-
const availableSorting = sorting.filter((sort) =>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
sortUndefined?: false | -1 | 1 | 'first' | 'last'
|
|
64
|
-
invertSorting?: boolean
|
|
65
|
-
sortFn: SortFn<TFeatures, TData>
|
|
66
|
-
}
|
|
67
|
-
> = {}
|
|
58
|
+
const availableSorting = sorting.filter((sort) => {
|
|
59
|
+
const column = table.getColumn(sort.id)
|
|
60
|
+
return column ? column_getCanSort(column) : false
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
if (!availableSorting.length) {
|
|
64
|
+
return preSortedRowModel
|
|
65
|
+
}
|
|
68
66
|
|
|
69
|
-
|
|
67
|
+
const resolvedSorting: Array<{
|
|
68
|
+
id: string
|
|
69
|
+
desc?: boolean
|
|
70
|
+
sortUndefined?: false | -1 | 1 | 'first' | 'last'
|
|
71
|
+
invertSorting?: boolean
|
|
72
|
+
sortFn: SortFn<TFeatures, TData>
|
|
73
|
+
}> = []
|
|
74
|
+
|
|
75
|
+
for (let i = 0; i < availableSorting.length; i++) {
|
|
76
|
+
const sortEntry = availableSorting[i]!
|
|
70
77
|
const column: Column_Internal<TFeatures, TData> | undefined =
|
|
71
78
|
table.getColumn(sortEntry.id)
|
|
72
|
-
if (!column)
|
|
79
|
+
if (!column) {
|
|
80
|
+
continue
|
|
81
|
+
}
|
|
73
82
|
|
|
74
|
-
|
|
83
|
+
resolvedSorting.push({
|
|
84
|
+
id: sortEntry.id,
|
|
85
|
+
desc: sortEntry.desc,
|
|
75
86
|
sortUndefined: column.columnDef.sortUndefined,
|
|
76
87
|
invertSorting: column.columnDef.invertSorting,
|
|
77
88
|
sortFn: column_getSortFn(column),
|
|
78
|
-
}
|
|
79
|
-
}
|
|
89
|
+
})
|
|
90
|
+
}
|
|
80
91
|
|
|
81
|
-
const
|
|
82
|
-
|
|
92
|
+
const compareRows = (
|
|
93
|
+
rowA: Row<TFeatures, TData>,
|
|
94
|
+
rowB: Row<TFeatures, TData>,
|
|
95
|
+
) => {
|
|
96
|
+
for (let i = 0; i < resolvedSorting.length; i++) {
|
|
97
|
+
const sortEntry = resolvedSorting[i]!
|
|
98
|
+
const sortUndefined = sortEntry.sortUndefined
|
|
99
|
+
const isDesc = sortEntry.desc
|
|
100
|
+
|
|
101
|
+
let sortInt = 0
|
|
102
|
+
|
|
103
|
+
// All sorting ints should always return in ascending order
|
|
104
|
+
if (sortUndefined) {
|
|
105
|
+
const aValue = rowA.getValue(sortEntry.id)
|
|
106
|
+
const bValue = rowB.getValue(sortEntry.id)
|
|
83
107
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const isDesc = sortEntry.desc
|
|
90
|
-
|
|
91
|
-
let sortInt = 0
|
|
92
|
-
|
|
93
|
-
// All sorting ints should always return in ascending order
|
|
94
|
-
if (sortUndefined) {
|
|
95
|
-
const aValue = rowA.getValue(sortEntry.id)
|
|
96
|
-
const bValue = rowB.getValue(sortEntry.id)
|
|
97
|
-
|
|
98
|
-
const aUndefined = aValue === undefined
|
|
99
|
-
const bUndefined = bValue === undefined
|
|
100
|
-
|
|
101
|
-
if (aUndefined || bUndefined) {
|
|
102
|
-
if (sortUndefined === 'first') return aUndefined ? -1 : 1
|
|
103
|
-
if (sortUndefined === 'last') return aUndefined ? 1 : -1
|
|
104
|
-
sortInt =
|
|
105
|
-
aUndefined && bUndefined
|
|
106
|
-
? 0
|
|
107
|
-
: aUndefined
|
|
108
|
-
? sortUndefined
|
|
109
|
-
: -sortUndefined
|
|
110
|
-
}
|
|
108
|
+
const aUndefined = aValue === undefined
|
|
109
|
+
const bUndefined = bValue === undefined
|
|
110
|
+
|
|
111
|
+
if (aUndefined && bUndefined) {
|
|
112
|
+
continue
|
|
111
113
|
}
|
|
112
114
|
|
|
113
|
-
if (
|
|
114
|
-
|
|
115
|
+
if (aUndefined || bUndefined) {
|
|
116
|
+
if (sortUndefined === 'first') return aUndefined ? -1 : 1
|
|
117
|
+
if (sortUndefined === 'last') return aUndefined ? 1 : -1
|
|
118
|
+
sortInt = aUndefined ? sortUndefined : -sortUndefined
|
|
115
119
|
}
|
|
120
|
+
}
|
|
116
121
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
sortInt *= -1
|
|
121
|
-
}
|
|
122
|
+
if (sortInt === 0) {
|
|
123
|
+
sortInt = sortEntry.sortFn(rowA, rowB, sortEntry.id)
|
|
124
|
+
}
|
|
122
125
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
// If sorting is non-zero, take care of desc and inversion
|
|
127
|
+
if (sortInt !== 0) {
|
|
128
|
+
if (isDesc) {
|
|
129
|
+
sortInt *= -1
|
|
130
|
+
}
|
|
126
131
|
|
|
127
|
-
|
|
132
|
+
if (sortEntry.invertSorting) {
|
|
133
|
+
sortInt *= -1
|
|
128
134
|
}
|
|
135
|
+
|
|
136
|
+
return sortInt
|
|
129
137
|
}
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return rowA.index - rowB.index
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const sortData = (
|
|
144
|
+
rows: Array<Row<TFeatures, TData>>,
|
|
145
|
+
): {
|
|
146
|
+
rows: Array<Row<TFeatures, TData>>
|
|
147
|
+
changed: boolean
|
|
148
|
+
} => {
|
|
149
|
+
const sortedData = rows.slice()
|
|
150
|
+
|
|
151
|
+
sortedData.sort(compareRows)
|
|
152
|
+
let changed = false
|
|
132
153
|
|
|
133
154
|
// If there are sub-rows, sort them. Clone only rows that need mutation
|
|
134
155
|
// (i.e. have subRows) so we don't corrupt the source row model.
|
|
135
156
|
for (let i = 0; i < sortedData.length; i++) {
|
|
136
157
|
const row = sortedData[i]!
|
|
158
|
+
if (row !== rows[i]) {
|
|
159
|
+
changed = true
|
|
160
|
+
}
|
|
161
|
+
|
|
137
162
|
if (row.subRows.length) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
163
|
+
const sortedSubRows = sortData(row.subRows)
|
|
164
|
+
|
|
165
|
+
if (sortedSubRows.changed) {
|
|
166
|
+
// Preserve prototype chain so methods like getValue() remain accessible
|
|
167
|
+
const cloned = Object.create(Object.getPrototypeOf(row))
|
|
168
|
+
copyInstancePropertiesWithoutMemos(cloned, row)
|
|
169
|
+
cloned.subRows = sortedSubRows.rows
|
|
170
|
+
sortedData[i] = cloned
|
|
171
|
+
sortedFlatRows.push(cloned)
|
|
172
|
+
changed = true
|
|
173
|
+
} else {
|
|
174
|
+
sortedFlatRows.push(row)
|
|
175
|
+
}
|
|
144
176
|
} else {
|
|
145
177
|
sortedFlatRows.push(row)
|
|
146
178
|
}
|
|
147
179
|
}
|
|
148
180
|
|
|
149
|
-
return sortedData
|
|
181
|
+
return { rows: sortedData, changed }
|
|
150
182
|
}
|
|
151
183
|
|
|
152
184
|
return {
|
|
153
|
-
rows: sortData(preSortedRowModel.rows),
|
|
185
|
+
rows: sortData(preSortedRowModel.rows).rows,
|
|
154
186
|
flatRows: sortedFlatRows,
|
|
155
187
|
rowsById: preSortedRowModel.rowsById,
|
|
156
188
|
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import type { BuiltInSortFn } from './sortFns'
|
|
3
|
+
import type {
|
|
4
|
+
OnChangeFn,
|
|
5
|
+
RowData,
|
|
6
|
+
TransformDataValueFn,
|
|
7
|
+
Updater,
|
|
8
|
+
} from '../../types/type-utils'
|
|
9
|
+
import type { IsAny, TableFeatures } from '../../types/TableFeatures'
|
|
6
10
|
import type { Row } from '../../types/Row'
|
|
7
11
|
|
|
8
12
|
export type SortDirection = 'asc' | 'desc'
|
|
@@ -19,23 +23,70 @@ export interface TableState_RowSorting {
|
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
export interface RowModelFns_RowSorting<
|
|
22
|
-
TFeatures extends TableFeatures,
|
|
23
|
-
TData extends RowData,
|
|
26
|
+
in out TFeatures extends TableFeatures,
|
|
27
|
+
in out TData extends RowData,
|
|
24
28
|
> {
|
|
25
|
-
sortFns: Record<
|
|
29
|
+
sortFns: Record<string, SortFn<TFeatures, TData>>
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
export interface SortFns {}
|
|
29
33
|
|
|
30
34
|
export interface SortFn<
|
|
31
|
-
TFeatures extends TableFeatures,
|
|
32
|
-
TData extends RowData,
|
|
35
|
+
in out TFeatures extends TableFeatures,
|
|
36
|
+
in out TData extends RowData,
|
|
33
37
|
> {
|
|
34
38
|
(
|
|
35
39
|
rowA: Row<TFeatures, TData>,
|
|
36
40
|
rowB: Row<TFeatures, TData>,
|
|
37
41
|
columnId: string,
|
|
38
42
|
): number
|
|
43
|
+
/**
|
|
44
|
+
* Normalizes each row's value before the two sides are compared. Only
|
|
45
|
+
* honored by sorting functions built with `constructSortFn` (including all
|
|
46
|
+
* built-in sorting functions).
|
|
47
|
+
*/
|
|
48
|
+
resolveDataValue?: TransformDataValueFn
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The definition object accepted by `constructSortFn`.
|
|
53
|
+
*
|
|
54
|
+
* `sort` is a value-level comparator: it receives both rows' (resolved) data
|
|
55
|
+
* values instead of the whole rows, so normalization concerns stay in
|
|
56
|
+
* `resolveDataValue`.
|
|
57
|
+
*/
|
|
58
|
+
export interface SortFnDef<
|
|
59
|
+
in out TFeatures extends TableFeatures,
|
|
60
|
+
in out TData extends RowData,
|
|
61
|
+
> {
|
|
62
|
+
sort: (
|
|
63
|
+
dataValueA: any,
|
|
64
|
+
dataValueB: any,
|
|
65
|
+
rowA: Row<TFeatures, TData>,
|
|
66
|
+
rowB: Row<TFeatures, TData>,
|
|
67
|
+
columnId: string,
|
|
68
|
+
) => number
|
|
69
|
+
resolveDataValue?: TransformDataValueFn
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The shape returned by `constructSortFn`: a `SortFn` with its definition
|
|
74
|
+
* attached, so variants can be built by spreading it into another
|
|
75
|
+
* `constructSortFn` call.
|
|
76
|
+
*
|
|
77
|
+
* The call signature is generic so a created sorting function can be used
|
|
78
|
+
* with any table's rows, regardless of the feature set it was defined
|
|
79
|
+
* against.
|
|
80
|
+
*/
|
|
81
|
+
export interface CreatedSortFn<
|
|
82
|
+
in out TFeatures extends TableFeatures,
|
|
83
|
+
in out TData extends RowData,
|
|
84
|
+
> extends SortFnDef<TFeatures, TData> {
|
|
85
|
+
<TRowFeatures extends TableFeatures, TRowData extends RowData>(
|
|
86
|
+
rowA: Row<TRowFeatures, TRowData>,
|
|
87
|
+
rowB: Row<TRowFeatures, TRowData>,
|
|
88
|
+
columnId: string,
|
|
89
|
+
): number
|
|
39
90
|
}
|
|
40
91
|
|
|
41
92
|
export type CustomSortFns<
|
|
@@ -43,14 +94,30 @@ export type CustomSortFns<
|
|
|
43
94
|
TData extends RowData,
|
|
44
95
|
> = Record<string, SortFn<TFeatures, TData>>
|
|
45
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Resolves the valid string names for `columnDef.sortFn` for a feature set.
|
|
99
|
+
*
|
|
100
|
+
* When the features object declares a `sortFns` registry
|
|
101
|
+
* (`tableFeatures({ ..., sortFns })`), its keys are the only valid names; a
|
|
102
|
+
* name is only assignable if a sorting function is actually registered for it.
|
|
103
|
+
* Otherwise this falls back to the global declaration-merged `SortFns`
|
|
104
|
+
* interface.
|
|
105
|
+
*/
|
|
106
|
+
export type ExtractSortFnKeys<TFeatures extends TableFeatures> =
|
|
107
|
+
IsAny<TFeatures> extends true
|
|
108
|
+
? keyof SortFns | BuiltInSortFn
|
|
109
|
+
: TFeatures extends { sortFns: infer TSortFns extends object }
|
|
110
|
+
? Extract<keyof TSortFns, string>
|
|
111
|
+
: keyof SortFns
|
|
112
|
+
|
|
46
113
|
export type SortFnOption<
|
|
47
114
|
TFeatures extends TableFeatures,
|
|
48
115
|
TData extends RowData,
|
|
49
|
-
> = 'auto' |
|
|
116
|
+
> = 'auto' | ExtractSortFnKeys<TFeatures> | SortFn<TFeatures, TData>
|
|
50
117
|
|
|
51
118
|
export interface ColumnDef_RowSorting<
|
|
52
|
-
TFeatures extends TableFeatures,
|
|
53
|
-
TData extends RowData,
|
|
119
|
+
in out TFeatures extends TableFeatures,
|
|
120
|
+
in out TData extends RowData,
|
|
54
121
|
> {
|
|
55
122
|
/**
|
|
56
123
|
* Enables/Disables multi-sorting for this column.
|
|
@@ -87,8 +154,8 @@ export interface ColumnDef_RowSorting<
|
|
|
87
154
|
}
|
|
88
155
|
|
|
89
156
|
export interface Column_RowSorting<
|
|
90
|
-
TFeatures extends TableFeatures,
|
|
91
|
-
TData extends RowData,
|
|
157
|
+
in out TFeatures extends TableFeatures,
|
|
158
|
+
in out TData extends RowData,
|
|
92
159
|
> {
|
|
93
160
|
/**
|
|
94
161
|
* Removes this column from the table's sorting state
|
|
@@ -184,8 +251,8 @@ export interface TableOptions_RowSorting {
|
|
|
184
251
|
}
|
|
185
252
|
|
|
186
253
|
export interface Table_RowSorting<
|
|
187
|
-
|
|
188
|
-
|
|
254
|
+
in out _TFeatures extends TableFeatures,
|
|
255
|
+
in out _TData extends RowData,
|
|
189
256
|
> {
|
|
190
257
|
/**
|
|
191
258
|
* Resets `sorting` to `initialState.sorting`.
|
|
@@ -200,8 +267,8 @@ export interface Table_RowSorting<
|
|
|
200
267
|
}
|
|
201
268
|
|
|
202
269
|
export interface Table_RowModels_Sorted<
|
|
203
|
-
TFeatures extends TableFeatures,
|
|
204
|
-
TData extends RowData,
|
|
270
|
+
in out TFeatures extends TableFeatures,
|
|
271
|
+
in out TData extends RowData,
|
|
205
272
|
> {
|
|
206
273
|
/**
|
|
207
274
|
* Reads the row model immediately before sorting.
|
|
@@ -213,23 +280,9 @@ export interface Table_RowModels_Sorted<
|
|
|
213
280
|
getSortedRowModel: () => RowModel<TFeatures, TData>
|
|
214
281
|
}
|
|
215
282
|
|
|
216
|
-
export interface CreateRowModel_Sorted<
|
|
217
|
-
TFeatures extends TableFeatures,
|
|
218
|
-
TData extends RowData,
|
|
219
|
-
> {
|
|
220
|
-
/**
|
|
221
|
-
* Factory used to retrieve the sorted row model. If using server-side
|
|
222
|
-
* sorting, this is not required. To use client-side sorting, pass the
|
|
223
|
-
* exported `createSortedRowModel()` or implement your own factory.
|
|
224
|
-
*/
|
|
225
|
-
sortedRowModel?: (
|
|
226
|
-
table: Table<TFeatures, TData>,
|
|
227
|
-
) => () => RowModel<TFeatures, TData>
|
|
228
|
-
}
|
|
229
|
-
|
|
230
283
|
export interface CachedRowModel_Sorted<
|
|
231
|
-
TFeatures extends TableFeatures,
|
|
232
|
-
TData extends RowData,
|
|
284
|
+
in out TFeatures extends TableFeatures,
|
|
285
|
+
in out TData extends RowData,
|
|
233
286
|
> {
|
|
234
287
|
sortedRowModel: () => RowModel<TFeatures, TData>
|
|
235
288
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { reSplitAlphaNumeric, sortFn_basic } from '../../fns/sortFns'
|
|
2
1
|
import { cloneState, isFunction } from '../../utils'
|
|
2
|
+
import { reSplitAlphaNumeric, sortFn_basic } from './sortFns'
|
|
3
3
|
import type { CellData, RowData, Updater } from '../../types/type-utils'
|
|
4
4
|
import type { TableFeatures } from '../../types/TableFeatures'
|
|
5
5
|
import type { Table_Internal } from '../../types/Table'
|
|
@@ -89,33 +89,55 @@ export function column_getAutoSortFn<
|
|
|
89
89
|
const sortFns: Record<string, SortFn<TFeatures, TData>> | undefined =
|
|
90
90
|
column.table._rowModelFns.sortFns
|
|
91
91
|
|
|
92
|
-
let sortFn: SortFn<TFeatures, TData> | undefined
|
|
93
|
-
|
|
94
92
|
const firstRows = column.table.getFilteredRowModel().flatRows.slice(0, 10)
|
|
95
93
|
|
|
94
|
+
let sortFnName: string | undefined
|
|
96
95
|
let isString = false
|
|
97
96
|
|
|
98
97
|
for (let i = 0; i < firstRows.length; i++) {
|
|
99
98
|
const value = firstRows[i]!.getValue(column.id)
|
|
100
99
|
|
|
101
100
|
if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
102
|
-
|
|
101
|
+
sortFnName = 'datetime'
|
|
102
|
+
break
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
if (typeof value === 'string') {
|
|
106
106
|
isString = true
|
|
107
107
|
|
|
108
108
|
if (value.split(reSplitAlphaNumeric).length > 1) {
|
|
109
|
-
|
|
109
|
+
sortFnName = 'alphanumeric'
|
|
110
|
+
break
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
114
|
|
|
114
|
-
if (isString) {
|
|
115
|
-
|
|
115
|
+
if (!sortFnName && isString) {
|
|
116
|
+
sortFnName = 'text'
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
|
|
119
|
+
if (sortFnName) {
|
|
120
|
+
let sortFn = sortFns?.[sortFnName]
|
|
121
|
+
|
|
122
|
+
if (!sortFn) {
|
|
123
|
+
if (process.env.NODE_ENV === 'development') {
|
|
124
|
+
console.warn(
|
|
125
|
+
`sortFn '${sortFnName}' (auto) for column '${column.id}' is not registered`,
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// String columns degrade to a registered text sort before basic
|
|
130
|
+
if (sortFnName === 'alphanumeric') {
|
|
131
|
+
sortFn = sortFns?.text
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (sortFn) {
|
|
136
|
+
return sortFn
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return sortFn_basic
|
|
119
141
|
}
|
|
120
142
|
|
|
121
143
|
/**
|
|
@@ -165,11 +187,23 @@ export function column_getSortFn<
|
|
|
165
187
|
const sortFns: Record<string, SortFn<TFeatures, TData>> | undefined =
|
|
166
188
|
column.table._rowModelFns.sortFns
|
|
167
189
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
190
|
+
if (isFunction(column.columnDef.sortFn)) {
|
|
191
|
+
return column.columnDef.sortFn
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (column.columnDef.sortFn === 'auto') {
|
|
195
|
+
return column_getAutoSortFn(column)
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const sortFn = sortFns?.[column.columnDef.sortFn as string]
|
|
199
|
+
|
|
200
|
+
if (process.env.NODE_ENV === 'development' && !sortFn) {
|
|
201
|
+
console.warn(
|
|
202
|
+
`sortFn '${String(column.columnDef.sortFn)}' for column '${column.id}' is not registered`,
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return sortFn ?? sortFn_basic
|
|
173
207
|
}
|
|
174
208
|
|
|
175
209
|
/**
|
|
@@ -193,23 +227,15 @@ export function column_toggleSorting<
|
|
|
193
227
|
desc?: boolean,
|
|
194
228
|
multi?: boolean,
|
|
195
229
|
) {
|
|
196
|
-
// if (column.columns.length) {
|
|
197
|
-
// column.columns.forEach((c, i) => {
|
|
198
|
-
// if (c.id) {
|
|
199
|
-
// table.toggleColumnSorting(c.id, undefined, multi || !!i)
|
|
200
|
-
// }
|
|
201
|
-
// })
|
|
202
|
-
// return
|
|
203
|
-
// }
|
|
204
|
-
|
|
205
230
|
// this needs to be outside of table.setSorting to be in sync with rerender
|
|
206
231
|
const nextSortingOrder = column_getNextSortingOrder(column)
|
|
207
232
|
const hasManualValue = typeof desc !== 'undefined'
|
|
208
233
|
|
|
209
234
|
table_setSorting(column.table, (old) => {
|
|
210
235
|
// Find any existing sorting for this column
|
|
211
|
-
const existingSorting = old.find((d) => d.id === column.id)
|
|
212
236
|
const existingIndex = old.findIndex((d) => d.id === column.id)
|
|
237
|
+
const existingSorting =
|
|
238
|
+
existingIndex === -1 ? undefined : old[existingIndex]
|
|
213
239
|
|
|
214
240
|
let newSorting: SortingState = []
|
|
215
241
|
|