@tanstack/table-core 9.0.0-alpha.0 → 9.0.0-alpha.11
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 +65 -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 -65
- 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 -52
- 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 +95 -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 -163
- package/dist/cjs/aggregationFns.cjs +0 -98
- 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 -93
- 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 -228
- package/dist/cjs/core/table.cjs.map +0 -1
- package/dist/cjs/core/table.d.cts +0 -221
- 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 -134
- 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 -308
- 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 -154
- 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 -162
- 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 -133
- 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 -298
- 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 -201
- 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 -87
- 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 -36
- 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 -38
- 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 -91
- package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
- package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
- package/dist/cjs/utils.cjs +0 -100
- 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 -98
- 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 -93
- package/dist/esm/core/row.js.map +0 -1
- package/dist/esm/core/table.d.ts +0 -221
- package/dist/esm/core/table.js +0 -228
- 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 -134
- 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 -308
- 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 -154
- 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 -162
- 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 -133
- 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 -298
- 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 -201
- 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 -36
- 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 -38
- 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 -91
- 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 -527
- 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 -273
- 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,99 @@
|
|
|
1
|
+
import { callMemoOrStaticFn } from "../../utils.js";
|
|
2
|
+
import { column_getIsVisible } from "../../features/column-visibility/columnVisibilityFeature.utils.js";
|
|
3
|
+
import { constructHeader } from "./constructHeader.js";
|
|
4
|
+
function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
|
|
5
|
+
let maxDepth = 0;
|
|
6
|
+
const findMaxDepth = (columns, depth = 1) => {
|
|
7
|
+
maxDepth = Math.max(maxDepth, depth);
|
|
8
|
+
columns.filter(
|
|
9
|
+
(column) => callMemoOrStaticFn(column, "getIsVisible", column_getIsVisible)
|
|
10
|
+
).forEach((column) => {
|
|
11
|
+
if (column.columns.length) {
|
|
12
|
+
findMaxDepth(column.columns, depth + 1);
|
|
13
|
+
}
|
|
14
|
+
}, 0);
|
|
15
|
+
};
|
|
16
|
+
findMaxDepth(allColumns);
|
|
17
|
+
const headerGroups = [];
|
|
18
|
+
const constructHeaderGroup = (headersToGroup, depth) => {
|
|
19
|
+
const headerGroup = {
|
|
20
|
+
depth,
|
|
21
|
+
id: [headerFamily, `${depth}`].filter(Boolean).join("_"),
|
|
22
|
+
headers: []
|
|
23
|
+
};
|
|
24
|
+
const pendingParentHeaders = [];
|
|
25
|
+
headersToGroup.forEach((headerToGroup) => {
|
|
26
|
+
const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];
|
|
27
|
+
const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
|
|
28
|
+
let column;
|
|
29
|
+
let isPlaceholder = false;
|
|
30
|
+
if (isLeafHeader && headerToGroup.column.parent) {
|
|
31
|
+
column = headerToGroup.column.parent;
|
|
32
|
+
} else {
|
|
33
|
+
column = headerToGroup.column;
|
|
34
|
+
isPlaceholder = true;
|
|
35
|
+
}
|
|
36
|
+
if (latestPendingParentHeader && latestPendingParentHeader.column === column) {
|
|
37
|
+
latestPendingParentHeader.subHeaders.push(headerToGroup);
|
|
38
|
+
} else {
|
|
39
|
+
const header = constructHeader(table, column, {
|
|
40
|
+
id: [headerFamily, depth, column.id, headerToGroup.id].filter(Boolean).join("_"),
|
|
41
|
+
isPlaceholder,
|
|
42
|
+
placeholderId: isPlaceholder ? `${pendingParentHeaders.filter((d) => d.column === column).length}` : void 0,
|
|
43
|
+
depth,
|
|
44
|
+
index: pendingParentHeaders.length
|
|
45
|
+
});
|
|
46
|
+
header.subHeaders.push(headerToGroup);
|
|
47
|
+
pendingParentHeaders.push(header);
|
|
48
|
+
}
|
|
49
|
+
headerGroup.headers.push(headerToGroup);
|
|
50
|
+
headerToGroup.headerGroup = headerGroup;
|
|
51
|
+
});
|
|
52
|
+
headerGroups.push(headerGroup);
|
|
53
|
+
if (depth > 0) {
|
|
54
|
+
constructHeaderGroup(pendingParentHeaders, depth - 1);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const bottomHeaders = columnsToGroup.map(
|
|
58
|
+
(column, index) => constructHeader(table, column, {
|
|
59
|
+
depth: maxDepth,
|
|
60
|
+
index
|
|
61
|
+
})
|
|
62
|
+
);
|
|
63
|
+
constructHeaderGroup(bottomHeaders, maxDepth - 1);
|
|
64
|
+
headerGroups.reverse();
|
|
65
|
+
const recurseHeadersForSpans = (headers) => {
|
|
66
|
+
const filteredHeaders = headers.filter(
|
|
67
|
+
(header) => callMemoOrStaticFn(header.column, "getIsVisible", column_getIsVisible)
|
|
68
|
+
);
|
|
69
|
+
return filteredHeaders.map((header) => {
|
|
70
|
+
let colSpan = 0;
|
|
71
|
+
let rowSpan = 0;
|
|
72
|
+
let childRowSpans = [0];
|
|
73
|
+
if (header.subHeaders.length) {
|
|
74
|
+
childRowSpans = [];
|
|
75
|
+
recurseHeadersForSpans(header.subHeaders).forEach(
|
|
76
|
+
({ colSpan: childColSpan, rowSpan: childRowSpan }) => {
|
|
77
|
+
colSpan += childColSpan;
|
|
78
|
+
childRowSpans.push(childRowSpan);
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
} else {
|
|
82
|
+
colSpan = 1;
|
|
83
|
+
}
|
|
84
|
+
const minChildRowSpan = Math.min(...childRowSpans);
|
|
85
|
+
rowSpan = rowSpan + minChildRowSpan;
|
|
86
|
+
header.colSpan = colSpan;
|
|
87
|
+
header.rowSpan = rowSpan;
|
|
88
|
+
return { colSpan, rowSpan };
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
recurseHeadersForSpans(
|
|
92
|
+
headerGroups[0]?.headers ?? []
|
|
93
|
+
);
|
|
94
|
+
return headerGroups;
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
buildHeaderGroups
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=buildHeaderGroups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildHeaderGroups.js","sources":["../../../../src/core/headers/buildHeaderGroups.ts"],"sourcesContent":["import { callMemoOrStaticFn } from '../../utils'\nimport { column_getIsVisible } from '../../features/column-visibility/columnVisibilityFeature.utils'\nimport { constructHeader } from './constructHeader'\nimport type { Table_Internal } from '../../types/Table'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Header } from '../../types/Header'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Column } from '../../types/Column'\n\nexport function buildHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n allColumns: Array<Column<TFeatures, TData, TValue>>,\n columnsToGroup: Array<Column<TFeatures, TData, TValue>>,\n table: Table_Internal<TFeatures, TData>,\n headerFamily?: 'center' | 'left' | 'right',\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (\n columns: Array<Column<TFeatures, TData, TValue>>,\n depth = 1,\n ) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n .forEach((column) => {\n if (column.columns.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n const headerGroups: Array<HeaderGroup<TFeatures, TData>> = []\n\n const constructHeaderGroup = (\n headersToGroup: Array<Header<TFeatures, TData, TValue>>,\n depth: number,\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TFeatures, TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n } as any\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Array<Header<TFeatures, TData, TValue>> = []\n\n // Scan each column for parents\n headersToGroup.forEach((headerToGroup) => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TFeatures, TData, TValue>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (\n latestPendingParentHeader &&\n latestPendingParentHeader.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = constructHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter((d) => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n constructHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n constructHeader(table, column, {\n depth: maxDepth,\n index,\n }),\n )\n\n constructHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Array<Header<TFeatures, TData, TValue>>,\n ): Array<{ colSpan: number; rowSpan: number }> => {\n const filteredHeaders = headers.filter((header) =>\n callMemoOrStaticFn(header.column, 'getIsVisible', column_getIsVisible),\n )\n\n return filteredHeaders.map((header) => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n },\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(\n (headerGroups[0]?.headers ?? []) as Array<Header<TFeatures, TData, TValue>>,\n )\n\n return headerGroups\n}\n"],"names":[],"mappings":";;;AAUO,SAAS,kBAKd,YACA,gBACA,OACA,cACA;AAOA,MAAI,WAAW;AAEf,QAAM,eAAe,CACnB,SACA,QAAQ,MACL;AACH,eAAW,KAAK,IAAI,UAAU,KAAK;AAEnC,YACG;AAAA,MAAO,CAAC,WACP,mBAAmB,QAAQ,gBAAgB,mBAAmB;AAAA,IAAA,EAE/D,QAAQ,CAAC,WAAW;AACnB,UAAI,OAAO,QAAQ,QAAQ;AACzB,qBAAa,OAAO,SAAS,QAAQ,CAAC;AAAA,MACxC;AAAA,IACF,GAAG,CAAC;AAAA,EACR;AAEA,eAAa,UAAU;AAEvB,QAAM,eAAqD,CAAA;AAE3D,QAAM,uBAAuB,CAC3B,gBACA,UACG;AAEH,UAAM,cAA6C;AAAA,MACjD;AAAA,MACA,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACvD,SAAS,CAAA;AAAA,IAAC;AAIZ,UAAM,uBAAgE,CAAA;AAGtE,mBAAe,QAAQ,CAAC,kBAAkB;AAGxC,YAAM,4BAA4B,CAAC,GAAG,oBAAoB,EAAE,QAAA,EAAU,CAAC;AAEvE,YAAM,eAAe,cAAc,OAAO,UAAU,YAAY;AAEhE,UAAI;AACJ,UAAI,gBAAgB;AAEpB,UAAI,gBAAgB,cAAc,OAAO,QAAQ;AAE/C,iBAAS,cAAc,OAAO;AAAA,MAChC,OAAO;AAEL,iBAAS,cAAc;AACvB,wBAAgB;AAAA,MAClB;AAEA,UACE,6BACA,0BAA0B,WAAW,QACrC;AAEA,kCAA0B,WAAW,KAAK,aAAa;AAAA,MACzD,OAAO;AAEL,cAAM,SAAS,gBAAgB,OAAO,QAAQ;AAAA,UAC5C,IAAI,CAAC,cAAc,OAAO,OAAO,IAAI,cAAc,EAAE,EAClD,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UACX;AAAA,UACA,eAAe,gBACX,GAAG,qBAAqB,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE,MAAM,KACjE;AAAA,UACJ;AAAA,UACA,OAAO,qBAAqB;AAAA,QAAA,CAC7B;AAGD,eAAO,WAAW,KAAK,aAAa;AAGpC,6BAAqB,KAAK,MAAM;AAAA,MAClC;AAEA,kBAAY,QAAQ,KAAK,aAAa;AACtC,oBAAc,cAAc;AAAA,IAC9B,CAAC;AAED,iBAAa,KAAK,WAAW;AAE7B,QAAI,QAAQ,GAAG;AACb,2BAAqB,sBAAsB,QAAQ,CAAC;AAAA,IACtD;AAAA,EACF;AAEA,QAAM,gBAAgB,eAAe;AAAA,IAAI,CAAC,QAAQ,UAChD,gBAAgB,OAAO,QAAQ;AAAA,MAC7B,OAAO;AAAA,MACP;AAAA,IAAA,CACD;AAAA,EAAA;AAGH,uBAAqB,eAAe,WAAW,CAAC;AAEhD,eAAa,QAAA;AAMb,QAAM,yBAAyB,CAC7B,YACgD;AAChD,UAAM,kBAAkB,QAAQ;AAAA,MAAO,CAAC,WACtC,mBAAmB,OAAO,QAAQ,gBAAgB,mBAAmB;AAAA,IAAA;AAGvE,WAAO,gBAAgB,IAAI,CAAC,WAAW;AACrC,UAAI,UAAU;AACd,UAAI,UAAU;AACd,UAAI,gBAAgB,CAAC,CAAC;AAEtB,UAAI,OAAO,WAAW,QAAQ;AAC5B,wBAAgB,CAAA;AAEhB,+BAAuB,OAAO,UAAU,EAAE;AAAA,UACxC,CAAC,EAAE,SAAS,cAAc,SAAS,mBAAmB;AACpD,uBAAW;AACX,0BAAc,KAAK,YAAY;AAAA,UACjC;AAAA,QAAA;AAAA,MAEJ,OAAO;AACL,kBAAU;AAAA,MACZ;AAEA,YAAM,kBAAkB,KAAK,IAAI,GAAG,aAAa;AACjD,gBAAU,UAAU;AAEpB,aAAO,UAAU;AACjB,aAAO,UAAU;AAEjB,aAAO,EAAE,SAAS,QAAA;AAAA,IACpB,CAAC;AAAA,EACH;AAEA;AAAA,IACG,aAAa,CAAC,GAAG,WAAW,CAAA;AAAA,EAAC;AAGhC,SAAO;AACT;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Table_Internal } from '../../types/Table.js';
|
|
2
|
+
import { CellData, RowData } from '../../types/type-utils.js';
|
|
3
|
+
import { TableFeatures } from '../../types/TableFeatures.js';
|
|
4
|
+
import { Header } from '../../types/Header.js';
|
|
5
|
+
import { Column } from '../../types/Column.js';
|
|
6
|
+
export declare function constructHeader<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(table: Table_Internal<TFeatures, TData>, column: Column<TFeatures, TData, TValue>, options: {
|
|
7
|
+
id?: string;
|
|
8
|
+
isPlaceholder?: boolean;
|
|
9
|
+
placeholderId?: string;
|
|
10
|
+
index: number;
|
|
11
|
+
depth: number;
|
|
12
|
+
}): Header<TFeatures, TData, TValue>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function getHeaderPrototype(table) {
|
|
2
|
+
if (!table._headerPrototype) {
|
|
3
|
+
table._headerPrototype = { table };
|
|
4
|
+
for (const feature of Object.values(table._features)) {
|
|
5
|
+
feature.assignHeaderPrototype?.(table._headerPrototype, table);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return table._headerPrototype;
|
|
9
|
+
}
|
|
10
|
+
function constructHeader(table, column, options) {
|
|
11
|
+
const headerPrototype = getHeaderPrototype(table);
|
|
12
|
+
const header = Object.create(headerPrototype);
|
|
13
|
+
header.colSpan = 0;
|
|
14
|
+
header.column = column;
|
|
15
|
+
header.depth = options.depth;
|
|
16
|
+
header.headerGroup = null;
|
|
17
|
+
header.id = options.id ?? column.id;
|
|
18
|
+
header.index = options.index;
|
|
19
|
+
header.isPlaceholder = !!options.isPlaceholder;
|
|
20
|
+
header.placeholderId = options.placeholderId;
|
|
21
|
+
header.rowSpan = 0;
|
|
22
|
+
header.subHeaders = [];
|
|
23
|
+
return header;
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
constructHeader
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=constructHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constructHeader.js","sources":["../../../../src/core/headers/constructHeader.ts"],"sourcesContent":["import type { Table_Internal } from '../../types/Table'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Header } from '../../types/Header'\nimport type { Column } from '../../types/Column'\nimport type { Header_CoreProperties } from './coreHeadersFeature.types'\n\n/**\n * Creates or retrieves the header prototype for a table.\n * The prototype is cached on the table and shared by all header instances.\n */\nfunction getHeaderPrototype<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): object {\n if (!table._headerPrototype) {\n table._headerPrototype = { table }\n for (const feature of Object.values(table._features)) {\n feature.assignHeaderPrototype?.(table._headerPrototype, table)\n }\n }\n return table._headerPrototype\n}\n\nexport function constructHeader<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n table: Table_Internal<TFeatures, TData>,\n column: Column<TFeatures, TData, TValue>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n },\n): Header<TFeatures, TData, TValue> {\n // Create header with shared prototype for memory efficiency\n const headerPrototype = getHeaderPrototype(table)\n const header = Object.create(headerPrototype) as Header_CoreProperties<\n TFeatures,\n TData,\n TValue\n >\n\n // Only assign instance-specific properties\n header.colSpan = 0\n header.column = column\n header.depth = options.depth\n header.headerGroup = null\n header.id = options.id ?? column.id\n header.index = options.index\n header.isPlaceholder = !!options.isPlaceholder\n header.placeholderId = options.placeholderId\n header.rowSpan = 0\n header.subHeaders = []\n\n return header as Header<TFeatures, TData, TValue>\n}\n"],"names":[],"mappings":"AAWA,SAAS,mBAGP,OAAiD;AACjD,MAAI,CAAC,MAAM,kBAAkB;AAC3B,UAAM,mBAAmB,EAAE,MAAA;AAC3B,eAAW,WAAW,OAAO,OAAO,MAAM,SAAS,GAAG;AACpD,cAAQ,wBAAwB,MAAM,kBAAkB,KAAK;AAAA,IAC/D;AAAA,EACF;AACA,SAAO,MAAM;AACf;AAEO,SAAS,gBAKd,OACA,QACA,SAOkC;AAElC,QAAM,kBAAkB,mBAAmB,KAAK;AAChD,QAAM,SAAS,OAAO,OAAO,eAAe;AAO5C,SAAO,UAAU;AACjB,SAAO,SAAS;AAChB,SAAO,QAAQ,QAAQ;AACvB,SAAO,cAAc;AACrB,SAAO,KAAK,QAAQ,MAAM,OAAO;AACjC,SAAO,QAAQ,QAAQ;AACvB,SAAO,gBAAgB,CAAC,CAAC,QAAQ;AACjC,SAAO,gBAAgB,QAAQ;AAC/B,SAAO,UAAU;AACjB,SAAO,aAAa,CAAA;AAEpB,SAAO;AACT;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RowData } from '../../types/type-utils.js';
|
|
2
|
+
import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
|
|
3
|
+
interface CoreHeadersFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
|
|
4
|
+
}
|
|
5
|
+
export declare function constructCoreHeadersFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<CoreHeadersFeatureConstructors<TFeatures, TData>>;
|
|
6
|
+
/**
|
|
7
|
+
* The Core Headers feature provides the core header functionality.
|
|
8
|
+
*/
|
|
9
|
+
export declare const coreHeadersFeature: TableFeature<CoreHeadersFeatureConstructors<TableFeatures, RowData>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { assignTableAPIs, callMemoOrStaticFn, assignPrototypeAPIs } from "../../utils.js";
|
|
2
|
+
import { table_getLeftHeaderGroups, table_getCenterHeaderGroups, table_getRightHeaderGroups } from "../../features/column-pinning/columnPinningFeature.utils.js";
|
|
3
|
+
import { table_getLeafHeaders, table_getFlatHeaders, table_getFooterGroups, table_getHeaderGroups, header_getContext, header_getLeafHeaders } from "./coreHeadersFeature.utils.js";
|
|
4
|
+
function constructCoreHeadersFeature() {
|
|
5
|
+
return {
|
|
6
|
+
assignHeaderPrototype: (prototype, table) => {
|
|
7
|
+
assignPrototypeAPIs("coreHeadersFeature", prototype, table, {
|
|
8
|
+
header_getLeafHeaders: {
|
|
9
|
+
fn: (header) => header_getLeafHeaders(header),
|
|
10
|
+
memoDeps: (header) => [header.column.table.options.columns]
|
|
11
|
+
},
|
|
12
|
+
header_getContext: {
|
|
13
|
+
fn: (header) => header_getContext(header),
|
|
14
|
+
memoDeps: (header) => [header.column.table.options.columns]
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
constructTableAPIs: (table) => {
|
|
19
|
+
assignTableAPIs("coreHeadersFeature", table, {
|
|
20
|
+
table_getHeaderGroups: {
|
|
21
|
+
fn: () => table_getHeaderGroups(table),
|
|
22
|
+
memoDeps: () => [
|
|
23
|
+
table.options.columns,
|
|
24
|
+
table.store.state.columnOrder,
|
|
25
|
+
table.store.state.grouping,
|
|
26
|
+
table.store.state.columnPinning,
|
|
27
|
+
table.store.state.columnVisibility,
|
|
28
|
+
table.options.groupedColumnMode
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
table_getFooterGroups: {
|
|
32
|
+
fn: () => table_getFooterGroups(table),
|
|
33
|
+
memoDeps: () => [table.getHeaderGroups()]
|
|
34
|
+
},
|
|
35
|
+
table_getFlatHeaders: {
|
|
36
|
+
fn: () => table_getFlatHeaders(table),
|
|
37
|
+
memoDeps: () => [table.getHeaderGroups()]
|
|
38
|
+
},
|
|
39
|
+
table_getLeafHeaders: {
|
|
40
|
+
fn: () => table_getLeafHeaders(table),
|
|
41
|
+
memoDeps: () => [
|
|
42
|
+
callMemoOrStaticFn(
|
|
43
|
+
table,
|
|
44
|
+
"getLeftHeaderGroups",
|
|
45
|
+
table_getLeftHeaderGroups
|
|
46
|
+
),
|
|
47
|
+
callMemoOrStaticFn(
|
|
48
|
+
table,
|
|
49
|
+
"getCenterHeaderGroups",
|
|
50
|
+
table_getCenterHeaderGroups
|
|
51
|
+
),
|
|
52
|
+
callMemoOrStaticFn(
|
|
53
|
+
table,
|
|
54
|
+
"getRightHeaderGroups",
|
|
55
|
+
table_getRightHeaderGroups
|
|
56
|
+
)
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const coreHeadersFeature = constructCoreHeadersFeature();
|
|
64
|
+
export {
|
|
65
|
+
constructCoreHeadersFeature,
|
|
66
|
+
coreHeadersFeature
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=coreHeadersFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreHeadersFeature.js","sources":["../../../../src/core/headers/coreHeadersFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n callMemoOrStaticFn,\n} from '../../utils'\nimport {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getRightHeaderGroups,\n} from '../../features/column-pinning/columnPinningFeature.utils'\nimport {\n header_getContext,\n header_getLeafHeaders,\n table_getFlatHeaders,\n table_getFooterGroups,\n table_getHeaderGroups,\n table_getLeafHeaders,\n} from './coreHeadersFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type { Header_Header, Table_Headers } from './coreHeadersFeature.types'\n\ninterface CoreHeadersFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Header: Header_Header<TFeatures, TData>\n // Table: Table_Headers<TFeatures, TData>\n}\n\nexport function constructCoreHeadersFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<CoreHeadersFeatureConstructors<TFeatures, TData>> {\n return {\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('coreHeadersFeature', prototype, table, {\n header_getLeafHeaders: {\n fn: (header) => header_getLeafHeaders(header),\n memoDeps: (header) => [header.column.table.options.columns],\n },\n header_getContext: {\n fn: (header) => header_getContext(header),\n memoDeps: (header) => [header.column.table.options.columns],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('coreHeadersFeature', table, {\n table_getHeaderGroups: {\n fn: () => table_getHeaderGroups(table),\n memoDeps: () => [\n table.options.columns,\n table.store.state.columnOrder,\n table.store.state.grouping,\n table.store.state.columnPinning,\n table.store.state.columnVisibility,\n table.options.groupedColumnMode,\n ],\n },\n table_getFooterGroups: {\n fn: () => table_getFooterGroups(table),\n memoDeps: () => [table.getHeaderGroups()],\n },\n table_getFlatHeaders: {\n fn: () => table_getFlatHeaders(table),\n memoDeps: () => [table.getHeaderGroups()],\n },\n table_getLeafHeaders: {\n fn: () => table_getLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n ),\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n ),\n ],\n },\n })\n },\n }\n}\n\n/**\n * The Core Headers feature provides the core header functionality.\n */\nexport const coreHeadersFeature = constructCoreHeadersFeature()\n"],"names":[],"mappings":";;;AA8BO,SAAS,8BAGoD;AAClE,SAAO;AAAA,IACL,uBAAuB,CAAC,WAAW,UAAU;AAC3C,0BAAoB,sBAAsB,WAAW,OAAO;AAAA,QAC1D,uBAAuB;AAAA,UACrB,IAAI,CAAC,WAAW,sBAAsB,MAAM;AAAA,UAC5C,UAAU,CAAC,WAAW,CAAC,OAAO,OAAO,MAAM,QAAQ,OAAO;AAAA,QAAA;AAAA,QAE5D,mBAAmB;AAAA,UACjB,IAAI,CAAC,WAAW,kBAAkB,MAAM;AAAA,UACxC,UAAU,CAAC,WAAW,CAAC,OAAO,OAAO,MAAM,QAAQ,OAAO;AAAA,QAAA;AAAA,MAC5D,CACD;AAAA,IACH;AAAA,IAEA,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,sBAAsB,OAAO;AAAA,QAC3C,uBAAuB;AAAA,UACrB,IAAI,MAAM,sBAAsB,KAAK;AAAA,UACrC,UAAU,MAAM;AAAA,YACd,MAAM,QAAQ;AAAA,YACd,MAAM,MAAM,MAAM;AAAA,YAClB,MAAM,MAAM,MAAM;AAAA,YAClB,MAAM,MAAM,MAAM;AAAA,YAClB,MAAM,MAAM,MAAM;AAAA,YAClB,MAAM,QAAQ;AAAA,UAAA;AAAA,QAChB;AAAA,QAEF,uBAAuB;AAAA,UACrB,IAAI,MAAM,sBAAsB,KAAK;AAAA,UACrC,UAAU,MAAM,CAAC,MAAM,iBAAiB;AAAA,QAAA;AAAA,QAE1C,sBAAsB;AAAA,UACpB,IAAI,MAAM,qBAAqB,KAAK;AAAA,UACpC,UAAU,MAAM,CAAC,MAAM,iBAAiB;AAAA,QAAA;AAAA,QAE1C,sBAAsB;AAAA,UACpB,IAAI,MAAM,qBAAqB,KAAK;AAAA,UACpC,UAAU,MAAM;AAAA,YACd;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,YAEF;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,YAEF;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,4BAAA;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { CellData, RowData } from '../../types/type-utils.js';
|
|
2
|
+
import { TableFeatures } from '../../types/TableFeatures.js';
|
|
3
|
+
import { Table } from '../../types/Table.js';
|
|
4
|
+
import { Header } from '../../types/Header.js';
|
|
5
|
+
import { HeaderGroup } from '../../types/HeaderGroup.js';
|
|
6
|
+
import { Column } from '../../types/Column.js';
|
|
7
|
+
export interface Table_Headers<TFeatures extends TableFeatures, TData extends RowData> {
|
|
8
|
+
/**
|
|
9
|
+
* Returns all header groups for the table.
|
|
10
|
+
*/
|
|
11
|
+
getHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the footer groups for the table.
|
|
14
|
+
*/
|
|
15
|
+
getFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>;
|
|
16
|
+
/**
|
|
17
|
+
* Returns headers for all columns in the table, including parent headers.
|
|
18
|
+
*/
|
|
19
|
+
getFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>;
|
|
20
|
+
/**
|
|
21
|
+
* Returns headers for all leaf columns in the table, (not including parent headers).
|
|
22
|
+
*/
|
|
23
|
+
getLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>;
|
|
24
|
+
}
|
|
25
|
+
export interface HeaderContext<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
|
|
26
|
+
/**
|
|
27
|
+
* An instance of a column.
|
|
28
|
+
*/
|
|
29
|
+
column: Column<TFeatures, TData, TValue>;
|
|
30
|
+
/**
|
|
31
|
+
* An instance of a header.
|
|
32
|
+
*/
|
|
33
|
+
header: Header<TFeatures, TData, TValue>;
|
|
34
|
+
/**
|
|
35
|
+
* The table instance.
|
|
36
|
+
*/
|
|
37
|
+
table: Table<TFeatures, TData>;
|
|
38
|
+
}
|
|
39
|
+
export interface Header_CoreProperties<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
|
|
40
|
+
/**
|
|
41
|
+
* The col-span for the header.
|
|
42
|
+
*/
|
|
43
|
+
colSpan: number;
|
|
44
|
+
/**
|
|
45
|
+
* The header's associated column object.
|
|
46
|
+
*/
|
|
47
|
+
column: Column<TFeatures, TData, TValue>;
|
|
48
|
+
/**
|
|
49
|
+
* The depth of the header, zero-indexed based.
|
|
50
|
+
*/
|
|
51
|
+
depth: number;
|
|
52
|
+
/**
|
|
53
|
+
* The header's associated header group object.
|
|
54
|
+
*/
|
|
55
|
+
headerGroup: HeaderGroup<TFeatures, TData> | null;
|
|
56
|
+
/**
|
|
57
|
+
* The unique identifier for the header.
|
|
58
|
+
*/
|
|
59
|
+
id: string;
|
|
60
|
+
/**
|
|
61
|
+
* The index for the header within the header group.
|
|
62
|
+
*/
|
|
63
|
+
index: number;
|
|
64
|
+
/**
|
|
65
|
+
* A boolean denoting if the header is a placeholder header.
|
|
66
|
+
*/
|
|
67
|
+
isPlaceholder: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* If the header is a placeholder header, this will be a unique header ID that does not conflict with any other headers across the table.
|
|
70
|
+
*/
|
|
71
|
+
placeholderId?: string;
|
|
72
|
+
/**
|
|
73
|
+
* The row-span for the header.
|
|
74
|
+
*/
|
|
75
|
+
rowSpan: number;
|
|
76
|
+
/**
|
|
77
|
+
* The header's hierarchical sub/child headers. Will be empty if the header's associated column is a leaf-column.
|
|
78
|
+
*/
|
|
79
|
+
subHeaders: Array<Header<TFeatures, TData, TValue>>;
|
|
80
|
+
/**
|
|
81
|
+
* Reference to the parent table instance.
|
|
82
|
+
*/
|
|
83
|
+
table: Table<TFeatures, TData>;
|
|
84
|
+
}
|
|
85
|
+
export interface Header_Header<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> extends Header_CoreProperties<TFeatures, TData, TValue> {
|
|
86
|
+
/**
|
|
87
|
+
* Returns the rendering context (or props) for column-based components like headers, footers and filters.
|
|
88
|
+
*/
|
|
89
|
+
getContext: () => HeaderContext<TFeatures, TData, TValue>;
|
|
90
|
+
/**
|
|
91
|
+
* Returns the leaf headers hierarchically nested under this header.
|
|
92
|
+
*/
|
|
93
|
+
getLeafHeaders: () => Array<Header<TFeatures, TData, TValue>>;
|
|
94
|
+
}
|
|
95
|
+
export interface HeaderGroup_Header<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> {
|
|
96
|
+
depth: number;
|
|
97
|
+
headers: Array<Header<TFeatures, TData, TValue>>;
|
|
98
|
+
id: string;
|
|
99
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Table_Internal } from '../../types/Table.js';
|
|
2
|
+
import { Header } from '../../types/Header.js';
|
|
3
|
+
import { RowData } from '../../types/type-utils.js';
|
|
4
|
+
import { TableFeatures } from '../../types/TableFeatures.js';
|
|
5
|
+
import { Column } from '../../types/Column.js';
|
|
6
|
+
export declare function header_getLeafHeaders<TFeatures extends TableFeatures, TData extends RowData, TValue>(header: Header<TFeatures, TData, TValue>): Header<TFeatures, TData, TValue>[];
|
|
7
|
+
export declare function header_getContext<TFeatures extends TableFeatures, TData extends RowData, TValue>(header: Header<TFeatures, TData, TValue>): {
|
|
8
|
+
column: Column<TFeatures, TData, TValue>;
|
|
9
|
+
header: Header<TFeatures, TData, TValue>;
|
|
10
|
+
table: Table_Internal<TFeatures, TData>;
|
|
11
|
+
};
|
|
12
|
+
export declare function table_getHeaderGroups<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): import('../..').HeaderGroup<TFeatures, TData>[];
|
|
13
|
+
export declare function table_getFooterGroups<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): import('../..').HeaderGroup<TFeatures, TData>[];
|
|
14
|
+
export declare function table_getFlatHeaders<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Header<TFeatures, TData, unknown>[];
|
|
15
|
+
export declare function table_getLeafHeaders<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): any[];
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { getDefaultColumnPinningState, table_getLeftHeaderGroups, table_getCenterHeaderGroups, table_getRightHeaderGroups } from "../../features/column-pinning/columnPinningFeature.utils.js";
|
|
2
|
+
import { table_getVisibleLeafColumns } from "../../features/column-visibility/columnVisibilityFeature.utils.js";
|
|
3
|
+
import { callMemoOrStaticFn } from "../../utils.js";
|
|
4
|
+
import { buildHeaderGroups } from "./buildHeaderGroups.js";
|
|
5
|
+
function header_getLeafHeaders(header) {
|
|
6
|
+
const leafHeaders = [];
|
|
7
|
+
const recurseHeader = (h) => {
|
|
8
|
+
if (h.subHeaders.length) {
|
|
9
|
+
h.subHeaders.map(recurseHeader);
|
|
10
|
+
}
|
|
11
|
+
leafHeaders.push(h);
|
|
12
|
+
};
|
|
13
|
+
recurseHeader(header);
|
|
14
|
+
return leafHeaders;
|
|
15
|
+
}
|
|
16
|
+
function header_getContext(header) {
|
|
17
|
+
return {
|
|
18
|
+
column: header.column,
|
|
19
|
+
header,
|
|
20
|
+
table: header.column.table
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function table_getHeaderGroups(table) {
|
|
24
|
+
const { left, right } = table.store.state.columnPinning ?? getDefaultColumnPinningState();
|
|
25
|
+
const allColumns = table.getAllColumns();
|
|
26
|
+
const leafColumns = callMemoOrStaticFn(
|
|
27
|
+
table,
|
|
28
|
+
"getVisibleLeafColumns",
|
|
29
|
+
table_getVisibleLeafColumns
|
|
30
|
+
);
|
|
31
|
+
const leftColumns = left.map((columnId) => leafColumns.find((d) => d.id === columnId)).filter(Boolean);
|
|
32
|
+
const rightColumns = right.map((columnId) => leafColumns.find((d) => d.id === columnId)).filter(Boolean);
|
|
33
|
+
const centerColumns = leafColumns.filter(
|
|
34
|
+
(column) => !left.includes(column.id) && !right.includes(column.id)
|
|
35
|
+
);
|
|
36
|
+
const headerGroups = buildHeaderGroups(
|
|
37
|
+
allColumns,
|
|
38
|
+
[...leftColumns, ...centerColumns, ...rightColumns],
|
|
39
|
+
table
|
|
40
|
+
);
|
|
41
|
+
return headerGroups;
|
|
42
|
+
}
|
|
43
|
+
function table_getFooterGroups(table) {
|
|
44
|
+
const headerGroups = table.getHeaderGroups();
|
|
45
|
+
return [...headerGroups].reverse();
|
|
46
|
+
}
|
|
47
|
+
function table_getFlatHeaders(table) {
|
|
48
|
+
const headerGroups = table.getHeaderGroups();
|
|
49
|
+
return headerGroups.map((headerGroup) => {
|
|
50
|
+
return headerGroup.headers;
|
|
51
|
+
}).flat();
|
|
52
|
+
}
|
|
53
|
+
function table_getLeafHeaders(table) {
|
|
54
|
+
const left = callMemoOrStaticFn(
|
|
55
|
+
table,
|
|
56
|
+
"getLeftHeaderGroups",
|
|
57
|
+
table_getLeftHeaderGroups
|
|
58
|
+
);
|
|
59
|
+
const center = callMemoOrStaticFn(
|
|
60
|
+
table,
|
|
61
|
+
"getCenterHeaderGroups",
|
|
62
|
+
table_getCenterHeaderGroups
|
|
63
|
+
);
|
|
64
|
+
const right = callMemoOrStaticFn(
|
|
65
|
+
table,
|
|
66
|
+
"getRightHeaderGroups",
|
|
67
|
+
table_getRightHeaderGroups
|
|
68
|
+
);
|
|
69
|
+
return [
|
|
70
|
+
...left[0]?.headers ?? [],
|
|
71
|
+
...center[0]?.headers ?? [],
|
|
72
|
+
...right[0]?.headers ?? []
|
|
73
|
+
].map((header) => {
|
|
74
|
+
return header.getLeafHeaders();
|
|
75
|
+
}).flat();
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
header_getContext,
|
|
79
|
+
header_getLeafHeaders,
|
|
80
|
+
table_getFlatHeaders,
|
|
81
|
+
table_getFooterGroups,
|
|
82
|
+
table_getHeaderGroups,
|
|
83
|
+
table_getLeafHeaders
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=coreHeadersFeature.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreHeadersFeature.utils.js","sources":["../../../../src/core/headers/coreHeadersFeature.utils.ts"],"sourcesContent":["import {\n getDefaultColumnPinningState,\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getRightHeaderGroups,\n} from '../../features/column-pinning/columnPinningFeature.utils'\nimport { table_getVisibleLeafColumns } from '../../features/column-visibility/columnVisibilityFeature.utils'\nimport { callMemoOrStaticFn } from '../../utils'\nimport { buildHeaderGroups } from './buildHeaderGroups'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Header_Header } from './coreHeadersFeature.types'\nimport type { Column } from '../../types/Column'\n\nexport function header_getLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue,\n>(header: Header<TFeatures, TData, TValue>) {\n const leafHeaders: Array<Header<TFeatures, TData, TValue>> = []\n\n const recurseHeader = (h: Header_Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h as Header<TFeatures, TData, TValue>)\n }\n\n recurseHeader(header)\n\n return leafHeaders\n}\n\nexport function header_getContext<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue,\n>(header: Header<TFeatures, TData, TValue>) {\n return {\n column: header.column,\n header,\n table: header.column.table,\n }\n}\n\nexport function table_getHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.store.state.columnPinning ?? getDefaultColumnPinningState()\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column<TFeatures, TData, unknown>>\n\n const leftColumns = left\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n const rightColumns = right\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n const centerColumns = leafColumns.filter(\n (column) => !left.includes(column.id) && !right.includes(column.id),\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table,\n )\n\n return headerGroups\n}\n\nexport function table_getFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = table.getHeaderGroups()\n return [...headerGroups].reverse()\n}\n\nexport function table_getFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = table.getHeaderGroups()\n return headerGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const left = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n const center = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n const right = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map((header) => {\n return header.getLeafHeaders()\n })\n .flat()\n}\n"],"names":[],"mappings":";;;;AAgBO,SAAS,sBAId,QAA0C;AAC1C,QAAM,cAAuD,CAAA;AAE7D,QAAM,gBAAgB,CAAC,MAA+C;AACpE,QAAI,EAAE,WAAW,QAAQ;AACvB,QAAE,WAAW,IAAI,aAAa;AAAA,IAChC;AACA,gBAAY,KAAK,CAAqC;AAAA,EACxD;AAEA,gBAAc,MAAM;AAEpB,SAAO;AACT;AAEO,SAAS,kBAId,QAA0C;AAC1C,SAAO;AAAA,IACL,QAAQ,OAAO;AAAA,IACf;AAAA,IACA,OAAO,OAAO,OAAO;AAAA,EAAA;AAEzB;AAEO,SAAS,sBAGd,OAAyC;AACzC,QAAM,EAAE,MAAM,UACZ,MAAM,MAAM,MAAM,iBAAiB,6BAAA;AACrC,QAAM,aAAa,MAAM,cAAA;AACzB,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,cAAc,KACjB,IAAI,CAAC,aAAa,YAAY,KAAK,CAAC,MAAM,EAAE,OAAO,QAAQ,CAAE,EAC7D,OAAO,OAAO;AAEjB,QAAM,eAAe,MAClB,IAAI,CAAC,aAAa,YAAY,KAAK,CAAC,MAAM,EAAE,OAAO,QAAQ,CAAE,EAC7D,OAAO,OAAO;AAEjB,QAAM,gBAAgB,YAAY;AAAA,IAChC,CAAC,WAAW,CAAC,KAAK,SAAS,OAAO,EAAE,KAAK,CAAC,MAAM,SAAS,OAAO,EAAE;AAAA,EAAA;AAGpE,QAAM,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY;AAAA,IAClD;AAAA,EAAA;AAGF,SAAO;AACT;AAEO,SAAS,sBAGd,OAAyC;AACzC,QAAM,eAAe,MAAM,gBAAA;AAC3B,SAAO,CAAC,GAAG,YAAY,EAAE,QAAA;AAC3B;AAEO,SAAS,qBAGd,OAAyC;AACzC,QAAM,eAAe,MAAM,gBAAA;AAC3B,SAAO,aACJ,IAAI,CAAC,gBAAgB;AACpB,WAAO,YAAY;AAAA,EACrB,CAAC,EACA,KAAA;AACL;AAEO,SAAS,qBAGd,OAAyC;AACzC,QAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,SAAO;AAAA,IACL,GAAI,KAAK,CAAC,GAAG,WAAW,CAAA;AAAA,IACxB,GAAI,OAAO,CAAC,GAAG,WAAW,CAAA;AAAA,IAC1B,GAAI,MAAM,CAAC,GAAG,WAAW,CAAA;AAAA,EAAC,EAEzB,IAAI,CAAC,WAAW;AACf,WAAO,OAAO,eAAA;AAAA,EAChB,CAAC,EACA,KAAA;AACL;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RowData } from '../../types/type-utils.js';
|
|
2
|
+
import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
|
|
3
|
+
interface CoreRowModelsFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
|
|
4
|
+
}
|
|
5
|
+
export declare function constructCoreRowModelsFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<CoreRowModelsFeatureConstructors<TFeatures, TData>>;
|
|
6
|
+
/**
|
|
7
|
+
* The Core Row Models feature provides the core row model functionality.
|
|
8
|
+
*/
|
|
9
|
+
export declare const coreRowModelsFeature: TableFeature<CoreRowModelsFeatureConstructors<TableFeatures, RowData>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { assignTableAPIs } from "../../utils.js";
|
|
2
|
+
import { table_getRowModel, table_getPaginatedRowModel, table_getPrePaginatedRowModel, table_getExpandedRowModel, table_getPreExpandedRowModel, table_getSortedRowModel, table_getPreSortedRowModel, table_getGroupedRowModel, table_getPreGroupedRowModel, table_getFilteredRowModel, table_getPreFilteredRowModel, table_getCoreRowModel } from "./coreRowModelsFeature.utils.js";
|
|
3
|
+
function constructCoreRowModelsFeature() {
|
|
4
|
+
return {
|
|
5
|
+
constructTableAPIs: (table) => {
|
|
6
|
+
assignTableAPIs("coreRowModelsFeature", table, {
|
|
7
|
+
table_getCoreRowModel: {
|
|
8
|
+
fn: () => table_getCoreRowModel(table)
|
|
9
|
+
},
|
|
10
|
+
table_getPreFilteredRowModel: {
|
|
11
|
+
fn: () => table_getPreFilteredRowModel(table)
|
|
12
|
+
},
|
|
13
|
+
table_getFilteredRowModel: {
|
|
14
|
+
fn: () => table_getFilteredRowModel(table)
|
|
15
|
+
},
|
|
16
|
+
table_getPreGroupedRowModel: {
|
|
17
|
+
fn: () => table_getPreGroupedRowModel(table)
|
|
18
|
+
},
|
|
19
|
+
table_getGroupedRowModel: {
|
|
20
|
+
fn: () => table_getGroupedRowModel(table)
|
|
21
|
+
},
|
|
22
|
+
table_getPreSortedRowModel: {
|
|
23
|
+
fn: () => table_getPreSortedRowModel(table)
|
|
24
|
+
},
|
|
25
|
+
table_getSortedRowModel: {
|
|
26
|
+
fn: () => table_getSortedRowModel(table)
|
|
27
|
+
},
|
|
28
|
+
table_getPreExpandedRowModel: {
|
|
29
|
+
fn: () => table_getPreExpandedRowModel(table)
|
|
30
|
+
},
|
|
31
|
+
table_getExpandedRowModel: {
|
|
32
|
+
fn: () => table_getExpandedRowModel(table)
|
|
33
|
+
},
|
|
34
|
+
table_getPrePaginatedRowModel: {
|
|
35
|
+
fn: () => table_getPrePaginatedRowModel(table)
|
|
36
|
+
},
|
|
37
|
+
table_getPaginatedRowModel: {
|
|
38
|
+
fn: () => table_getPaginatedRowModel(table)
|
|
39
|
+
},
|
|
40
|
+
table_getRowModel: {
|
|
41
|
+
fn: () => table_getRowModel(table)
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const coreRowModelsFeature = constructCoreRowModelsFeature();
|
|
48
|
+
export {
|
|
49
|
+
constructCoreRowModelsFeature,
|
|
50
|
+
coreRowModelsFeature
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=coreRowModelsFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreRowModelsFeature.js","sources":["../../../../src/core/row-models/coreRowModelsFeature.ts"],"sourcesContent":["import { assignTableAPIs } from '../../utils'\nimport {\n table_getCoreRowModel,\n table_getExpandedRowModel,\n table_getFilteredRowModel,\n table_getGroupedRowModel,\n table_getPaginatedRowModel,\n table_getPreExpandedRowModel,\n table_getPreFilteredRowModel,\n table_getPreGroupedRowModel,\n table_getPrePaginatedRowModel,\n table_getPreSortedRowModel,\n table_getRowModel,\n table_getSortedRowModel,\n} from './coreRowModelsFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type { Table_RowModels } from './coreRowModelsFeature.types'\n\ninterface CoreRowModelsFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Table: Table_RowModels<TFeatures, TData>\n}\n\nexport function constructCoreRowModelsFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<CoreRowModelsFeatureConstructors<TFeatures, TData>> {\n return {\n constructTableAPIs: (table) => {\n assignTableAPIs('coreRowModelsFeature', table, {\n table_getCoreRowModel: {\n fn: () => table_getCoreRowModel(table),\n },\n table_getPreFilteredRowModel: {\n fn: () => table_getPreFilteredRowModel(table),\n },\n table_getFilteredRowModel: {\n fn: () => table_getFilteredRowModel(table),\n },\n table_getPreGroupedRowModel: {\n fn: () => table_getPreGroupedRowModel(table),\n },\n table_getGroupedRowModel: {\n fn: () => table_getGroupedRowModel(table),\n },\n table_getPreSortedRowModel: {\n fn: () => table_getPreSortedRowModel(table),\n },\n table_getSortedRowModel: {\n fn: () => table_getSortedRowModel(table),\n },\n table_getPreExpandedRowModel: {\n fn: () => table_getPreExpandedRowModel(table),\n },\n table_getExpandedRowModel: {\n fn: () => table_getExpandedRowModel(table),\n },\n table_getPrePaginatedRowModel: {\n fn: () => table_getPrePaginatedRowModel(table),\n },\n table_getPaginatedRowModel: {\n fn: () => table_getPaginatedRowModel(table),\n },\n table_getRowModel: {\n fn: () => table_getRowModel(table),\n },\n })\n },\n }\n}\n\n/**\n * The Core Row Models feature provides the core row model functionality.\n */\nexport const coreRowModelsFeature = constructCoreRowModelsFeature()\n"],"names":[],"mappings":";;AA0BO,SAAS,gCAGsD;AACpE,SAAO;AAAA,IACL,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,wBAAwB,OAAO;AAAA,QAC7C,uBAAuB;AAAA,UACrB,IAAI,MAAM,sBAAsB,KAAK;AAAA,QAAA;AAAA,QAEvC,8BAA8B;AAAA,UAC5B,IAAI,MAAM,6BAA6B,KAAK;AAAA,QAAA;AAAA,QAE9C,2BAA2B;AAAA,UACzB,IAAI,MAAM,0BAA0B,KAAK;AAAA,QAAA;AAAA,QAE3C,6BAA6B;AAAA,UAC3B,IAAI,MAAM,4BAA4B,KAAK;AAAA,QAAA;AAAA,QAE7C,0BAA0B;AAAA,UACxB,IAAI,MAAM,yBAAyB,KAAK;AAAA,QAAA;AAAA,QAE1C,4BAA4B;AAAA,UAC1B,IAAI,MAAM,2BAA2B,KAAK;AAAA,QAAA;AAAA,QAE5C,yBAAyB;AAAA,UACvB,IAAI,MAAM,wBAAwB,KAAK;AAAA,QAAA;AAAA,QAEzC,8BAA8B;AAAA,UAC5B,IAAI,MAAM,6BAA6B,KAAK;AAAA,QAAA;AAAA,QAE9C,2BAA2B;AAAA,UACzB,IAAI,MAAM,0BAA0B,KAAK;AAAA,QAAA;AAAA,QAE3C,+BAA+B;AAAA,UAC7B,IAAI,MAAM,8BAA8B,KAAK;AAAA,QAAA;AAAA,QAE/C,4BAA4B;AAAA,UAC1B,IAAI,MAAM,2BAA2B,KAAK;AAAA,QAAA;AAAA,QAE5C,mBAAmB;AAAA,UACjB,IAAI,MAAM,kBAAkB,KAAK;AAAA,QAAA;AAAA,MACnC,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,uBAAuB,8BAAA;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Table } from '../../types/Table.js';
|
|
2
|
+
import { Table_RowModels_Faceted } from '../../features/column-faceting/columnFacetingFeature.types';
|
|
3
|
+
import { Table_RowModels_Filtered } from '../../features/column-filtering/columnFilteringFeature.types';
|
|
4
|
+
import { Table_RowModels_Grouped } from '../../features/column-grouping/columnGroupingFeature.types';
|
|
5
|
+
import { Table_RowModels_Expanded } from '../../features/row-expanding/rowExpandingFeature.types';
|
|
6
|
+
import { Table_RowModels_Paginated } from '../../features/row-pagination/rowPaginationFeature.types';
|
|
7
|
+
import { Table_RowModels_Sorted } from '../../features/row-sorting/rowSortingFeature.types';
|
|
8
|
+
import { Row } from '../../types/Row.js';
|
|
9
|
+
import { TableFeatures } from '../../types/TableFeatures.js';
|
|
10
|
+
import { RowData } from '../../types/type-utils.js';
|
|
11
|
+
export interface RowModel<TFeatures extends TableFeatures, TData extends RowData> {
|
|
12
|
+
rows: Array<Row<TFeatures, TData>>;
|
|
13
|
+
flatRows: Array<Row<TFeatures, TData>>;
|
|
14
|
+
rowsById: Record<string, Row<TFeatures, TData>>;
|
|
15
|
+
}
|
|
16
|
+
export interface CreateRowModel_Plugins {
|
|
17
|
+
}
|
|
18
|
+
export interface CreateRowModel_Core<TFeatures extends TableFeatures, TData extends RowData> extends CreateRowModel_Plugins {
|
|
19
|
+
/**
|
|
20
|
+
* This required option is a factory for a function that computes and returns the core row model for the table.
|
|
21
|
+
*/
|
|
22
|
+
coreRowModel?: (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
|
|
23
|
+
}
|
|
24
|
+
export interface CachedRowModel_Plugins {
|
|
25
|
+
}
|
|
26
|
+
export interface CachedRowModel_Core<TFeatures extends TableFeatures, TData extends RowData> extends CachedRowModel_Plugins {
|
|
27
|
+
coreRowModel: () => RowModel<TFeatures, TData>;
|
|
28
|
+
}
|
|
29
|
+
export interface Table_RowModels_Core<TFeatures extends TableFeatures, TData extends RowData> {
|
|
30
|
+
/**
|
|
31
|
+
* Returns the core row model before any processing has been applied.
|
|
32
|
+
*/
|
|
33
|
+
getCoreRowModel: () => RowModel<TFeatures, TData>;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the final model after all processing from other used features has been applied. This is the row model that is most commonly used for rendering.
|
|
36
|
+
*/
|
|
37
|
+
getRowModel: () => RowModel<TFeatures, TData>;
|
|
38
|
+
}
|
|
39
|
+
export type Table_RowModels<TFeatures extends TableFeatures, TData extends RowData> = Table_RowModels_Core<TFeatures, TData> & Table_RowModels_Faceted<TFeatures, TData> & Table_RowModels_Filtered<TFeatures, TData> & Table_RowModels_Grouped<TFeatures, TData> & Table_RowModels_Expanded<TFeatures, TData> & Table_RowModels_Paginated<TFeatures, TData> & Table_RowModels_Sorted<TFeatures, TData>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Table_Internal } from '../../types/Table.js';
|
|
2
|
+
import { TableFeatures } from '../../types/TableFeatures.js';
|
|
3
|
+
import { RowData } from '../../types/type-utils.js';
|
|
4
|
+
import { RowModel } from './coreRowModelsFeature.types';
|
|
5
|
+
export declare function table_getCoreRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
6
|
+
export declare function table_getPreFilteredRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
7
|
+
export declare function table_getFilteredRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
8
|
+
export declare function table_getPreGroupedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
9
|
+
export declare function table_getGroupedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
10
|
+
export declare function table_getPreSortedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
11
|
+
export declare function table_getSortedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
12
|
+
export declare function table_getPreExpandedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
13
|
+
export declare function table_getExpandedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
14
|
+
export declare function table_getPrePaginatedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
15
|
+
export declare function table_getPaginatedRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|
|
16
|
+
export declare function table_getRowModel<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData>;
|