@tanstack/table-core 9.0.0-alpha.10 → 9.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/core/cells/constructCell.d.ts +7 -0
- package/dist/esm/core/cells/constructCell.js +21 -0
- package/dist/esm/core/cells/constructCell.js.map +1 -0
- package/dist/esm/core/cells/coreCellsFeature.d.ts +10 -0
- package/dist/esm/core/cells/coreCellsFeature.js +26 -0
- package/dist/esm/core/cells/coreCellsFeature.js.map +1 -0
- package/dist/esm/core/cells/coreCellsFeature.types.d.ts +52 -0
- package/dist/esm/core/cells/coreCellsFeature.utils.d.ts +13 -0
- package/dist/esm/core/cells/coreCellsFeature.utils.js +23 -0
- package/dist/esm/core/cells/coreCellsFeature.utils.js.map +1 -0
- package/dist/esm/core/columns/constructColumn.d.ts +6 -0
- package/dist/esm/core/columns/constructColumn.js +60 -0
- package/dist/esm/core/columns/constructColumn.js.map +1 -0
- package/dist/esm/core/columns/coreColumnsFeature.d.ts +10 -0
- package/dist/esm/core/columns/coreColumnsFeature.js +61 -0
- package/dist/esm/core/columns/coreColumnsFeature.js.map +1 -0
- package/dist/esm/core/columns/coreColumnsFeature.types.d.ts +84 -0
- package/dist/esm/core/columns/coreColumnsFeature.utils.d.ts +13 -0
- package/dist/esm/core/columns/coreColumnsFeature.utils.js +91 -0
- package/dist/esm/core/columns/coreColumnsFeature.utils.js.map +1 -0
- package/dist/esm/core/coreFeatures.d.ts +15 -0
- package/dist/esm/core/coreFeatures.js +18 -0
- package/dist/esm/core/coreFeatures.js.map +1 -0
- package/dist/esm/core/headers/buildHeaderGroups.d.ts +6 -0
- package/dist/esm/core/headers/buildHeaderGroups.js +99 -0
- package/dist/esm/core/headers/buildHeaderGroups.js.map +1 -0
- package/dist/esm/core/headers/constructHeader.d.ts +12 -0
- package/dist/esm/core/headers/constructHeader.js +28 -0
- package/dist/esm/core/headers/constructHeader.js.map +1 -0
- package/dist/esm/core/headers/coreHeadersFeature.d.ts +10 -0
- package/dist/esm/core/headers/coreHeadersFeature.js +68 -0
- package/dist/esm/core/headers/coreHeadersFeature.js.map +1 -0
- package/dist/esm/core/headers/coreHeadersFeature.types.d.ts +99 -0
- package/dist/esm/core/headers/coreHeadersFeature.utils.d.ts +15 -0
- package/dist/esm/core/headers/coreHeadersFeature.utils.js +85 -0
- package/dist/esm/core/headers/coreHeadersFeature.utils.js.map +1 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.d.ts +10 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.js +52 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.js.map +1 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.types.d.ts +39 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.utils.d.ts +16 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.utils.js +85 -0
- package/dist/esm/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
- package/dist/esm/core/row-models/createCoreRowModel.d.ts +5 -0
- package/dist/esm/core/row-models/createCoreRowModel.js +54 -0
- package/dist/esm/core/row-models/createCoreRowModel.js.map +1 -0
- package/dist/esm/core/rows/constructRow.d.ts +5 -0
- package/dist/esm/core/rows/constructRow.js +29 -0
- package/dist/esm/core/rows/constructRow.js.map +1 -0
- package/dist/esm/core/rows/coreRowsFeature.d.ts +10 -0
- package/dist/esm/core/rows/coreRowsFeature.js +52 -0
- package/dist/esm/core/rows/coreRowsFeature.js.map +1 -0
- package/dist/esm/core/rows/coreRowsFeature.types.d.ts +91 -0
- package/dist/esm/core/rows/coreRowsFeature.utils.d.ts +15 -0
- package/dist/esm/core/rows/coreRowsFeature.utils.js +94 -0
- package/dist/esm/core/rows/coreRowsFeature.utils.js.map +1 -0
- package/dist/esm/core/table/constructTable.d.ts +9 -0
- package/dist/esm/core/table/constructTable.js +62 -0
- package/dist/esm/core/table/constructTable.js.map +1 -0
- package/dist/esm/core/table/coreTablesFeature.d.ts +10 -0
- package/dist/esm/core/table/coreTablesFeature.js +22 -0
- package/dist/esm/core/table/coreTablesFeature.js.map +1 -0
- package/dist/esm/core/table/coreTablesFeature.types.d.ts +105 -0
- package/dist/esm/core/table/coreTablesFeature.utils.d.ts +7 -0
- package/dist/esm/core/table/coreTablesFeature.utils.js +23 -0
- package/dist/esm/core/table/coreTablesFeature.utils.js.map +1 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.d.ts +10 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.js +80 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.js.map +1 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.types.d.ts +68 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.utils.d.ts +11 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js +33 -0
- package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
- package/dist/esm/features/column-faceting/createFacetedMinMaxValues.d.ts +4 -0
- package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js +41 -0
- package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
- package/dist/esm/features/column-faceting/createFacetedRowModel.d.ts +5 -0
- package/dist/esm/features/column-faceting/createFacetedRowModel.js +47 -0
- package/dist/esm/features/column-faceting/createFacetedRowModel.js.map +1 -0
- package/dist/esm/features/column-faceting/createFacetedUniqueValues.d.ts +4 -0
- package/dist/esm/features/column-faceting/createFacetedUniqueValues.js +46 -0
- package/dist/esm/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.d.ts +11 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.js +69 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.js.map +1 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.types.d.ts +145 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.utils.d.ts +16 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js +118 -0
- package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
- package/dist/esm/features/column-filtering/createFilteredRowModel.d.ts +6 -0
- package/dist/esm/features/column-filtering/createFilteredRowModel.js +110 -0
- package/dist/esm/features/column-filtering/createFilteredRowModel.js.map +1 -0
- package/dist/esm/features/column-filtering/filterRowsUtils.d.ts +6 -0
- package/dist/esm/{utils → features/column-filtering}/filterRowsUtils.js +15 -19
- package/dist/esm/features/column-filtering/filterRowsUtils.js.map +1 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.d.ts +10 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.js +91 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.js.map +1 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.types.d.ts +153 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.utils.d.ts +22 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js +99 -0
- package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
- package/dist/esm/features/column-grouping/createGroupedRowModel.d.ts +6 -0
- package/dist/esm/features/column-grouping/createGroupedRowModel.js +144 -0
- package/dist/esm/features/column-grouping/createGroupedRowModel.js.map +1 -0
- package/dist/esm/features/column-ordering/columnOrderingFeature.d.ts +10 -0
- package/dist/esm/features/column-ordering/columnOrderingFeature.js +60 -0
- package/dist/esm/features/column-ordering/columnOrderingFeature.js.map +1 -0
- package/dist/{cjs/features/ColumnOrdering.d.cts → esm/features/column-ordering/columnOrderingFeature.types.d.ts} +8 -22
- package/dist/esm/features/column-ordering/columnOrderingFeature.utils.d.ts +14 -0
- package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js +72 -0
- package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.d.ts +10 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.js +260 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.js.map +1 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.types.d.ts +157 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.utils.d.ts +39 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.utils.js +325 -0
- package/dist/esm/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.d.ts +11 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.js +52 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.js.map +1 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.types.d.ts +68 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.utils.d.ts +14 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.utils.js +193 -0
- package/dist/esm/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.d.ts +11 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.js +95 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.js.map +1 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.types.d.ts +81 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.utils.d.ts +25 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.utils.js +128 -0
- package/dist/esm/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.js +100 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.js.map +1 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.types.d.ts +84 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js +105 -0
- package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.d.ts +11 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.js +51 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.js.map +1 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.types.d.ts +59 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js +30 -0
- package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
- package/dist/esm/features/row-expanding/createExpandedRowModel.d.ts +6 -0
- package/dist/esm/features/row-expanding/createExpandedRowModel.js +49 -0
- package/dist/esm/features/row-expanding/createExpandedRowModel.js.map +1 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.d.ts +10 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.js +74 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.js.map +1 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.types.d.ts +116 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.utils.d.ts +20 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js +125 -0
- package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
- package/dist/esm/features/row-pagination/createPaginatedRowModel.d.ts +5 -0
- package/dist/esm/features/row-pagination/createPaginatedRowModel.js +58 -0
- package/dist/esm/features/row-pagination/createPaginatedRowModel.js.map +1 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.d.ts +10 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.js +78 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.js.map +1 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.types.d.ts +119 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.utils.d.ts +21 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js +126 -0
- package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.d.ts +10 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.js +80 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.js.map +1 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.types.d.ts +72 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.utils.d.ts +16 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.utils.js +115 -0
- package/dist/esm/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.d.ts +10 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.js +112 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.js.map +1 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.types.d.ts +123 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.utils.d.ts +34 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.utils.js +290 -0
- package/dist/esm/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
- package/dist/esm/features/row-sorting/createSortedRowModel.d.ts +6 -0
- package/dist/esm/features/row-sorting/createSortedRowModel.js +94 -0
- package/dist/esm/features/row-sorting/createSortedRowModel.js.map +1 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.d.ts +10 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.js +82 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.js.map +1 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.types.d.ts +178 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.utils.d.ts +20 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.utils.js +181 -0
- package/dist/esm/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
- package/dist/esm/features/stockFeatures.d.ts +31 -0
- package/dist/esm/features/stockFeatures.js +34 -0
- package/dist/esm/features/stockFeatures.js.map +1 -0
- package/dist/esm/fns/aggregationFns.d.ts +49 -0
- package/dist/esm/fns/aggregationFns.js +110 -0
- package/dist/esm/fns/aggregationFns.js.map +1 -0
- package/dist/esm/fns/filterFns.d.ts +76 -0
- package/dist/esm/fns/filterFns.js +134 -0
- package/dist/esm/fns/filterFns.js.map +1 -0
- package/dist/esm/fns/sortFns.d.ts +17 -0
- package/dist/esm/{sortingFns.js → fns/sortFns.js} +21 -15
- package/dist/esm/fns/sortFns.js.map +1 -0
- package/dist/esm/helpers/columnHelper.d.ts +61 -0
- package/dist/esm/{columnHelper.js → helpers/columnHelper.js} +1 -0
- package/dist/esm/helpers/columnHelper.js.map +1 -0
- package/dist/esm/helpers/tableFeatures.d.ts +13 -0
- package/dist/esm/helpers/tableFeatures.js +7 -0
- package/dist/esm/helpers/tableFeatures.js.map +1 -0
- package/dist/esm/helpers/tableHelper.d.ts +25 -0
- package/dist/esm/helpers/tableHelper.js +13 -0
- package/dist/esm/helpers/tableHelper.js.map +1 -0
- package/dist/esm/helpers/tableOptions.d.ts +23 -0
- package/dist/esm/helpers/tableOptions.js +7 -0
- package/dist/esm/helpers/tableOptions.js.map +1 -0
- package/dist/esm/index.d.ts +109 -33
- package/dist/esm/index.js +397 -66
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/Cell.d.ts +13 -0
- package/dist/esm/types/Column.d.ts +26 -0
- package/dist/esm/types/ColumnDef.d.ts +64 -0
- package/dist/esm/types/Header.d.ts +14 -0
- package/dist/esm/types/HeaderGroup.d.ts +12 -0
- package/dist/esm/types/Row.d.ts +19 -0
- package/dist/esm/types/RowModel.d.ts +23 -0
- package/dist/esm/types/RowModelFns.d.ts +15 -0
- package/dist/esm/types/Table.d.ts +53 -0
- package/dist/esm/types/TableFeatures.d.ts +77 -0
- package/dist/esm/types/TableOptions.d.ts +39 -0
- package/dist/esm/types/TableState.d.ts +23 -0
- package/dist/esm/types/type-utils.d.ts +22 -0
- package/dist/esm/utils.d.ts +66 -33
- package/dist/esm/utils.js +183 -50
- package/dist/esm/utils.js.map +1 -1
- package/package.json +21 -12
- package/src/core/cells/constructCell.ts +49 -0
- package/src/core/cells/coreCellsFeature.ts +44 -0
- package/src/core/cells/coreCellsFeature.types.ts +68 -0
- package/src/core/cells/coreCellsFeature.utils.ts +35 -0
- package/src/core/columns/constructColumn.ts +111 -0
- package/src/core/columns/coreColumnsFeature.ts +90 -0
- package/src/core/columns/coreColumnsFeature.types.ts +103 -0
- package/src/core/columns/coreColumnsFeature.utils.ts +160 -0
- package/src/core/coreFeatures.ts +24 -0
- package/src/core/headers/buildHeaderGroups.ts +177 -0
- package/src/core/headers/constructHeader.ts +61 -0
- package/src/core/headers/coreHeadersFeature.ts +98 -0
- package/src/core/headers/coreHeadersFeature.types.ts +123 -0
- package/src/core/headers/coreHeadersFeature.utils.ts +131 -0
- package/src/core/row-models/coreRowModelsFeature.ts +78 -0
- package/src/core/row-models/coreRowModelsFeature.types.ts +67 -0
- package/src/core/row-models/coreRowModelsFeature.utils.ts +140 -0
- package/src/core/row-models/createCoreRowModel.ts +88 -0
- package/src/core/rows/constructRow.ts +59 -0
- package/src/core/rows/coreRowsFeature.ts +84 -0
- package/src/core/rows/coreRowsFeature.types.ts +111 -0
- package/src/core/rows/coreRowsFeature.utils.ts +152 -0
- package/src/core/table/constructTable.ts +89 -0
- package/src/core/table/coreTablesFeature.ts +36 -0
- package/src/core/table/coreTablesFeature.types.ts +123 -0
- package/src/core/table/coreTablesFeature.utils.ts +40 -0
- package/src/features/column-faceting/columnFacetingFeature.ts +112 -0
- package/src/features/column-faceting/columnFacetingFeature.types.ts +97 -0
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +77 -0
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +63 -0
- package/src/features/column-faceting/createFacetedRowModel.ts +76 -0
- package/src/features/column-faceting/createFacetedUniqueValues.ts +60 -0
- package/src/features/column-filtering/columnFilteringFeature.ts +121 -0
- package/src/features/column-filtering/columnFilteringFeature.types.ts +219 -0
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +213 -0
- package/src/features/column-filtering/createFilteredRowModel.ts +171 -0
- package/src/features/column-filtering/filterRowsUtils.ts +152 -0
- package/src/features/column-grouping/columnGroupingFeature.ts +151 -0
- package/src/features/column-grouping/columnGroupingFeature.types.ts +218 -0
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +192 -0
- package/src/features/column-grouping/createGroupedRowModel.ts +215 -0
- package/src/features/column-ordering/columnOrderingFeature.ts +96 -0
- package/src/features/column-ordering/columnOrderingFeature.types.ts +49 -0
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +133 -0
- package/src/features/column-pinning/columnPinningFeature.ts +324 -0
- package/src/features/column-pinning/columnPinningFeature.types.ts +176 -0
- package/src/features/column-pinning/columnPinningFeature.utils.ts +537 -0
- package/src/features/column-resizing/columnResizingFeature.ts +92 -0
- package/src/features/column-resizing/columnResizingFeature.types.ts +81 -0
- package/src/features/column-resizing/columnResizingFeature.utils.ts +265 -0
- package/src/features/column-sizing/columnSizingFeature.ts +146 -0
- package/src/features/column-sizing/columnSizingFeature.types.ts +92 -0
- package/src/features/column-sizing/columnSizingFeature.utils.ts +211 -0
- package/src/features/column-visibility/columnVisibilityFeature.ts +155 -0
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +101 -0
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +183 -0
- package/src/features/global-filtering/globalFilteringFeature.ts +92 -0
- package/src/features/global-filtering/globalFilteringFeature.types.ts +84 -0
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +60 -0
- package/src/features/row-expanding/createExpandedRowModel.ts +72 -0
- package/src/features/row-expanding/rowExpandingFeature.ts +122 -0
- package/src/features/row-expanding/rowExpandingFeature.types.ts +141 -0
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +207 -0
- package/src/features/row-pagination/createPaginatedRowModel.ts +78 -0
- package/src/features/row-pagination/rowPaginationFeature.ts +121 -0
- package/src/features/row-pagination/rowPaginationFeature.types.ts +141 -0
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +204 -0
- package/src/features/row-pinning/rowPinningFeature.ts +121 -0
- package/src/features/row-pinning/rowPinningFeature.types.ts +89 -0
- package/src/features/row-pinning/rowPinningFeature.utils.ts +197 -0
- package/src/features/row-selection/rowSelectionFeature.ts +164 -0
- package/src/features/row-selection/rowSelectionFeature.types.ts +143 -0
- package/src/features/row-selection/rowSelectionFeature.utils.ts +464 -0
- package/src/features/row-sorting/createSortedRowModel.ts +147 -0
- package/src/features/row-sorting/rowSortingFeature.ts +136 -0
- package/src/features/row-sorting/rowSortingFeature.types.ts +229 -0
- package/src/features/row-sorting/rowSortingFeature.utils.ts +320 -0
- package/src/features/stockFeatures.ts +48 -0
- package/src/fns/aggregationFns.ts +220 -0
- package/src/fns/filterFns.ts +379 -0
- package/src/{sortingFns.ts → fns/sortFns.ts} +66 -21
- package/src/helpers/columnHelper.ts +117 -0
- package/src/helpers/tableFeatures.ts +24 -0
- package/src/helpers/tableHelper.ts +61 -0
- package/src/helpers/tableOptions.ts +82 -0
- package/src/index.ts +156 -42
- package/src/types/Cell.ts +41 -0
- package/src/types/Column.ts +86 -0
- package/src/types/ColumnDef.ts +217 -0
- package/src/types/Header.ts +45 -0
- package/src/types/HeaderGroup.ts +24 -0
- package/src/types/Row.ts +55 -0
- package/src/types/RowModel.ts +137 -0
- package/src/types/RowModelFns.ts +51 -0
- package/src/types/Table.ts +125 -0
- package/src/types/TableFeatures.ts +150 -0
- package/src/types/TableOptions.ts +125 -0
- package/src/types/TableState.ts +88 -0
- package/src/types/type-utils.ts +84 -0
- package/src/utils.ts +344 -164
- package/dist/cjs/aggregationFns.cjs +0 -94
- package/dist/cjs/aggregationFns.cjs.map +0 -1
- package/dist/cjs/aggregationFns.d.cts +0 -14
- package/dist/cjs/columnHelper.cjs +0 -19
- package/dist/cjs/columnHelper.cjs.map +0 -1
- package/dist/cjs/columnHelper.d.cts +0 -9
- package/dist/cjs/core/cell.cjs +0 -38
- package/dist/cjs/core/cell.cjs.map +0 -1
- package/dist/cjs/core/cell.d.cts +0 -50
- package/dist/cjs/core/column.cjs +0 -81
- package/dist/cjs/core/column.cjs.map +0 -1
- package/dist/cjs/core/column.d.cts +0 -56
- package/dist/cjs/core/headers.cjs +0 -310
- package/dist/cjs/core/headers.cjs.map +0 -1
- package/dist/cjs/core/headers.d.cts +0 -195
- package/dist/cjs/core/row.cjs +0 -92
- package/dist/cjs/core/row.cjs.map +0 -1
- package/dist/cjs/core/row.d.cts +0 -92
- package/dist/cjs/core/table.cjs +0 -232
- package/dist/cjs/core/table.cjs.map +0 -1
- package/dist/cjs/core/table.d.cts +0 -229
- package/dist/cjs/features/ColumnFaceting.cjs +0 -29
- package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
- package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
- package/dist/cjs/features/ColumnFiltering.cjs +0 -137
- package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
- package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
- package/dist/cjs/features/ColumnGrouping.cjs +0 -133
- package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
- package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
- package/dist/cjs/features/ColumnOrdering.cjs +0 -76
- package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
- package/dist/cjs/features/ColumnPinning.cjs +0 -145
- package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
- package/dist/cjs/features/ColumnPinning.d.cts +0 -127
- package/dist/cjs/features/ColumnSizing.cjs +0 -307
- package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
- package/dist/cjs/features/ColumnSizing.d.cts +0 -194
- package/dist/cjs/features/ColumnVisibility.cjs +0 -144
- package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
- package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
- package/dist/cjs/features/GlobalFaceting.cjs +0 -29
- package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
- package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
- package/dist/cjs/features/GlobalFiltering.cjs +0 -50
- package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
- package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
- package/dist/cjs/features/RowExpanding.cjs +0 -152
- package/dist/cjs/features/RowExpanding.cjs.map +0 -1
- package/dist/cjs/features/RowExpanding.d.cts +0 -155
- package/dist/cjs/features/RowPagination.cjs +0 -161
- package/dist/cjs/features/RowPagination.cjs.map +0 -1
- package/dist/cjs/features/RowPagination.d.cts +0 -166
- package/dist/cjs/features/RowPinning.cjs +0 -132
- package/dist/cjs/features/RowPinning.cjs.map +0 -1
- package/dist/cjs/features/RowPinning.d.cts +0 -99
- package/dist/cjs/features/RowSelection.cjs +0 -296
- package/dist/cjs/features/RowSelection.cjs.map +0 -1
- package/dist/cjs/features/RowSelection.d.cts +0 -177
- package/dist/cjs/features/RowSorting.cjs +0 -200
- package/dist/cjs/features/RowSorting.cjs.map +0 -1
- package/dist/cjs/features/RowSorting.d.cts +0 -238
- package/dist/cjs/filterFns.cjs +0 -88
- package/dist/cjs/filterFns.cjs.map +0 -1
- package/dist/cjs/filterFns.d.cts +0 -14
- package/dist/cjs/index.cjs +0 -88
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index.d.cts +0 -34
- package/dist/cjs/sortingFns.cjs +0 -91
- package/dist/cjs/sortingFns.cjs.map +0 -1
- package/dist/cjs/sortingFns.d.cts +0 -12
- package/dist/cjs/types.d.cts +0 -120
- package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
- package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
- package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
- package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
- package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
- package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
- package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
- package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -35
- package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
- package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
- package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
- package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
- package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -37
- package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
- package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
- package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
- package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
- package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
- package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
- package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
- package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
- package/dist/cjs/utils/getSortedRowModel.cjs +0 -88
- package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
- package/dist/cjs/utils.cjs +0 -98
- package/dist/cjs/utils.cjs.map +0 -1
- package/dist/cjs/utils.d.cts +0 -39
- package/dist/esm/aggregationFns.d.ts +0 -14
- package/dist/esm/aggregationFns.js +0 -94
- package/dist/esm/aggregationFns.js.map +0 -1
- package/dist/esm/columnHelper.d.ts +0 -9
- package/dist/esm/columnHelper.js.map +0 -1
- package/dist/esm/core/cell.d.ts +0 -50
- package/dist/esm/core/cell.js +0 -38
- package/dist/esm/core/cell.js.map +0 -1
- package/dist/esm/core/column.d.ts +0 -56
- package/dist/esm/core/column.js +0 -81
- package/dist/esm/core/column.js.map +0 -1
- package/dist/esm/core/headers.d.ts +0 -195
- package/dist/esm/core/headers.js +0 -310
- package/dist/esm/core/headers.js.map +0 -1
- package/dist/esm/core/row.d.ts +0 -92
- package/dist/esm/core/row.js +0 -92
- package/dist/esm/core/row.js.map +0 -1
- package/dist/esm/core/table.d.ts +0 -229
- package/dist/esm/core/table.js +0 -232
- package/dist/esm/core/table.js.map +0 -1
- package/dist/esm/features/ColumnFaceting.d.ts +0 -35
- package/dist/esm/features/ColumnFaceting.js +0 -29
- package/dist/esm/features/ColumnFaceting.js.map +0 -1
- package/dist/esm/features/ColumnFiltering.d.ts +0 -195
- package/dist/esm/features/ColumnFiltering.js +0 -137
- package/dist/esm/features/ColumnFiltering.js.map +0 -1
- package/dist/esm/features/ColumnGrouping.d.ts +0 -202
- package/dist/esm/features/ColumnGrouping.js +0 -133
- package/dist/esm/features/ColumnGrouping.js.map +0 -1
- package/dist/esm/features/ColumnOrdering.d.ts +0 -54
- package/dist/esm/features/ColumnOrdering.js +0 -76
- package/dist/esm/features/ColumnOrdering.js.map +0 -1
- package/dist/esm/features/ColumnPinning.d.ts +0 -127
- package/dist/esm/features/ColumnPinning.js +0 -145
- package/dist/esm/features/ColumnPinning.js.map +0 -1
- package/dist/esm/features/ColumnSizing.d.ts +0 -194
- package/dist/esm/features/ColumnSizing.js +0 -307
- package/dist/esm/features/ColumnSizing.js.map +0 -1
- package/dist/esm/features/ColumnVisibility.d.ts +0 -130
- package/dist/esm/features/ColumnVisibility.js +0 -144
- package/dist/esm/features/ColumnVisibility.js.map +0 -1
- package/dist/esm/features/GlobalFaceting.d.ts +0 -27
- package/dist/esm/features/GlobalFaceting.js +0 -29
- package/dist/esm/features/GlobalFaceting.js.map +0 -1
- package/dist/esm/features/GlobalFiltering.d.ts +0 -80
- package/dist/esm/features/GlobalFiltering.js +0 -50
- package/dist/esm/features/GlobalFiltering.js.map +0 -1
- package/dist/esm/features/RowExpanding.d.ts +0 -155
- package/dist/esm/features/RowExpanding.js +0 -152
- package/dist/esm/features/RowExpanding.js.map +0 -1
- package/dist/esm/features/RowPagination.d.ts +0 -166
- package/dist/esm/features/RowPagination.js +0 -161
- package/dist/esm/features/RowPagination.js.map +0 -1
- package/dist/esm/features/RowPinning.d.ts +0 -99
- package/dist/esm/features/RowPinning.js +0 -132
- package/dist/esm/features/RowPinning.js.map +0 -1
- package/dist/esm/features/RowSelection.d.ts +0 -177
- package/dist/esm/features/RowSelection.js +0 -296
- package/dist/esm/features/RowSelection.js.map +0 -1
- package/dist/esm/features/RowSorting.d.ts +0 -238
- package/dist/esm/features/RowSorting.js +0 -200
- package/dist/esm/features/RowSorting.js.map +0 -1
- package/dist/esm/filterFns.d.ts +0 -14
- package/dist/esm/filterFns.js +0 -88
- package/dist/esm/filterFns.js.map +0 -1
- package/dist/esm/sortingFns.d.ts +0 -12
- package/dist/esm/sortingFns.js.map +0 -1
- package/dist/esm/types.d.ts +0 -120
- package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
- package/dist/esm/utils/filterRowsUtils.js.map +0 -1
- package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
- package/dist/esm/utils/getCoreRowModel.js +0 -54
- package/dist/esm/utils/getCoreRowModel.js.map +0 -1
- package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
- package/dist/esm/utils/getExpandedRowModel.js +0 -41
- package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
- package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
- package/dist/esm/utils/getFacetedMinMaxValues.js +0 -35
- package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
- package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
- package/dist/esm/utils/getFacetedRowModel.js +0 -35
- package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
- package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
- package/dist/esm/utils/getFacetedUniqueValues.js +0 -37
- package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
- package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
- package/dist/esm/utils/getFilteredRowModel.js +0 -116
- package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
- package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
- package/dist/esm/utils/getGroupedRowModel.js +0 -118
- package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
- package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
- package/dist/esm/utils/getPaginationRowModel.js +0 -49
- package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
- package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
- package/dist/esm/utils/getSortedRowModel.js +0 -88
- package/dist/esm/utils/getSortedRowModel.js.map +0 -1
- package/src/aggregationFns.ts +0 -123
- package/src/columnHelper.ts +0 -91
- package/src/core/cell.ts +0 -91
- package/src/core/column.ts +0 -165
- package/src/core/headers.ts +0 -639
- package/src/core/row.ts +0 -201
- package/src/core/table.ts +0 -563
- package/src/features/ColumnFaceting.ts +0 -84
- package/src/features/ColumnFiltering.ts +0 -429
- package/src/features/ColumnGrouping.ts +0 -422
- package/src/features/ColumnOrdering.ts +0 -161
- package/src/features/ColumnPinning.ts +0 -336
- package/src/features/ColumnSizing.ts +0 -579
- package/src/features/ColumnVisibility.ts +0 -317
- package/src/features/GlobalFaceting.ts +0 -66
- package/src/features/GlobalFiltering.ts +0 -162
- package/src/features/RowExpanding.ts +0 -355
- package/src/features/RowPagination.ts +0 -396
- package/src/features/RowPinning.ts +0 -277
- package/src/features/RowSelection.ts +0 -668
- package/src/features/RowSorting.ts +0 -542
- package/src/filterFns.ts +0 -150
- package/src/types.ts +0 -361
- package/src/utils/filterRowsUtils.ts +0 -130
- package/src/utils/getCoreRowModel.ts +0 -82
- package/src/utils/getExpandedRowModel.ts +0 -51
- package/src/utils/getFacetedMinMaxValues.ts +0 -42
- package/src/utils/getFacetedRowModel.ts +0 -44
- package/src/utils/getFacetedUniqueValues.ts +0 -42
- package/src/utils/getFilteredRowModel.ts +0 -151
- package/src/utils/getGroupedRowModel.ts +0 -181
- package/src/utils/getPaginationRowModel.ts +0 -60
- package/src/utils/getSortedRowModel.ts +0 -121
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
import {
|
|
2
|
+
column_getIsVisible,
|
|
3
|
+
row_getAllVisibleCells,
|
|
4
|
+
table_getVisibleLeafColumns,
|
|
5
|
+
} from '../column-visibility/columnVisibilityFeature.utils'
|
|
6
|
+
import { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'
|
|
7
|
+
import { callMemoOrStaticFn } from '../../utils'
|
|
8
|
+
import type { HeaderGroup } from '../../types/HeaderGroup'
|
|
9
|
+
import type { Cell } from '../../types/Cell'
|
|
10
|
+
import type { Row } from '../../types/Row'
|
|
11
|
+
import type { CellData, RowData, Updater } from '../../types/type-utils'
|
|
12
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
13
|
+
import type { Table_Internal } from '../../types/Table'
|
|
14
|
+
import type { Column_Internal } from '../../types/Column'
|
|
15
|
+
import type {
|
|
16
|
+
ColumnPinningPosition,
|
|
17
|
+
ColumnPinningState,
|
|
18
|
+
} from './columnPinningFeature.types'
|
|
19
|
+
|
|
20
|
+
// State
|
|
21
|
+
|
|
22
|
+
export function getDefaultColumnPinningState(): ColumnPinningState {
|
|
23
|
+
return structuredClone({
|
|
24
|
+
left: [],
|
|
25
|
+
right: [],
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Column APIs
|
|
30
|
+
|
|
31
|
+
export function column_pin<
|
|
32
|
+
TFeatures extends TableFeatures,
|
|
33
|
+
TData extends RowData,
|
|
34
|
+
TValue extends CellData = CellData,
|
|
35
|
+
>(
|
|
36
|
+
column: Column_Internal<TFeatures, TData, TValue>,
|
|
37
|
+
position: ColumnPinningPosition,
|
|
38
|
+
) {
|
|
39
|
+
const columnIds = column
|
|
40
|
+
.getLeafColumns()
|
|
41
|
+
.map((d) => d.id)
|
|
42
|
+
.filter(Boolean)
|
|
43
|
+
|
|
44
|
+
table_setColumnPinning(column.table, (old) => {
|
|
45
|
+
if (position === 'right') {
|
|
46
|
+
return {
|
|
47
|
+
left: old.left.filter((d) => !columnIds.includes(d)),
|
|
48
|
+
right: [
|
|
49
|
+
...old.right.filter((d) => !columnIds.includes(d)),
|
|
50
|
+
...columnIds,
|
|
51
|
+
],
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (position === 'left') {
|
|
56
|
+
return {
|
|
57
|
+
left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],
|
|
58
|
+
right: old.right.filter((d) => !columnIds.includes(d)),
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
left: old.left.filter((d) => !columnIds.includes(d)),
|
|
64
|
+
right: old.right.filter((d) => !columnIds.includes(d)),
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function column_getCanPin<
|
|
70
|
+
TFeatures extends TableFeatures,
|
|
71
|
+
TData extends RowData,
|
|
72
|
+
TValue extends CellData = CellData,
|
|
73
|
+
>(column: Column_Internal<TFeatures, TData, TValue>) {
|
|
74
|
+
const leafColumns = column.getLeafColumns() as Array<
|
|
75
|
+
Column_Internal<TFeatures, TData, TValue>
|
|
76
|
+
>
|
|
77
|
+
|
|
78
|
+
return leafColumns.some(
|
|
79
|
+
(leafColumn) =>
|
|
80
|
+
(leafColumn.columnDef.enablePinning ?? true) &&
|
|
81
|
+
(column.table.options.enableColumnPinning ?? true),
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function column_getIsPinned<
|
|
86
|
+
TFeatures extends TableFeatures,
|
|
87
|
+
TData extends RowData,
|
|
88
|
+
TValue extends CellData = CellData,
|
|
89
|
+
>(
|
|
90
|
+
column: Column_Internal<TFeatures, TData, TValue>,
|
|
91
|
+
): ColumnPinningPosition | false {
|
|
92
|
+
const leafColumnIds = column.getLeafColumns().map((d) => d.id)
|
|
93
|
+
|
|
94
|
+
const { left, right } =
|
|
95
|
+
column.table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
96
|
+
|
|
97
|
+
const isLeft = leafColumnIds.some((d) => left.includes(d))
|
|
98
|
+
const isRight = leafColumnIds.some((d) => right.includes(d))
|
|
99
|
+
|
|
100
|
+
return isLeft ? 'left' : isRight ? 'right' : false
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function column_getPinnedIndex<
|
|
104
|
+
TFeatures extends TableFeatures,
|
|
105
|
+
TData extends RowData,
|
|
106
|
+
TValue extends CellData = CellData,
|
|
107
|
+
>(column: Column_Internal<TFeatures, TData, TValue>) {
|
|
108
|
+
const position = column_getIsPinned(column)
|
|
109
|
+
|
|
110
|
+
return position
|
|
111
|
+
? (column.table.store.state.columnPinning?.[position].indexOf(column.id) ??
|
|
112
|
+
-1)
|
|
113
|
+
: 0
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Row APIs
|
|
117
|
+
|
|
118
|
+
export function row_getCenterVisibleCells<
|
|
119
|
+
TFeatures extends TableFeatures,
|
|
120
|
+
TData extends RowData,
|
|
121
|
+
>(row: Row<TFeatures, TData>) {
|
|
122
|
+
const allCells = callMemoOrStaticFn(
|
|
123
|
+
row,
|
|
124
|
+
'getAllVisibleCells',
|
|
125
|
+
row_getAllVisibleCells,
|
|
126
|
+
)
|
|
127
|
+
const { left, right } =
|
|
128
|
+
row.table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
129
|
+
const leftAndRight: Array<string> = [...left, ...right]
|
|
130
|
+
return allCells.filter((d) => !leftAndRight.includes(d.column.id))
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export function row_getLeftVisibleCells<
|
|
134
|
+
TFeatures extends TableFeatures,
|
|
135
|
+
TData extends RowData,
|
|
136
|
+
>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {
|
|
137
|
+
const allCells = callMemoOrStaticFn(
|
|
138
|
+
row,
|
|
139
|
+
'getAllVisibleCells',
|
|
140
|
+
row_getAllVisibleCells,
|
|
141
|
+
)
|
|
142
|
+
const { left } =
|
|
143
|
+
row.table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
144
|
+
const cells = left
|
|
145
|
+
.map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)
|
|
146
|
+
.filter(Boolean)
|
|
147
|
+
// Assign position property directly to preserve prototype chain
|
|
148
|
+
cells.forEach((cell) => {
|
|
149
|
+
cell.position = 'left'
|
|
150
|
+
})
|
|
151
|
+
return cells as any
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export function row_getRightVisibleCells<
|
|
155
|
+
TFeatures extends TableFeatures,
|
|
156
|
+
TData extends RowData,
|
|
157
|
+
>(row: Row<TFeatures, TData>) {
|
|
158
|
+
const allCells = callMemoOrStaticFn(
|
|
159
|
+
row,
|
|
160
|
+
'getAllVisibleCells',
|
|
161
|
+
row_getAllVisibleCells,
|
|
162
|
+
)
|
|
163
|
+
const { right } =
|
|
164
|
+
row.table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
165
|
+
const cells = right
|
|
166
|
+
.map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)
|
|
167
|
+
.filter(Boolean)
|
|
168
|
+
// Assign position property directly to preserve prototype chain
|
|
169
|
+
cells.forEach((cell) => {
|
|
170
|
+
cell.position = 'right'
|
|
171
|
+
})
|
|
172
|
+
return cells as any
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Table APIs
|
|
176
|
+
|
|
177
|
+
export function table_setColumnPinning<
|
|
178
|
+
TFeatures extends TableFeatures,
|
|
179
|
+
TData extends RowData,
|
|
180
|
+
>(
|
|
181
|
+
table: Table_Internal<TFeatures, TData>,
|
|
182
|
+
updater: Updater<ColumnPinningState>,
|
|
183
|
+
) {
|
|
184
|
+
table.options.onColumnPinningChange?.(updater)
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export function table_resetColumnPinning<
|
|
188
|
+
TFeatures extends TableFeatures,
|
|
189
|
+
TData extends RowData,
|
|
190
|
+
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
191
|
+
table_setColumnPinning(
|
|
192
|
+
table,
|
|
193
|
+
defaultState
|
|
194
|
+
? getDefaultColumnPinningState()
|
|
195
|
+
: (table.initialState.columnPinning ?? getDefaultColumnPinningState()),
|
|
196
|
+
)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export function table_getIsSomeColumnsPinned<
|
|
200
|
+
TFeatures extends TableFeatures,
|
|
201
|
+
TData extends RowData,
|
|
202
|
+
>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {
|
|
203
|
+
const pinningState = table.store.state.columnPinning
|
|
204
|
+
|
|
205
|
+
if (!position) {
|
|
206
|
+
return Boolean(pinningState?.left.length || pinningState?.right.length)
|
|
207
|
+
}
|
|
208
|
+
return Boolean(pinningState?.[position].length)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// header groups
|
|
212
|
+
|
|
213
|
+
export function table_getLeftHeaderGroups<
|
|
214
|
+
TFeatures extends TableFeatures,
|
|
215
|
+
TData extends RowData,
|
|
216
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
217
|
+
const allColumns = table.getAllColumns()
|
|
218
|
+
const leafColumns = callMemoOrStaticFn(
|
|
219
|
+
table,
|
|
220
|
+
'getVisibleLeafColumns',
|
|
221
|
+
table_getVisibleLeafColumns,
|
|
222
|
+
) as Array<Column_Internal<TFeatures, TData, unknown>>
|
|
223
|
+
const { left } =
|
|
224
|
+
table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
225
|
+
|
|
226
|
+
const orderedLeafColumns = left
|
|
227
|
+
.map((columnId) => leafColumns.find((d) => d.id === columnId)!)
|
|
228
|
+
.filter(Boolean)
|
|
229
|
+
|
|
230
|
+
return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export function table_getRightHeaderGroups<
|
|
234
|
+
TFeatures extends TableFeatures,
|
|
235
|
+
TData extends RowData,
|
|
236
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
237
|
+
const allColumns = table.getAllColumns()
|
|
238
|
+
const leafColumns = callMemoOrStaticFn(
|
|
239
|
+
table,
|
|
240
|
+
'getVisibleLeafColumns',
|
|
241
|
+
table_getVisibleLeafColumns,
|
|
242
|
+
) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>
|
|
243
|
+
const { right } =
|
|
244
|
+
table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
245
|
+
|
|
246
|
+
const orderedLeafColumns = right
|
|
247
|
+
.map((columnId) => leafColumns.find((d) => d.id === columnId)!)
|
|
248
|
+
.filter(Boolean)
|
|
249
|
+
|
|
250
|
+
return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export function table_getCenterHeaderGroups<
|
|
254
|
+
TFeatures extends TableFeatures,
|
|
255
|
+
TData extends RowData,
|
|
256
|
+
>(
|
|
257
|
+
table: Table_Internal<TFeatures, TData>,
|
|
258
|
+
): Array<HeaderGroup<TFeatures, TData>> {
|
|
259
|
+
const allColumns = table.getAllColumns()
|
|
260
|
+
let leafColumns = callMemoOrStaticFn(
|
|
261
|
+
table,
|
|
262
|
+
'getVisibleLeafColumns',
|
|
263
|
+
table_getVisibleLeafColumns,
|
|
264
|
+
) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>
|
|
265
|
+
const { left, right } =
|
|
266
|
+
table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
267
|
+
const leftAndRight: Array<string> = [...left, ...right]
|
|
268
|
+
|
|
269
|
+
leafColumns = leafColumns.filter(
|
|
270
|
+
(column) => !leftAndRight.includes(column.id),
|
|
271
|
+
)
|
|
272
|
+
return buildHeaderGroups(allColumns, leafColumns, table, 'center')
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// footer groups
|
|
276
|
+
|
|
277
|
+
export function table_getLeftFooterGroups<
|
|
278
|
+
TFeatures extends TableFeatures,
|
|
279
|
+
TData extends RowData,
|
|
280
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
281
|
+
const headerGroups = callMemoOrStaticFn(
|
|
282
|
+
table,
|
|
283
|
+
'getLeftHeaderGroups',
|
|
284
|
+
table_getLeftHeaderGroups,
|
|
285
|
+
)
|
|
286
|
+
return [...headerGroups].reverse()
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export function table_getRightFooterGroups<
|
|
290
|
+
TFeatures extends TableFeatures,
|
|
291
|
+
TData extends RowData,
|
|
292
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
293
|
+
const headerGroups = callMemoOrStaticFn(
|
|
294
|
+
table,
|
|
295
|
+
'getRightHeaderGroups',
|
|
296
|
+
table_getRightHeaderGroups,
|
|
297
|
+
)
|
|
298
|
+
return [...headerGroups].reverse()
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export function table_getCenterFooterGroups<
|
|
302
|
+
TFeatures extends TableFeatures,
|
|
303
|
+
TData extends RowData,
|
|
304
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
305
|
+
const headerGroups = callMemoOrStaticFn(
|
|
306
|
+
table,
|
|
307
|
+
'getCenterHeaderGroups',
|
|
308
|
+
table_getCenterHeaderGroups,
|
|
309
|
+
)
|
|
310
|
+
return [...headerGroups].reverse()
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// flat headers
|
|
314
|
+
|
|
315
|
+
export function table_getLeftFlatHeaders<
|
|
316
|
+
TFeatures extends TableFeatures,
|
|
317
|
+
TData extends RowData,
|
|
318
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
319
|
+
const leftHeaderGroups = callMemoOrStaticFn(
|
|
320
|
+
table,
|
|
321
|
+
'getLeftHeaderGroups',
|
|
322
|
+
table_getLeftHeaderGroups,
|
|
323
|
+
)
|
|
324
|
+
return leftHeaderGroups
|
|
325
|
+
.map((headerGroup) => {
|
|
326
|
+
return headerGroup.headers
|
|
327
|
+
})
|
|
328
|
+
.flat()
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
export function table_getRightFlatHeaders<
|
|
332
|
+
TFeatures extends TableFeatures,
|
|
333
|
+
TData extends RowData,
|
|
334
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
335
|
+
const rightHeaderGroups = callMemoOrStaticFn(
|
|
336
|
+
table,
|
|
337
|
+
'getRightHeaderGroups',
|
|
338
|
+
table_getRightHeaderGroups,
|
|
339
|
+
)
|
|
340
|
+
return rightHeaderGroups
|
|
341
|
+
.map((headerGroup) => {
|
|
342
|
+
return headerGroup.headers
|
|
343
|
+
})
|
|
344
|
+
.flat()
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
export function table_getCenterFlatHeaders<
|
|
348
|
+
TFeatures extends TableFeatures,
|
|
349
|
+
TData extends RowData,
|
|
350
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
351
|
+
const centerHeaderGroups = callMemoOrStaticFn(
|
|
352
|
+
table,
|
|
353
|
+
'getCenterHeaderGroups',
|
|
354
|
+
table_getCenterHeaderGroups,
|
|
355
|
+
)
|
|
356
|
+
return centerHeaderGroups
|
|
357
|
+
.map((headerGroup) => {
|
|
358
|
+
return headerGroup.headers
|
|
359
|
+
})
|
|
360
|
+
.flat()
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// leaf headers
|
|
364
|
+
|
|
365
|
+
export function table_getLeftLeafHeaders<
|
|
366
|
+
TFeatures extends TableFeatures,
|
|
367
|
+
TData extends RowData,
|
|
368
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
369
|
+
return callMemoOrStaticFn(
|
|
370
|
+
table,
|
|
371
|
+
'getLeftFlatHeaders',
|
|
372
|
+
table_getLeftFlatHeaders,
|
|
373
|
+
).filter((header) => !header.subHeaders.length)
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export function table_getRightLeafHeaders<
|
|
377
|
+
TFeatures extends TableFeatures,
|
|
378
|
+
TData extends RowData,
|
|
379
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
380
|
+
return callMemoOrStaticFn(
|
|
381
|
+
table,
|
|
382
|
+
'getRightFlatHeaders',
|
|
383
|
+
table_getRightFlatHeaders,
|
|
384
|
+
).filter((header) => !header.subHeaders.length)
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export function table_getCenterLeafHeaders<
|
|
388
|
+
TFeatures extends TableFeatures,
|
|
389
|
+
TData extends RowData,
|
|
390
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
391
|
+
return callMemoOrStaticFn(
|
|
392
|
+
table,
|
|
393
|
+
'getCenterFlatHeaders',
|
|
394
|
+
table_getCenterFlatHeaders,
|
|
395
|
+
).filter((header) => !header.subHeaders.length)
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
// leaf columns
|
|
399
|
+
|
|
400
|
+
export function table_getLeftLeafColumns<
|
|
401
|
+
TFeatures extends TableFeatures,
|
|
402
|
+
TData extends RowData,
|
|
403
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
404
|
+
const { left } =
|
|
405
|
+
table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
406
|
+
return left
|
|
407
|
+
.map(
|
|
408
|
+
(columnId) =>
|
|
409
|
+
table.getAllLeafColumns().find((column) => column.id === columnId)!,
|
|
410
|
+
)
|
|
411
|
+
.filter(Boolean)
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
export function table_getRightLeafColumns<
|
|
415
|
+
TFeatures extends TableFeatures,
|
|
416
|
+
TData extends RowData,
|
|
417
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
418
|
+
const { right } =
|
|
419
|
+
table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
420
|
+
return right
|
|
421
|
+
.map(
|
|
422
|
+
(columnId) =>
|
|
423
|
+
table.getAllLeafColumns().find((column) => column.id === columnId)!,
|
|
424
|
+
)
|
|
425
|
+
.filter(Boolean)
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
export function table_getCenterLeafColumns<
|
|
429
|
+
TFeatures extends TableFeatures,
|
|
430
|
+
TData extends RowData,
|
|
431
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
432
|
+
const { left, right } =
|
|
433
|
+
table.store.state.columnPinning ?? getDefaultColumnPinningState()
|
|
434
|
+
const leftAndRight: Array<string> = [...left, ...right]
|
|
435
|
+
return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
export function table_getPinnedLeafColumns<
|
|
439
|
+
TFeatures extends TableFeatures,
|
|
440
|
+
TData extends RowData,
|
|
441
|
+
>(
|
|
442
|
+
table: Table_Internal<TFeatures, TData>,
|
|
443
|
+
position: ColumnPinningPosition | 'center',
|
|
444
|
+
) {
|
|
445
|
+
return !position
|
|
446
|
+
? table.getAllLeafColumns()
|
|
447
|
+
: position === 'left'
|
|
448
|
+
? callMemoOrStaticFn(
|
|
449
|
+
table,
|
|
450
|
+
'getLeftLeafColumns',
|
|
451
|
+
table_getLeftLeafColumns,
|
|
452
|
+
)
|
|
453
|
+
: position === 'right'
|
|
454
|
+
? callMemoOrStaticFn(
|
|
455
|
+
table,
|
|
456
|
+
'getRightLeafColumns',
|
|
457
|
+
table_getRightLeafColumns,
|
|
458
|
+
)
|
|
459
|
+
: callMemoOrStaticFn(
|
|
460
|
+
table,
|
|
461
|
+
'getCenterLeafColumns',
|
|
462
|
+
table_getCenterLeafColumns,
|
|
463
|
+
)
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
// visible leaf columns
|
|
467
|
+
|
|
468
|
+
export function table_getLeftVisibleLeafColumns<
|
|
469
|
+
TFeatures extends TableFeatures,
|
|
470
|
+
TData extends RowData,
|
|
471
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
472
|
+
return callMemoOrStaticFn(
|
|
473
|
+
table,
|
|
474
|
+
'getLeftLeafColumns',
|
|
475
|
+
table_getLeftLeafColumns,
|
|
476
|
+
).filter((column) =>
|
|
477
|
+
callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
478
|
+
)
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export function table_getRightVisibleLeafColumns<
|
|
482
|
+
TFeatures extends TableFeatures,
|
|
483
|
+
TData extends RowData,
|
|
484
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
485
|
+
return callMemoOrStaticFn(
|
|
486
|
+
table,
|
|
487
|
+
'getRightLeafColumns',
|
|
488
|
+
table_getRightLeafColumns,
|
|
489
|
+
).filter((column) =>
|
|
490
|
+
callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
491
|
+
)
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
export function table_getCenterVisibleLeafColumns<
|
|
495
|
+
TFeatures extends TableFeatures,
|
|
496
|
+
TData extends RowData,
|
|
497
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
498
|
+
return callMemoOrStaticFn(
|
|
499
|
+
table,
|
|
500
|
+
'getCenterLeafColumns',
|
|
501
|
+
table_getCenterLeafColumns,
|
|
502
|
+
).filter((column) =>
|
|
503
|
+
callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
504
|
+
)
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
export function table_getPinnedVisibleLeafColumns<
|
|
508
|
+
TFeatures extends TableFeatures,
|
|
509
|
+
TData extends RowData,
|
|
510
|
+
>(
|
|
511
|
+
table: Table_Internal<TFeatures, TData>,
|
|
512
|
+
position?: ColumnPinningPosition | 'center',
|
|
513
|
+
) {
|
|
514
|
+
return !position
|
|
515
|
+
? callMemoOrStaticFn(
|
|
516
|
+
table,
|
|
517
|
+
'getVisibleLeafColumns',
|
|
518
|
+
table_getVisibleLeafColumns,
|
|
519
|
+
)
|
|
520
|
+
: position === 'left'
|
|
521
|
+
? callMemoOrStaticFn(
|
|
522
|
+
table,
|
|
523
|
+
'getLeftVisibleLeafColumns',
|
|
524
|
+
table_getLeftVisibleLeafColumns,
|
|
525
|
+
)
|
|
526
|
+
: position === 'right'
|
|
527
|
+
? callMemoOrStaticFn(
|
|
528
|
+
table,
|
|
529
|
+
'getRightVisibleLeafColumns',
|
|
530
|
+
table_getRightVisibleLeafColumns,
|
|
531
|
+
)
|
|
532
|
+
: callMemoOrStaticFn(
|
|
533
|
+
table,
|
|
534
|
+
'getCenterVisibleLeafColumns',
|
|
535
|
+
table_getCenterVisibleLeafColumns,
|
|
536
|
+
)
|
|
537
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assignPrototypeAPIs,
|
|
3
|
+
assignTableAPIs,
|
|
4
|
+
makeStateUpdater,
|
|
5
|
+
} from '../../utils'
|
|
6
|
+
import {
|
|
7
|
+
column_getCanResize,
|
|
8
|
+
column_getIsResizing,
|
|
9
|
+
getDefaultColumnResizingState,
|
|
10
|
+
header_getResizeHandler,
|
|
11
|
+
table_resetHeaderSizeInfo,
|
|
12
|
+
table_setColumnResizing,
|
|
13
|
+
} from './columnResizingFeature.utils'
|
|
14
|
+
import type { RowData } from '../../types/type-utils'
|
|
15
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
16
|
+
// import type {
|
|
17
|
+
// Column_ColumnResizing,
|
|
18
|
+
// Header_ColumnResizing,
|
|
19
|
+
// TableOptions_ColumnResizing,
|
|
20
|
+
// TableState_ColumnResizing,
|
|
21
|
+
// Table_ColumnResizing,
|
|
22
|
+
// } from './columnResizingFeature.types'
|
|
23
|
+
|
|
24
|
+
interface ColumnResizingFeatureConstructors<
|
|
25
|
+
TFeatures extends TableFeatures,
|
|
26
|
+
TData extends RowData,
|
|
27
|
+
> {
|
|
28
|
+
// Column: Column_ColumnResizing
|
|
29
|
+
// Header: Header_ColumnResizing
|
|
30
|
+
// Table: Table_ColumnResizing
|
|
31
|
+
// TableOptions: TableOptions_ColumnResizing
|
|
32
|
+
// TableState: TableState_ColumnResizing
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function constructColumnResizingFeature<
|
|
36
|
+
TFeatures extends TableFeatures,
|
|
37
|
+
TData extends RowData,
|
|
38
|
+
>(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>> {
|
|
39
|
+
return {
|
|
40
|
+
getInitialState: (initialState) => {
|
|
41
|
+
return {
|
|
42
|
+
columnResizing: getDefaultColumnResizingState(),
|
|
43
|
+
...initialState,
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
getDefaultTableOptions: (table) => {
|
|
48
|
+
return {
|
|
49
|
+
columnResizeMode: 'onEnd',
|
|
50
|
+
columnResizeDirection: 'ltr',
|
|
51
|
+
onColumnResizingChange: makeStateUpdater('columnResizing', table),
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
assignColumnPrototype: (prototype, table) => {
|
|
56
|
+
assignPrototypeAPIs('columnResizingFeature', prototype, table, {
|
|
57
|
+
column_getCanResize: {
|
|
58
|
+
fn: (column) => column_getCanResize(column),
|
|
59
|
+
},
|
|
60
|
+
column_getIsResizing: {
|
|
61
|
+
fn: (column) => column_getIsResizing(column),
|
|
62
|
+
},
|
|
63
|
+
})
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
assignHeaderPrototype: (prototype, table) => {
|
|
67
|
+
assignPrototypeAPIs('columnResizingFeature', prototype, table, {
|
|
68
|
+
header_getResizeHandler: {
|
|
69
|
+
fn: (header, _contextDocument) =>
|
|
70
|
+
header_getResizeHandler(header, _contextDocument),
|
|
71
|
+
},
|
|
72
|
+
})
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
constructTableAPIs: (table) => {
|
|
76
|
+
assignTableAPIs('columnResizingFeature', table, {
|
|
77
|
+
table_setColumnResizing: {
|
|
78
|
+
fn: (updater) => table_setColumnResizing(table, updater),
|
|
79
|
+
},
|
|
80
|
+
table_resetHeaderSizeInfo: {
|
|
81
|
+
fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
},
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The Column Resizing feature adds column resizing state and APIs to the table and column objects.
|
|
90
|
+
* **Note:** This is dependent on the Column Sizing feature.
|
|
91
|
+
*/
|
|
92
|
+
export const columnResizingFeature = constructColumnResizingFeature()
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { OnChangeFn, Updater } from '../../types/type-utils'
|
|
2
|
+
|
|
3
|
+
export interface TableState_ColumnResizing {
|
|
4
|
+
columnResizing: columnResizingState
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface columnResizingState {
|
|
8
|
+
columnSizingStart: Array<[string, number]>
|
|
9
|
+
deltaOffset: null | number
|
|
10
|
+
deltaPercentage: null | number
|
|
11
|
+
isResizingColumn: false | string
|
|
12
|
+
startOffset: null | number
|
|
13
|
+
startSize: null | number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type ColumnResizeMode = 'onChange' | 'onEnd'
|
|
17
|
+
|
|
18
|
+
export type ColumnResizeDirection = 'ltr' | 'rtl'
|
|
19
|
+
|
|
20
|
+
export interface TableOptions_ColumnResizing {
|
|
21
|
+
/**
|
|
22
|
+
* Determines when the columnSizing state is updated. `onChange` updates the state when the user is dragging the resize handle. `onEnd` updates the state when the user releases the resize handle.
|
|
23
|
+
*/
|
|
24
|
+
columnResizeMode?: ColumnResizeMode
|
|
25
|
+
/**
|
|
26
|
+
* Enables or disables column resizing for the column.
|
|
27
|
+
*/
|
|
28
|
+
enableColumnResizing?: boolean
|
|
29
|
+
/**
|
|
30
|
+
* Enables or disables right-to-left support for resizing the column. defaults to 'ltr'.
|
|
31
|
+
*/
|
|
32
|
+
columnResizeDirection?: ColumnResizeDirection
|
|
33
|
+
/**
|
|
34
|
+
* If provided, this function will be called with an `updaterFn` when `state.columnResizing` changes. This overrides the default internal state management, so you will also need to supply `state.columnResizing` from your own managed state.
|
|
35
|
+
*/
|
|
36
|
+
onColumnResizingChange?: OnChangeFn<columnResizingState>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type ColumnResizingDefaultOptions = Pick<
|
|
40
|
+
TableOptions_ColumnResizing,
|
|
41
|
+
'columnResizeMode' | 'onColumnResizingChange' | 'columnResizeDirection'
|
|
42
|
+
>
|
|
43
|
+
|
|
44
|
+
export interface Table_ColumnResizing {
|
|
45
|
+
/**
|
|
46
|
+
* Resets column sizing info to its initial state. If `defaultState` is `true`, the default state for the table will be used instead of the initialValue provided to the table.
|
|
47
|
+
*/
|
|
48
|
+
resetHeaderSizeInfo: (defaultState?: boolean) => void
|
|
49
|
+
/**
|
|
50
|
+
* Sets the column sizing info state using an updater function or a value. This will trigger the underlying `oncolumnResizingChange` function if one is passed to the table options, otherwise the state will be managed automatically by the table.
|
|
51
|
+
*/
|
|
52
|
+
setcolumnResizing: (updater: Updater<columnResizingState>) => void
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface ColumnDef_ColumnResizing {
|
|
56
|
+
/**
|
|
57
|
+
* Enables or disables column resizing for the column.
|
|
58
|
+
*/
|
|
59
|
+
enableResizing?: boolean
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface Column_ColumnResizing {
|
|
63
|
+
/**
|
|
64
|
+
* Returns `true` if the column can be resized.
|
|
65
|
+
*/
|
|
66
|
+
getCanResize: () => boolean
|
|
67
|
+
/**
|
|
68
|
+
* Returns `true` if the column is currently being resized.
|
|
69
|
+
*/
|
|
70
|
+
getIsResizing: () => boolean
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface Header_ColumnResizing {
|
|
74
|
+
/**
|
|
75
|
+
* Returns an event handler function that can be used to resize the header. It can be used as an:
|
|
76
|
+
* - `onMouseDown` handler
|
|
77
|
+
* - `onTouchStart` handler
|
|
78
|
+
* The dragging and release events are automatically handled for you.
|
|
79
|
+
*/
|
|
80
|
+
getResizeHandler: (context?: Document) => (event: unknown) => void
|
|
81
|
+
}
|