@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,88 @@
|
|
|
1
|
+
import { constructRow } from '../rows/constructRow'
|
|
2
|
+
import { tableMemo } from '../../utils'
|
|
3
|
+
import { table_autoResetPageIndex } from '../../features/row-pagination/rowPaginationFeature.utils'
|
|
4
|
+
import type { Table, Table_Internal } from '../../types/Table'
|
|
5
|
+
import type { RowModel } from './coreRowModelsFeature.types'
|
|
6
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
7
|
+
import type { Row } from '../../types/Row'
|
|
8
|
+
import type { RowData } from '../../types/type-utils'
|
|
9
|
+
|
|
10
|
+
export function createCoreRowModel<
|
|
11
|
+
TFeatures extends TableFeatures,
|
|
12
|
+
TData extends RowData,
|
|
13
|
+
>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
|
|
14
|
+
return (_table) => {
|
|
15
|
+
const table = _table as Table_Internal<TFeatures, TData>
|
|
16
|
+
return tableMemo({
|
|
17
|
+
feature: 'coreRowModelsFeature',
|
|
18
|
+
table,
|
|
19
|
+
fnName: 'table.getCoreRowModel',
|
|
20
|
+
memoDeps: () => [table.options.data],
|
|
21
|
+
fn: () => _createCoreRowModel(table, table.options.data),
|
|
22
|
+
onAfterUpdate: () => table_autoResetPageIndex(table),
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function _createCoreRowModel<
|
|
28
|
+
TFeatures extends TableFeatures,
|
|
29
|
+
TData extends RowData,
|
|
30
|
+
>(
|
|
31
|
+
table: Table_Internal<TFeatures, TData>,
|
|
32
|
+
data: Array<TData>,
|
|
33
|
+
): {
|
|
34
|
+
rows: Array<Row<TFeatures, TData>>
|
|
35
|
+
flatRows: Array<Row<TFeatures, TData>>
|
|
36
|
+
rowsById: Record<string, Row<TFeatures, TData>>
|
|
37
|
+
} {
|
|
38
|
+
const rowModel: RowModel<TFeatures, TData> = {
|
|
39
|
+
rows: [],
|
|
40
|
+
flatRows: [],
|
|
41
|
+
rowsById: {},
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const accessRows = (
|
|
45
|
+
originalRows: Array<TData>,
|
|
46
|
+
depth = 0,
|
|
47
|
+
parentRow?: Row<TFeatures, TData>,
|
|
48
|
+
): Array<Row<TFeatures, TData>> => {
|
|
49
|
+
const rows = [] as Array<Row<TFeatures, TData>>
|
|
50
|
+
|
|
51
|
+
for (let i = 0; i < originalRows.length; i++) {
|
|
52
|
+
const originalRow = originalRows[i]!
|
|
53
|
+
// Make the row
|
|
54
|
+
const row = constructRow(
|
|
55
|
+
table,
|
|
56
|
+
table.getRowId(originalRow, i, parentRow),
|
|
57
|
+
originalRow,
|
|
58
|
+
i,
|
|
59
|
+
depth,
|
|
60
|
+
undefined,
|
|
61
|
+
parentRow?.id,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
// Keep track of every row in a flat array
|
|
65
|
+
rowModel.flatRows.push(row)
|
|
66
|
+
// Also keep track of every row by its ID
|
|
67
|
+
rowModel.rowsById[row.id] = row
|
|
68
|
+
// Push table row into parent
|
|
69
|
+
rows.push(row)
|
|
70
|
+
|
|
71
|
+
// Get the original subrows
|
|
72
|
+
if (table.options.getSubRows) {
|
|
73
|
+
row.originalSubRows = table.options.getSubRows(originalRow, i)
|
|
74
|
+
|
|
75
|
+
// Then recursively access them
|
|
76
|
+
if (row.originalSubRows?.length) {
|
|
77
|
+
row.subRows = accessRows(row.originalSubRows, depth + 1, row)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return rows
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
rowModel.rows = accessRows(data)
|
|
86
|
+
|
|
87
|
+
return rowModel
|
|
88
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Table_Internal } from '../../types/Table'
|
|
2
|
+
import type { RowData } from '../../types/type-utils'
|
|
3
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
4
|
+
import type { Row } from '../../types/Row'
|
|
5
|
+
import type { Row_CoreProperties } from './coreRowsFeature.types'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates or retrieves the row prototype for a table.
|
|
9
|
+
* The prototype is cached on the table and shared by all row instances.
|
|
10
|
+
*/
|
|
11
|
+
function getRowPrototype<
|
|
12
|
+
TFeatures extends TableFeatures,
|
|
13
|
+
TData extends RowData,
|
|
14
|
+
>(table: Table_Internal<TFeatures, TData>): object {
|
|
15
|
+
if (!table._rowPrototype) {
|
|
16
|
+
table._rowPrototype = { table }
|
|
17
|
+
for (const feature of Object.values(table._features)) {
|
|
18
|
+
feature.assignRowPrototype?.(table._rowPrototype, table)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return table._rowPrototype
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const constructRow = <
|
|
25
|
+
TFeatures extends TableFeatures,
|
|
26
|
+
TData extends RowData,
|
|
27
|
+
>(
|
|
28
|
+
table: Table_Internal<TFeatures, TData>,
|
|
29
|
+
id: string,
|
|
30
|
+
original: TData,
|
|
31
|
+
rowIndex: number,
|
|
32
|
+
depth: number,
|
|
33
|
+
subRows?: Array<Row<TFeatures, TData>>,
|
|
34
|
+
parentId?: string,
|
|
35
|
+
): Row<TFeatures, TData> => {
|
|
36
|
+
// Create row with shared prototype for memory efficiency
|
|
37
|
+
const rowPrototype = getRowPrototype(table)
|
|
38
|
+
const row = Object.create(rowPrototype) as Row_CoreProperties<
|
|
39
|
+
TFeatures,
|
|
40
|
+
TData
|
|
41
|
+
>
|
|
42
|
+
|
|
43
|
+
// Only assign instance-specific properties
|
|
44
|
+
row._uniqueValuesCache = {}
|
|
45
|
+
row._valuesCache = {}
|
|
46
|
+
row.depth = depth
|
|
47
|
+
row.id = id
|
|
48
|
+
row.index = rowIndex
|
|
49
|
+
row.original = original
|
|
50
|
+
row.parentId = parentId
|
|
51
|
+
row.subRows = subRows ?? []
|
|
52
|
+
|
|
53
|
+
// Initialize instance-specific data (e.g., caches) for features that need it
|
|
54
|
+
for (const feature of Object.values(table._features)) {
|
|
55
|
+
feature.initRowInstanceData?.(row as Row<TFeatures, TData>)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return row as Row<TFeatures, TData>
|
|
59
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { assignPrototypeAPIs, assignTableAPIs } from '../../utils'
|
|
2
|
+
import {
|
|
3
|
+
row_getAllCells,
|
|
4
|
+
row_getAllCellsByColumnId,
|
|
5
|
+
row_getLeafRows,
|
|
6
|
+
row_getParentRow,
|
|
7
|
+
row_getParentRows,
|
|
8
|
+
row_getUniqueValues,
|
|
9
|
+
row_getValue,
|
|
10
|
+
row_renderValue,
|
|
11
|
+
table_getRow,
|
|
12
|
+
table_getRowId,
|
|
13
|
+
} from './coreRowsFeature.utils'
|
|
14
|
+
import type { RowData } from '../../types/type-utils'
|
|
15
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
16
|
+
// import type {
|
|
17
|
+
// Row_Row,
|
|
18
|
+
// TableOptions_Rows,
|
|
19
|
+
// Table_Rows,
|
|
20
|
+
// } from './coreRowsFeature.types'
|
|
21
|
+
|
|
22
|
+
interface CoreRowsFeatureConstructors<
|
|
23
|
+
TFeatures extends TableFeatures,
|
|
24
|
+
TData extends RowData,
|
|
25
|
+
> {
|
|
26
|
+
// Row: Row_Row<TFeatures, TData>
|
|
27
|
+
// TableOptions: TableOptions_Rows<TFeatures, TData>
|
|
28
|
+
// Table: Table_Rows<TFeatures, TData>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function constructCoreRowsFeature<
|
|
32
|
+
TFeatures extends TableFeatures,
|
|
33
|
+
TData extends RowData,
|
|
34
|
+
>(): TableFeature<CoreRowsFeatureConstructors<TFeatures, TData>> {
|
|
35
|
+
return {
|
|
36
|
+
assignRowPrototype: (prototype, table) => {
|
|
37
|
+
assignPrototypeAPIs('coreRowsFeature', prototype, table, {
|
|
38
|
+
row_getAllCellsByColumnId: {
|
|
39
|
+
fn: (row) => row_getAllCellsByColumnId(row),
|
|
40
|
+
memoDeps: (row) => [row.getAllCells()],
|
|
41
|
+
},
|
|
42
|
+
row_getAllCells: {
|
|
43
|
+
fn: (row) => row_getAllCells(row),
|
|
44
|
+
memoDeps: (row) => [row.table.getAllLeafColumns()],
|
|
45
|
+
},
|
|
46
|
+
row_getLeafRows: {
|
|
47
|
+
fn: (row) => row_getLeafRows(row),
|
|
48
|
+
},
|
|
49
|
+
row_getParentRow: {
|
|
50
|
+
fn: (row) => row_getParentRow(row),
|
|
51
|
+
},
|
|
52
|
+
row_getParentRows: {
|
|
53
|
+
fn: (row) => row_getParentRows(row),
|
|
54
|
+
},
|
|
55
|
+
row_getUniqueValues: {
|
|
56
|
+
fn: (row, columnId) => row_getUniqueValues(row, columnId),
|
|
57
|
+
},
|
|
58
|
+
row_getValue: {
|
|
59
|
+
fn: (row, columnId) => row_getValue(row, columnId),
|
|
60
|
+
},
|
|
61
|
+
row_renderValue: {
|
|
62
|
+
fn: (row, columnId) => row_renderValue(row, columnId),
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
},
|
|
66
|
+
constructTableAPIs: (table) => {
|
|
67
|
+
assignTableAPIs('coreRowsFeature', table, {
|
|
68
|
+
table_getRowId: {
|
|
69
|
+
fn: (originalRow, index, parent) =>
|
|
70
|
+
table_getRowId(originalRow, table, index, parent),
|
|
71
|
+
},
|
|
72
|
+
table_getRow: {
|
|
73
|
+
fn: (id: string, searchAll?: boolean) =>
|
|
74
|
+
table_getRow(table, id, searchAll),
|
|
75
|
+
},
|
|
76
|
+
})
|
|
77
|
+
},
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The Core Rows feature provides the core row functionality.
|
|
83
|
+
*/
|
|
84
|
+
export const coreRowsFeature = constructCoreRowsFeature()
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { Table_Internal } from '../../types/Table'
|
|
2
|
+
import type { RowData } from '../../types/type-utils'
|
|
3
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
4
|
+
import type { Row } from '../../types/Row'
|
|
5
|
+
import type { Cell } from '../../types/Cell'
|
|
6
|
+
|
|
7
|
+
export interface Row_CoreProperties<
|
|
8
|
+
TFeatures extends TableFeatures,
|
|
9
|
+
TData extends RowData,
|
|
10
|
+
> {
|
|
11
|
+
_uniqueValuesCache: Record<string, unknown>
|
|
12
|
+
_valuesCache: Record<string, unknown>
|
|
13
|
+
/**
|
|
14
|
+
* The depth of the row (if nested or grouped) relative to the root row array.
|
|
15
|
+
*/
|
|
16
|
+
depth: number
|
|
17
|
+
/**
|
|
18
|
+
* The resolved unique identifier for the row resolved via the `options.getRowId` option. Defaults to the row's index (or relative index if it is a subRow).
|
|
19
|
+
*/
|
|
20
|
+
id: string
|
|
21
|
+
/**
|
|
22
|
+
* The index of the row within its parent array (or the root data array).
|
|
23
|
+
*/
|
|
24
|
+
index: number
|
|
25
|
+
/**
|
|
26
|
+
* The original row object provided to the table. If the row is a grouped row, the original row object will be the first original in the group.
|
|
27
|
+
*/
|
|
28
|
+
original: TData
|
|
29
|
+
/**
|
|
30
|
+
* An array of the original subRows as returned by the `options.getSubRows` option.
|
|
31
|
+
*/
|
|
32
|
+
originalSubRows?: Array<TData>
|
|
33
|
+
/**
|
|
34
|
+
* If nested, this row's parent row id.
|
|
35
|
+
*/
|
|
36
|
+
parentId?: string
|
|
37
|
+
/**
|
|
38
|
+
* An array of subRows for the row as returned and created by the `options.getSubRows` option.
|
|
39
|
+
*/
|
|
40
|
+
subRows: Array<Row<TFeatures, TData>>
|
|
41
|
+
/**
|
|
42
|
+
* Reference to the parent table instance.
|
|
43
|
+
*/
|
|
44
|
+
table: Table_Internal<TFeatures, TData>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface Row_Row<
|
|
48
|
+
TFeatures extends TableFeatures,
|
|
49
|
+
TData extends RowData,
|
|
50
|
+
> extends Row_CoreProperties<TFeatures, TData> {
|
|
51
|
+
getAllCellsByColumnId: () => Record<string, Cell<TFeatures, TData, unknown>>
|
|
52
|
+
/**
|
|
53
|
+
* Returns all of the cells for the row.
|
|
54
|
+
*/
|
|
55
|
+
getAllCells: () => Array<Cell<TFeatures, TData, unknown>>
|
|
56
|
+
/**
|
|
57
|
+
* Returns the leaf rows for the row, not including any parent rows.
|
|
58
|
+
*/
|
|
59
|
+
getLeafRows: () => Array<Row<TFeatures, TData>>
|
|
60
|
+
/**
|
|
61
|
+
* Returns the parent row for the row, if it exists.
|
|
62
|
+
*/
|
|
63
|
+
getParentRow: () => Row<TFeatures, TData> | undefined
|
|
64
|
+
/**
|
|
65
|
+
* Returns the parent rows for the row, all the way up to a root row.
|
|
66
|
+
*/
|
|
67
|
+
getParentRows: () => Array<Row<TFeatures, TData>>
|
|
68
|
+
/**
|
|
69
|
+
* Returns a unique array of values from the row for a given columnId.
|
|
70
|
+
*/
|
|
71
|
+
getUniqueValues: <TValue>(columnId: string) => Array<TValue>
|
|
72
|
+
/**
|
|
73
|
+
* Returns the value from the row for a given columnId.
|
|
74
|
+
*/
|
|
75
|
+
getValue: <TValue>(columnId: string) => TValue
|
|
76
|
+
/**
|
|
77
|
+
* Renders the value for the row in a given columnId the same as `getValue`, but will return the `renderFallbackValue` if no value is found.
|
|
78
|
+
*/
|
|
79
|
+
renderValue: <TValue>(columnId: string) => TValue
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface TableOptions_Rows<
|
|
83
|
+
TFeatures extends TableFeatures,
|
|
84
|
+
TData extends RowData,
|
|
85
|
+
> {
|
|
86
|
+
/**
|
|
87
|
+
* This optional function is used to derive a unique ID for any given row. If not provided the rows index is used (nested rows join together with `.` using their grandparents' index eg. `index.index.index`). If you need to identify individual rows that are originating from any server-side operations, it's suggested you use this function to return an ID that makes sense regardless of network IO/ambiguity eg. a userId, taskId, database ID field, etc.
|
|
88
|
+
* @example getRowId: row => row.userId
|
|
89
|
+
*/
|
|
90
|
+
getRowId?: (
|
|
91
|
+
originalRow: TData,
|
|
92
|
+
index: number,
|
|
93
|
+
parent?: Row<TFeatures, TData>,
|
|
94
|
+
) => string
|
|
95
|
+
/**
|
|
96
|
+
* This optional function is used to access the sub rows for any given row. If you are using nested rows, you will need to use this function to return the sub rows object (or undefined) from the row.
|
|
97
|
+
* @example getSubRows: row => row.subRows
|
|
98
|
+
*/
|
|
99
|
+
getSubRows?: (originalRow: TData, index: number) => undefined | Array<TData>
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface Table_Rows<
|
|
103
|
+
TFeatures extends TableFeatures,
|
|
104
|
+
TData extends RowData,
|
|
105
|
+
> {
|
|
106
|
+
getRowId: (_: TData, index: number, parent?: Row<TFeatures, TData>) => string
|
|
107
|
+
/**
|
|
108
|
+
* Returns the row with the given ID.
|
|
109
|
+
*/
|
|
110
|
+
getRow: (id: string, searchAll?: boolean) => Row<TFeatures, TData>
|
|
111
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { flattenBy } from '../../utils'
|
|
2
|
+
import { constructCell } from '../cells/constructCell'
|
|
3
|
+
import type { Table_Internal } from '../../types/Table'
|
|
4
|
+
import type { RowData } from '../../types/type-utils'
|
|
5
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
6
|
+
import type { Row } from '../../types/Row'
|
|
7
|
+
import type { Cell } from '../../types/Cell'
|
|
8
|
+
|
|
9
|
+
export function row_getValue<
|
|
10
|
+
TFeatures extends TableFeatures,
|
|
11
|
+
TData extends RowData,
|
|
12
|
+
>(row: Row<TFeatures, TData>, columnId: string) {
|
|
13
|
+
if (row._valuesCache.hasOwnProperty(columnId)) {
|
|
14
|
+
return row._valuesCache[columnId]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const column = row.table.getColumn(columnId)
|
|
18
|
+
|
|
19
|
+
if (!column?.accessorFn) {
|
|
20
|
+
return undefined
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
row._valuesCache[columnId] = column.accessorFn(row.original, row.index)
|
|
24
|
+
|
|
25
|
+
return row._valuesCache[columnId]
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function row_getUniqueValues<
|
|
29
|
+
TFeatures extends TableFeatures,
|
|
30
|
+
TData extends RowData,
|
|
31
|
+
>(row: Row<TFeatures, TData>, columnId: string) {
|
|
32
|
+
if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
|
|
33
|
+
return row._uniqueValuesCache[columnId]
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const column = row.table.getColumn(columnId)
|
|
37
|
+
|
|
38
|
+
if (!column?.accessorFn) {
|
|
39
|
+
return undefined
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (!column.columnDef.getUniqueValues) {
|
|
43
|
+
row._uniqueValuesCache[columnId] = [row.getValue(columnId)]
|
|
44
|
+
return row._uniqueValuesCache[columnId]
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(
|
|
48
|
+
row.original,
|
|
49
|
+
row.index,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
return row._uniqueValuesCache[columnId]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function row_renderValue<
|
|
56
|
+
TFeatures extends TableFeatures,
|
|
57
|
+
TData extends RowData,
|
|
58
|
+
>(row: Row<TFeatures, TData>, columnId: string) {
|
|
59
|
+
return row.getValue(columnId) ?? row.table.options.renderFallbackValue
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function row_getLeafRows<
|
|
63
|
+
TFeatures extends TableFeatures,
|
|
64
|
+
TData extends RowData,
|
|
65
|
+
>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>> {
|
|
66
|
+
return flattenBy(row.subRows, (d) => d.subRows)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function row_getParentRow<
|
|
70
|
+
TFeatures extends TableFeatures,
|
|
71
|
+
TData extends RowData,
|
|
72
|
+
>(row: Row<TFeatures, TData>) {
|
|
73
|
+
return row.parentId ? row.table.getRow(row.parentId, true) : undefined
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function row_getParentRows<
|
|
77
|
+
TFeatures extends TableFeatures,
|
|
78
|
+
TData extends RowData,
|
|
79
|
+
>(row: Row<TFeatures, TData>) {
|
|
80
|
+
const parentRows: Array<Row<TFeatures, TData>> = []
|
|
81
|
+
let currentRow = row
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
83
|
+
while (true) {
|
|
84
|
+
const parentRow = currentRow.getParentRow()
|
|
85
|
+
if (!parentRow) break
|
|
86
|
+
parentRows.push(parentRow)
|
|
87
|
+
currentRow = parentRow
|
|
88
|
+
}
|
|
89
|
+
return parentRows.reverse()
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function row_getAllCells<
|
|
93
|
+
TFeatures extends TableFeatures,
|
|
94
|
+
TData extends RowData,
|
|
95
|
+
>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {
|
|
96
|
+
return row.table.getAllLeafColumns().map((column) => {
|
|
97
|
+
return constructCell(column, row, row.table)
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function row_getAllCellsByColumnId<
|
|
102
|
+
TFeatures extends TableFeatures,
|
|
103
|
+
TData extends RowData,
|
|
104
|
+
>(row: Row<TFeatures, TData>) {
|
|
105
|
+
return row.getAllCells().reduce(
|
|
106
|
+
(acc, cell) => {
|
|
107
|
+
acc[cell.column.id] = cell
|
|
108
|
+
return acc
|
|
109
|
+
},
|
|
110
|
+
{} as Record<string, Cell<TFeatures, TData, unknown>>,
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function table_getRowId<
|
|
115
|
+
TFeatures extends TableFeatures,
|
|
116
|
+
TData extends RowData,
|
|
117
|
+
>(
|
|
118
|
+
originalRow: TData,
|
|
119
|
+
table: Table_Internal<TFeatures, TData>,
|
|
120
|
+
index: number,
|
|
121
|
+
parent?: Row<TFeatures, TData>,
|
|
122
|
+
) {
|
|
123
|
+
return (
|
|
124
|
+
table.options.getRowId?.(originalRow, index, parent) ??
|
|
125
|
+
`${parent ? [parent.id, index].join('.') : index}`
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export function table_getRow<
|
|
130
|
+
TFeatures extends TableFeatures,
|
|
131
|
+
TData extends RowData,
|
|
132
|
+
>(
|
|
133
|
+
table: Table_Internal<TFeatures, TData>,
|
|
134
|
+
rowId: string,
|
|
135
|
+
searchAll?: boolean,
|
|
136
|
+
): Row<TFeatures, TData> {
|
|
137
|
+
// TODO - simplify this across different row models
|
|
138
|
+
let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel())
|
|
139
|
+
.rowsById[rowId]
|
|
140
|
+
|
|
141
|
+
if (!row) {
|
|
142
|
+
row = table.getCoreRowModel().rowsById[rowId]
|
|
143
|
+
if (!row) {
|
|
144
|
+
if (process.env.NODE_ENV === 'development') {
|
|
145
|
+
throw new Error(`getRow could not find row with ID: ${rowId}`)
|
|
146
|
+
}
|
|
147
|
+
throw new Error()
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return row
|
|
152
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Derived, Store } from '@tanstack/store'
|
|
2
|
+
import {} from '../../utils'
|
|
3
|
+
import { coreFeatures } from '../coreFeatures'
|
|
4
|
+
import type { RowData } from '../../types/type-utils'
|
|
5
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
6
|
+
import type { Table, Table_Internal } from '../../types/Table'
|
|
7
|
+
import type { TableOptions } from '../../types/TableOptions'
|
|
8
|
+
import type { TableState } from '../../types/TableState'
|
|
9
|
+
|
|
10
|
+
export function getInitialTableState<TFeatures extends TableFeatures>(
|
|
11
|
+
features: TFeatures,
|
|
12
|
+
initialState: Partial<TableState<TFeatures>> | undefined = {},
|
|
13
|
+
): TableState<TFeatures> {
|
|
14
|
+
Object.values(features).forEach((feature) => {
|
|
15
|
+
initialState =
|
|
16
|
+
feature.getInitialState?.(initialState as TableState<TFeatures>) ??
|
|
17
|
+
initialState
|
|
18
|
+
})
|
|
19
|
+
return structuredClone(initialState) as TableState<TFeatures>
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function createTableStore<TFeatures extends TableFeatures>(
|
|
23
|
+
features: TFeatures,
|
|
24
|
+
initialState: Partial<TableState<TFeatures>> | undefined = {},
|
|
25
|
+
): Store<TableState<TFeatures>> {
|
|
26
|
+
return new Store(getInitialTableState(features, initialState))
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function constructTable<
|
|
30
|
+
TFeatures extends TableFeatures,
|
|
31
|
+
TData extends RowData,
|
|
32
|
+
>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {
|
|
33
|
+
const table = {
|
|
34
|
+
_features: { ...coreFeatures, ...tableOptions._features },
|
|
35
|
+
_rowModels: {},
|
|
36
|
+
_rowModelFns: {},
|
|
37
|
+
} as Table_Internal<TFeatures, TData>
|
|
38
|
+
|
|
39
|
+
const featuresList: Array<TableFeature<{}>> = Object.values(table._features)
|
|
40
|
+
|
|
41
|
+
const defaultOptions = featuresList.reduce((obj, feature) => {
|
|
42
|
+
return Object.assign(obj, feature.getDefaultTableOptions?.(table))
|
|
43
|
+
}, {}) as TableOptions<TFeatures, TData>
|
|
44
|
+
|
|
45
|
+
table.options = {
|
|
46
|
+
...defaultOptions,
|
|
47
|
+
...tableOptions,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
table.initialState = getInitialTableState(
|
|
51
|
+
table._features,
|
|
52
|
+
table.options.initialState,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
table.baseStore =
|
|
56
|
+
table.options.store ?? (new Store(table.initialState) as any)
|
|
57
|
+
|
|
58
|
+
// @ts-ignore - complex TFeatures type inference does not work with Derived
|
|
59
|
+
table.store = new Derived({
|
|
60
|
+
deps: [table.baseStore],
|
|
61
|
+
fn: ({ currDepVals }) => {
|
|
62
|
+
const baseState = currDepVals[0]
|
|
63
|
+
// Merge base state with user-provided external state (table.options.state takes precedence)
|
|
64
|
+
return {
|
|
65
|
+
...baseState,
|
|
66
|
+
...(table.options.state ?? {}),
|
|
67
|
+
} as TableState<TFeatures>
|
|
68
|
+
},
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
if (
|
|
72
|
+
process.env.NODE_ENV === 'development' &&
|
|
73
|
+
(tableOptions.debugAll || tableOptions.debugTable)
|
|
74
|
+
) {
|
|
75
|
+
const features = Object.keys(table._features)
|
|
76
|
+
const rowModels = Object.keys(table.options._rowModels || {})
|
|
77
|
+
const states = Object.keys(table.initialState)
|
|
78
|
+
|
|
79
|
+
console.log(
|
|
80
|
+
`Constructing Table Instance
|
|
81
|
+
|
|
82
|
+
Features: ${features.join('\n ')}
|
|
83
|
+
|
|
84
|
+
Row Models: ${rowModels.length ? rowModels.join('\n ') : '(none)'}
|
|
85
|
+
|
|
86
|
+
States: ${states.join('\n ')}`,
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
for (const feature of featuresList) {
|
|
91
|
+
feature.constructTableAPIs?.(table)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return table
|
|
95
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { assignTableAPIs } from '../../utils'
|
|
2
|
+
import { table_reset, table_setOptions } from './coreTablesFeature.utils'
|
|
3
|
+
import type { RowData } from '../../types/type-utils'
|
|
4
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
5
|
+
// import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'
|
|
6
|
+
|
|
7
|
+
interface CoreTablesFeatureConstructors<
|
|
8
|
+
TFeatures extends TableFeatures,
|
|
9
|
+
TData extends RowData,
|
|
10
|
+
> {
|
|
11
|
+
// Table: Table_Table<TFeatures, TData>
|
|
12
|
+
// TableOptions: TableOptions_Table<TFeatures, TData>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function constructCoreTablesFeature<
|
|
16
|
+
TFeatures extends TableFeatures,
|
|
17
|
+
TData extends RowData,
|
|
18
|
+
>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>> {
|
|
19
|
+
return {
|
|
20
|
+
constructTableAPIs: (table) => {
|
|
21
|
+
assignTableAPIs('coreTablesFeature', table, {
|
|
22
|
+
table_reset: {
|
|
23
|
+
fn: () => table_reset(table),
|
|
24
|
+
},
|
|
25
|
+
table_setOptions: {
|
|
26
|
+
fn: (updater) => table_setOptions(table, updater),
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The Core Tables feature provides the core table functionality for handling state and options.
|
|
35
|
+
*/
|
|
36
|
+
export const coreTablesFeature = constructCoreTablesFeature()
|