@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
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { callMemoOrStaticFn, cloneState } from "../../utils.js";
|
|
2
|
-
import { column_getIsVisible, row_getVisibleCells, table_getVisibleLeafColumns } from "../column-visibility/columnVisibilityFeature.utils.js";
|
|
2
|
+
import { column_getIsVisible, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getVisibleLeafColumns } from "../column-visibility/columnVisibilityFeature.utils.js";
|
|
3
3
|
import { buildHeaderGroups } from "../../core/headers/buildHeaderGroups.js";
|
|
4
4
|
|
|
5
5
|
//#region src/features/column-pinning/columnPinningFeature.utils.ts
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Creates the default column pinning state.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Both pinning regions start empty. Reset APIs use this value when
|
|
10
|
+
* `defaultState` is `true`.
|
|
10
11
|
*
|
|
11
12
|
* @example
|
|
12
13
|
* ```ts
|
|
13
|
-
* const
|
|
14
|
+
* const pinning = getDefaultColumnPinningState()
|
|
14
15
|
* ```
|
|
15
16
|
*/
|
|
16
17
|
function getDefaultColumnPinningState() {
|
|
@@ -20,9 +21,11 @@ function getDefaultColumnPinningState() {
|
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
+
* Moves this column's leaf column ids into a pinning region.
|
|
24
25
|
*
|
|
25
|
-
*
|
|
26
|
+
* Pinning a group column pins all of its leaves. The leaf ids are first removed
|
|
27
|
+
* from both regions, then appended to the requested `'left'` or `'right'`
|
|
28
|
+
* region. Passing `false` unpins them back to the center.
|
|
26
29
|
*
|
|
27
30
|
* @example
|
|
28
31
|
* ```ts
|
|
@@ -30,7 +33,12 @@ function getDefaultColumnPinningState() {
|
|
|
30
33
|
* ```
|
|
31
34
|
*/
|
|
32
35
|
function column_pin(column, position) {
|
|
33
|
-
const
|
|
36
|
+
const leafColumns = column.getLeafColumns();
|
|
37
|
+
const columnIds = [];
|
|
38
|
+
for (let i = 0; i < leafColumns.length; i++) {
|
|
39
|
+
const id = leafColumns[i].id;
|
|
40
|
+
if (id) columnIds.push(id);
|
|
41
|
+
}
|
|
34
42
|
table_setColumnPinning(column.table, (old) => {
|
|
35
43
|
if (position === "right") return {
|
|
36
44
|
left: old.left.filter((d) => !columnIds.includes(d)),
|
|
@@ -47,26 +55,28 @@ function column_pin(column, position) {
|
|
|
47
55
|
});
|
|
48
56
|
}
|
|
49
57
|
/**
|
|
50
|
-
*
|
|
58
|
+
* Checks whether this column or any of its leaf columns can be pinned.
|
|
51
59
|
*
|
|
52
|
-
*
|
|
60
|
+
* Column-level `enablePinning` and table `enableColumnPinning` both default to
|
|
61
|
+
* `true`; at least one leaf column must allow pinning.
|
|
53
62
|
*
|
|
54
63
|
* @example
|
|
55
64
|
* ```ts
|
|
56
|
-
* const
|
|
65
|
+
* const canPin = column_getCanPin(column)
|
|
57
66
|
* ```
|
|
58
67
|
*/
|
|
59
68
|
function column_getCanPin(column) {
|
|
60
69
|
return column.getLeafColumns().some((leafColumn) => (leafColumn.columnDef.enablePinning ?? true) && (column.table.options.enableColumnPinning ?? true));
|
|
61
70
|
}
|
|
62
71
|
/**
|
|
63
|
-
*
|
|
72
|
+
* Reads this column's current pinning region.
|
|
64
73
|
*
|
|
65
|
-
*
|
|
74
|
+
* Group columns report `'left'` or `'right'` when any leaf column is pinned in
|
|
75
|
+
* that region. Unpinned columns return `false`.
|
|
66
76
|
*
|
|
67
77
|
* @example
|
|
68
78
|
* ```ts
|
|
69
|
-
* const
|
|
79
|
+
* const position = column_getIsPinned(column)
|
|
70
80
|
* ```
|
|
71
81
|
*/
|
|
72
82
|
function column_getIsPinned(column) {
|
|
@@ -78,13 +88,14 @@ function column_getIsPinned(column) {
|
|
|
78
88
|
return isLeft ? "left" : isRight ? "right" : false;
|
|
79
89
|
}
|
|
80
90
|
/**
|
|
81
|
-
*
|
|
91
|
+
* Finds this column's index within its pinned region.
|
|
82
92
|
*
|
|
83
|
-
*
|
|
93
|
+
* Unpinned columns return `0`; pinned columns return their position in
|
|
94
|
+
* `state.columnPinning.left` or `state.columnPinning.right`.
|
|
84
95
|
*
|
|
85
96
|
* @example
|
|
86
97
|
* ```ts
|
|
87
|
-
* const
|
|
98
|
+
* const index = column_getPinnedIndex(column)
|
|
88
99
|
* ```
|
|
89
100
|
*/
|
|
90
101
|
function column_getPinnedIndex(column) {
|
|
@@ -93,13 +104,13 @@ function column_getPinnedIndex(column) {
|
|
|
93
104
|
return position ? ((_column$table$atoms$c2 = column.table.atoms.columnPinning) === null || _column$table$atoms$c2 === void 0 || (_column$table$atoms$c2 = _column$table$atoms$c2.get()) === null || _column$table$atoms$c2 === void 0 ? void 0 : _column$table$atoms$c2[position].indexOf(column.id)) ?? -1 : 0;
|
|
94
105
|
}
|
|
95
106
|
/**
|
|
96
|
-
*
|
|
107
|
+
* Collects visible cells whose columns are not pinned left or right.
|
|
97
108
|
*
|
|
98
|
-
*
|
|
109
|
+
* The result preserves the row's visible-cell order for center columns.
|
|
99
110
|
*
|
|
100
111
|
* @example
|
|
101
112
|
* ```ts
|
|
102
|
-
* const
|
|
113
|
+
* const centerCells = row_getCenterVisibleCells(row)
|
|
103
114
|
* ```
|
|
104
115
|
*/
|
|
105
116
|
function row_getCenterVisibleCells(row) {
|
|
@@ -110,23 +121,24 @@ function row_getCenterVisibleCells(row) {
|
|
|
110
121
|
return allCells.filter((d) => !leftAndRight.includes(d.column.id));
|
|
111
122
|
}
|
|
112
123
|
/**
|
|
113
|
-
*
|
|
124
|
+
* Collects visible cells for columns pinned to the left region.
|
|
114
125
|
*
|
|
115
|
-
*
|
|
126
|
+
* Cells are returned in `state.columnPinning.left` order and are marked with
|
|
127
|
+
* `cell.position = 'left'`.
|
|
116
128
|
*
|
|
117
129
|
* @example
|
|
118
130
|
* ```ts
|
|
119
|
-
* const
|
|
131
|
+
* const leftCells = row_getLeftVisibleCells(row)
|
|
120
132
|
* ```
|
|
121
133
|
*/
|
|
122
134
|
function row_getLeftVisibleCells(row) {
|
|
123
135
|
var _row$table$atoms$colu2;
|
|
124
136
|
const { left } = ((_row$table$atoms$colu2 = row.table.atoms.columnPinning) === null || _row$table$atoms$colu2 === void 0 ? void 0 : _row$table$atoms$colu2.get()) ?? getDefaultColumnPinningState();
|
|
125
137
|
if (!left.length) return [];
|
|
126
|
-
const allVisibleCells = callMemoOrStaticFn(row, "
|
|
138
|
+
const allVisibleCells = callMemoOrStaticFn(row, "getVisibleCellsByColumnId", row_getVisibleCellsByColumnId);
|
|
127
139
|
const cells = [];
|
|
128
|
-
for (
|
|
129
|
-
const cell = allVisibleCells
|
|
140
|
+
for (let i = 0; i < left.length; i++) {
|
|
141
|
+
const cell = allVisibleCells[left[i]];
|
|
130
142
|
if (cell) {
|
|
131
143
|
cell.position = "left";
|
|
132
144
|
cells.push(cell);
|
|
@@ -135,23 +147,24 @@ function row_getLeftVisibleCells(row) {
|
|
|
135
147
|
return cells;
|
|
136
148
|
}
|
|
137
149
|
/**
|
|
138
|
-
*
|
|
150
|
+
* Collects visible cells for columns pinned to the right region.
|
|
139
151
|
*
|
|
140
|
-
*
|
|
152
|
+
* Cells are returned in `state.columnPinning.right` order and are marked with
|
|
153
|
+
* `cell.position = 'right'`.
|
|
141
154
|
*
|
|
142
155
|
* @example
|
|
143
156
|
* ```ts
|
|
144
|
-
* const
|
|
157
|
+
* const rightCells = row_getRightVisibleCells(row)
|
|
145
158
|
* ```
|
|
146
159
|
*/
|
|
147
160
|
function row_getRightVisibleCells(row) {
|
|
148
161
|
var _row$table$atoms$colu3;
|
|
149
162
|
const { right } = ((_row$table$atoms$colu3 = row.table.atoms.columnPinning) === null || _row$table$atoms$colu3 === void 0 ? void 0 : _row$table$atoms$colu3.get()) ?? getDefaultColumnPinningState();
|
|
150
163
|
if (!right.length) return [];
|
|
151
|
-
const allVisibleCells = callMemoOrStaticFn(row, "
|
|
164
|
+
const allVisibleCells = callMemoOrStaticFn(row, "getVisibleCellsByColumnId", row_getVisibleCellsByColumnId);
|
|
152
165
|
const cells = [];
|
|
153
|
-
for (
|
|
154
|
-
const cell = allVisibleCells
|
|
166
|
+
for (let i = 0; i < right.length; i++) {
|
|
167
|
+
const cell = allVisibleCells[right[i]];
|
|
155
168
|
if (cell) {
|
|
156
169
|
cell.position = "right";
|
|
157
170
|
cells.push(cell);
|
|
@@ -160,13 +173,14 @@ function row_getRightVisibleCells(row) {
|
|
|
160
173
|
return cells;
|
|
161
174
|
}
|
|
162
175
|
/**
|
|
163
|
-
*
|
|
176
|
+
* Routes a column pinning updater through the table's pinning change handler.
|
|
164
177
|
*
|
|
165
|
-
* The updater
|
|
178
|
+
* The updater may be a next `{ left, right }` state or a function of the
|
|
179
|
+
* previous state, matching the instance `table.setColumnPinning` behavior.
|
|
166
180
|
*
|
|
167
181
|
* @example
|
|
168
182
|
* ```ts
|
|
169
|
-
* table_setColumnPinning(table, (old) => old)
|
|
183
|
+
* table_setColumnPinning(table, (old) => ({ ...old, left: ['select'] }))
|
|
170
184
|
* ```
|
|
171
185
|
*/
|
|
172
186
|
function table_setColumnPinning(table, updater) {
|
|
@@ -174,9 +188,11 @@ function table_setColumnPinning(table, updater) {
|
|
|
174
188
|
(_table$options$onColu = (_table$options = table.options).onColumnPinningChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
175
189
|
}
|
|
176
190
|
/**
|
|
177
|
-
* Resets the
|
|
191
|
+
* Resets `columnPinning` to the configured initial state or feature default.
|
|
178
192
|
*
|
|
179
|
-
*
|
|
193
|
+
* With no argument, the reset clones `table.initialState.columnPinning` when it
|
|
194
|
+
* exists. Passing `true` ignores initial state and resets to empty left/right
|
|
195
|
+
* arrays.
|
|
180
196
|
*
|
|
181
197
|
* @example
|
|
182
198
|
* ```ts
|
|
@@ -188,13 +204,14 @@ function table_resetColumnPinning(table, defaultState) {
|
|
|
188
204
|
table_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : cloneState(table.initialState.columnPinning ?? getDefaultColumnPinningState()));
|
|
189
205
|
}
|
|
190
206
|
/**
|
|
191
|
-
*
|
|
207
|
+
* Checks whether any columns are pinned.
|
|
192
208
|
*
|
|
193
|
-
*
|
|
209
|
+
* Omit `position` to check both sides, or pass `'left'`/`'right'` to inspect a
|
|
210
|
+
* single pinning region.
|
|
194
211
|
*
|
|
195
212
|
* @example
|
|
196
213
|
* ```ts
|
|
197
|
-
* const
|
|
214
|
+
* const hasPinnedColumns = table_getIsSomeColumnsPinned(table)
|
|
198
215
|
* ```
|
|
199
216
|
*/
|
|
200
217
|
function table_getIsSomeColumnsPinned(table, position) {
|
|
@@ -204,13 +221,14 @@ function table_getIsSomeColumnsPinned(table, position) {
|
|
|
204
221
|
return Boolean(pinningState === null || pinningState === void 0 ? void 0 : pinningState[position].length);
|
|
205
222
|
}
|
|
206
223
|
/**
|
|
207
|
-
*
|
|
224
|
+
* Builds header groups for visible columns pinned to the left region.
|
|
208
225
|
*
|
|
209
|
-
*
|
|
226
|
+
* The leaf columns are read in `state.columnPinning.left` order and then passed
|
|
227
|
+
* through the same header-group builder as the unpinned table.
|
|
210
228
|
*
|
|
211
229
|
* @example
|
|
212
230
|
* ```ts
|
|
213
|
-
* const
|
|
231
|
+
* const headerGroups = table_getLeftHeaderGroups(table)
|
|
214
232
|
* ```
|
|
215
233
|
*/
|
|
216
234
|
function table_getLeftHeaderGroups(table) {
|
|
@@ -219,20 +237,21 @@ function table_getLeftHeaderGroups(table) {
|
|
|
219
237
|
const leafColumnsById = table.getAllLeafColumnsById();
|
|
220
238
|
const { left } = ((_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get()) ?? getDefaultColumnPinningState();
|
|
221
239
|
const orderedLeafColumns = [];
|
|
222
|
-
for (
|
|
223
|
-
const column = leafColumnsById[
|
|
240
|
+
for (let i = 0; i < left.length; i++) {
|
|
241
|
+
const column = leafColumnsById[left[i]];
|
|
224
242
|
if (column && callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible)) orderedLeafColumns.push(column);
|
|
225
243
|
}
|
|
226
244
|
return buildHeaderGroups(allColumns, orderedLeafColumns, table, "left");
|
|
227
245
|
}
|
|
228
246
|
/**
|
|
229
|
-
*
|
|
247
|
+
* Builds header groups for visible columns pinned to the right region.
|
|
230
248
|
*
|
|
231
|
-
*
|
|
249
|
+
* The leaf columns are read in `state.columnPinning.right` order and then
|
|
250
|
+
* passed through the same header-group builder as the unpinned table.
|
|
232
251
|
*
|
|
233
252
|
* @example
|
|
234
253
|
* ```ts
|
|
235
|
-
* const
|
|
254
|
+
* const headerGroups = table_getRightHeaderGroups(table)
|
|
236
255
|
* ```
|
|
237
256
|
*/
|
|
238
257
|
function table_getRightHeaderGroups(table) {
|
|
@@ -241,20 +260,21 @@ function table_getRightHeaderGroups(table) {
|
|
|
241
260
|
const leafColumnsById = table.getAllLeafColumnsById();
|
|
242
261
|
const { right } = ((_table$atoms$columnPi3 = table.atoms.columnPinning) === null || _table$atoms$columnPi3 === void 0 ? void 0 : _table$atoms$columnPi3.get()) ?? getDefaultColumnPinningState();
|
|
243
262
|
const orderedLeafColumns = [];
|
|
244
|
-
for (
|
|
245
|
-
const column = leafColumnsById[
|
|
263
|
+
for (let i = 0; i < right.length; i++) {
|
|
264
|
+
const column = leafColumnsById[right[i]];
|
|
246
265
|
if (column && callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible)) orderedLeafColumns.push(column);
|
|
247
266
|
}
|
|
248
267
|
return buildHeaderGroups(allColumns, orderedLeafColumns, table, "right");
|
|
249
268
|
}
|
|
250
269
|
/**
|
|
251
|
-
*
|
|
270
|
+
* Builds header groups for visible columns that are not pinned.
|
|
252
271
|
*
|
|
253
|
-
*
|
|
272
|
+
* Left- and right-pinned column ids are removed from the visible leaf column
|
|
273
|
+
* list before header groups are built for the center region.
|
|
254
274
|
*
|
|
255
275
|
* @example
|
|
256
276
|
* ```ts
|
|
257
|
-
* const
|
|
277
|
+
* const headerGroups = table_getCenterHeaderGroups(table)
|
|
258
278
|
* ```
|
|
259
279
|
*/
|
|
260
280
|
function table_getCenterHeaderGroups(table) {
|
|
@@ -267,136 +287,149 @@ function table_getCenterHeaderGroups(table) {
|
|
|
267
287
|
return buildHeaderGroups(allColumns, leafColumns, table, "center");
|
|
268
288
|
}
|
|
269
289
|
/**
|
|
270
|
-
*
|
|
290
|
+
* Builds footer groups for the left pinned region.
|
|
271
291
|
*
|
|
272
|
-
*
|
|
292
|
+
* Footer groups reuse the left header groups in reverse order.
|
|
273
293
|
*
|
|
274
294
|
* @example
|
|
275
295
|
* ```ts
|
|
276
|
-
* const
|
|
296
|
+
* const footerGroups = table_getLeftFooterGroups(table)
|
|
277
297
|
* ```
|
|
278
298
|
*/
|
|
279
299
|
function table_getLeftFooterGroups(table) {
|
|
280
300
|
return [...callMemoOrStaticFn(table, "getLeftHeaderGroups", table_getLeftHeaderGroups)].reverse();
|
|
281
301
|
}
|
|
282
302
|
/**
|
|
283
|
-
*
|
|
303
|
+
* Builds footer groups for the right pinned region.
|
|
284
304
|
*
|
|
285
|
-
*
|
|
305
|
+
* Footer groups reuse the right header groups in reverse order.
|
|
286
306
|
*
|
|
287
307
|
* @example
|
|
288
308
|
* ```ts
|
|
289
|
-
* const
|
|
309
|
+
* const footerGroups = table_getRightFooterGroups(table)
|
|
290
310
|
* ```
|
|
291
311
|
*/
|
|
292
312
|
function table_getRightFooterGroups(table) {
|
|
293
313
|
return [...callMemoOrStaticFn(table, "getRightHeaderGroups", table_getRightHeaderGroups)].reverse();
|
|
294
314
|
}
|
|
295
315
|
/**
|
|
296
|
-
*
|
|
316
|
+
* Builds footer groups for the center, unpinned region.
|
|
297
317
|
*
|
|
298
|
-
*
|
|
318
|
+
* Footer groups reuse the center header groups in reverse order.
|
|
299
319
|
*
|
|
300
320
|
* @example
|
|
301
321
|
* ```ts
|
|
302
|
-
* const
|
|
322
|
+
* const footerGroups = table_getCenterFooterGroups(table)
|
|
303
323
|
* ```
|
|
304
324
|
*/
|
|
305
325
|
function table_getCenterFooterGroups(table) {
|
|
306
326
|
return [...callMemoOrStaticFn(table, "getCenterHeaderGroups", table_getCenterHeaderGroups)].reverse();
|
|
307
327
|
}
|
|
308
328
|
/**
|
|
309
|
-
*
|
|
329
|
+
* Flattens every header from the left pinned header groups.
|
|
310
330
|
*
|
|
311
|
-
*
|
|
331
|
+
* Parent headers and placeholder headers are included.
|
|
312
332
|
*
|
|
313
333
|
* @example
|
|
314
334
|
* ```ts
|
|
315
|
-
* const
|
|
335
|
+
* const headers = table_getLeftFlatHeaders(table)
|
|
316
336
|
* ```
|
|
317
337
|
*/
|
|
318
338
|
function table_getLeftFlatHeaders(table) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
339
|
+
const leftHeaderGroups = callMemoOrStaticFn(table, "getLeftHeaderGroups", table_getLeftHeaderGroups);
|
|
340
|
+
const result = [];
|
|
341
|
+
for (let i = 0; i < leftHeaderGroups.length; i++) {
|
|
342
|
+
const headers = leftHeaderGroups[i].headers;
|
|
343
|
+
for (let j = 0; j < headers.length; j++) result.push(headers[j]);
|
|
344
|
+
}
|
|
345
|
+
return result;
|
|
322
346
|
}
|
|
323
347
|
/**
|
|
324
|
-
*
|
|
348
|
+
* Flattens every header from the right pinned header groups.
|
|
325
349
|
*
|
|
326
|
-
*
|
|
350
|
+
* Parent headers and placeholder headers are included.
|
|
327
351
|
*
|
|
328
352
|
* @example
|
|
329
353
|
* ```ts
|
|
330
|
-
* const
|
|
354
|
+
* const headers = table_getRightFlatHeaders(table)
|
|
331
355
|
* ```
|
|
332
356
|
*/
|
|
333
357
|
function table_getRightFlatHeaders(table) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
358
|
+
const rightHeaderGroups = callMemoOrStaticFn(table, "getRightHeaderGroups", table_getRightHeaderGroups);
|
|
359
|
+
const result = [];
|
|
360
|
+
for (let i = 0; i < rightHeaderGroups.length; i++) {
|
|
361
|
+
const headers = rightHeaderGroups[i].headers;
|
|
362
|
+
for (let j = 0; j < headers.length; j++) result.push(headers[j]);
|
|
363
|
+
}
|
|
364
|
+
return result;
|
|
337
365
|
}
|
|
338
366
|
/**
|
|
339
|
-
*
|
|
367
|
+
* Flattens every header from the center header groups.
|
|
340
368
|
*
|
|
341
|
-
*
|
|
369
|
+
* Parent headers and placeholder headers are included.
|
|
342
370
|
*
|
|
343
371
|
* @example
|
|
344
372
|
* ```ts
|
|
345
|
-
* const
|
|
373
|
+
* const headers = table_getCenterFlatHeaders(table)
|
|
346
374
|
* ```
|
|
347
375
|
*/
|
|
348
376
|
function table_getCenterFlatHeaders(table) {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
377
|
+
const centerHeaderGroups = callMemoOrStaticFn(table, "getCenterHeaderGroups", table_getCenterHeaderGroups);
|
|
378
|
+
const result = [];
|
|
379
|
+
for (let i = 0; i < centerHeaderGroups.length; i++) {
|
|
380
|
+
const headers = centerHeaderGroups[i].headers;
|
|
381
|
+
for (let j = 0; j < headers.length; j++) result.push(headers[j]);
|
|
382
|
+
}
|
|
383
|
+
return result;
|
|
352
384
|
}
|
|
353
385
|
/**
|
|
354
|
-
*
|
|
386
|
+
* Collects leaf headers for the left pinned region.
|
|
355
387
|
*
|
|
356
|
-
*
|
|
388
|
+
* Parent headers are filtered out from the left flat header list.
|
|
357
389
|
*
|
|
358
390
|
* @example
|
|
359
391
|
* ```ts
|
|
360
|
-
* const
|
|
392
|
+
* const headers = table_getLeftLeafHeaders(table)
|
|
361
393
|
* ```
|
|
362
394
|
*/
|
|
363
395
|
function table_getLeftLeafHeaders(table) {
|
|
364
396
|
return callMemoOrStaticFn(table, "getLeftFlatHeaders", table_getLeftFlatHeaders).filter((header) => !header.subHeaders.length);
|
|
365
397
|
}
|
|
366
398
|
/**
|
|
367
|
-
*
|
|
399
|
+
* Collects leaf headers for the right pinned region.
|
|
368
400
|
*
|
|
369
|
-
*
|
|
401
|
+
* Parent headers are filtered out from the right flat header list.
|
|
370
402
|
*
|
|
371
403
|
* @example
|
|
372
404
|
* ```ts
|
|
373
|
-
* const
|
|
405
|
+
* const headers = table_getRightLeafHeaders(table)
|
|
374
406
|
* ```
|
|
375
407
|
*/
|
|
376
408
|
function table_getRightLeafHeaders(table) {
|
|
377
409
|
return callMemoOrStaticFn(table, "getRightFlatHeaders", table_getRightFlatHeaders).filter((header) => !header.subHeaders.length);
|
|
378
410
|
}
|
|
379
411
|
/**
|
|
380
|
-
*
|
|
412
|
+
* Collects leaf headers for the center, unpinned region.
|
|
381
413
|
*
|
|
382
|
-
*
|
|
414
|
+
* Parent headers are filtered out from the center flat header list.
|
|
383
415
|
*
|
|
384
416
|
* @example
|
|
385
417
|
* ```ts
|
|
386
|
-
* const
|
|
418
|
+
* const headers = table_getCenterLeafHeaders(table)
|
|
387
419
|
* ```
|
|
388
420
|
*/
|
|
389
421
|
function table_getCenterLeafHeaders(table) {
|
|
390
422
|
return callMemoOrStaticFn(table, "getCenterFlatHeaders", table_getCenterFlatHeaders).filter((header) => !header.subHeaders.length);
|
|
391
423
|
}
|
|
392
424
|
/**
|
|
393
|
-
*
|
|
425
|
+
* Resolves leaf columns pinned to the left region.
|
|
394
426
|
*
|
|
395
|
-
*
|
|
427
|
+
* The result follows `state.columnPinning.left` order and skips stale ids that
|
|
428
|
+
* no longer correspond to a leaf column.
|
|
396
429
|
*
|
|
397
430
|
* @example
|
|
398
431
|
* ```ts
|
|
399
|
-
* const
|
|
432
|
+
* const columns = table_getLeftLeafColumns(table)
|
|
400
433
|
* ```
|
|
401
434
|
*/
|
|
402
435
|
function table_getLeftLeafColumns(table) {
|
|
@@ -404,20 +437,21 @@ function table_getLeftLeafColumns(table) {
|
|
|
404
437
|
const { left } = ((_table$atoms$columnPi5 = table.atoms.columnPinning) === null || _table$atoms$columnPi5 === void 0 ? void 0 : _table$atoms$columnPi5.get()) ?? getDefaultColumnPinningState();
|
|
405
438
|
const leafColumnsById = table.getAllLeafColumnsById();
|
|
406
439
|
const result = [];
|
|
407
|
-
for (
|
|
408
|
-
const column = leafColumnsById[
|
|
440
|
+
for (let i = 0; i < left.length; i++) {
|
|
441
|
+
const column = leafColumnsById[left[i]];
|
|
409
442
|
if (column) result.push(column);
|
|
410
443
|
}
|
|
411
444
|
return result;
|
|
412
445
|
}
|
|
413
446
|
/**
|
|
414
|
-
*
|
|
447
|
+
* Resolves leaf columns pinned to the right region.
|
|
415
448
|
*
|
|
416
|
-
*
|
|
449
|
+
* The result follows `state.columnPinning.right` order and skips stale ids that
|
|
450
|
+
* no longer correspond to a leaf column.
|
|
417
451
|
*
|
|
418
452
|
* @example
|
|
419
453
|
* ```ts
|
|
420
|
-
* const
|
|
454
|
+
* const columns = table_getRightLeafColumns(table)
|
|
421
455
|
* ```
|
|
422
456
|
*/
|
|
423
457
|
function table_getRightLeafColumns(table) {
|
|
@@ -425,20 +459,20 @@ function table_getRightLeafColumns(table) {
|
|
|
425
459
|
const { right } = ((_table$atoms$columnPi6 = table.atoms.columnPinning) === null || _table$atoms$columnPi6 === void 0 ? void 0 : _table$atoms$columnPi6.get()) ?? getDefaultColumnPinningState();
|
|
426
460
|
const leafColumnsById = table.getAllLeafColumnsById();
|
|
427
461
|
const result = [];
|
|
428
|
-
for (
|
|
429
|
-
const column = leafColumnsById[
|
|
462
|
+
for (let i = 0; i < right.length; i++) {
|
|
463
|
+
const column = leafColumnsById[right[i]];
|
|
430
464
|
if (column) result.push(column);
|
|
431
465
|
}
|
|
432
466
|
return result;
|
|
433
467
|
}
|
|
434
468
|
/**
|
|
435
|
-
*
|
|
469
|
+
* Resolves leaf columns that are not pinned to either side.
|
|
436
470
|
*
|
|
437
|
-
*
|
|
471
|
+
* Left- and right-pinned ids are removed from `table.getAllLeafColumns()`.
|
|
438
472
|
*
|
|
439
473
|
* @example
|
|
440
474
|
* ```ts
|
|
441
|
-
* const
|
|
475
|
+
* const columns = table_getCenterLeafColumns(table)
|
|
442
476
|
* ```
|
|
443
477
|
*/
|
|
444
478
|
function table_getCenterLeafColumns(table) {
|
|
@@ -448,65 +482,68 @@ function table_getCenterLeafColumns(table) {
|
|
|
448
482
|
return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id));
|
|
449
483
|
}
|
|
450
484
|
/**
|
|
451
|
-
*
|
|
485
|
+
* Resolves leaf columns for a requested pinning region.
|
|
452
486
|
*
|
|
453
|
-
*
|
|
487
|
+
* Pass `'left'`, `'center'`, or `'right'` for a partition, or pass `false` to
|
|
488
|
+
* read all leaf columns without partitioning.
|
|
454
489
|
*
|
|
455
490
|
* @example
|
|
456
491
|
* ```ts
|
|
457
|
-
* const
|
|
492
|
+
* const columns = table_getPinnedLeafColumns(table, 'center')
|
|
458
493
|
* ```
|
|
459
494
|
*/
|
|
460
495
|
function table_getPinnedLeafColumns(table, position) {
|
|
461
496
|
return !position ? table.getAllLeafColumns() : position === "left" ? callMemoOrStaticFn(table, "getLeftLeafColumns", table_getLeftLeafColumns) : position === "right" ? callMemoOrStaticFn(table, "getRightLeafColumns", table_getRightLeafColumns) : callMemoOrStaticFn(table, "getCenterLeafColumns", table_getCenterLeafColumns);
|
|
462
497
|
}
|
|
463
498
|
/**
|
|
464
|
-
*
|
|
499
|
+
* Resolves visible leaf columns pinned to the left region.
|
|
465
500
|
*
|
|
466
|
-
*
|
|
501
|
+
* Hidden pinned columns are filtered out after the left pin order is applied.
|
|
467
502
|
*
|
|
468
503
|
* @example
|
|
469
504
|
* ```ts
|
|
470
|
-
* const
|
|
505
|
+
* const columns = table_getLeftVisibleLeafColumns(table)
|
|
471
506
|
* ```
|
|
472
507
|
*/
|
|
473
508
|
function table_getLeftVisibleLeafColumns(table) {
|
|
474
509
|
return callMemoOrStaticFn(table, "getLeftLeafColumns", table_getLeftLeafColumns).filter((column) => callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
|
|
475
510
|
}
|
|
476
511
|
/**
|
|
477
|
-
*
|
|
512
|
+
* Resolves visible leaf columns pinned to the right region.
|
|
478
513
|
*
|
|
479
|
-
*
|
|
514
|
+
* Hidden pinned columns are filtered out after the right pin order is applied.
|
|
480
515
|
*
|
|
481
516
|
* @example
|
|
482
517
|
* ```ts
|
|
483
|
-
* const
|
|
518
|
+
* const columns = table_getRightVisibleLeafColumns(table)
|
|
484
519
|
* ```
|
|
485
520
|
*/
|
|
486
521
|
function table_getRightVisibleLeafColumns(table) {
|
|
487
522
|
return callMemoOrStaticFn(table, "getRightLeafColumns", table_getRightLeafColumns).filter((column) => callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
|
|
488
523
|
}
|
|
489
524
|
/**
|
|
490
|
-
*
|
|
525
|
+
* Resolves visible leaf columns that are not pinned.
|
|
491
526
|
*
|
|
492
|
-
* This
|
|
527
|
+
* This is the center partition used by layouts that render pinned columns
|
|
528
|
+
* separately from the scrollable middle region.
|
|
493
529
|
*
|
|
494
530
|
* @example
|
|
495
531
|
* ```ts
|
|
496
|
-
* const
|
|
532
|
+
* const columns = table_getCenterVisibleLeafColumns(table)
|
|
497
533
|
* ```
|
|
498
534
|
*/
|
|
499
535
|
function table_getCenterVisibleLeafColumns(table) {
|
|
500
536
|
return callMemoOrStaticFn(table, "getCenterLeafColumns", table_getCenterLeafColumns).filter((column) => callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible));
|
|
501
537
|
}
|
|
502
538
|
/**
|
|
503
|
-
*
|
|
539
|
+
* Resolves visible leaf columns for a requested pinning region.
|
|
504
540
|
*
|
|
505
|
-
*
|
|
541
|
+
* Omit `position` to get all visible leaf columns, or pass `'left'`, `'center'`,
|
|
542
|
+
* or `'right'` to get one partition.
|
|
506
543
|
*
|
|
507
544
|
* @example
|
|
508
545
|
* ```ts
|
|
509
|
-
* const
|
|
546
|
+
* const columns = table_getPinnedVisibleLeafColumns(table, 'left')
|
|
510
547
|
* ```
|
|
511
548
|
*/
|
|
512
549
|
function table_getPinnedVisibleLeafColumns(table, position) {
|