@tanstack/table-core 9.0.0-alpha.10 → 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 -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 +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 -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,125 @@
|
|
|
1
|
+
import type { Derived, Store } from '@tanstack/store'
|
|
2
|
+
import type { Table_ColumnFaceting } from '../features/column-faceting/columnFacetingFeature.types'
|
|
3
|
+
import type { Table_ColumnResizing } from '../features/column-resizing/columnResizingFeature.types'
|
|
4
|
+
import type { Table_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
|
|
5
|
+
import type { Table_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
|
|
6
|
+
import type { Table_ColumnPinning } from '../features/column-pinning/columnPinningFeature.types'
|
|
7
|
+
import type { Table_ColumnOrdering } from '../features/column-ordering/columnOrderingFeature.types'
|
|
8
|
+
import type { Table_ColumnVisibility } from '../features/column-visibility/columnVisibilityFeature.types'
|
|
9
|
+
import type { Table_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
|
|
10
|
+
import type { Table_RowPinning } from '../features/row-pinning/rowPinningFeature.types'
|
|
11
|
+
import type { Table_GlobalFiltering } from '../features/global-filtering/globalFilteringFeature.types'
|
|
12
|
+
import type { Table_RowExpanding } from '../features/row-expanding/rowExpandingFeature.types'
|
|
13
|
+
import type { Table_RowPagination } from '../features/row-pagination/rowPaginationFeature.types'
|
|
14
|
+
import type { Table_RowSelection } from '../features/row-selection/rowSelectionFeature.types'
|
|
15
|
+
import type { Table_RowSorting } from '../features/row-sorting/rowSortingFeature.types'
|
|
16
|
+
import type { Table_RowModels } from '../core/row-models/coreRowModelsFeature.types'
|
|
17
|
+
import type { CachedRowModel_All, CreateRowModels_All } from './RowModel'
|
|
18
|
+
import type { RowModelFns_All } from './RowModelFns'
|
|
19
|
+
import type { TableState_All } from './TableState'
|
|
20
|
+
import type { RowData, UnionToIntersection } from './type-utils'
|
|
21
|
+
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
|
|
22
|
+
import type { Table_Columns } from '../core/columns/coreColumnsFeature.types'
|
|
23
|
+
import type { Table_Headers } from '../core/headers/coreHeadersFeature.types'
|
|
24
|
+
import type { Table_Rows } from '../core/rows/coreRowsFeature.types'
|
|
25
|
+
import type { Table_Table } from '../core/table/coreTablesFeature.types'
|
|
26
|
+
import type { TableOptions_All } from './TableOptions'
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Use this interface as a target for declaration merging to add your own plugin properties.
|
|
30
|
+
* Note: This will affect the types of all tables in your project.
|
|
31
|
+
*/
|
|
32
|
+
export interface Table_Plugins<
|
|
33
|
+
TFeatures extends TableFeatures,
|
|
34
|
+
TData extends RowData,
|
|
35
|
+
> {}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The core table object that only includes the core table functionality such as column, header, row, and table APIS.
|
|
39
|
+
* No features are included.
|
|
40
|
+
*/
|
|
41
|
+
export type Table_Core<
|
|
42
|
+
TFeatures extends TableFeatures,
|
|
43
|
+
TData extends RowData,
|
|
44
|
+
> = Table_Table<TFeatures, TData> &
|
|
45
|
+
Table_Columns<TFeatures, TData> &
|
|
46
|
+
Table_Rows<TFeatures, TData> &
|
|
47
|
+
Table_RowModels<TFeatures, TData> &
|
|
48
|
+
Table_Headers<TFeatures, TData>
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The table object that includes both the core table functionality and the features that are enabled via the `_features` table option.
|
|
52
|
+
*/
|
|
53
|
+
export type Table<
|
|
54
|
+
TFeatures extends TableFeatures,
|
|
55
|
+
TData extends RowData,
|
|
56
|
+
> = Table_Core<TFeatures, TData> &
|
|
57
|
+
UnionToIntersection<
|
|
58
|
+
| ('columnFilteringFeature' extends keyof TFeatures
|
|
59
|
+
? Table_ColumnFiltering
|
|
60
|
+
: never)
|
|
61
|
+
| ('columnGroupingFeature' extends keyof TFeatures
|
|
62
|
+
? Table_ColumnGrouping<TFeatures, TData>
|
|
63
|
+
: never)
|
|
64
|
+
| ('columnOrderingFeature' extends keyof TFeatures
|
|
65
|
+
? Table_ColumnOrdering<TFeatures, TData>
|
|
66
|
+
: never)
|
|
67
|
+
| ('columnPinningFeature' extends keyof TFeatures
|
|
68
|
+
? Table_ColumnPinning<TFeatures, TData>
|
|
69
|
+
: never)
|
|
70
|
+
| ('columnResizingFeature' extends keyof TFeatures
|
|
71
|
+
? Table_ColumnResizing
|
|
72
|
+
: never)
|
|
73
|
+
| ('columnSizingFeature' extends keyof TFeatures
|
|
74
|
+
? Table_ColumnSizing
|
|
75
|
+
: never)
|
|
76
|
+
| ('columnVisibilityFeature' extends keyof TFeatures
|
|
77
|
+
? Table_ColumnVisibility<TFeatures, TData>
|
|
78
|
+
: never)
|
|
79
|
+
| ('columnFacetingFeature' extends keyof TFeatures
|
|
80
|
+
? Table_ColumnFaceting<TFeatures, TData>
|
|
81
|
+
: never)
|
|
82
|
+
| ('globalFilteringFeature' extends keyof TFeatures
|
|
83
|
+
? Table_GlobalFiltering<TFeatures, TData>
|
|
84
|
+
: never)
|
|
85
|
+
| ('rowExpandingFeature' extends keyof TFeatures
|
|
86
|
+
? Table_RowExpanding<TFeatures, TData>
|
|
87
|
+
: never)
|
|
88
|
+
| ('rowPaginationFeature' extends keyof TFeatures
|
|
89
|
+
? Table_RowPagination<TFeatures, TData>
|
|
90
|
+
: never)
|
|
91
|
+
| ('rowPinningFeature' extends keyof TFeatures
|
|
92
|
+
? Table_RowPinning<TFeatures, TData>
|
|
93
|
+
: never)
|
|
94
|
+
| ('rowSelectionFeature' extends keyof TFeatures
|
|
95
|
+
? Table_RowSelection<TFeatures, TData>
|
|
96
|
+
: never)
|
|
97
|
+
| ('rowSortingFeature' extends keyof TFeatures
|
|
98
|
+
? Table_RowSorting<TFeatures, TData>
|
|
99
|
+
: never)
|
|
100
|
+
> &
|
|
101
|
+
ExtractFeatureTypes<'Table', TFeatures> &
|
|
102
|
+
Table_Plugins<TFeatures, TData>
|
|
103
|
+
|
|
104
|
+
// export type Table<
|
|
105
|
+
// TFeatures extends TableFeatures,
|
|
106
|
+
// TData extends RowData,
|
|
107
|
+
// > = Table_Core<TFeatures, TData> &
|
|
108
|
+
// ExtractFeatureTypes<'Table', TFeatures> &
|
|
109
|
+
// Table_Plugins<TFeatures, TData>
|
|
110
|
+
|
|
111
|
+
export type Table_Internal<
|
|
112
|
+
TFeatures extends TableFeatures,
|
|
113
|
+
TData extends RowData = any,
|
|
114
|
+
> = Table<TFeatures, TData> & {
|
|
115
|
+
_rowModels: CachedRowModel_All<TFeatures, TData>
|
|
116
|
+
_rowModelFns: RowModelFns_All<TFeatures, TData>
|
|
117
|
+
options: TableOptions_All<TFeatures, TData> & {
|
|
118
|
+
_rowModels?: CreateRowModels_All<TFeatures, TData>
|
|
119
|
+
state?: TableState_All
|
|
120
|
+
initialState?: TableState_All
|
|
121
|
+
}
|
|
122
|
+
initialState: TableState_All
|
|
123
|
+
baseStore: Store<TableState_All>
|
|
124
|
+
store: Derived<TableState_All>
|
|
125
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { CoreFeatures } from '../core/coreFeatures'
|
|
2
|
+
import type { CellData, RowData, UnionToIntersection } from './type-utils'
|
|
3
|
+
import type { ColumnDefBase_All } from './ColumnDef'
|
|
4
|
+
import type { Row } from './Row'
|
|
5
|
+
import type { Table_Internal } from './Table'
|
|
6
|
+
import type { TableOptions_All } from './TableOptions'
|
|
7
|
+
import type { TableState_All } from './TableState'
|
|
8
|
+
import type { StockFeatures } from '../features/stockFeatures'
|
|
9
|
+
|
|
10
|
+
export type ExtractFeatureTypes<
|
|
11
|
+
TKey extends keyof FeatureConstructors,
|
|
12
|
+
TFeatures extends TableFeatures,
|
|
13
|
+
> = UnionToIntersection<
|
|
14
|
+
{
|
|
15
|
+
[K in keyof TFeatures]: TFeatures[K] extends TableFeature<
|
|
16
|
+
infer FeatureConstructorOptions
|
|
17
|
+
>
|
|
18
|
+
? TKey extends keyof FeatureConstructorOptions
|
|
19
|
+
? FeatureConstructorOptions[TKey]
|
|
20
|
+
: never
|
|
21
|
+
: any
|
|
22
|
+
}[keyof TFeatures]
|
|
23
|
+
>
|
|
24
|
+
|
|
25
|
+
interface FeatureConstructors {
|
|
26
|
+
CachedRowModel?: any
|
|
27
|
+
Cell?: any
|
|
28
|
+
Column?: any
|
|
29
|
+
ColumnDef?: any
|
|
30
|
+
CreateRowModels?: any
|
|
31
|
+
Header?: any
|
|
32
|
+
HeaderGroup?: any
|
|
33
|
+
Row?: any
|
|
34
|
+
RowModelFns?: any
|
|
35
|
+
Table?: any
|
|
36
|
+
TableOptions?: any
|
|
37
|
+
TableState?: any
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface Plugins {}
|
|
41
|
+
|
|
42
|
+
export interface TableFeatures
|
|
43
|
+
extends Partial<CoreFeatures>, Partial<StockFeatures>, Partial<Plugins> {}
|
|
44
|
+
|
|
45
|
+
export type ConstructTableAPIs<TConstructors extends FeatureConstructors> = <
|
|
46
|
+
TFeatures extends TableFeatures,
|
|
47
|
+
TData extends RowData,
|
|
48
|
+
>(
|
|
49
|
+
table: Table_Internal<TFeatures, TData> &
|
|
50
|
+
Partial<TConstructors['Table']> & {
|
|
51
|
+
options: Partial<TConstructors['TableOptions']>
|
|
52
|
+
},
|
|
53
|
+
) => void
|
|
54
|
+
|
|
55
|
+
export type GetDefaultColumnDef<TConstructors extends FeatureConstructors> = <
|
|
56
|
+
TFeatures extends TableFeatures,
|
|
57
|
+
TData extends RowData,
|
|
58
|
+
TValue extends CellData = CellData,
|
|
59
|
+
>() => ColumnDefBase_All<TFeatures, TData, TValue> &
|
|
60
|
+
Partial<TConstructors['ColumnDef']>
|
|
61
|
+
|
|
62
|
+
export type GetDefaultTableOptions<TConstructors extends FeatureConstructors> =
|
|
63
|
+
<TFeatures extends TableFeatures, TData extends RowData>(
|
|
64
|
+
table: Table_Internal<TFeatures, TData> & Partial<TConstructors['Table']>,
|
|
65
|
+
) => Partial<TableOptions_All<TFeatures, TData>> &
|
|
66
|
+
Partial<TConstructors['TableOptions']>
|
|
67
|
+
|
|
68
|
+
export type GetInitialState<TConstructors extends FeatureConstructors> = (
|
|
69
|
+
initialState: Partial<TableState_All> & Partial<TConstructors['TableState']>,
|
|
70
|
+
) => TableState_All & Partial<TConstructors['TableState']>
|
|
71
|
+
|
|
72
|
+
export type GetDefaultStateSelector<TConstructors extends FeatureConstructors> =
|
|
73
|
+
(
|
|
74
|
+
state: TableState_All,
|
|
75
|
+
) => Partial<TableState_All> & Partial<TConstructors['TableState']>
|
|
76
|
+
|
|
77
|
+
export type AssignCellPrototype<TConstructors extends FeatureConstructors> = <
|
|
78
|
+
TFeatures extends TableFeatures,
|
|
79
|
+
TData extends RowData,
|
|
80
|
+
>(
|
|
81
|
+
prototype: Record<string, any>,
|
|
82
|
+
table: Table_Internal<TFeatures, TData>,
|
|
83
|
+
) => void
|
|
84
|
+
|
|
85
|
+
export type AssignColumnPrototype<TConstructors extends FeatureConstructors> = <
|
|
86
|
+
TFeatures extends TableFeatures,
|
|
87
|
+
TData extends RowData,
|
|
88
|
+
>(
|
|
89
|
+
prototype: Record<string, any>,
|
|
90
|
+
table: Table_Internal<TFeatures, TData>,
|
|
91
|
+
) => void
|
|
92
|
+
|
|
93
|
+
export type AssignHeaderPrototype<TConstructors extends FeatureConstructors> = <
|
|
94
|
+
TFeatures extends TableFeatures,
|
|
95
|
+
TData extends RowData,
|
|
96
|
+
>(
|
|
97
|
+
prototype: Record<string, any>,
|
|
98
|
+
table: Table_Internal<TFeatures, TData>,
|
|
99
|
+
) => void
|
|
100
|
+
|
|
101
|
+
export type AssignRowPrototype<TConstructors extends FeatureConstructors> = <
|
|
102
|
+
TFeatures extends TableFeatures,
|
|
103
|
+
TData extends RowData,
|
|
104
|
+
>(
|
|
105
|
+
prototype: Record<string, any>,
|
|
106
|
+
table: Table_Internal<TFeatures, TData>,
|
|
107
|
+
) => void
|
|
108
|
+
|
|
109
|
+
export type InitRowInstanceData<TConstructors extends FeatureConstructors> = <
|
|
110
|
+
TFeatures extends TableFeatures,
|
|
111
|
+
TData extends RowData,
|
|
112
|
+
>(
|
|
113
|
+
row: Row<TFeatures, TData> & Partial<TConstructors['Row']>,
|
|
114
|
+
) => void
|
|
115
|
+
|
|
116
|
+
export interface TableFeature<TConstructors extends FeatureConstructors> {
|
|
117
|
+
/**
|
|
118
|
+
* Assigns Cell APIs to the cell prototype for memory-efficient method sharing.
|
|
119
|
+
* This is called once per table to build a shared prototype for all cells.
|
|
120
|
+
*/
|
|
121
|
+
assignCellPrototype?: AssignCellPrototype<TConstructors>
|
|
122
|
+
/**
|
|
123
|
+
* Assigns Column APIs to the column prototype for memory-efficient method sharing.
|
|
124
|
+
* This is called once per table to build a shared prototype for all columns.
|
|
125
|
+
*/
|
|
126
|
+
assignColumnPrototype?: AssignColumnPrototype<TConstructors>
|
|
127
|
+
/**
|
|
128
|
+
* Assigns Header APIs to the header prototype for memory-efficient method sharing.
|
|
129
|
+
* This is called once per table to build a shared prototype for all headers.
|
|
130
|
+
*/
|
|
131
|
+
assignHeaderPrototype?: AssignHeaderPrototype<TConstructors>
|
|
132
|
+
/**
|
|
133
|
+
* Assigns Row APIs to the row prototype for memory-efficient method sharing.
|
|
134
|
+
* This is called once per table to build a shared prototype for all rows.
|
|
135
|
+
*/
|
|
136
|
+
assignRowPrototype?: AssignRowPrototype<TConstructors>
|
|
137
|
+
/**
|
|
138
|
+
* Assigns Table APIs to the table instance.
|
|
139
|
+
* Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.
|
|
140
|
+
*/
|
|
141
|
+
constructTableAPIs?: ConstructTableAPIs<TConstructors>
|
|
142
|
+
getDefaultColumnDef?: GetDefaultColumnDef<TConstructors>
|
|
143
|
+
getDefaultTableOptions?: GetDefaultTableOptions<TConstructors>
|
|
144
|
+
getInitialState?: GetInitialState<TConstructors>
|
|
145
|
+
/**
|
|
146
|
+
* Initializes instance-specific data on each row (e.g., caches).
|
|
147
|
+
* Methods should be assigned via assignRowPrototype instead.
|
|
148
|
+
*/
|
|
149
|
+
initRowInstanceData?: InitRowInstanceData<TConstructors>
|
|
150
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { CoreFeatures } from '../core/coreFeatures'
|
|
2
|
+
import type { TableOptions_Cell } from '../core/cells/coreCellsFeature.types'
|
|
3
|
+
import type { TableOptions_Columns } from '../core/columns/coreColumnsFeature.types'
|
|
4
|
+
import type { TableOptions_Rows } from '../core/rows/coreRowsFeature.types'
|
|
5
|
+
import type { TableOptions_Table } from '../core/table/coreTablesFeature.types'
|
|
6
|
+
import type { TableOptions_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
|
|
7
|
+
import type { TableOptions_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
|
|
8
|
+
import type { TableOptions_ColumnOrdering } from '../features/column-ordering/columnOrderingFeature.types'
|
|
9
|
+
import type { TableOptions_ColumnPinning } from '../features/column-pinning/columnPinningFeature.types'
|
|
10
|
+
import type { TableOptions_ColumnResizing } from '../features/column-resizing/columnResizingFeature.types'
|
|
11
|
+
import type { TableOptions_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
|
|
12
|
+
import type { TableOptions_ColumnVisibility } from '../features/column-visibility/columnVisibilityFeature.types'
|
|
13
|
+
import type { TableOptions_GlobalFiltering } from '../features/global-filtering/globalFilteringFeature.types'
|
|
14
|
+
import type { TableOptions_RowExpanding } from '../features/row-expanding/rowExpandingFeature.types'
|
|
15
|
+
import type { TableOptions_RowPagination } from '../features/row-pagination/rowPaginationFeature.types'
|
|
16
|
+
import type { TableOptions_RowPinning } from '../features/row-pinning/rowPinningFeature.types'
|
|
17
|
+
import type { TableOptions_RowSelection } from '../features/row-selection/rowSelectionFeature.types'
|
|
18
|
+
import type { TableOptions_RowSorting } from '../features/row-sorting/rowSortingFeature.types'
|
|
19
|
+
import type { RowData, UnionToIntersection } from './type-utils'
|
|
20
|
+
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
|
|
21
|
+
|
|
22
|
+
export interface TableOptions_Plugins<
|
|
23
|
+
TFeatures extends TableFeatures,
|
|
24
|
+
TData extends RowData,
|
|
25
|
+
> {}
|
|
26
|
+
|
|
27
|
+
export interface TableOptions_Core<
|
|
28
|
+
TFeatures extends TableFeatures,
|
|
29
|
+
TData extends RowData,
|
|
30
|
+
>
|
|
31
|
+
extends
|
|
32
|
+
TableOptions_Table<TFeatures, TData>,
|
|
33
|
+
TableOptions_Cell,
|
|
34
|
+
TableOptions_Columns<TFeatures, TData>,
|
|
35
|
+
TableOptions_Rows<TFeatures, TData> {}
|
|
36
|
+
|
|
37
|
+
type DebugKeysFor<TFeatures extends TableFeatures> = {
|
|
38
|
+
[K in keyof TFeatures & string as `debug${Capitalize<K>}`]?: boolean
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type DebugOptions<TFeatures extends TableFeatures> = {
|
|
42
|
+
debugAll?: boolean
|
|
43
|
+
debugCache?: boolean
|
|
44
|
+
debugCells?: boolean
|
|
45
|
+
debugColumns?: boolean
|
|
46
|
+
debugHeaders?: boolean
|
|
47
|
+
debugRows?: boolean
|
|
48
|
+
debugTable?: boolean
|
|
49
|
+
} & DebugKeysFor<CoreFeatures & TFeatures>
|
|
50
|
+
|
|
51
|
+
export type TableOptions<
|
|
52
|
+
TFeatures extends TableFeatures,
|
|
53
|
+
TData extends RowData,
|
|
54
|
+
> = TableOptions_Core<TFeatures, TData> &
|
|
55
|
+
UnionToIntersection<
|
|
56
|
+
| ('columnFilteringFeature' extends keyof TFeatures
|
|
57
|
+
? TableOptions_ColumnFiltering<TFeatures, TData>
|
|
58
|
+
: never)
|
|
59
|
+
| ('columnGroupingFeature' extends keyof TFeatures
|
|
60
|
+
? TableOptions_ColumnGrouping
|
|
61
|
+
: never)
|
|
62
|
+
| ('columnOrderingFeature' extends keyof TFeatures
|
|
63
|
+
? TableOptions_ColumnOrdering
|
|
64
|
+
: never)
|
|
65
|
+
| ('columnPinningFeature' extends keyof TFeatures
|
|
66
|
+
? TableOptions_ColumnPinning
|
|
67
|
+
: never)
|
|
68
|
+
| ('columnResizingFeature' extends keyof TFeatures
|
|
69
|
+
? TableOptions_ColumnResizing
|
|
70
|
+
: never)
|
|
71
|
+
| ('columnSizingFeature' extends keyof TFeatures
|
|
72
|
+
? TableOptions_ColumnSizing
|
|
73
|
+
: never)
|
|
74
|
+
| ('columnVisibilityFeature' extends keyof TFeatures
|
|
75
|
+
? TableOptions_ColumnVisibility
|
|
76
|
+
: never)
|
|
77
|
+
| ('globalFilteringFeature' extends keyof TFeatures
|
|
78
|
+
? TableOptions_GlobalFiltering<TFeatures, TData>
|
|
79
|
+
: never)
|
|
80
|
+
| ('rowExpandingFeature' extends keyof TFeatures
|
|
81
|
+
? TableOptions_RowExpanding<TFeatures, TData>
|
|
82
|
+
: never)
|
|
83
|
+
| ('rowPaginationFeature' extends keyof TFeatures
|
|
84
|
+
? TableOptions_RowPagination
|
|
85
|
+
: never)
|
|
86
|
+
| ('rowPinningFeature' extends keyof TFeatures
|
|
87
|
+
? TableOptions_RowPinning<TFeatures, TData>
|
|
88
|
+
: never)
|
|
89
|
+
| ('rowSelectionFeature' extends keyof TFeatures
|
|
90
|
+
? TableOptions_RowSelection<TFeatures, TData>
|
|
91
|
+
: never)
|
|
92
|
+
| ('rowSortingFeature' extends keyof TFeatures
|
|
93
|
+
? TableOptions_RowSorting
|
|
94
|
+
: never)
|
|
95
|
+
> &
|
|
96
|
+
ExtractFeatureTypes<'TableOptions', TFeatures> &
|
|
97
|
+
TableOptions_Plugins<TFeatures, TData> &
|
|
98
|
+
DebugOptions<TFeatures>
|
|
99
|
+
|
|
100
|
+
// export type TableOptions<
|
|
101
|
+
// TFeatures extends TableFeatures,
|
|
102
|
+
// TData extends RowData,
|
|
103
|
+
// > = TableOptions_Core<TFeatures, TData> &
|
|
104
|
+
// ExtractFeatureTypes<'TableOptions', TFeatures> &
|
|
105
|
+
// TableOptions_Plugins<TFeatures, TData>
|
|
106
|
+
|
|
107
|
+
export type TableOptions_All<
|
|
108
|
+
TFeatures extends TableFeatures,
|
|
109
|
+
TData extends RowData,
|
|
110
|
+
> = TableOptions_Core<TFeatures, TData> &
|
|
111
|
+
Partial<
|
|
112
|
+
TableOptions_ColumnFiltering<TFeatures, TData> &
|
|
113
|
+
TableOptions_ColumnGrouping &
|
|
114
|
+
TableOptions_ColumnOrdering &
|
|
115
|
+
TableOptions_ColumnPinning &
|
|
116
|
+
TableOptions_ColumnResizing &
|
|
117
|
+
TableOptions_ColumnSizing &
|
|
118
|
+
TableOptions_ColumnVisibility &
|
|
119
|
+
TableOptions_GlobalFiltering<TFeatures, TData> &
|
|
120
|
+
TableOptions_RowExpanding<TFeatures, TData> &
|
|
121
|
+
TableOptions_RowPagination &
|
|
122
|
+
TableOptions_RowPinning<TFeatures, TData> &
|
|
123
|
+
TableOptions_RowSelection<TFeatures, TData> &
|
|
124
|
+
TableOptions_RowSorting
|
|
125
|
+
>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { UnionToIntersection } from './type-utils'
|
|
2
|
+
import type { TableState_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
|
|
3
|
+
import type { TableState_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
|
|
4
|
+
import type { TableState_ColumnOrdering } from '../features/column-ordering/columnOrderingFeature.types'
|
|
5
|
+
import type { TableState_ColumnPinning } from '../features/column-pinning/columnPinningFeature.types'
|
|
6
|
+
import type { TableState_ColumnResizing } from '../features/column-resizing/columnResizingFeature.types'
|
|
7
|
+
import type { TableState_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
|
|
8
|
+
import type { TableState_ColumnVisibility } from '../features/column-visibility/columnVisibilityFeature.types'
|
|
9
|
+
import type { TableState_GlobalFiltering } from '../features/global-filtering/globalFilteringFeature.types'
|
|
10
|
+
import type { TableState_RowExpanding } from '../features/row-expanding/rowExpandingFeature.types'
|
|
11
|
+
import type { TableState_RowPagination } from '../features/row-pagination/rowPaginationFeature.types'
|
|
12
|
+
import type { TableState_RowPinning } from '../features/row-pinning/rowPinningFeature.types'
|
|
13
|
+
import type { TableState_RowSelection } from '../features/row-selection/rowSelectionFeature.types'
|
|
14
|
+
import type { TableState_RowSorting } from '../features/row-sorting/rowSortingFeature.types'
|
|
15
|
+
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Use this interface as a target for declaration merging to add your own state properties.
|
|
19
|
+
* Note: This will affect the types of all tables in your project.
|
|
20
|
+
*/
|
|
21
|
+
export interface TableState_Plugins<TFeatures extends TableFeatures> {}
|
|
22
|
+
|
|
23
|
+
export type TableState<TFeatures extends TableFeatures> = UnionToIntersection<
|
|
24
|
+
| ('columnFilteringFeature' extends keyof TFeatures
|
|
25
|
+
? TableState_ColumnFiltering
|
|
26
|
+
: never)
|
|
27
|
+
| ('columnGroupingFeature' extends keyof TFeatures
|
|
28
|
+
? TableState_ColumnGrouping
|
|
29
|
+
: never)
|
|
30
|
+
| ('columnOrderingFeature' extends keyof TFeatures
|
|
31
|
+
? TableState_ColumnOrdering
|
|
32
|
+
: never)
|
|
33
|
+
| ('columnPinningFeature' extends keyof TFeatures
|
|
34
|
+
? TableState_ColumnPinning
|
|
35
|
+
: never)
|
|
36
|
+
| ('columnResizingFeature' extends keyof TFeatures
|
|
37
|
+
? TableState_ColumnResizing
|
|
38
|
+
: never)
|
|
39
|
+
| ('columnSizingFeature' extends keyof TFeatures
|
|
40
|
+
? TableState_ColumnSizing
|
|
41
|
+
: never)
|
|
42
|
+
| ('columnVisibilityFeature' extends keyof TFeatures
|
|
43
|
+
? TableState_ColumnVisibility
|
|
44
|
+
: never)
|
|
45
|
+
| ('globalFilteringFeature' extends keyof TFeatures
|
|
46
|
+
? TableState_GlobalFiltering
|
|
47
|
+
: never)
|
|
48
|
+
| ('rowExpandingFeature' extends keyof TFeatures
|
|
49
|
+
? TableState_RowExpanding
|
|
50
|
+
: never)
|
|
51
|
+
| ('rowPaginationFeature' extends keyof TFeatures
|
|
52
|
+
? TableState_RowPagination
|
|
53
|
+
: never)
|
|
54
|
+
| ('rowPinningFeature' extends keyof TFeatures
|
|
55
|
+
? TableState_RowPinning
|
|
56
|
+
: never)
|
|
57
|
+
| ('rowSelectionFeature' extends keyof TFeatures
|
|
58
|
+
? TableState_RowSelection
|
|
59
|
+
: never)
|
|
60
|
+
| ('rowSortingFeature' extends keyof TFeatures
|
|
61
|
+
? TableState_RowSorting
|
|
62
|
+
: never)
|
|
63
|
+
> &
|
|
64
|
+
ExtractFeatureTypes<'TableState', TFeatures> &
|
|
65
|
+
TableState_Plugins<TFeatures>
|
|
66
|
+
|
|
67
|
+
// export type TableState<TFeatures extends TableFeatures> = ExtractFeatureTypes<
|
|
68
|
+
// export type TableState<TFeatures extends TableFeatures> = ExtractFeatureTypes<
|
|
69
|
+
// 'TableState',
|
|
70
|
+
// TFeatures
|
|
71
|
+
// > &
|
|
72
|
+
// TableState_Plugins<TFeatures>
|
|
73
|
+
|
|
74
|
+
export type TableState_All = Partial<
|
|
75
|
+
TableState_ColumnFiltering &
|
|
76
|
+
TableState_ColumnGrouping &
|
|
77
|
+
TableState_ColumnOrdering &
|
|
78
|
+
TableState_ColumnPinning &
|
|
79
|
+
TableState_ColumnResizing &
|
|
80
|
+
TableState_ColumnSizing &
|
|
81
|
+
TableState_ColumnVisibility &
|
|
82
|
+
TableState_GlobalFiltering &
|
|
83
|
+
TableState_RowExpanding &
|
|
84
|
+
TableState_RowPagination &
|
|
85
|
+
TableState_RowPinning &
|
|
86
|
+
TableState_RowSelection &
|
|
87
|
+
TableState_RowSorting
|
|
88
|
+
>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export type Updater<T> = T | ((old: T) => T)
|
|
2
|
+
|
|
3
|
+
export type OnChangeFn<T> = (updaterOrValue: Updater<T>) => void
|
|
4
|
+
|
|
5
|
+
export type RowData = Record<string, any> | Array<any>
|
|
6
|
+
|
|
7
|
+
export type CellData = unknown
|
|
8
|
+
|
|
9
|
+
export type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
|
|
10
|
+
|
|
11
|
+
export type RequiredKeys<T, K extends keyof T> = Omit<T, K> &
|
|
12
|
+
Required<Pick<T, K>>
|
|
13
|
+
|
|
14
|
+
export type UnionToIntersection<T> = (
|
|
15
|
+
T extends any ? (x: T) => any : never
|
|
16
|
+
) extends (x: infer R) => any
|
|
17
|
+
? R
|
|
18
|
+
: never
|
|
19
|
+
|
|
20
|
+
type ComputeRange<
|
|
21
|
+
N extends number,
|
|
22
|
+
Result extends Array<unknown> = [],
|
|
23
|
+
> = Result['length'] extends N
|
|
24
|
+
? Result
|
|
25
|
+
: ComputeRange<N, [...Result, Result['length']]>
|
|
26
|
+
|
|
27
|
+
type Index40 = ComputeRange<40>[number]
|
|
28
|
+
|
|
29
|
+
// Is this type a tuple?
|
|
30
|
+
type IsTuple<T> = T extends ReadonlyArray<any> & { length: infer Length }
|
|
31
|
+
? Length extends Index40
|
|
32
|
+
? T
|
|
33
|
+
: never
|
|
34
|
+
: never
|
|
35
|
+
|
|
36
|
+
// If this type is a tuple, what indices are allowed?
|
|
37
|
+
type AllowedIndexes<
|
|
38
|
+
Tuple extends ReadonlyArray<any>,
|
|
39
|
+
Keys extends number = never,
|
|
40
|
+
> = Tuple extends readonly []
|
|
41
|
+
? Keys
|
|
42
|
+
: Tuple extends readonly [infer _, ...infer Tail]
|
|
43
|
+
? AllowedIndexes<Tail, Keys | Tail['length']>
|
|
44
|
+
: Keys
|
|
45
|
+
|
|
46
|
+
export type DeepKeys<
|
|
47
|
+
T,
|
|
48
|
+
TDepth extends Array<any> = [],
|
|
49
|
+
> = TDepth['length'] extends 5
|
|
50
|
+
? never
|
|
51
|
+
: unknown extends T
|
|
52
|
+
? string
|
|
53
|
+
: T extends ReadonlyArray<any> & IsTuple<T>
|
|
54
|
+
? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth>
|
|
55
|
+
: T extends Array<any>
|
|
56
|
+
? DeepKeys<T[number], [...TDepth, any]>
|
|
57
|
+
: T extends Date
|
|
58
|
+
? never
|
|
59
|
+
: T extends object
|
|
60
|
+
? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth>
|
|
61
|
+
: never
|
|
62
|
+
|
|
63
|
+
type DeepKeysPrefix<
|
|
64
|
+
T,
|
|
65
|
+
TPrefix,
|
|
66
|
+
TDepth extends Array<any>,
|
|
67
|
+
> = TPrefix extends keyof T & (number | string)
|
|
68
|
+
? `${TPrefix}.${DeepKeys<T[TPrefix], [...TDepth, any]> & string}`
|
|
69
|
+
: never
|
|
70
|
+
|
|
71
|
+
export type DeepValue<T, TProp> =
|
|
72
|
+
T extends Record<string | number, any>
|
|
73
|
+
? TProp extends `${infer TBranch}.${infer TDeepProp}`
|
|
74
|
+
? DeepValue<T[TBranch], TDeepProp>
|
|
75
|
+
: T[TProp & string]
|
|
76
|
+
: never
|
|
77
|
+
|
|
78
|
+
export type NoInfer<T> = [T][T extends any ? 0 : never]
|
|
79
|
+
|
|
80
|
+
export type Getter<TValue> = <TTValue = TValue>() => NoInfer<TTValue>
|
|
81
|
+
|
|
82
|
+
export type Prettify<T> = {
|
|
83
|
+
[K in keyof T]: T[K]
|
|
84
|
+
} & unknown
|