@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,121 @@
|
|
|
1
|
+
import { assignTableAPIs, makeStateUpdater } from '../../utils'
|
|
2
|
+
import {
|
|
3
|
+
getDefaultPaginationState,
|
|
4
|
+
table_autoResetPageIndex,
|
|
5
|
+
table_firstPage,
|
|
6
|
+
table_getCanNextPage,
|
|
7
|
+
table_getCanPreviousPage,
|
|
8
|
+
table_getPageCount,
|
|
9
|
+
table_getPageOptions,
|
|
10
|
+
table_getRowCount,
|
|
11
|
+
table_lastPage,
|
|
12
|
+
table_nextPage,
|
|
13
|
+
table_previousPage,
|
|
14
|
+
table_resetPageIndex,
|
|
15
|
+
table_resetPageSize,
|
|
16
|
+
table_resetPagination,
|
|
17
|
+
table_setPageIndex,
|
|
18
|
+
table_setPageSize,
|
|
19
|
+
table_setPagination,
|
|
20
|
+
} from './rowPaginationFeature.utils'
|
|
21
|
+
import type { RowData } from '../../types/type-utils'
|
|
22
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
23
|
+
// import type {
|
|
24
|
+
// CachedRowModel_Paginated,
|
|
25
|
+
// CreateRowModel_Paginated,
|
|
26
|
+
// TableOptions_RowPagination,
|
|
27
|
+
// TableState_RowPagination,
|
|
28
|
+
// Table_RowPagination,
|
|
29
|
+
// } from './rowPaginationFeature.types'
|
|
30
|
+
|
|
31
|
+
interface RowPaginationFeatureConstructors<
|
|
32
|
+
TFeatures extends TableFeatures,
|
|
33
|
+
TData extends RowData,
|
|
34
|
+
> {
|
|
35
|
+
// CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>
|
|
36
|
+
// CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>
|
|
37
|
+
// Table: Table_RowPagination<TFeatures, TData>
|
|
38
|
+
// TableOptions: TableOptions_RowPagination<TFeatures, TData>
|
|
39
|
+
// TableState: TableState_RowPagination
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function constructRowPaginationFeature<
|
|
43
|
+
TFeatures extends TableFeatures,
|
|
44
|
+
TData extends RowData,
|
|
45
|
+
>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {
|
|
46
|
+
return {
|
|
47
|
+
getInitialState: (initialState) => {
|
|
48
|
+
return {
|
|
49
|
+
...initialState,
|
|
50
|
+
pagination: {
|
|
51
|
+
...getDefaultPaginationState(),
|
|
52
|
+
...initialState.pagination,
|
|
53
|
+
},
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
getDefaultTableOptions: (table) => {
|
|
58
|
+
return {
|
|
59
|
+
onPaginationChange: makeStateUpdater('pagination', table),
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
constructTableAPIs: (table) => {
|
|
64
|
+
assignTableAPIs('rowPaginationFeature', table, {
|
|
65
|
+
table_autoResetPageIndex: {
|
|
66
|
+
fn: () => table_autoResetPageIndex(table),
|
|
67
|
+
},
|
|
68
|
+
table_setPagination: {
|
|
69
|
+
fn: (updater) => table_setPagination(table, updater),
|
|
70
|
+
},
|
|
71
|
+
table_resetPagination: {
|
|
72
|
+
fn: (defaultState) => table_resetPagination(table, defaultState),
|
|
73
|
+
},
|
|
74
|
+
table_setPageIndex: {
|
|
75
|
+
fn: (updater) => table_setPageIndex(table, updater),
|
|
76
|
+
},
|
|
77
|
+
table_resetPageIndex: {
|
|
78
|
+
fn: (defaultState) => table_resetPageIndex(table, defaultState),
|
|
79
|
+
},
|
|
80
|
+
table_setPageSize: {
|
|
81
|
+
fn: (updater) => table_setPageSize(table, updater),
|
|
82
|
+
},
|
|
83
|
+
table_getPageCount: {
|
|
84
|
+
fn: () => table_getPageCount(table),
|
|
85
|
+
},
|
|
86
|
+
table_resetPageSize: {
|
|
87
|
+
fn: (defaultState) => table_resetPageSize(table, defaultState),
|
|
88
|
+
},
|
|
89
|
+
table_getPageOptions: {
|
|
90
|
+
fn: () => table_getPageOptions(table),
|
|
91
|
+
},
|
|
92
|
+
table_getCanPreviousPage: {
|
|
93
|
+
fn: () => table_getCanPreviousPage(table),
|
|
94
|
+
},
|
|
95
|
+
table_getCanNextPage: {
|
|
96
|
+
fn: () => table_getCanNextPage(table),
|
|
97
|
+
},
|
|
98
|
+
table_previousPage: {
|
|
99
|
+
fn: () => table_previousPage(table),
|
|
100
|
+
},
|
|
101
|
+
table_nextPage: {
|
|
102
|
+
fn: () => table_nextPage(table),
|
|
103
|
+
},
|
|
104
|
+
table_firstPage: {
|
|
105
|
+
fn: () => table_firstPage(table),
|
|
106
|
+
},
|
|
107
|
+
table_lastPage: {
|
|
108
|
+
fn: () => table_lastPage(table),
|
|
109
|
+
},
|
|
110
|
+
table_getRowCount: {
|
|
111
|
+
fn: () => table_getRowCount(table),
|
|
112
|
+
},
|
|
113
|
+
})
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The (Row) Pagination feature adds pagination state and APIs to the table object.
|
|
120
|
+
*/
|
|
121
|
+
export const rowPaginationFeature = constructRowPaginationFeature()
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
|
|
2
|
+
import type { Table } from '../../types/Table'
|
|
3
|
+
import type { OnChangeFn, RowData, Updater } from '../../types/type-utils'
|
|
4
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
5
|
+
|
|
6
|
+
export interface PaginationState {
|
|
7
|
+
pageIndex: number
|
|
8
|
+
pageSize: number
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface TableState_RowPagination {
|
|
12
|
+
pagination: PaginationState
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface TableOptions_RowPagination {
|
|
16
|
+
/**
|
|
17
|
+
* If set to `true`, pagination will be reset to the first page when page-altering state changes eg. `data` is updated, filters change, grouping changes, etc.
|
|
18
|
+
*/
|
|
19
|
+
autoResetPageIndex?: boolean
|
|
20
|
+
/**
|
|
21
|
+
* Enables manual pagination. If this option is set to `true`, the table will not automatically paginate rows using `getPaginatedRowModel()` and instead will expect you to manually paginate the rows before passing them to the table. This is useful if you are doing server-side pagination and aggregation.
|
|
22
|
+
*/
|
|
23
|
+
manualPagination?: boolean
|
|
24
|
+
/**
|
|
25
|
+
* If this function is provided, it will be called when the pagination state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.pagination` option.
|
|
26
|
+
*/
|
|
27
|
+
onPaginationChange?: OnChangeFn<PaginationState>
|
|
28
|
+
/**
|
|
29
|
+
* When manually controlling pagination, you can supply a total `pageCount` value to the table if you know it (Or supply a `rowCount` and `pageCount` will be calculated). If you do not know how many pages there are, you can set this to `-1`.
|
|
30
|
+
*/
|
|
31
|
+
pageCount?: number
|
|
32
|
+
/**
|
|
33
|
+
* When manually controlling pagination, you can supply a total `rowCount` value to the table if you know it. The `pageCount` can be calculated from this value and the `pageSize`.
|
|
34
|
+
*/
|
|
35
|
+
rowCount?: number
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface PaginationDefaultOptions {
|
|
39
|
+
onPaginationChange: OnChangeFn<PaginationState>
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface Table_RowPagination<
|
|
43
|
+
TFeatures extends TableFeatures,
|
|
44
|
+
TData extends RowData,
|
|
45
|
+
> {
|
|
46
|
+
_autoResetPageIndex: () => void
|
|
47
|
+
/**
|
|
48
|
+
* Returns whether the table can go to the next page.
|
|
49
|
+
*/
|
|
50
|
+
getCanNextPage: () => boolean
|
|
51
|
+
/**
|
|
52
|
+
* Returns whether the table can go to the previous page.
|
|
53
|
+
*/
|
|
54
|
+
getCanPreviousPage: () => boolean
|
|
55
|
+
/**
|
|
56
|
+
* Returns the page count. If manually paginating or controlling the pagination state, this will come directly from the `options.pageCount` table option, otherwise it will be calculated from the table data using the total row count and current page size.
|
|
57
|
+
*/
|
|
58
|
+
getPageCount: () => number
|
|
59
|
+
/**
|
|
60
|
+
* Returns the row count. If manually paginating or controlling the pagination state, this will come directly from the `options.rowCount` table option, otherwise it will be calculated from the table data.
|
|
61
|
+
*/
|
|
62
|
+
getRowCount: () => number
|
|
63
|
+
/**
|
|
64
|
+
* Returns an array of page options (zero-index-based) for the current page size.
|
|
65
|
+
*/
|
|
66
|
+
getPageOptions: () => Array<number>
|
|
67
|
+
/**
|
|
68
|
+
* Increments the page index by one, if possible.
|
|
69
|
+
*/
|
|
70
|
+
nextPage: () => void
|
|
71
|
+
/**
|
|
72
|
+
* Decrements the page index by one, if possible.
|
|
73
|
+
*/
|
|
74
|
+
previousPage: () => void
|
|
75
|
+
/**
|
|
76
|
+
* Sets the page index to `0`.
|
|
77
|
+
*/
|
|
78
|
+
firstPage: () => void
|
|
79
|
+
/**
|
|
80
|
+
* Sets the page index to the last page.
|
|
81
|
+
*/
|
|
82
|
+
lastPage: () => void
|
|
83
|
+
/**
|
|
84
|
+
* Resets the page index to its initial state. If `defaultState` is `true`, the page index will be reset to `0` regardless of initial state.
|
|
85
|
+
*/
|
|
86
|
+
resetPageIndex: (defaultState?: boolean) => void
|
|
87
|
+
/**
|
|
88
|
+
* Resets the page size to its initial state. If `defaultState` is `true`, the page size will be reset to `10` regardless of initial state.
|
|
89
|
+
*/
|
|
90
|
+
resetPageSize: (defaultState?: boolean) => void
|
|
91
|
+
/**
|
|
92
|
+
* Resets the **pagination** state to `initialState.pagination`, or `true` can be passed to force a default blank state reset to `[]`.
|
|
93
|
+
*/
|
|
94
|
+
resetPagination: (defaultState?: boolean) => void
|
|
95
|
+
/**
|
|
96
|
+
* Updates the page index using the provided function or value in the `state.pagination.pageIndex` state.
|
|
97
|
+
*/
|
|
98
|
+
setPageIndex: (updater: Updater<number>) => void
|
|
99
|
+
/**
|
|
100
|
+
* Updates the page size using the provided function or value in the `state.pagination.pageSize` state.
|
|
101
|
+
*/
|
|
102
|
+
setPageSize: (updater: Updater<number>) => void
|
|
103
|
+
/**
|
|
104
|
+
* Sets or updates the `state.pagination` state.
|
|
105
|
+
*/
|
|
106
|
+
setPagination: (updater: Updater<PaginationState>) => void
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface Table_RowModels_Paginated<
|
|
110
|
+
TFeatures extends TableFeatures,
|
|
111
|
+
TData extends RowData,
|
|
112
|
+
> {
|
|
113
|
+
/**
|
|
114
|
+
* Returns the row model for the table after pagination has been applied.
|
|
115
|
+
*/
|
|
116
|
+
getPaginatedRowModel: () => RowModel<TFeatures, TData>
|
|
117
|
+
/**
|
|
118
|
+
* Returns the row model for the table before any pagination has been applied.
|
|
119
|
+
*/
|
|
120
|
+
getPrePaginatedRowModel: () => RowModel<TFeatures, TData>
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface CreateRowModel_Paginated<
|
|
124
|
+
TFeatures extends TableFeatures,
|
|
125
|
+
TData extends RowData,
|
|
126
|
+
> {
|
|
127
|
+
/**
|
|
128
|
+
* Returns the row model after pagination has taken place, but no further.
|
|
129
|
+
* Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.
|
|
130
|
+
*/
|
|
131
|
+
paginatedRowModel?: (
|
|
132
|
+
table: Table<TFeatures, TData>,
|
|
133
|
+
) => () => RowModel<TFeatures, TData>
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface CachedRowModel_Paginated<
|
|
137
|
+
TFeatures extends TableFeatures,
|
|
138
|
+
TData extends RowData,
|
|
139
|
+
> {
|
|
140
|
+
paginatedRowModel: () => RowModel<TFeatures, TData>
|
|
141
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { functionalUpdate } from '../../utils'
|
|
2
|
+
import type { RowData, Updater } from '../../types/type-utils'
|
|
3
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
4
|
+
import type { Table_Internal } from '../../types/Table'
|
|
5
|
+
import type { PaginationState } from './rowPaginationFeature.types'
|
|
6
|
+
|
|
7
|
+
const defaultPageIndex = 0
|
|
8
|
+
const defaultPageSize = 10
|
|
9
|
+
|
|
10
|
+
export function getDefaultPaginationState(): PaginationState {
|
|
11
|
+
return structuredClone({
|
|
12
|
+
pageIndex: defaultPageIndex,
|
|
13
|
+
pageSize: defaultPageSize,
|
|
14
|
+
})
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function table_autoResetPageIndex<
|
|
18
|
+
TFeatures extends TableFeatures,
|
|
19
|
+
TData extends RowData,
|
|
20
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
21
|
+
if (
|
|
22
|
+
table.options.autoResetAll ??
|
|
23
|
+
table.options.autoResetPageIndex ??
|
|
24
|
+
!table.options.manualPagination
|
|
25
|
+
) {
|
|
26
|
+
table_resetPageIndex(table)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function table_setPagination<
|
|
31
|
+
TFeatures extends TableFeatures,
|
|
32
|
+
TData extends RowData,
|
|
33
|
+
>(table: Table_Internal<TFeatures, TData>, updater: Updater<PaginationState>) {
|
|
34
|
+
const safeUpdater: Updater<PaginationState> = (old) => {
|
|
35
|
+
const newState = functionalUpdate(updater, old)
|
|
36
|
+
|
|
37
|
+
return newState
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return table.options.onPaginationChange?.(safeUpdater)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function table_resetPagination<
|
|
44
|
+
TFeatures extends TableFeatures,
|
|
45
|
+
TData extends RowData,
|
|
46
|
+
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
47
|
+
table_setPagination(
|
|
48
|
+
table,
|
|
49
|
+
defaultState
|
|
50
|
+
? getDefaultPaginationState()
|
|
51
|
+
: (table.initialState.pagination ?? getDefaultPaginationState()),
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function table_setPageIndex<
|
|
56
|
+
TFeatures extends TableFeatures,
|
|
57
|
+
TData extends RowData,
|
|
58
|
+
>(table: Table_Internal<TFeatures, TData>, updater: Updater<number>) {
|
|
59
|
+
table_setPagination(table, (old) => {
|
|
60
|
+
let pageIndex = functionalUpdate(updater, old.pageIndex)
|
|
61
|
+
|
|
62
|
+
const maxPageIndex =
|
|
63
|
+
typeof table.options.pageCount === 'undefined' ||
|
|
64
|
+
table.options.pageCount === -1
|
|
65
|
+
? Number.MAX_SAFE_INTEGER
|
|
66
|
+
: table.options.pageCount - 1
|
|
67
|
+
|
|
68
|
+
pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
...old,
|
|
72
|
+
pageIndex,
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function table_resetPageIndex<
|
|
78
|
+
TFeatures extends TableFeatures,
|
|
79
|
+
TData extends RowData,
|
|
80
|
+
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
81
|
+
table_setPageIndex(
|
|
82
|
+
table,
|
|
83
|
+
defaultState
|
|
84
|
+
? defaultPageIndex
|
|
85
|
+
: (table.initialState.pagination?.pageIndex ?? defaultPageIndex),
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function table_resetPageSize<
|
|
90
|
+
TFeatures extends TableFeatures,
|
|
91
|
+
TData extends RowData,
|
|
92
|
+
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
93
|
+
table_setPageSize(
|
|
94
|
+
table,
|
|
95
|
+
defaultState
|
|
96
|
+
? defaultPageSize
|
|
97
|
+
: (table.initialState.pagination?.pageSize ?? defaultPageSize),
|
|
98
|
+
)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function table_setPageSize<
|
|
102
|
+
TFeatures extends TableFeatures,
|
|
103
|
+
TData extends RowData,
|
|
104
|
+
>(table: Table_Internal<TFeatures, TData>, updater: Updater<number>) {
|
|
105
|
+
table_setPagination(table, (old) => {
|
|
106
|
+
const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))
|
|
107
|
+
const topRowIndex = old.pageSize * old.pageIndex
|
|
108
|
+
const pageIndex = Math.floor(topRowIndex / pageSize)
|
|
109
|
+
|
|
110
|
+
return {
|
|
111
|
+
...old,
|
|
112
|
+
pageIndex,
|
|
113
|
+
pageSize,
|
|
114
|
+
}
|
|
115
|
+
})
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export function table_getPageOptions<
|
|
119
|
+
TFeatures extends TableFeatures,
|
|
120
|
+
TData extends RowData,
|
|
121
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
122
|
+
const pageCount = table_getPageCount(table)
|
|
123
|
+
let pageOptions: Array<number> = []
|
|
124
|
+
if (pageCount && pageCount > 0) {
|
|
125
|
+
pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)
|
|
126
|
+
}
|
|
127
|
+
return pageOptions
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function table_getCanPreviousPage<
|
|
131
|
+
TFeatures extends TableFeatures,
|
|
132
|
+
TData extends RowData,
|
|
133
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
134
|
+
return (table.store.state.pagination?.pageIndex ?? 0) > 0
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export function table_getCanNextPage<
|
|
138
|
+
TFeatures extends TableFeatures,
|
|
139
|
+
TData extends RowData,
|
|
140
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
141
|
+
const pageIndex = table.store.state.pagination?.pageIndex ?? defaultPageIndex
|
|
142
|
+
|
|
143
|
+
const pageCount = table_getPageCount(table)
|
|
144
|
+
|
|
145
|
+
if (pageCount === -1) {
|
|
146
|
+
return true
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (pageCount === 0) {
|
|
150
|
+
return false
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return pageIndex < pageCount - 1
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export function table_previousPage<
|
|
157
|
+
TFeatures extends TableFeatures,
|
|
158
|
+
TData extends RowData,
|
|
159
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
160
|
+
return table_setPageIndex(table, (old) => old - 1)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export function table_nextPage<
|
|
164
|
+
TFeatures extends TableFeatures,
|
|
165
|
+
TData extends RowData,
|
|
166
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
167
|
+
return table_setPageIndex(table, (old) => {
|
|
168
|
+
return old + 1
|
|
169
|
+
})
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export function table_firstPage<
|
|
173
|
+
TFeatures extends TableFeatures,
|
|
174
|
+
TData extends RowData,
|
|
175
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
176
|
+
return table_setPageIndex(table, 0)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export function table_lastPage<
|
|
180
|
+
TFeatures extends TableFeatures,
|
|
181
|
+
TData extends RowData,
|
|
182
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
183
|
+
return table_setPageIndex(table, table_getPageCount(table) - 1)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export function table_getPageCount<
|
|
187
|
+
TFeatures extends TableFeatures,
|
|
188
|
+
TData extends RowData,
|
|
189
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
190
|
+
return (
|
|
191
|
+
table.options.pageCount ??
|
|
192
|
+
Math.ceil(
|
|
193
|
+
table_getRowCount(table) /
|
|
194
|
+
(table.store.state.pagination?.pageSize ?? defaultPageSize),
|
|
195
|
+
)
|
|
196
|
+
)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export function table_getRowCount<
|
|
200
|
+
TFeatures extends TableFeatures,
|
|
201
|
+
TData extends RowData,
|
|
202
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
203
|
+
return table.options.rowCount ?? table.getPrePaginatedRowModel().rows.length
|
|
204
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assignPrototypeAPIs,
|
|
3
|
+
assignTableAPIs,
|
|
4
|
+
makeStateUpdater,
|
|
5
|
+
} from '../../utils'
|
|
6
|
+
import {
|
|
7
|
+
getDefaultRowPinningState,
|
|
8
|
+
row_getCanPin,
|
|
9
|
+
row_getIsPinned,
|
|
10
|
+
row_getPinnedIndex,
|
|
11
|
+
row_pin,
|
|
12
|
+
table_getBottomRows,
|
|
13
|
+
table_getCenterRows,
|
|
14
|
+
table_getIsSomeRowsPinned,
|
|
15
|
+
table_getTopRows,
|
|
16
|
+
table_resetRowPinning,
|
|
17
|
+
table_setRowPinning,
|
|
18
|
+
} from './rowPinningFeature.utils'
|
|
19
|
+
import type { RowData } from '../../types/type-utils'
|
|
20
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
21
|
+
// import type {
|
|
22
|
+
// Row_RowPinning,
|
|
23
|
+
// TableOptions_RowPinning,
|
|
24
|
+
// TableState_RowPinning,
|
|
25
|
+
// Table_RowPinning,
|
|
26
|
+
// } from './rowPinningFeature.types'
|
|
27
|
+
|
|
28
|
+
interface RowPinningFeatureConstructors<
|
|
29
|
+
TFeatures extends TableFeatures,
|
|
30
|
+
TData extends RowData,
|
|
31
|
+
> {
|
|
32
|
+
// Row: Row_RowPinning
|
|
33
|
+
// Table: Table_RowPinning<TFeatures, RowData>
|
|
34
|
+
// TableOptions: TableOptions_RowPinning<TFeatures, RowData>
|
|
35
|
+
// TableState: TableState_RowPinning
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function constructRowPinningFeature<
|
|
39
|
+
TFeatures extends TableFeatures,
|
|
40
|
+
TData extends RowData,
|
|
41
|
+
>(): TableFeature<RowPinningFeatureConstructors<TFeatures, TData>> {
|
|
42
|
+
return {
|
|
43
|
+
getInitialState: (initialState) => {
|
|
44
|
+
return {
|
|
45
|
+
...initialState,
|
|
46
|
+
rowPinning: {
|
|
47
|
+
...getDefaultRowPinningState(),
|
|
48
|
+
...initialState.rowPinning,
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
getDefaultTableOptions: (table) => {
|
|
54
|
+
return {
|
|
55
|
+
onRowPinningChange: makeStateUpdater('rowPinning', table),
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
assignRowPrototype: (prototype, table) => {
|
|
60
|
+
assignPrototypeAPIs('rowPinningFeature', prototype, table, {
|
|
61
|
+
row_getCanPin: {
|
|
62
|
+
fn: (row) => row_getCanPin(row),
|
|
63
|
+
},
|
|
64
|
+
row_getIsPinned: {
|
|
65
|
+
fn: (row) => row_getIsPinned(row),
|
|
66
|
+
},
|
|
67
|
+
row_getPinnedIndex: {
|
|
68
|
+
fn: (row) => row_getPinnedIndex(row),
|
|
69
|
+
memoDeps: (row) => [
|
|
70
|
+
row.table.getRowModel().rows,
|
|
71
|
+
row.table.store.state.rowPinning,
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
row_pin: {
|
|
75
|
+
fn: (row, position, includeLeafRows, includeParentRows) =>
|
|
76
|
+
row_pin(row, position, includeLeafRows, includeParentRows),
|
|
77
|
+
},
|
|
78
|
+
})
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
constructTableAPIs: (table) => {
|
|
82
|
+
assignTableAPIs('rowPinningFeature', table, {
|
|
83
|
+
table_setRowPinning: {
|
|
84
|
+
fn: (updater) => table_setRowPinning(table, updater),
|
|
85
|
+
},
|
|
86
|
+
table_resetRowPinning: {
|
|
87
|
+
fn: (defaultState) => table_resetRowPinning(table, defaultState),
|
|
88
|
+
},
|
|
89
|
+
table_getIsSomeRowsPinned: {
|
|
90
|
+
fn: (position) => table_getIsSomeRowsPinned(table, position),
|
|
91
|
+
},
|
|
92
|
+
table_getTopRows: {
|
|
93
|
+
fn: () => table_getTopRows(table),
|
|
94
|
+
memoDeps: () => [
|
|
95
|
+
table.getRowModel().rows,
|
|
96
|
+
table.store.state.rowPinning?.top,
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
table_getBottomRows: {
|
|
100
|
+
fn: () => table_getBottomRows(table),
|
|
101
|
+
memoDeps: () => [
|
|
102
|
+
table.getRowModel().rows,
|
|
103
|
+
table.store.state.rowPinning?.bottom,
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
table_getCenterRows: {
|
|
107
|
+
fn: () => table_getCenterRows(table),
|
|
108
|
+
memoDeps: () => [
|
|
109
|
+
table.getRowModel().rows,
|
|
110
|
+
table.store.state.rowPinning,
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
})
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The Row Pinning feature adds row pinning state and APIs to the table and row objects.
|
|
120
|
+
*/
|
|
121
|
+
export const rowPinningFeature = constructRowPinningFeature()
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { OnChangeFn, RowData, Updater } from '../../types/type-utils'
|
|
2
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
3
|
+
import type { Row } from '../../types/Row'
|
|
4
|
+
|
|
5
|
+
export type RowPinningPosition = false | 'top' | 'bottom'
|
|
6
|
+
|
|
7
|
+
export interface RowPinningState {
|
|
8
|
+
bottom: Array<string>
|
|
9
|
+
top: Array<string>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface TableState_RowPinning {
|
|
13
|
+
rowPinning: RowPinningState
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface TableOptions_RowPinning<
|
|
17
|
+
TFeatures extends TableFeatures,
|
|
18
|
+
TData extends RowData,
|
|
19
|
+
> {
|
|
20
|
+
/**
|
|
21
|
+
* Enables/disables row pinning for the table. Defaults to `true`.
|
|
22
|
+
*/
|
|
23
|
+
enableRowPinning?: boolean | ((row: Row<TFeatures, TData>) => boolean)
|
|
24
|
+
/**
|
|
25
|
+
* When `false`, pinned rows will not be visible if they are filtered or paginated out of the table. When `true`, pinned rows will always be visible regardless of filtering or pagination. Defaults to `true`.
|
|
26
|
+
*/
|
|
27
|
+
keepPinnedRows?: boolean
|
|
28
|
+
/**
|
|
29
|
+
* If provided, this function will be called with an `updaterFn` when `state.rowPinning` changes. This overrides the default internal state management, so you will also need to supply `state.rowPinning` from your own managed state.
|
|
30
|
+
*/
|
|
31
|
+
onRowPinningChange?: OnChangeFn<RowPinningState>
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface RowPinningDefaultOptions {
|
|
35
|
+
onRowPinningChange: OnChangeFn<RowPinningState>
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface Row_RowPinning {
|
|
39
|
+
/**
|
|
40
|
+
* Returns whether or not the row can be pinned.
|
|
41
|
+
*/
|
|
42
|
+
getCanPin: () => boolean
|
|
43
|
+
/**
|
|
44
|
+
* Returns the pinned position of the row. (`'top'`, `'bottom'` or `false`)
|
|
45
|
+
*/
|
|
46
|
+
getIsPinned: () => RowPinningPosition
|
|
47
|
+
/**
|
|
48
|
+
* Returns the numeric pinned index of the row within a pinned row group.
|
|
49
|
+
*/
|
|
50
|
+
getPinnedIndex: () => number
|
|
51
|
+
/**
|
|
52
|
+
* Pins a row to the `'top'` or `'bottom'`, or unpins the row to the center if `false` is passed.
|
|
53
|
+
*/
|
|
54
|
+
pin: (
|
|
55
|
+
position: RowPinningPosition,
|
|
56
|
+
includeLeafRows?: boolean,
|
|
57
|
+
includeParentRows?: boolean,
|
|
58
|
+
) => void
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface Table_RowPinning<
|
|
62
|
+
TFeatures extends TableFeatures,
|
|
63
|
+
TData extends RowData,
|
|
64
|
+
> {
|
|
65
|
+
/**
|
|
66
|
+
* Returns all bottom pinned rows.
|
|
67
|
+
*/
|
|
68
|
+
getBottomRows: () => Array<Row<TFeatures, TData>>
|
|
69
|
+
/**
|
|
70
|
+
* Returns all rows that are not pinned to the top or bottom.
|
|
71
|
+
*/
|
|
72
|
+
getCenterRows: () => Array<Row<TFeatures, TData>>
|
|
73
|
+
/**
|
|
74
|
+
* Returns whether or not any rows are pinned. Optionally specify to only check for pinned rows in either the `top` or `bottom` position.
|
|
75
|
+
*/
|
|
76
|
+
getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean
|
|
77
|
+
/**
|
|
78
|
+
* Returns all top pinned rows.
|
|
79
|
+
*/
|
|
80
|
+
getTopRows: () => Array<Row<TFeatures, TData>>
|
|
81
|
+
/**
|
|
82
|
+
* Resets the **rowPinning** state to `initialState.rowPinning`, or `true` can be passed to force a default blank state reset to `{ top: [], bottom: [], }`.
|
|
83
|
+
*/
|
|
84
|
+
resetRowPinning: (defaultState?: boolean) => void
|
|
85
|
+
/**
|
|
86
|
+
* Sets or updates the `state.rowPinning` state.
|
|
87
|
+
*/
|
|
88
|
+
setRowPinning: (updater: Updater<RowPinningState>) => void
|
|
89
|
+
}
|