@tanstack/table-core 9.0.0-alpha.46 → 9.0.0-alpha.48
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 +10 -0
- package/dist/core/cells/constructCell.cjs +4 -3
- package/dist/core/cells/constructCell.cjs.map +1 -1
- package/dist/core/cells/constructCell.js +4 -3
- package/dist/core/cells/constructCell.js.map +1 -1
- package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
- package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
- package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
- package/dist/core/cells/coreCellsFeature.utils.js +11 -8
- package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
- package/dist/core/columns/constructColumn.cjs +6 -4
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.js +6 -4
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
- package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
- package/dist/core/columns/coreColumnsFeature.utils.cjs +47 -29
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.js +47 -29
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs +27 -19
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.js +27 -19
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/constructHeader.cjs +4 -3
- package/dist/core/headers/constructHeader.cjs.map +1 -1
- package/dist/core/headers/constructHeader.js +4 -3
- package/dist/core/headers/constructHeader.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.cjs +1 -6
- package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.js +2 -7
- package/dist/core/headers/coreHeadersFeature.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
- package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
- package/dist/core/headers/coreHeadersFeature.utils.cjs +43 -36
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +24 -19
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +24 -19
- package/dist/core/headers/coreHeadersFeature.utils.js +44 -37
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/reactivity/coreReactivityFeature.types.d.cts +4 -0
- package/dist/core/reactivity/coreReactivityFeature.types.d.ts +4 -0
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/rows/constructRow.cjs +8 -6
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.js +8 -6
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
- package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
- package/dist/core/rows/coreRowsFeature.utils.cjs +43 -32
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
- package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
- package/dist/core/rows/coreRowsFeature.utils.js +43 -32
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/constructTable.cjs +9 -5
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.js +9 -5
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
- package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
- package/dist/core/table/coreTablesFeature.utils.cjs +7 -3
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
- package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
- package/dist/core/table/coreTablesFeature.utils.js +7 -3
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +8 -5
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +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 +8 -3
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js +8 -3
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +7 -4
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js +7 -4
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs +11 -5
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.js +11 -5
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +46 -29
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +46 -29
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +152 -115
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +116 -95
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +116 -95
- package/dist/features/column-pinning/columnPinningFeature.utils.js +153 -116
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.js +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +28 -4
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.js +28 -4
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +23 -14
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.js +24 -15
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +19 -12
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +19 -12
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +91 -52
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +63 -40
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +63 -40
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +91 -53
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +58 -43
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +58 -43
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +52 -36
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.js +52 -36
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +95 -72
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.js +95 -72
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs +13 -8
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.js +13 -8
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +63 -46
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
- package/dist/features/row-sorting/rowSortingFeature.utils.js +63 -46
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/fns/aggregationFns.cjs +47 -16
- package/dist/fns/aggregationFns.cjs.map +1 -1
- package/dist/fns/aggregationFns.d.cts +33 -9
- package/dist/fns/aggregationFns.d.ts +33 -9
- package/dist/fns/aggregationFns.js +47 -17
- package/dist/fns/aggregationFns.js.map +1 -1
- package/dist/fns/filterFns.cjs +48 -17
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.d.cts +42 -15
- package/dist/fns/filterFns.d.ts +42 -15
- package/dist/fns/filterFns.js +48 -17
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/helpers/columnHelper.cjs +9 -4
- package/dist/helpers/columnHelper.cjs.map +1 -1
- package/dist/helpers/columnHelper.d.cts +9 -4
- package/dist/helpers/columnHelper.d.ts +9 -4
- package/dist/helpers/columnHelper.js +9 -4
- package/dist/helpers/columnHelper.js.map +1 -1
- package/dist/helpers/tableOptions.cjs.map +1 -1
- package/dist/helpers/tableOptions.d.cts +12 -9
- package/dist/helpers/tableOptions.d.ts +12 -9
- package/dist/helpers/tableOptions.js.map +1 -1
- package/dist/index.cjs +0 -4
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/static-functions.cjs +1 -0
- package/dist/static-functions.d.cts +2 -2
- package/dist/static-functions.d.ts +2 -2
- package/dist/static-functions.js +2 -2
- package/dist/store-reactivity-bindings.cjs +1 -0
- package/dist/store-reactivity-bindings.cjs.map +1 -1
- package/dist/store-reactivity-bindings.js +1 -0
- package/dist/store-reactivity-bindings.js.map +1 -1
- package/dist/types/ColumnDef.d.cts +38 -0
- package/dist/types/ColumnDef.d.ts +38 -0
- package/dist/types/TableOptions.d.cts +15 -0
- package/dist/types/TableOptions.d.ts +15 -0
- package/dist/types/TableState.d.cts +12 -0
- package/dist/types/TableState.d.ts +12 -0
- package/dist/utils.cjs +18 -39
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -23
- package/dist/utils.d.ts +1 -23
- package/dist/utils.js +19 -36
- package/dist/utils.js.map +1 -1
- package/package.json +5 -3
- package/skills/column-definitions/SKILL.md +333 -0
- package/skills/column-layout/SKILL.md +328 -0
- package/skills/column-layout/references/subsystems.md +220 -0
- package/skills/customizing-feature-behavior/SKILL.md +416 -0
- package/skills/filtering/SKILL.md +357 -0
- package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
- package/skills/grouping/SKILL.md +448 -0
- package/skills/migrate-v8-to-v9/SKILL.md +495 -0
- package/skills/pagination/SKILL.md +385 -0
- package/skills/row-expanding/SKILL.md +348 -0
- package/skills/row-pinning/SKILL.md +269 -0
- package/skills/row-selection/SKILL.md +391 -0
- package/skills/setup/SKILL.md +400 -0
- package/skills/sorting/SKILL.md +344 -0
- package/skills/state-management/SKILL.md +388 -0
- package/src/core/cells/constructCell.ts +3 -2
- package/src/core/cells/coreCellsFeature.utils.ts +11 -8
- package/src/core/columns/constructColumn.ts +5 -3
- package/src/core/columns/coreColumnsFeature.types.ts +7 -6
- package/src/core/columns/coreColumnsFeature.utils.ts +43 -29
- package/src/core/headers/buildHeaderGroups.ts +29 -30
- package/src/core/headers/constructHeader.ts +3 -2
- package/src/core/headers/coreHeadersFeature.ts +2 -27
- package/src/core/headers/coreHeadersFeature.types.ts +6 -4
- package/src/core/headers/coreHeadersFeature.utils.ts +52 -61
- package/src/core/reactivity/coreReactivityFeature.types.ts +4 -0
- package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
- package/src/core/rows/constructRow.ts +6 -4
- package/src/core/rows/coreRowsFeature.types.ts +4 -4
- package/src/core/rows/coreRowsFeature.utils.ts +45 -32
- package/src/core/table/constructTable.ts +6 -4
- package/src/core/table/coreTablesFeature.types.ts +6 -2
- package/src/core/table/coreTablesFeature.utils.ts +5 -3
- package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +8 -10
- package/src/features/column-faceting/createFacetedRowModel.ts +10 -6
- package/src/features/column-faceting/createFacetedUniqueValues.ts +4 -3
- package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
- package/src/features/column-filtering/createFilteredRowModel.ts +14 -8
- package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
- package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +44 -29
- package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
- package/src/features/column-pinning/columnPinningFeature.utils.ts +164 -128
- package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
- package/src/features/column-resizing/columnResizingFeature.utils.ts +28 -19
- package/src/features/column-sizing/columnSizingFeature.ts +16 -0
- package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
- package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
- package/src/features/column-visibility/columnVisibilityFeature.ts +8 -0
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +22 -12
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +101 -56
- package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
- package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +58 -43
- package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
- package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
- package/src/features/row-pinning/rowPinningFeature.utils.ts +59 -47
- package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
- package/src/features/row-selection/rowSelectionFeature.utils.ts +109 -88
- package/src/features/row-sorting/createSortedRowModel.ts +16 -13
- package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
- package/src/features/row-sorting/rowSortingFeature.utils.ts +63 -46
- package/src/fns/aggregationFns.ts +53 -17
- package/src/fns/filterFns.ts +48 -17
- package/src/helpers/columnHelper.ts +9 -4
- package/src/helpers/tableOptions.ts +12 -9
- package/src/store-reactivity-bindings.ts +1 -0
- package/src/types/ColumnDef.ts +38 -0
- package/src/types/TableOptions.ts +15 -0
- package/src/types/TableState.ts +12 -0
- package/src/utils.ts +19 -46
|
@@ -3,9 +3,10 @@ import type { TableFeatures } from '../types/TableFeatures'
|
|
|
3
3
|
import type { TableOptions } from '../types/TableOptions'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Preserves table option inference when reusable options omit `columns`.
|
|
7
7
|
*
|
|
8
|
-
* This
|
|
8
|
+
* This is useful for composing shared options that will receive columns later
|
|
9
|
+
* from a framework adapter or table factory.
|
|
9
10
|
*/
|
|
10
11
|
export function tableOptions<
|
|
11
12
|
TFeatures extends TableFeatures,
|
|
@@ -19,7 +20,7 @@ export function tableOptions<
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
+
* Preserves table option inference when reusable options omit `data`.
|
|
23
24
|
*/
|
|
24
25
|
export function tableOptions<
|
|
25
26
|
TFeatures extends TableFeatures,
|
|
@@ -33,7 +34,8 @@ export function tableOptions<
|
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
/**
|
|
36
|
-
*
|
|
37
|
+
* Preserves table option inference when reusable options omit both `data` and
|
|
38
|
+
* `columns`.
|
|
37
39
|
*/
|
|
38
40
|
export function tableOptions<
|
|
39
41
|
TFeatures extends TableFeatures,
|
|
@@ -47,7 +49,7 @@ export function tableOptions<
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
/**
|
|
50
|
-
*
|
|
52
|
+
* Preserves inference for a fully specified table options object.
|
|
51
53
|
*/
|
|
52
54
|
export function tableOptions<
|
|
53
55
|
TFeatures extends TableFeatures,
|
|
@@ -55,7 +57,7 @@ export function tableOptions<
|
|
|
55
57
|
>(options: TableOptions<TFeatures, TData>): TableOptions<TFeatures, TData>
|
|
56
58
|
|
|
57
59
|
/**
|
|
58
|
-
*
|
|
60
|
+
* Preserves inference when a wrapper supplies `_features`.
|
|
59
61
|
*/
|
|
60
62
|
export function tableOptions<
|
|
61
63
|
TFeatures extends TableFeatures,
|
|
@@ -65,7 +67,7 @@ export function tableOptions<
|
|
|
65
67
|
): Omit<TableOptions<TFeatures, TData>, '_features'>
|
|
66
68
|
|
|
67
69
|
/**
|
|
68
|
-
*
|
|
70
|
+
* Preserves inference when a wrapper supplies both `data` and `_features`.
|
|
69
71
|
*/
|
|
70
72
|
export function tableOptions<
|
|
71
73
|
TFeatures extends TableFeatures,
|
|
@@ -75,7 +77,7 @@ export function tableOptions<
|
|
|
75
77
|
): Omit<TableOptions<TFeatures, TData>, 'data' | '_features'>
|
|
76
78
|
|
|
77
79
|
/**
|
|
78
|
-
*
|
|
80
|
+
* Preserves inference when a wrapper supplies both `columns` and `_features`.
|
|
79
81
|
*/
|
|
80
82
|
export function tableOptions<
|
|
81
83
|
TFeatures extends TableFeatures,
|
|
@@ -85,7 +87,8 @@ export function tableOptions<
|
|
|
85
87
|
): Omit<TableOptions<TFeatures, TData>, 'columns' | '_features'>
|
|
86
88
|
|
|
87
89
|
/**
|
|
88
|
-
*
|
|
90
|
+
* Preserves inference when a wrapper supplies `data`, `columns`, and
|
|
91
|
+
* `_features`.
|
|
89
92
|
*/
|
|
90
93
|
export function tableOptions<
|
|
91
94
|
TFeatures extends TableFeatures,
|
|
@@ -20,6 +20,7 @@ export function storeReactivityBindings(): TableReactivityBindings {
|
|
|
20
20
|
return {
|
|
21
21
|
createOptionsStore: true,
|
|
22
22
|
batch,
|
|
23
|
+
schedule: (fn) => queueMicrotask(fn),
|
|
23
24
|
untrack: (fn) => fn(),
|
|
24
25
|
createReadonlyAtom: (fn, options) => {
|
|
25
26
|
return createAtom(() => fn(), {
|
package/src/types/ColumnDef.ts
CHANGED
|
@@ -27,11 +27,23 @@ export interface ColumnMeta<
|
|
|
27
27
|
TValue extends CellData = CellData,
|
|
28
28
|
> {}
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Reads a cell value from an original row object.
|
|
32
|
+
*
|
|
33
|
+
* The row index is provided for accessors that need stable position-aware
|
|
34
|
+
* derived values.
|
|
35
|
+
*/
|
|
30
36
|
export type AccessorFn<
|
|
31
37
|
TData extends RowData,
|
|
32
38
|
TValue extends CellData = CellData,
|
|
33
39
|
> = (originalRow: TData, index: number) => TValue
|
|
34
40
|
|
|
41
|
+
/**
|
|
42
|
+
* A renderable column template value.
|
|
43
|
+
*
|
|
44
|
+
* Strings render directly; functions receive the relevant cell/header context
|
|
45
|
+
* and can return framework-specific render output.
|
|
46
|
+
*/
|
|
35
47
|
export type ColumnDefTemplate<TProps extends object> =
|
|
36
48
|
| string
|
|
37
49
|
| ((props: TProps) => any)
|
|
@@ -43,7 +55,13 @@ export type StringOrTemplateHeader<
|
|
|
43
55
|
> = string | ColumnDefTemplate<HeaderContext<TFeatures, TData, TValue>>
|
|
44
56
|
|
|
45
57
|
export interface StringHeaderIdentifier {
|
|
58
|
+
/**
|
|
59
|
+
* Header text used both for rendering and as a fallback column id.
|
|
60
|
+
*/
|
|
46
61
|
header: string
|
|
62
|
+
/**
|
|
63
|
+
* Optional explicit id that overrides the header-derived id.
|
|
64
|
+
*/
|
|
47
65
|
id?: string
|
|
48
66
|
}
|
|
49
67
|
|
|
@@ -52,7 +70,13 @@ export interface IdIdentifier<
|
|
|
52
70
|
TData extends RowData,
|
|
53
71
|
TValue extends CellData = CellData,
|
|
54
72
|
> {
|
|
73
|
+
/**
|
|
74
|
+
* Explicit stable column id.
|
|
75
|
+
*/
|
|
55
76
|
id: string
|
|
77
|
+
/**
|
|
78
|
+
* Header text or template used to render this column's header.
|
|
79
|
+
*/
|
|
56
80
|
header?: StringOrTemplateHeader<TFeatures, TData, TValue>
|
|
57
81
|
}
|
|
58
82
|
type ColumnIdentifiers<
|
|
@@ -66,9 +90,23 @@ interface ColumnDefBase_Core<
|
|
|
66
90
|
TData extends RowData,
|
|
67
91
|
TValue extends CellData = CellData,
|
|
68
92
|
> {
|
|
93
|
+
/**
|
|
94
|
+
* Produces the values used by faceting/grouping for this column.
|
|
95
|
+
*
|
|
96
|
+
* When omitted, the normal accessor value is wrapped in a single-item array.
|
|
97
|
+
*/
|
|
69
98
|
getUniqueValues?: AccessorFn<TData, Array<unknown>>
|
|
99
|
+
/**
|
|
100
|
+
* Footer template rendered with header context.
|
|
101
|
+
*/
|
|
70
102
|
footer?: ColumnDefTemplate<HeaderContext<TFeatures, TData, TValue>>
|
|
103
|
+
/**
|
|
104
|
+
* Cell template rendered with cell context.
|
|
105
|
+
*/
|
|
71
106
|
cell?: ColumnDefTemplate<CellContext<TFeatures, TData, TValue>>
|
|
107
|
+
/**
|
|
108
|
+
* User-defined metadata available on the resolved column definition.
|
|
109
|
+
*/
|
|
72
110
|
meta?: ColumnMeta<TFeatures, TData, TValue>
|
|
73
111
|
}
|
|
74
112
|
|
|
@@ -24,6 +24,10 @@ export interface TableOptions_Plugins<
|
|
|
24
24
|
TData extends RowData,
|
|
25
25
|
> {}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Core options that are always available on a table, before optional feature
|
|
29
|
+
* options are mixed in.
|
|
30
|
+
*/
|
|
27
31
|
export interface TableOptions_Core<
|
|
28
32
|
TFeatures extends TableFeatures,
|
|
29
33
|
TData extends RowData,
|
|
@@ -48,6 +52,13 @@ export type DebugOptions<TFeatures extends TableFeatures> = {
|
|
|
48
52
|
debugTable?: boolean
|
|
49
53
|
} & DebugKeysFor<CoreFeatures & TFeatures>
|
|
50
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Complete table options for a specific feature set.
|
|
57
|
+
*
|
|
58
|
+
* Feature options are included only when their feature is present in
|
|
59
|
+
* `TFeatures`, then custom feature/plugin options and debug options are mixed
|
|
60
|
+
* in.
|
|
61
|
+
*/
|
|
51
62
|
export type TableOptions<
|
|
52
63
|
TFeatures extends TableFeatures,
|
|
53
64
|
TData extends RowData,
|
|
@@ -104,6 +115,10 @@ export type TableOptions<
|
|
|
104
115
|
// ExtractFeatureTypes<'TableOptions', TFeatures> &
|
|
105
116
|
// TableOptions_Plugins<TFeatures, TData>
|
|
106
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Internal broad option shape used where feature code may need to read options
|
|
120
|
+
* from features that are not present in the current generic feature set.
|
|
121
|
+
*/
|
|
107
122
|
export type TableOptions_All<
|
|
108
123
|
TFeatures extends TableFeatures,
|
|
109
124
|
TData extends RowData,
|
package/src/types/TableState.ts
CHANGED
|
@@ -20,6 +20,12 @@ import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
|
|
|
20
20
|
*/
|
|
21
21
|
export interface TableState_Plugins<TFeatures extends TableFeatures> {}
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Complete table state for a specific feature set.
|
|
25
|
+
*
|
|
26
|
+
* State slices are included only when their feature is present in `TFeatures`,
|
|
27
|
+
* then custom feature/plugin state is mixed in.
|
|
28
|
+
*/
|
|
23
29
|
export type TableState<TFeatures extends TableFeatures> = UnionToIntersection<
|
|
24
30
|
| ('columnFilteringFeature' extends keyof TFeatures
|
|
25
31
|
? TableState_ColumnFiltering
|
|
@@ -71,6 +77,12 @@ export type TableState<TFeatures extends TableFeatures> = UnionToIntersection<
|
|
|
71
77
|
// > &
|
|
72
78
|
// TableState_Plugins<TFeatures>
|
|
73
79
|
|
|
80
|
+
/**
|
|
81
|
+
* Internal broad state shape containing every stock feature state slice.
|
|
82
|
+
*
|
|
83
|
+
* Feature internals use this when they may need to inspect optional slices owned
|
|
84
|
+
* by other features.
|
|
85
|
+
*/
|
|
74
86
|
export type TableState_All = Partial<
|
|
75
87
|
TableState_ColumnFiltering &
|
|
76
88
|
TableState_ColumnGrouping &
|
package/src/utils.ts
CHANGED
|
@@ -32,8 +32,10 @@ export function cloneState<T>(value: T): T {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
const copy: Record<string, unknown> = {}
|
|
35
|
+
const keys = Object.keys(value)
|
|
35
36
|
|
|
36
|
-
for (
|
|
37
|
+
for (let i = 0; i < keys.length; i++) {
|
|
38
|
+
const key = keys[i]!
|
|
37
39
|
copy[key] = cloneState((value as Record<string, unknown>)[key])
|
|
38
40
|
}
|
|
39
41
|
|
|
@@ -43,11 +45,6 @@ export function cloneState<T>(value: T): T {
|
|
|
43
45
|
return value
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
/**
|
|
47
|
-
* A no-operation function used as a safe default callback.
|
|
48
|
-
*/
|
|
49
|
-
export function noop() {}
|
|
50
|
-
|
|
51
48
|
/**
|
|
52
49
|
* Creates a table state updater for a single state slice.
|
|
53
50
|
*
|
|
@@ -73,13 +70,6 @@ export function isFunction<T extends AnyFunction>(d: any): d is T {
|
|
|
73
70
|
return d instanceof Function
|
|
74
71
|
}
|
|
75
72
|
|
|
76
|
-
/**
|
|
77
|
-
* Returns whether a value is an array containing only numbers.
|
|
78
|
-
*/
|
|
79
|
-
export function isNumberArray(d: any): d is Array<number> {
|
|
80
|
-
return Array.isArray(d) && d.every((val) => typeof val === 'number')
|
|
81
|
-
}
|
|
82
|
-
|
|
83
73
|
/**
|
|
84
74
|
* Flattens a tree of nodes by recursively reading child nodes.
|
|
85
75
|
*
|
|
@@ -106,29 +96,6 @@ export function flattenBy<TNode>(
|
|
|
106
96
|
return flat
|
|
107
97
|
}
|
|
108
98
|
|
|
109
|
-
/**
|
|
110
|
-
* Symbol used to attach internal memo metadata to wrapped functions.
|
|
111
|
-
*
|
|
112
|
-
* This is exported so diagnostics can recognize memoized functions without
|
|
113
|
-
* depending on a string property name.
|
|
114
|
-
*/
|
|
115
|
-
export const $internalMemoFnMeta = Symbol('memoFnMeta')
|
|
116
|
-
export type MemoFnMeta = { originalArgsLength?: number }
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @internal
|
|
120
|
-
*/
|
|
121
|
-
function setMemoFnMeta(fn: Function, meta: MemoFnMeta) {
|
|
122
|
-
Object.defineProperty(fn, $internalMemoFnMeta, { value: meta })
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* @internal
|
|
127
|
-
*/
|
|
128
|
-
export function getMemoFnMeta(fn: any): MemoFnMeta | null {
|
|
129
|
-
return (typeof fn === 'function' && fn[$internalMemoFnMeta]) ?? null
|
|
130
|
-
}
|
|
131
|
-
|
|
132
99
|
interface MemoOptions<TDeps extends ReadonlyArray<any>, TDepArgs, TResult> {
|
|
133
100
|
fn: (...args: NoInfer<TDeps>) => TResult
|
|
134
101
|
memoDeps?: (depArgs?: TDepArgs) => [...TDeps] | undefined
|
|
@@ -159,10 +126,15 @@ export const memo = <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
|
|
|
159
126
|
const memoizedFn = (depArgs?: TDepArgs): TResult => {
|
|
160
127
|
onBeforeCompare?.()
|
|
161
128
|
const newDeps = memoDeps?.(depArgs)
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
newDeps.length
|
|
165
|
-
|
|
129
|
+
let depsChanged = !newDeps || newDeps.length !== deps?.length
|
|
130
|
+
if (!depsChanged && newDeps) {
|
|
131
|
+
for (let i = 0; i < newDeps.length; i++) {
|
|
132
|
+
if (newDeps[i] !== deps![i]) {
|
|
133
|
+
depsChanged = true
|
|
134
|
+
break
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
166
138
|
onAfterCompare?.(depsChanged)
|
|
167
139
|
|
|
168
140
|
if (!depsChanged) {
|
|
@@ -178,8 +150,6 @@ export const memo = <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
|
|
|
178
150
|
return result
|
|
179
151
|
}
|
|
180
152
|
|
|
181
|
-
setMemoFnMeta(memoizedFn, { originalArgsLength: fn.length })
|
|
182
|
-
|
|
183
153
|
return memoizedFn
|
|
184
154
|
}
|
|
185
155
|
|
|
@@ -283,6 +253,11 @@ export function tableMemo<
|
|
|
283
253
|
console.groupEnd()
|
|
284
254
|
}
|
|
285
255
|
|
|
256
|
+
const onAfterUpdateHandler = () => {
|
|
257
|
+
const { schedule, untrack } = table._reactivity
|
|
258
|
+
schedule(() => untrack(() => onAfterUpdate?.()))
|
|
259
|
+
}
|
|
260
|
+
|
|
286
261
|
const debugOptions =
|
|
287
262
|
process.env.NODE_ENV === 'development'
|
|
288
263
|
? {
|
|
@@ -313,12 +288,12 @@ export function tableMemo<
|
|
|
313
288
|
Math.round((endCalcTime - startCalcTime) * 100) / 100
|
|
314
289
|
logTime(executionTime, true)
|
|
315
290
|
}
|
|
316
|
-
|
|
291
|
+
onAfterUpdateHandler()
|
|
317
292
|
},
|
|
318
293
|
}
|
|
319
294
|
: {
|
|
320
295
|
onAfterUpdate: () => {
|
|
321
|
-
|
|
296
|
+
onAfterUpdateHandler()
|
|
322
297
|
},
|
|
323
298
|
}
|
|
324
299
|
|
|
@@ -440,8 +415,6 @@ export function assignPrototypeAPIs<
|
|
|
440
415
|
return fn(this, ...args)
|
|
441
416
|
}
|
|
442
417
|
}
|
|
443
|
-
|
|
444
|
-
setMemoFnMeta(prototype[fnKey], { originalArgsLength: fn.length })
|
|
445
418
|
}
|
|
446
419
|
}
|
|
447
420
|
|