@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,48 @@
|
|
|
1
|
+
import { columnFacetingFeature } from './column-faceting/columnFacetingFeature'
|
|
2
|
+
import { columnFilteringFeature } from './column-filtering/columnFilteringFeature'
|
|
3
|
+
import { columnGroupingFeature } from './column-grouping/columnGroupingFeature'
|
|
4
|
+
import { columnOrderingFeature } from './column-ordering/columnOrderingFeature'
|
|
5
|
+
import { columnPinningFeature } from './column-pinning/columnPinningFeature'
|
|
6
|
+
import { columnResizingFeature } from './column-resizing/columnResizingFeature'
|
|
7
|
+
import { columnSizingFeature } from './column-sizing/columnSizingFeature'
|
|
8
|
+
import { columnVisibilityFeature } from './column-visibility/columnVisibilityFeature'
|
|
9
|
+
import { globalFilteringFeature } from './global-filtering/globalFilteringFeature'
|
|
10
|
+
import { rowExpandingFeature } from './row-expanding/rowExpandingFeature'
|
|
11
|
+
import { rowPaginationFeature } from './row-pagination/rowPaginationFeature'
|
|
12
|
+
import { rowPinningFeature } from './row-pinning/rowPinningFeature'
|
|
13
|
+
import { rowSelectionFeature } from './row-selection/rowSelectionFeature'
|
|
14
|
+
import { rowSortingFeature } from './row-sorting/rowSortingFeature'
|
|
15
|
+
|
|
16
|
+
export interface StockFeatures {
|
|
17
|
+
columnFacetingFeature: typeof columnFacetingFeature
|
|
18
|
+
columnFilteringFeature: typeof columnFilteringFeature
|
|
19
|
+
columnGroupingFeature: typeof columnGroupingFeature
|
|
20
|
+
columnOrderingFeature: typeof columnOrderingFeature
|
|
21
|
+
columnPinningFeature: typeof columnPinningFeature
|
|
22
|
+
columnResizingFeature: typeof columnResizingFeature
|
|
23
|
+
columnSizingFeature: typeof columnSizingFeature
|
|
24
|
+
columnVisibilityFeature: typeof columnVisibilityFeature
|
|
25
|
+
globalFilteringFeature: typeof globalFilteringFeature
|
|
26
|
+
rowExpandingFeature: typeof rowExpandingFeature
|
|
27
|
+
rowPaginationFeature: typeof rowPaginationFeature
|
|
28
|
+
rowPinningFeature: typeof rowPinningFeature
|
|
29
|
+
rowSelectionFeature: typeof rowSelectionFeature
|
|
30
|
+
rowSortingFeature: typeof rowSortingFeature
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const stockFeatures: StockFeatures = {
|
|
34
|
+
columnFacetingFeature,
|
|
35
|
+
columnFilteringFeature,
|
|
36
|
+
columnGroupingFeature,
|
|
37
|
+
columnOrderingFeature,
|
|
38
|
+
columnPinningFeature,
|
|
39
|
+
columnResizingFeature,
|
|
40
|
+
columnSizingFeature,
|
|
41
|
+
columnVisibilityFeature,
|
|
42
|
+
globalFilteringFeature,
|
|
43
|
+
rowExpandingFeature,
|
|
44
|
+
rowPaginationFeature,
|
|
45
|
+
rowPinningFeature,
|
|
46
|
+
rowSelectionFeature,
|
|
47
|
+
rowSortingFeature,
|
|
48
|
+
} as const
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { isNumberArray } from '../utils'
|
|
2
|
+
import type { RowData } from '../types/type-utils'
|
|
3
|
+
import type { TableFeatures } from '../types/TableFeatures'
|
|
4
|
+
import type { Row } from '../types/Row'
|
|
5
|
+
import type { AggregationFn } from '../features/column-grouping/columnGroupingFeature.types'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Aggregation function for summing up the values of a column.
|
|
9
|
+
*/
|
|
10
|
+
export const aggregationFn_sum: AggregationFn<any, any> = <
|
|
11
|
+
TFeatures extends TableFeatures,
|
|
12
|
+
TData extends RowData,
|
|
13
|
+
>(
|
|
14
|
+
columnId: string,
|
|
15
|
+
_leafRows: Array<Row<any, any>>,
|
|
16
|
+
childRows: Array<Row<any, any>>,
|
|
17
|
+
) => {
|
|
18
|
+
// It's faster to just add the aggregations together instead of
|
|
19
|
+
// process leaf nodes individually
|
|
20
|
+
return childRows.reduce((sumValue, next) => {
|
|
21
|
+
const nextValue = next.getValue(columnId)
|
|
22
|
+
return sumValue + (typeof nextValue === 'number' ? nextValue : 0)
|
|
23
|
+
}, 0)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Aggregation function for finding the minimum value of a column.
|
|
28
|
+
*/
|
|
29
|
+
export const aggregationFn_min: AggregationFn<any, any> = <
|
|
30
|
+
TFeatures extends TableFeatures,
|
|
31
|
+
TData extends RowData,
|
|
32
|
+
>(
|
|
33
|
+
columnId: string,
|
|
34
|
+
_leafRows: Array<Row<any, any>>,
|
|
35
|
+
childRows: Array<Row<any, any>>,
|
|
36
|
+
) => {
|
|
37
|
+
let minValue: number | undefined
|
|
38
|
+
|
|
39
|
+
childRows.forEach((row) => {
|
|
40
|
+
const value = row.getValue(columnId)
|
|
41
|
+
|
|
42
|
+
if (
|
|
43
|
+
value != null &&
|
|
44
|
+
typeof value === 'number' &&
|
|
45
|
+
(minValue === undefined || value < minValue)
|
|
46
|
+
) {
|
|
47
|
+
minValue = value
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
return minValue
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Aggregation function for finding the maximum value of a column.
|
|
56
|
+
*/
|
|
57
|
+
export const aggregationFn_max: AggregationFn<any, any> = <
|
|
58
|
+
TFeatures extends TableFeatures,
|
|
59
|
+
TData extends RowData,
|
|
60
|
+
>(
|
|
61
|
+
columnId: string,
|
|
62
|
+
_leafRows: Array<Row<any, any>>,
|
|
63
|
+
childRows: Array<Row<any, any>>,
|
|
64
|
+
) => {
|
|
65
|
+
let maxValue: number | undefined
|
|
66
|
+
|
|
67
|
+
childRows.forEach((row) => {
|
|
68
|
+
const value = row.getValue(columnId)
|
|
69
|
+
if (
|
|
70
|
+
value != null &&
|
|
71
|
+
typeof value === 'number' &&
|
|
72
|
+
(maxValue === undefined || value > maxValue)
|
|
73
|
+
) {
|
|
74
|
+
maxValue = value
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
return maxValue
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Aggregation function for finding the extent (min and max) of a column.
|
|
83
|
+
*/
|
|
84
|
+
export const aggregationFn_extent: AggregationFn<any, any> = <
|
|
85
|
+
TFeatures extends TableFeatures,
|
|
86
|
+
TData extends RowData,
|
|
87
|
+
>(
|
|
88
|
+
columnId: string,
|
|
89
|
+
_leafRows: Array<Row<any, any>>,
|
|
90
|
+
childRows: Array<Row<any, any>>,
|
|
91
|
+
) => {
|
|
92
|
+
let minValue: number | undefined
|
|
93
|
+
let maxValue: number | undefined
|
|
94
|
+
|
|
95
|
+
childRows.forEach((row) => {
|
|
96
|
+
const value = row.getValue(columnId)
|
|
97
|
+
if (value != null && typeof value === 'number') {
|
|
98
|
+
if (minValue === undefined) {
|
|
99
|
+
minValue = maxValue = value
|
|
100
|
+
} else {
|
|
101
|
+
if (minValue > value) minValue = value
|
|
102
|
+
if (maxValue! < value) maxValue = value
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
return [minValue, maxValue]
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Aggregation function for finding the mean (average) of a column.
|
|
112
|
+
*/
|
|
113
|
+
export const aggregationFn_mean: AggregationFn<any, any> = <
|
|
114
|
+
TFeatures extends TableFeatures,
|
|
115
|
+
TData extends RowData,
|
|
116
|
+
>(
|
|
117
|
+
columnId: string,
|
|
118
|
+
leafRows: Array<Row<any, any>>,
|
|
119
|
+
) => {
|
|
120
|
+
let count = 0
|
|
121
|
+
let sumValue = 0
|
|
122
|
+
|
|
123
|
+
leafRows.forEach((row) => {
|
|
124
|
+
const value = row.getValue(columnId)
|
|
125
|
+
if (value != null && typeof value === 'number') {
|
|
126
|
+
++count
|
|
127
|
+
sumValue += value
|
|
128
|
+
} else if (value != null) {
|
|
129
|
+
const numValue = +value
|
|
130
|
+
if (!Number.isNaN(numValue)) {
|
|
131
|
+
++count
|
|
132
|
+
sumValue += numValue
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
if (count) return sumValue / count
|
|
138
|
+
|
|
139
|
+
return
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Aggregation function for finding the median value of a column.
|
|
144
|
+
*/
|
|
145
|
+
export const aggregationFn_median: AggregationFn<any, any> = <
|
|
146
|
+
TFeatures extends TableFeatures,
|
|
147
|
+
TData extends RowData,
|
|
148
|
+
>(
|
|
149
|
+
columnId: string,
|
|
150
|
+
leafRows: Array<Row<any, any>>,
|
|
151
|
+
) => {
|
|
152
|
+
if (!leafRows.length) {
|
|
153
|
+
return
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const values = leafRows.map((row) => row.getValue(columnId))
|
|
157
|
+
if (!isNumberArray(values)) {
|
|
158
|
+
return
|
|
159
|
+
}
|
|
160
|
+
if (values.length === 1) {
|
|
161
|
+
return values[0]
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const mid = Math.floor(values.length / 2)
|
|
165
|
+
const nums = values.sort((a, b) => a - b)
|
|
166
|
+
return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1]! + nums[mid]!) / 2
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Aggregation function for finding the unique values of a column.
|
|
171
|
+
*/
|
|
172
|
+
export const aggregationFn_unique: AggregationFn<any, any> = <
|
|
173
|
+
TFeatures extends TableFeatures,
|
|
174
|
+
TData extends RowData,
|
|
175
|
+
>(
|
|
176
|
+
columnId: string,
|
|
177
|
+
leafRows: Array<Row<any, any>>,
|
|
178
|
+
) => {
|
|
179
|
+
return Array.from(new Set(leafRows.map((d) => d.getValue(columnId))).values())
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Aggregation function for finding the count of unique values of a column.
|
|
184
|
+
*/
|
|
185
|
+
export const aggregationFn_uniqueCount: AggregationFn<any, any> = <
|
|
186
|
+
TFeatures extends TableFeatures,
|
|
187
|
+
TData extends RowData,
|
|
188
|
+
>(
|
|
189
|
+
columnId: string,
|
|
190
|
+
leafRows: Array<Row<any, any>>,
|
|
191
|
+
) => {
|
|
192
|
+
return new Set(leafRows.map((d) => d.getValue(columnId))).size
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Aggregation function for counting the number of rows in a column.
|
|
197
|
+
*/
|
|
198
|
+
export const aggregationFn_count: AggregationFn<any, any> = <
|
|
199
|
+
TFeatures extends TableFeatures,
|
|
200
|
+
TData extends RowData,
|
|
201
|
+
>(
|
|
202
|
+
_columnId: string,
|
|
203
|
+
leafRows: Array<Row<any, any>>,
|
|
204
|
+
) => {
|
|
205
|
+
return leafRows.length
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export const aggregationFns = {
|
|
209
|
+
sum: aggregationFn_sum,
|
|
210
|
+
min: aggregationFn_min,
|
|
211
|
+
max: aggregationFn_max,
|
|
212
|
+
extent: aggregationFn_extent,
|
|
213
|
+
mean: aggregationFn_mean,
|
|
214
|
+
median: aggregationFn_median,
|
|
215
|
+
unique: aggregationFn_unique,
|
|
216
|
+
uniqueCount: aggregationFn_uniqueCount,
|
|
217
|
+
count: aggregationFn_count,
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export type BuiltInAggregationFn = keyof typeof aggregationFns
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
import type { RowData } from '../types/type-utils'
|
|
2
|
+
import type { TableFeatures } from '../types/TableFeatures'
|
|
3
|
+
import type { Row } from '../types/Row'
|
|
4
|
+
import type { FilterFn } from '../features/column-filtering/columnFilteringFeature.types'
|
|
5
|
+
|
|
6
|
+
// Basic filters
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Filter function for checking if a value is exactly equal to a given value. (JS === comparison)
|
|
10
|
+
*/
|
|
11
|
+
export const filterFn_equals: FilterFn<any, any> = <
|
|
12
|
+
TFeatures extends TableFeatures,
|
|
13
|
+
TData extends RowData,
|
|
14
|
+
>(
|
|
15
|
+
row: Row<TFeatures, TData>,
|
|
16
|
+
columnId: string,
|
|
17
|
+
filterValue: unknown,
|
|
18
|
+
) => {
|
|
19
|
+
return row.getValue(columnId) === filterValue
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
filterFn_equals.autoRemove = (val: any) => testFalsy(val)
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Filter function for checking if a value is weakly equal to a given value. (JS == comparison)
|
|
26
|
+
*/
|
|
27
|
+
export const filterFn_weakEquals: FilterFn<any, any> = <
|
|
28
|
+
TFeatures extends TableFeatures,
|
|
29
|
+
TData extends RowData,
|
|
30
|
+
>(
|
|
31
|
+
row: Row<TFeatures, TData>,
|
|
32
|
+
columnId: string,
|
|
33
|
+
filterValue: unknown,
|
|
34
|
+
) => {
|
|
35
|
+
return row.getValue(columnId) == filterValue
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
filterFn_weakEquals.autoRemove = (val: any) => testFalsy(val)
|
|
39
|
+
|
|
40
|
+
// String filters
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Filter function for checking if a string includes a given substring. (Case-sensitive)
|
|
44
|
+
*/
|
|
45
|
+
export const filterFn_includesStringSensitive: FilterFn<any, any> = <
|
|
46
|
+
TFeatures extends TableFeatures,
|
|
47
|
+
TData extends RowData,
|
|
48
|
+
>(
|
|
49
|
+
row: Row<TFeatures, TData>,
|
|
50
|
+
columnId: string,
|
|
51
|
+
filterValue: string,
|
|
52
|
+
) => {
|
|
53
|
+
return Boolean(
|
|
54
|
+
row.getValue(columnId)?.toString().includes(filterValue.toString()),
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
filterFn_includesStringSensitive.autoRemove = (val: any) => testFalsy(val)
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Filter function for checking if a string includes a given substring. (Non-case-sensitive)
|
|
62
|
+
*/
|
|
63
|
+
export const filterFn_includesString: FilterFn<any, any> = <
|
|
64
|
+
TFeatures extends TableFeatures,
|
|
65
|
+
TData extends RowData,
|
|
66
|
+
>(
|
|
67
|
+
row: Row<TFeatures, TData>,
|
|
68
|
+
columnId: string,
|
|
69
|
+
filterValue: string,
|
|
70
|
+
) => {
|
|
71
|
+
return Boolean(
|
|
72
|
+
row
|
|
73
|
+
.getValue(columnId)
|
|
74
|
+
?.toString()
|
|
75
|
+
.toLowerCase()
|
|
76
|
+
.includes(filterValue.toString().toLowerCase()),
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
filterFn_includesString.autoRemove = (val: any) => testFalsy(val)
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Filter function for checking if a string is exactly equal to a given string. (Non-case-sensitive)
|
|
84
|
+
*/
|
|
85
|
+
export const filterFn_equalsString: FilterFn<any, any> = <
|
|
86
|
+
TFeatures extends TableFeatures,
|
|
87
|
+
TData extends RowData,
|
|
88
|
+
>(
|
|
89
|
+
row: Row<TFeatures, TData>,
|
|
90
|
+
columnId: string,
|
|
91
|
+
filterValue: string,
|
|
92
|
+
) => {
|
|
93
|
+
return (
|
|
94
|
+
row.getValue(columnId)?.toString().toLowerCase() ===
|
|
95
|
+
filterValue.toLowerCase()
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
filterFn_equalsString.autoRemove = (val: any) => testFalsy(val)
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Filter function for checking if a string is exactly equal to a given string. (Case-sensitive)
|
|
103
|
+
*/
|
|
104
|
+
export const filterFn_equalsStringSensitive: FilterFn<any, any> = <
|
|
105
|
+
TFeatures extends TableFeatures,
|
|
106
|
+
TData extends RowData,
|
|
107
|
+
>(
|
|
108
|
+
row: Row<TFeatures, TData>,
|
|
109
|
+
columnId: string,
|
|
110
|
+
filterValue: string,
|
|
111
|
+
) => {
|
|
112
|
+
return row.getValue(columnId)?.toString() === filterValue
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
filterFn_equalsStringSensitive.autoRemove = (val: any) => testFalsy(val)
|
|
116
|
+
|
|
117
|
+
// Number filters
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Filter function for checking if a number is greater than a given number.
|
|
121
|
+
*/
|
|
122
|
+
export const filterFn_greaterThan: FilterFn<any, any> = <
|
|
123
|
+
TFeatures extends TableFeatures,
|
|
124
|
+
TData extends RowData,
|
|
125
|
+
>(
|
|
126
|
+
row: Row<TFeatures, TData>,
|
|
127
|
+
columnId: string,
|
|
128
|
+
filterValue: Date | number | string,
|
|
129
|
+
) => {
|
|
130
|
+
const rowValue = row.getValue(columnId)
|
|
131
|
+
const numericRowValue =
|
|
132
|
+
rowValue === null || rowValue === undefined ? 0 : +rowValue
|
|
133
|
+
const numericFilterValue = +filterValue
|
|
134
|
+
|
|
135
|
+
if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {
|
|
136
|
+
return numericRowValue > numericFilterValue
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const stringValue = (rowValue ?? '').toString().toLowerCase().trim()
|
|
140
|
+
const stringFilterValue = filterValue.toString().toLowerCase().trim()
|
|
141
|
+
return stringValue > stringFilterValue
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
filterFn_greaterThan.resolveFilterValue = (val: any) => testFalsy(val)
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Filter function for checking if a number is greater than or equal to a given number.
|
|
148
|
+
*/
|
|
149
|
+
export const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <
|
|
150
|
+
TFeatures extends TableFeatures,
|
|
151
|
+
TData extends RowData,
|
|
152
|
+
>(
|
|
153
|
+
row: Row<TFeatures, TData>,
|
|
154
|
+
columnId: string,
|
|
155
|
+
filterValue: Date | number | string,
|
|
156
|
+
) => {
|
|
157
|
+
return (
|
|
158
|
+
filterFn_greaterThan(row as any, columnId, filterValue) ||
|
|
159
|
+
filterFn_equals(row as any, columnId, filterValue)
|
|
160
|
+
)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
filterFn_greaterThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Filter function for checking if a number is less than a given number.
|
|
167
|
+
*/
|
|
168
|
+
export const filterFn_lessThan: FilterFn<any, any> = <
|
|
169
|
+
TFeatures extends TableFeatures,
|
|
170
|
+
TData extends RowData,
|
|
171
|
+
>(
|
|
172
|
+
row: Row<TFeatures, TData>,
|
|
173
|
+
columnId: string,
|
|
174
|
+
filterValue: Date | number | string,
|
|
175
|
+
) => {
|
|
176
|
+
return !filterFn_greaterThanOrEqualTo(row as any, columnId, filterValue)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
filterFn_lessThan.resolveFilterValue = (val: any) => testFalsy(val)
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Filter function for checking if a number is less than or equal to a given number.
|
|
183
|
+
*/
|
|
184
|
+
export const filterFn_lessThanOrEqualTo: FilterFn<any, any> = <
|
|
185
|
+
TFeatures extends TableFeatures,
|
|
186
|
+
TData extends RowData,
|
|
187
|
+
>(
|
|
188
|
+
row: Row<TFeatures, TData>,
|
|
189
|
+
columnId: string,
|
|
190
|
+
filterValue: Date | number | string,
|
|
191
|
+
) => {
|
|
192
|
+
return !filterFn_greaterThan(row as any, columnId, filterValue)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
filterFn_lessThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)
|
|
196
|
+
|
|
197
|
+
// Range filters
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Filter function for checking if a number or a string is between two given values.
|
|
201
|
+
*/
|
|
202
|
+
const filterFn_between: FilterFn<any, any> = <
|
|
203
|
+
TFeatures extends TableFeatures,
|
|
204
|
+
TData extends RowData,
|
|
205
|
+
>(
|
|
206
|
+
row: Row<TFeatures, TData>,
|
|
207
|
+
columnId: string,
|
|
208
|
+
filterValues: [number | string, number | string],
|
|
209
|
+
): boolean =>
|
|
210
|
+
((['', undefined] as Array<any>).includes(filterValues[0]) ||
|
|
211
|
+
filterFn_greaterThan(row as any, columnId, filterValues[0])) &&
|
|
212
|
+
((!isNaN(+filterValues[0]) &&
|
|
213
|
+
!isNaN(+filterValues[1]) &&
|
|
214
|
+
+filterValues[0] > +filterValues[1]) ||
|
|
215
|
+
(['', undefined] as Array<any>).includes(filterValues[1]) ||
|
|
216
|
+
filterFn_lessThan(row as any, columnId, filterValues[1]))
|
|
217
|
+
|
|
218
|
+
filterFn_between.autoRemove = (val: any) => !val
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Filter function for checking if a number or a string is between two given values or equal to them.
|
|
222
|
+
*/
|
|
223
|
+
const filterFn_betweenInclusive: FilterFn<any, any> = <
|
|
224
|
+
TFeatures extends TableFeatures,
|
|
225
|
+
TData extends RowData,
|
|
226
|
+
>(
|
|
227
|
+
row: Row<TFeatures, TData>,
|
|
228
|
+
columnId: string,
|
|
229
|
+
filterValues: [number | string, number | string],
|
|
230
|
+
): boolean =>
|
|
231
|
+
((['', undefined] as Array<any>).includes(filterValues[0]) ||
|
|
232
|
+
filterFn_greaterThanOrEqualTo(row as any, columnId, filterValues[0])) &&
|
|
233
|
+
((!isNaN(+filterValues[0]) &&
|
|
234
|
+
!isNaN(+filterValues[1]) &&
|
|
235
|
+
+filterValues[0] > +filterValues[1]) ||
|
|
236
|
+
(['', undefined] as Array<any>).includes(filterValues[1]) ||
|
|
237
|
+
filterFn_lessThanOrEqualTo(row as any, columnId, filterValues[1]))
|
|
238
|
+
|
|
239
|
+
filterFn_betweenInclusive.autoRemove = (val: any) => !val
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Filter function for checking if a number is within a given range.
|
|
243
|
+
*/
|
|
244
|
+
export const filterFn_inNumberRange: FilterFn<any, any> = <
|
|
245
|
+
TFeatures extends TableFeatures,
|
|
246
|
+
TData extends RowData,
|
|
247
|
+
>(
|
|
248
|
+
row: Row<TFeatures, TData>,
|
|
249
|
+
columnId: string,
|
|
250
|
+
filterValue: [number, number],
|
|
251
|
+
) => {
|
|
252
|
+
const [min, max] = filterValue
|
|
253
|
+
|
|
254
|
+
const rowValue: number = row.getValue(columnId)
|
|
255
|
+
return rowValue >= min && rowValue <= max
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
filterFn_inNumberRange.resolveFilterValue = (val: [any, any]) => {
|
|
259
|
+
const [unsafeMin, unsafeMax] = val
|
|
260
|
+
|
|
261
|
+
const parsedMin =
|
|
262
|
+
typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin
|
|
263
|
+
const parsedMax =
|
|
264
|
+
typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax
|
|
265
|
+
|
|
266
|
+
let min =
|
|
267
|
+
unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin
|
|
268
|
+
let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax
|
|
269
|
+
|
|
270
|
+
if (min > max) {
|
|
271
|
+
const temp = min
|
|
272
|
+
min = max
|
|
273
|
+
max = temp
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return [min, max] as const
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
filterFn_inNumberRange.autoRemove = (val: any) =>
|
|
280
|
+
testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1]))
|
|
281
|
+
|
|
282
|
+
// Array filters
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Filter function for checking if an array has a given value.
|
|
286
|
+
*/
|
|
287
|
+
export const filterFn_arrHas: FilterFn<any, any> = <
|
|
288
|
+
TFeatures extends TableFeatures,
|
|
289
|
+
TData extends RowData,
|
|
290
|
+
>(
|
|
291
|
+
row: Row<TFeatures, TData>,
|
|
292
|
+
columnId: string,
|
|
293
|
+
filterValue: Array<unknown>,
|
|
294
|
+
) => {
|
|
295
|
+
return filterValue.some((val) => row.getValue<unknown>(columnId) === val)
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Filter function for checking if an array includes a given value.
|
|
300
|
+
*/
|
|
301
|
+
export const filterFn_arrIncludes: FilterFn<any, any> = <
|
|
302
|
+
TFeatures extends TableFeatures,
|
|
303
|
+
TData extends RowData,
|
|
304
|
+
>(
|
|
305
|
+
row: Row<TFeatures, TData>,
|
|
306
|
+
columnId: string,
|
|
307
|
+
filterValue: Array<unknown>,
|
|
308
|
+
) => {
|
|
309
|
+
return filterValue.some((val) =>
|
|
310
|
+
(row.getValue<unknown>(columnId) as Array<unknown> | string).includes(
|
|
311
|
+
val as any,
|
|
312
|
+
),
|
|
313
|
+
)
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
filterFn_arrIncludes.autoRemove = (val: any) => testFalsy(val) || !val?.length
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Filter function for checking if an array includes all of the given values.
|
|
320
|
+
*/
|
|
321
|
+
export const filterFn_arrIncludesAll: FilterFn<any, any> = <
|
|
322
|
+
TFeatures extends TableFeatures,
|
|
323
|
+
TData extends RowData,
|
|
324
|
+
>(
|
|
325
|
+
row: Row<TFeatures, TData>,
|
|
326
|
+
columnId: string,
|
|
327
|
+
filterValue: Array<unknown>,
|
|
328
|
+
) => {
|
|
329
|
+
const value = row.getValue<Array<unknown>>(columnId)
|
|
330
|
+
if (!Array.isArray(value)) return false
|
|
331
|
+
return !filterValue.some((val) => !value.includes(val))
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
filterFn_arrIncludesAll.autoRemove = (val: any) =>
|
|
335
|
+
testFalsy(val) || !val?.length
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Filter function for checking if an array includes any of the given values.
|
|
339
|
+
*/
|
|
340
|
+
export const filterFn_arrIncludesSome: FilterFn<any, any> = <
|
|
341
|
+
TFeatures extends TableFeatures,
|
|
342
|
+
TData extends RowData,
|
|
343
|
+
>(
|
|
344
|
+
row: Row<TFeatures, TData>,
|
|
345
|
+
columnId: string,
|
|
346
|
+
filterValue: Array<unknown>,
|
|
347
|
+
) => {
|
|
348
|
+
const value = row.getValue<Array<unknown>>(columnId)
|
|
349
|
+
if (!Array.isArray(value)) return false
|
|
350
|
+
return filterValue.some((val) => value.includes(val))
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
filterFn_arrIncludesSome.autoRemove = (val: any) =>
|
|
354
|
+
testFalsy(val) || !val?.length
|
|
355
|
+
|
|
356
|
+
// Export
|
|
357
|
+
|
|
358
|
+
export const filterFns = {
|
|
359
|
+
arrIncludes: filterFn_arrIncludes,
|
|
360
|
+
arrIncludesAll: filterFn_arrIncludesAll,
|
|
361
|
+
arrHas: filterFn_arrHas,
|
|
362
|
+
arrIncludesSome: filterFn_arrIncludesSome,
|
|
363
|
+
between: filterFn_between,
|
|
364
|
+
betweenInclusive: filterFn_betweenInclusive,
|
|
365
|
+
equals: filterFn_equals,
|
|
366
|
+
equalsString: filterFn_equalsString,
|
|
367
|
+
inNumberRange: filterFn_inNumberRange,
|
|
368
|
+
includesString: filterFn_includesString,
|
|
369
|
+
includesStringSensitive: filterFn_includesStringSensitive,
|
|
370
|
+
weakEquals: filterFn_weakEquals,
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
export type BuiltInFilterFn = keyof typeof filterFns
|
|
374
|
+
|
|
375
|
+
// Utils
|
|
376
|
+
|
|
377
|
+
function testFalsy(val: any) {
|
|
378
|
+
return val === undefined || val === null || val === ''
|
|
379
|
+
}
|