@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,155 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assignPrototypeAPIs,
|
|
3
|
+
assignTableAPIs,
|
|
4
|
+
makeStateUpdater,
|
|
5
|
+
} from '../../utils'
|
|
6
|
+
import {
|
|
7
|
+
row_getCenterVisibleCells,
|
|
8
|
+
row_getLeftVisibleCells,
|
|
9
|
+
row_getRightVisibleCells,
|
|
10
|
+
} from '../column-pinning/columnPinningFeature.utils'
|
|
11
|
+
import {
|
|
12
|
+
column_getCanHide,
|
|
13
|
+
column_getIsVisible,
|
|
14
|
+
column_getToggleVisibilityHandler,
|
|
15
|
+
column_toggleVisibility,
|
|
16
|
+
getDefaultColumnVisibilityState,
|
|
17
|
+
row_getAllVisibleCells,
|
|
18
|
+
row_getVisibleCells,
|
|
19
|
+
table_getIsAllColumnsVisible,
|
|
20
|
+
table_getIsSomeColumnsVisible,
|
|
21
|
+
table_getToggleAllColumnsVisibilityHandler,
|
|
22
|
+
table_getVisibleFlatColumns,
|
|
23
|
+
table_getVisibleLeafColumns,
|
|
24
|
+
table_resetColumnVisibility,
|
|
25
|
+
table_setColumnVisibility,
|
|
26
|
+
table_toggleAllColumnsVisible,
|
|
27
|
+
} from './columnVisibilityFeature.utils'
|
|
28
|
+
import type { RowData } from '../../types/type-utils'
|
|
29
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
30
|
+
// import type {
|
|
31
|
+
// ColumnDef_ColumnVisibility,
|
|
32
|
+
// Column_ColumnVisibility,
|
|
33
|
+
// Row_ColumnVisibility,
|
|
34
|
+
// TableOptions_ColumnVisibility,
|
|
35
|
+
// TableState_ColumnVisibility,
|
|
36
|
+
// Table_ColumnVisibility,
|
|
37
|
+
// } from './columnVisibilityFeature.types'
|
|
38
|
+
|
|
39
|
+
interface ColumnVisibilityFeatureConstructors<
|
|
40
|
+
TFeatures extends TableFeatures,
|
|
41
|
+
TData extends RowData,
|
|
42
|
+
> {
|
|
43
|
+
// ColumnDef: ColumnDef_ColumnVisibility
|
|
44
|
+
// Column: Column_ColumnVisibility
|
|
45
|
+
// Row: Row_ColumnVisibility<TFeatures, TData>
|
|
46
|
+
// Table: Table_ColumnVisibility<TFeatures, TData>
|
|
47
|
+
// TableOptions: TableOptions_ColumnVisibility
|
|
48
|
+
// TableState: TableState_ColumnVisibility
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function constructColumnVisibilityFeature<
|
|
52
|
+
TFeatures extends TableFeatures,
|
|
53
|
+
TData extends RowData,
|
|
54
|
+
>(): TableFeature<ColumnVisibilityFeatureConstructors<TFeatures, TData>> {
|
|
55
|
+
return {
|
|
56
|
+
getInitialState: (initialState) => {
|
|
57
|
+
return {
|
|
58
|
+
columnVisibility: getDefaultColumnVisibilityState(),
|
|
59
|
+
...initialState,
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
getDefaultTableOptions: (table) => {
|
|
64
|
+
return {
|
|
65
|
+
onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
assignColumnPrototype: (prototype, table) => {
|
|
70
|
+
assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {
|
|
71
|
+
column_getIsVisible: {
|
|
72
|
+
fn: (column) => column_getIsVisible(column),
|
|
73
|
+
memoDeps: (column) => [
|
|
74
|
+
column.table.options.columns,
|
|
75
|
+
column.table.store.state.columnVisibility,
|
|
76
|
+
column.columns,
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
column_getCanHide: {
|
|
80
|
+
fn: (column) => column_getCanHide(column),
|
|
81
|
+
},
|
|
82
|
+
column_getToggleVisibilityHandler: {
|
|
83
|
+
fn: (column) => column_getToggleVisibilityHandler(column),
|
|
84
|
+
},
|
|
85
|
+
column_toggleVisibility: {
|
|
86
|
+
fn: (column, visible) => column_toggleVisibility(column, visible),
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
assignRowPrototype: (prototype, table) => {
|
|
92
|
+
assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {
|
|
93
|
+
row_getAllVisibleCells: {
|
|
94
|
+
fn: (row) => row_getAllVisibleCells(row),
|
|
95
|
+
memoDeps: (row) => [
|
|
96
|
+
row.getAllCells(),
|
|
97
|
+
row.table.store.state.columnVisibility,
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
row_getVisibleCells: {
|
|
101
|
+
fn: (row, left, center, right) =>
|
|
102
|
+
row_getVisibleCells(left, center, right),
|
|
103
|
+
memoDeps: (row) => [
|
|
104
|
+
row_getLeftVisibleCells(row),
|
|
105
|
+
row_getCenterVisibleCells(row),
|
|
106
|
+
row_getRightVisibleCells(row),
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
})
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
constructTableAPIs: (table) => {
|
|
113
|
+
assignTableAPIs('columnVisibilityFeature', table, {
|
|
114
|
+
table_getVisibleFlatColumns: {
|
|
115
|
+
fn: () => table_getVisibleFlatColumns(table),
|
|
116
|
+
memoDeps: () => [
|
|
117
|
+
table.store.state.columnVisibility,
|
|
118
|
+
table.options.columns,
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
table_getVisibleLeafColumns: {
|
|
122
|
+
fn: () => table_getVisibleLeafColumns(table),
|
|
123
|
+
memoDeps: () => [
|
|
124
|
+
table.store.state.columnVisibility,
|
|
125
|
+
table.options.columns,
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
table_setColumnVisibility: {
|
|
129
|
+
fn: (updater) => table_setColumnVisibility(table, updater),
|
|
130
|
+
},
|
|
131
|
+
table_resetColumnVisibility: {
|
|
132
|
+
fn: (defaultState) =>
|
|
133
|
+
table_resetColumnVisibility(table, defaultState),
|
|
134
|
+
},
|
|
135
|
+
table_toggleAllColumnsVisible: {
|
|
136
|
+
fn: (value) => table_toggleAllColumnsVisible(table, value),
|
|
137
|
+
},
|
|
138
|
+
table_getIsAllColumnsVisible: {
|
|
139
|
+
fn: () => table_getIsAllColumnsVisible(table),
|
|
140
|
+
},
|
|
141
|
+
table_getIsSomeColumnsVisible: {
|
|
142
|
+
fn: () => table_getIsSomeColumnsVisible(table),
|
|
143
|
+
},
|
|
144
|
+
table_getToggleAllColumnsVisibilityHandler: {
|
|
145
|
+
fn: () => table_getToggleAllColumnsVisibilityHandler(table),
|
|
146
|
+
},
|
|
147
|
+
})
|
|
148
|
+
},
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* The Column Visibility feature adds column visibility state and APIs to the table, row, and column objects.
|
|
154
|
+
*/
|
|
155
|
+
export const columnVisibilityFeature = constructColumnVisibilityFeature()
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { OnChangeFn, RowData, Updater } from '../../types/type-utils'
|
|
2
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
3
|
+
import type { Cell } from '../../types/Cell'
|
|
4
|
+
import type { Column } from '../../types/Column'
|
|
5
|
+
|
|
6
|
+
export type ColumnVisibilityState = Record<string, boolean>
|
|
7
|
+
|
|
8
|
+
export interface TableState_ColumnVisibility {
|
|
9
|
+
columnVisibility: ColumnVisibilityState
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface TableOptions_ColumnVisibility {
|
|
13
|
+
/**
|
|
14
|
+
* Whether to enable column hiding. Defaults to `true`.
|
|
15
|
+
*/
|
|
16
|
+
enableHiding?: boolean
|
|
17
|
+
/**
|
|
18
|
+
* If provided, this function will be called with an `updaterFn` when `state.columnVisibility` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.
|
|
19
|
+
*/
|
|
20
|
+
onColumnVisibilityChange?: OnChangeFn<ColumnVisibilityState>
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type VisibilityDefaultOptions = Pick<
|
|
24
|
+
TableOptions_ColumnVisibility,
|
|
25
|
+
'onColumnVisibilityChange'
|
|
26
|
+
>
|
|
27
|
+
|
|
28
|
+
export interface Table_ColumnVisibility<
|
|
29
|
+
TFeatures extends TableFeatures,
|
|
30
|
+
TData extends RowData,
|
|
31
|
+
> {
|
|
32
|
+
/**
|
|
33
|
+
* Returns whether all columns are visible
|
|
34
|
+
*/
|
|
35
|
+
getIsAllColumnsVisible: () => boolean
|
|
36
|
+
/**
|
|
37
|
+
* Returns whether any columns are visible
|
|
38
|
+
*/
|
|
39
|
+
getIsSomeColumnsVisible: () => boolean
|
|
40
|
+
/**
|
|
41
|
+
* Returns a handler for toggling the visibility of all columns, meant to be bound to a `input[type=checkbox]` element.
|
|
42
|
+
*/
|
|
43
|
+
getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void
|
|
44
|
+
/**
|
|
45
|
+
* Returns a flat array of columns that are visible, including parent columns.
|
|
46
|
+
*/
|
|
47
|
+
getVisibleFlatColumns: () => Array<Column<TFeatures, TData, unknown>>
|
|
48
|
+
/**
|
|
49
|
+
* Returns a flat array of leaf-node columns that are visible.
|
|
50
|
+
*/
|
|
51
|
+
getVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
|
|
52
|
+
/**
|
|
53
|
+
* Resets the column visibility state to the initial state. If `defaultState` is provided, the state will be reset to `{}`
|
|
54
|
+
*/
|
|
55
|
+
resetColumnVisibility: (defaultState?: boolean) => void
|
|
56
|
+
/**
|
|
57
|
+
* Sets or updates the `state.columnVisibility` state.
|
|
58
|
+
*/
|
|
59
|
+
setColumnVisibility: (updater: Updater<ColumnVisibilityState>) => void
|
|
60
|
+
/**
|
|
61
|
+
* Toggles the visibility of all columns.
|
|
62
|
+
*/
|
|
63
|
+
toggleAllColumnsVisible: (value?: boolean) => void
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface ColumnDef_ColumnVisibility {
|
|
67
|
+
/**
|
|
68
|
+
* Enables/disables column hiding for this column. Defaults to `true`.
|
|
69
|
+
*/
|
|
70
|
+
enableHiding?: boolean
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface Row_ColumnVisibility<
|
|
74
|
+
TFeatures extends TableFeatures,
|
|
75
|
+
TData extends RowData,
|
|
76
|
+
> {
|
|
77
|
+
getAllVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
|
|
78
|
+
/**
|
|
79
|
+
* Returns an array of cells that account for column visibility for the row.
|
|
80
|
+
*/
|
|
81
|
+
getVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface Column_ColumnVisibility {
|
|
85
|
+
/**
|
|
86
|
+
* Returns whether the column can be hidden
|
|
87
|
+
*/
|
|
88
|
+
getCanHide: () => boolean
|
|
89
|
+
/**
|
|
90
|
+
* Returns whether the column is visible
|
|
91
|
+
*/
|
|
92
|
+
getIsVisible: () => boolean
|
|
93
|
+
/**
|
|
94
|
+
* Returns a function that can be used to toggle the column visibility. This function can be used to bind to an event handler to a checkbox.
|
|
95
|
+
*/
|
|
96
|
+
getToggleVisibilityHandler: () => (event: unknown) => void
|
|
97
|
+
/**
|
|
98
|
+
* Toggles the visibility of the column.
|
|
99
|
+
*/
|
|
100
|
+
toggleVisibility: (value?: boolean) => void
|
|
101
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { callMemoOrStaticFn } from '../../utils'
|
|
2
|
+
import type { CellData, RowData, Updater } from '../../types/type-utils'
|
|
3
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
4
|
+
import type { Table_Internal } from '../../types/Table'
|
|
5
|
+
import type { Cell } from '../../types/Cell'
|
|
6
|
+
import type { Column_Internal } from '../../types/Column'
|
|
7
|
+
import type { ColumnVisibilityState } from './columnVisibilityFeature.types'
|
|
8
|
+
import type { Row } from '../../types/Row'
|
|
9
|
+
|
|
10
|
+
export function getDefaultColumnVisibilityState(): ColumnVisibilityState {
|
|
11
|
+
return structuredClone({})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function column_toggleVisibility<
|
|
15
|
+
TFeatures extends TableFeatures,
|
|
16
|
+
TData extends RowData,
|
|
17
|
+
TValue extends CellData = CellData,
|
|
18
|
+
>(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {
|
|
19
|
+
if (column_getCanHide(column)) {
|
|
20
|
+
table_setColumnVisibility(column.table, (old) => ({
|
|
21
|
+
...old,
|
|
22
|
+
[column.id]:
|
|
23
|
+
visible ??
|
|
24
|
+
!callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
25
|
+
}))
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function column_getIsVisible<
|
|
30
|
+
TFeatures extends TableFeatures,
|
|
31
|
+
TData extends RowData,
|
|
32
|
+
TValue extends CellData = CellData,
|
|
33
|
+
>(column: Column_Internal<TFeatures, TData, TValue>): boolean {
|
|
34
|
+
const childColumns = column.columns
|
|
35
|
+
return (
|
|
36
|
+
(childColumns.length
|
|
37
|
+
? childColumns.some((childColumn) =>
|
|
38
|
+
callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),
|
|
39
|
+
)
|
|
40
|
+
: column.table.store.state.columnVisibility?.[column.id]) ?? true
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function column_getCanHide<
|
|
45
|
+
TFeatures extends TableFeatures,
|
|
46
|
+
TData extends RowData,
|
|
47
|
+
TValue extends CellData = CellData,
|
|
48
|
+
>(column: Column_Internal<TFeatures, TData, TValue>) {
|
|
49
|
+
return (
|
|
50
|
+
(column.columnDef.enableHiding ?? true) &&
|
|
51
|
+
(column.table.options.enableHiding ?? true)
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function column_getToggleVisibilityHandler<
|
|
56
|
+
TFeatures extends TableFeatures,
|
|
57
|
+
TData extends RowData,
|
|
58
|
+
TValue extends CellData = CellData,
|
|
59
|
+
>(column: Column_Internal<TFeatures, TData, TValue>) {
|
|
60
|
+
return (e: unknown) => {
|
|
61
|
+
column_toggleVisibility(
|
|
62
|
+
column,
|
|
63
|
+
((e as MouseEvent).target as HTMLInputElement).checked,
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function row_getAllVisibleCells<
|
|
69
|
+
TFeatures extends TableFeatures,
|
|
70
|
+
TData extends RowData,
|
|
71
|
+
>(row: Row<TFeatures, TData>) {
|
|
72
|
+
return row
|
|
73
|
+
.getAllCells()
|
|
74
|
+
.filter((cell) =>
|
|
75
|
+
callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible),
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function row_getVisibleCells<
|
|
80
|
+
TFeatures extends TableFeatures,
|
|
81
|
+
TData extends RowData,
|
|
82
|
+
>(
|
|
83
|
+
left: Array<Cell<TFeatures, TData, unknown>>,
|
|
84
|
+
center: Array<Cell<TFeatures, TData, unknown>>,
|
|
85
|
+
right: Array<Cell<TFeatures, TData, unknown>>,
|
|
86
|
+
) {
|
|
87
|
+
return [...left, ...center, ...right]
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export function table_getVisibleFlatColumns<
|
|
91
|
+
TFeatures extends TableFeatures,
|
|
92
|
+
TData extends RowData,
|
|
93
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
94
|
+
return table
|
|
95
|
+
.getAllFlatColumns()
|
|
96
|
+
.filter((column) =>
|
|
97
|
+
callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
98
|
+
)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function table_getVisibleLeafColumns<
|
|
102
|
+
TFeatures extends TableFeatures,
|
|
103
|
+
TData extends RowData,
|
|
104
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
105
|
+
return table
|
|
106
|
+
.getAllLeafColumns()
|
|
107
|
+
.filter((column) =>
|
|
108
|
+
callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export function table_setColumnVisibility<
|
|
113
|
+
TFeatures extends TableFeatures,
|
|
114
|
+
TData extends RowData,
|
|
115
|
+
>(
|
|
116
|
+
table: Table_Internal<TFeatures, TData>,
|
|
117
|
+
updater: Updater<ColumnVisibilityState>,
|
|
118
|
+
) {
|
|
119
|
+
table.options.onColumnVisibilityChange?.(updater)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export function table_resetColumnVisibility<
|
|
123
|
+
TFeatures extends TableFeatures,
|
|
124
|
+
TData extends RowData,
|
|
125
|
+
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
126
|
+
table_setColumnVisibility(
|
|
127
|
+
table,
|
|
128
|
+
defaultState ? {} : (table.initialState.columnVisibility ?? {}),
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export function table_toggleAllColumnsVisible<
|
|
133
|
+
TFeatures extends TableFeatures,
|
|
134
|
+
TData extends RowData,
|
|
135
|
+
>(table: Table_Internal<TFeatures, TData>, value?: boolean) {
|
|
136
|
+
value = value ?? !table_getIsAllColumnsVisible(table)
|
|
137
|
+
|
|
138
|
+
table_setColumnVisibility(
|
|
139
|
+
table,
|
|
140
|
+
table.getAllLeafColumns().reduce(
|
|
141
|
+
(obj, column) => ({
|
|
142
|
+
...obj,
|
|
143
|
+
[column.id]: !value ? !column_getCanHide(column) : value,
|
|
144
|
+
}),
|
|
145
|
+
{},
|
|
146
|
+
),
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function table_getIsAllColumnsVisible<
|
|
151
|
+
TFeatures extends TableFeatures,
|
|
152
|
+
TData extends RowData,
|
|
153
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
154
|
+
return !table
|
|
155
|
+
.getAllLeafColumns()
|
|
156
|
+
.some(
|
|
157
|
+
(column) =>
|
|
158
|
+
!callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export function table_getIsSomeColumnsVisible<
|
|
163
|
+
TFeatures extends TableFeatures,
|
|
164
|
+
TData extends RowData,
|
|
165
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
166
|
+
return table
|
|
167
|
+
.getAllLeafColumns()
|
|
168
|
+
.some((column) =>
|
|
169
|
+
callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
|
|
170
|
+
)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export function table_getToggleAllColumnsVisibilityHandler<
|
|
174
|
+
TFeatures extends TableFeatures,
|
|
175
|
+
TData extends RowData,
|
|
176
|
+
>(table: Table_Internal<TFeatures, TData>) {
|
|
177
|
+
return (e: unknown) => {
|
|
178
|
+
table_toggleAllColumnsVisible(
|
|
179
|
+
table,
|
|
180
|
+
((e as MouseEvent).target as HTMLInputElement).checked,
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assignPrototypeAPIs,
|
|
3
|
+
assignTableAPIs,
|
|
4
|
+
makeStateUpdater,
|
|
5
|
+
} from '../../utils'
|
|
6
|
+
import {
|
|
7
|
+
column_getCanGlobalFilter,
|
|
8
|
+
table_getGlobalAutoFilterFn,
|
|
9
|
+
table_getGlobalFilterFn,
|
|
10
|
+
table_resetGlobalFilter,
|
|
11
|
+
table_setGlobalFilter,
|
|
12
|
+
} from './globalFilteringFeature.utils'
|
|
13
|
+
import type { RowData } from '../../types/type-utils'
|
|
14
|
+
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
|
|
15
|
+
// import type {
|
|
16
|
+
// ColumnDef_GlobalFiltering,
|
|
17
|
+
// Column_GlobalFiltering,
|
|
18
|
+
// TableOptions_GlobalFiltering,
|
|
19
|
+
// TableState_GlobalFiltering,
|
|
20
|
+
// Table_GlobalFiltering,
|
|
21
|
+
// } from './globalFilteringFeature.types'
|
|
22
|
+
|
|
23
|
+
interface GlobalFilteringFeatureConstructors<
|
|
24
|
+
TFeatures extends TableFeatures,
|
|
25
|
+
TData extends RowData,
|
|
26
|
+
> {
|
|
27
|
+
// Column: Column_GlobalFiltering
|
|
28
|
+
// ColumnDef: ColumnDef_GlobalFiltering
|
|
29
|
+
// Table: Table_GlobalFiltering<TFeatures, TData>
|
|
30
|
+
// TableOptions: TableOptions_GlobalFiltering<TFeatures, TData>
|
|
31
|
+
// TableState: TableState_GlobalFiltering
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function constructGlobalFilteringFeature<
|
|
35
|
+
TFeatures extends TableFeatures,
|
|
36
|
+
TData extends RowData,
|
|
37
|
+
>(): TableFeature<GlobalFilteringFeatureConstructors<TFeatures, TData>> {
|
|
38
|
+
return {
|
|
39
|
+
getInitialState: (initialState) => {
|
|
40
|
+
return {
|
|
41
|
+
globalFilter: undefined,
|
|
42
|
+
...initialState,
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
getDefaultTableOptions: (table) => {
|
|
47
|
+
return {
|
|
48
|
+
onGlobalFilterChange: makeStateUpdater('globalFilter', table),
|
|
49
|
+
globalFilterFn: 'auto',
|
|
50
|
+
getColumnCanGlobalFilter: (column) => {
|
|
51
|
+
const value = table
|
|
52
|
+
.getCoreRowModel()
|
|
53
|
+
.flatRows[0]?.getAllCellsByColumnId()
|
|
54
|
+
[column.id]?.getValue()
|
|
55
|
+
|
|
56
|
+
return typeof value === 'string' || typeof value === 'number'
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
assignColumnPrototype: (prototype, table) => {
|
|
62
|
+
assignPrototypeAPIs('globalFilteringFeature', prototype, table, {
|
|
63
|
+
column_getCanGlobalFilter: {
|
|
64
|
+
fn: (column) => column_getCanGlobalFilter(column),
|
|
65
|
+
},
|
|
66
|
+
})
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
constructTableAPIs: (table) => {
|
|
70
|
+
assignTableAPIs('globalFilteringFeature', table, {
|
|
71
|
+
table_getGlobalAutoFilterFn: {
|
|
72
|
+
fn: () => table_getGlobalAutoFilterFn(),
|
|
73
|
+
},
|
|
74
|
+
table_getGlobalFilterFn: {
|
|
75
|
+
fn: () => table_getGlobalFilterFn(table),
|
|
76
|
+
},
|
|
77
|
+
table_setGlobalFilter: {
|
|
78
|
+
fn: (updater) => table_setGlobalFilter(table, updater),
|
|
79
|
+
},
|
|
80
|
+
table_resetGlobalFilter: {
|
|
81
|
+
fn: (defaultState) => table_resetGlobalFilter(table, defaultState),
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
},
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The Global Filtering feature adds global filtering state and APIs to the table and column objects.
|
|
90
|
+
* **Note:** This is dependent on the columnFilteringFeature feature.
|
|
91
|
+
*/
|
|
92
|
+
export const globalFilteringFeature = constructGlobalFilteringFeature()
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
CellData,
|
|
3
|
+
OnChangeFn,
|
|
4
|
+
RowData,
|
|
5
|
+
Updater,
|
|
6
|
+
} from '../../types/type-utils'
|
|
7
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
8
|
+
import type { Column } from '../../types/Column'
|
|
9
|
+
import type {
|
|
10
|
+
FilterFn,
|
|
11
|
+
FilterFnOption,
|
|
12
|
+
} from '../column-filtering/columnFilteringFeature.types'
|
|
13
|
+
|
|
14
|
+
export interface TableState_GlobalFiltering {
|
|
15
|
+
globalFilter: any
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface ColumnDef_GlobalFiltering {
|
|
19
|
+
/**
|
|
20
|
+
* Enables/disables the **global** filter for this column.
|
|
21
|
+
*/
|
|
22
|
+
enableGlobalFilter?: boolean
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface Column_GlobalFiltering {
|
|
26
|
+
/**
|
|
27
|
+
* Returns whether or not the column can be **globally** filtered. Set to `false` to disable a column from being scanned during global filtering.
|
|
28
|
+
*/
|
|
29
|
+
getCanGlobalFilter: () => boolean
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface TableOptions_GlobalFiltering<
|
|
33
|
+
TFeatures extends TableFeatures,
|
|
34
|
+
TData extends RowData,
|
|
35
|
+
> {
|
|
36
|
+
/**
|
|
37
|
+
* Enables/disables **global** filtering for all columns.
|
|
38
|
+
*/
|
|
39
|
+
enableGlobalFilter?: boolean
|
|
40
|
+
/**
|
|
41
|
+
* If provided, this function will be called with the column and should return `true` or `false` to indicate whether this column should be used for global filtering.
|
|
42
|
+
* This is useful if the column can contain data that is not `string` or `number` (i.e. `undefined`).
|
|
43
|
+
*/
|
|
44
|
+
getColumnCanGlobalFilter?: <
|
|
45
|
+
TFeatures extends TableFeatures,
|
|
46
|
+
TData extends RowData,
|
|
47
|
+
TValue extends CellData = CellData,
|
|
48
|
+
>(
|
|
49
|
+
column: Column<TFeatures, TData, TValue>,
|
|
50
|
+
) => boolean
|
|
51
|
+
/**
|
|
52
|
+
* The filter function to use for global filtering.
|
|
53
|
+
* - A `string` referencing a built-in filter function
|
|
54
|
+
* - A `string` that references a custom filter functions provided via the `tableOptions.filterFns` option
|
|
55
|
+
* - A custom filter function
|
|
56
|
+
*/
|
|
57
|
+
globalFilterFn?: FilterFnOption<TFeatures, TData>
|
|
58
|
+
/**
|
|
59
|
+
* If provided, this function will be called with an `updaterFn` when `state.globalFilter` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.
|
|
60
|
+
*/
|
|
61
|
+
onGlobalFilterChange?: OnChangeFn<any>
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface Table_GlobalFiltering<
|
|
65
|
+
TFeatures extends TableFeatures,
|
|
66
|
+
TData extends RowData,
|
|
67
|
+
> {
|
|
68
|
+
/**
|
|
69
|
+
* Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.
|
|
70
|
+
*/
|
|
71
|
+
getGlobalAutoFilterFn: () => FilterFn<TFeatures, TData> | undefined
|
|
72
|
+
/**
|
|
73
|
+
* Returns the filter function (either user-defined or automatic, depending on configuration) for the global filter.
|
|
74
|
+
*/
|
|
75
|
+
getGlobalFilterFn: () => FilterFn<TFeatures, TData> | undefined
|
|
76
|
+
/**
|
|
77
|
+
* Resets the **globalFilter** state to `initialState.globalFilter`, or `true` can be passed to force a default blank state reset to `undefined`.
|
|
78
|
+
*/
|
|
79
|
+
resetGlobalFilter: (defaultState?: boolean) => void
|
|
80
|
+
/**
|
|
81
|
+
* Sets or updates the `state.globalFilter` state.
|
|
82
|
+
*/
|
|
83
|
+
setGlobalFilter: (updater: Updater<any>) => void
|
|
84
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { filterFn_includesString } from '../../fns/filterFns'
|
|
2
|
+
import { isFunction } from '../../utils'
|
|
3
|
+
import type { Column_Internal } from '../../types/Column'
|
|
4
|
+
import type { FilterFn } from '../column-filtering/columnFilteringFeature.types'
|
|
5
|
+
import type { CellData, RowData } from '../../types/type-utils'
|
|
6
|
+
import type { TableFeatures } from '../../types/TableFeatures'
|
|
7
|
+
import type { Table_Internal } from '../../types/Table'
|
|
8
|
+
|
|
9
|
+
export function column_getCanGlobalFilter<
|
|
10
|
+
TFeatures extends TableFeatures,
|
|
11
|
+
TData extends RowData,
|
|
12
|
+
TValue extends CellData = CellData,
|
|
13
|
+
>(column: Column_Internal<TFeatures, TData, TValue>): boolean {
|
|
14
|
+
return (
|
|
15
|
+
(column.columnDef.enableGlobalFilter ?? true) &&
|
|
16
|
+
(column.table.options.enableGlobalFilter ?? true) &&
|
|
17
|
+
(column.table.options.enableFilters ?? true) &&
|
|
18
|
+
(column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&
|
|
19
|
+
!!column.accessorFn
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function table_getGlobalAutoFilterFn() {
|
|
24
|
+
return filterFn_includesString
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function table_getGlobalFilterFn<
|
|
28
|
+
TFeatures extends TableFeatures,
|
|
29
|
+
TData extends RowData,
|
|
30
|
+
>(
|
|
31
|
+
table: Table_Internal<TFeatures, TData>,
|
|
32
|
+
): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {
|
|
33
|
+
const { globalFilterFn: globalFilterFn } = table.options
|
|
34
|
+
const filterFns = table._rowModelFns.filterFns as
|
|
35
|
+
| Record<string, FilterFn<TFeatures, TData>>
|
|
36
|
+
| undefined
|
|
37
|
+
|
|
38
|
+
return isFunction(globalFilterFn)
|
|
39
|
+
? globalFilterFn
|
|
40
|
+
: globalFilterFn === 'auto'
|
|
41
|
+
? table_getGlobalAutoFilterFn()
|
|
42
|
+
: filterFns?.[globalFilterFn as string]
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function table_setGlobalFilter<
|
|
46
|
+
TFeatures extends TableFeatures,
|
|
47
|
+
TData extends RowData,
|
|
48
|
+
>(table: Table_Internal<TFeatures, TData>, updater: any) {
|
|
49
|
+
table.options.onGlobalFilterChange?.(updater)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function table_resetGlobalFilter<
|
|
53
|
+
TFeatures extends TableFeatures,
|
|
54
|
+
TData extends RowData,
|
|
55
|
+
>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
|
|
56
|
+
table_setGlobalFilter(
|
|
57
|
+
table,
|
|
58
|
+
defaultState ? undefined : table.initialState.globalFilter,
|
|
59
|
+
)
|
|
60
|
+
}
|