@multiplatform.one/table 6.1.0 → 6.3.0
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/README.md +125 -65
- package/dist/cjs/components/ChildTable/index.cjs +44 -9
- package/dist/cjs/components/ChildTable/index.native.js +56 -13
- package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
- package/dist/cjs/components/ColumnHeaderFilter/index.cjs +27 -110
- package/dist/cjs/components/ColumnHeaderFilter/index.native.js +27 -119
- package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableCardControls.cjs +133 -0
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js +140 -0
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -0
- package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +125 -59
- package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +114 -49
- package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableRoot.cjs +574 -170
- package/dist/cjs/components/DataTable/DataTableRoot.native.js +699 -178
- package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +78 -3
- package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +86 -3
- package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/cjs/components/DataTable/index.cjs +2 -0
- package/dist/cjs/components/DataTable/index.native.js +170 -72
- package/dist/cjs/components/DataTable/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableBulkActions/index.cjs +62 -146
- package/dist/cjs/components/DataTableBulkActions/index.native.js +77 -153
- package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +61 -8
- package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +73 -66
- package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +87 -0
- package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +100 -0
- package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -0
- package/dist/cjs/components/DataTableCell/index.cjs +524 -147
- package/dist/cjs/components/DataTableCell/index.native.js +666 -210
- package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableColumnPinning/index.cjs +95 -24
- package/dist/cjs/components/DataTableColumnPinning/index.native.js +101 -25
- package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableDateFilter/index.cjs +385 -197
- package/dist/cjs/components/DataTableDateFilter/index.native.js +414 -213
- package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableExport/index.cjs +223 -195
- package/dist/cjs/components/DataTableExport/index.native.js +318 -217
- package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableFilterButton/index.cjs +349 -0
- package/dist/cjs/components/DataTableFilterButton/index.native.js +402 -0
- package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -0
- package/dist/cjs/components/DataTableFilterChips/index.cjs +120 -0
- package/dist/cjs/components/DataTableFilterChips/index.native.js +187 -0
- package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -0
- package/dist/cjs/components/DataTableFilters/index.cjs +36 -31
- package/dist/cjs/components/DataTableFilters/index.native.js +36 -31
- package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableGrouping/index.cjs +246 -189
- package/dist/cjs/components/DataTableGrouping/index.native.js +283 -203
- package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/cjs/components/DataTablePagination/index.cjs +103 -329
- package/dist/cjs/components/DataTablePagination/index.native.js +115 -377
- package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableSearch/index.cjs +132 -155
- package/dist/cjs/components/DataTableSearch/index.native.js +164 -170
- package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableToolbar/index.cjs +71 -116
- package/dist/cjs/components/DataTableToolbar/index.native.js +98 -123
- package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableViewOptions/index.cjs +73 -169
- package/dist/cjs/components/DataTableViewOptions/index.native.js +88 -184
- package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/cjs/components/FilterManager.cjs +7 -5
- package/dist/cjs/components/FilterManager.native.js +21 -8
- package/dist/cjs/components/FilterManager.native.js.map +1 -1
- package/dist/cjs/components/FilterOperatorValueEditor/index.cjs +109 -0
- package/dist/cjs/components/FilterOperatorValueEditor/index.native.js +121 -0
- package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -0
- package/dist/cjs/components/SavedFilterDropdown.cjs +3 -3
- package/dist/cjs/components/SavedFilterDropdown.native.js +3 -3
- package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/cjs/components/SimpleTable/index.cjs +22 -15
- package/dist/cjs/components/SimpleTable/index.native.js +31 -19
- package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/index.cjs +149 -49
- package/dist/cjs/components/TableInput/index.native.js +181 -71
- package/dist/cjs/components/TableInput/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/shared.cjs +36 -0
- package/dist/cjs/components/TableInput/shared.native.js +41 -0
- package/dist/cjs/components/TableInput/shared.native.js.map +1 -0
- package/dist/cjs/hooks/useDataTable.cjs +114 -21
- package/dist/cjs/hooks/useDataTable.native.js +126 -25
- package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
- package/dist/cjs/hooks/useInfiniteRows.cjs +193 -0
- package/dist/cjs/hooks/useInfiniteRows.native.js +203 -0
- package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -0
- package/dist/cjs/hooks/useTableFiltering.cjs +14 -18
- package/dist/cjs/hooks/useTableFiltering.native.js +17 -23
- package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -1
- package/dist/cjs/hooks/useTablePagination.cjs +2 -2
- package/dist/cjs/hooks/useTablePagination.native.js +2 -2
- package/dist/cjs/hooks/useTablePagination.native.js.map +1 -1
- package/dist/cjs/index.cjs +26 -1
- package/dist/cjs/index.native.js +25 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/t.cjs +50 -0
- package/dist/cjs/shared/t.native.js +55 -0
- package/dist/cjs/shared/t.native.js.map +1 -0
- package/dist/cjs/utils/columnAlign.cjs +60 -0
- package/dist/cjs/utils/columnAlign.native.js +67 -0
- package/dist/cjs/utils/columnAlign.native.js.map +1 -0
- package/dist/cjs/utils/filterFields.cjs +185 -0
- package/dist/cjs/utils/filterFields.native.js +247 -0
- package/dist/cjs/utils/filterFields.native.js.map +1 -0
- package/dist/cjs/utils/filterUtils.cjs +39 -20
- package/dist/cjs/utils/filterUtils.native.js +39 -20
- package/dist/cjs/utils/filterUtils.native.js.map +1 -1
- package/dist/cjs/utils/paginationDefaults.cjs +32 -0
- package/dist/cjs/utils/paginationDefaults.native.js +35 -0
- package/dist/cjs/utils/paginationDefaults.native.js.map +1 -0
- package/dist/cjs/utils/urlStateUtils.cjs +2 -1
- package/dist/cjs/utils/urlStateUtils.native.js +2 -1
- package/dist/cjs/utils/urlStateUtils.native.js.map +1 -1
- package/dist/cjs/utils/viewData.cjs +45 -0
- package/dist/cjs/utils/viewData.native.js +69 -0
- package/dist/cjs/utils/viewData.native.js.map +1 -0
- package/dist/cjs/utils/withInterp.cjs +39 -0
- package/dist/cjs/utils/withInterp.native.js +42 -0
- package/dist/cjs/utils/withInterp.native.js.map +1 -0
- package/dist/esm/components/ChildTable/index.mjs +45 -10
- package/dist/esm/components/ChildTable/index.mjs.map +1 -1
- package/dist/esm/components/ChildTable/index.native.js +57 -14
- package/dist/esm/components/ChildTable/index.native.js.map +1 -1
- package/dist/esm/components/ColumnHeaderFilter/index.mjs +29 -111
- package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
- package/dist/esm/components/ColumnHeaderFilter/index.native.js +30 -121
- package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableCardControls.mjs +108 -0
- package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -0
- package/dist/esm/components/DataTable/DataTableCardControls.native.js +112 -0
- package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -0
- package/dist/esm/components/DataTable/DataTableMobileCards.mjs +128 -62
- package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableMobileCards.native.js +117 -52
- package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.mjs +578 -174
- package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.native.js +703 -182
- package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableStateContext.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableStateContext.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableVirtualized.mjs +79 -4
- package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableVirtualized.native.js +87 -4
- package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/esm/components/DataTable/index.mjs +2 -0
- package/dist/esm/components/DataTable/index.mjs.map +1 -1
- package/dist/esm/components/DataTable/index.native.js +172 -74
- package/dist/esm/components/DataTable/index.native.js.map +1 -1
- package/dist/esm/components/DataTableBulkActions/index.mjs +65 -147
- package/dist/esm/components/DataTableBulkActions/index.mjs.map +1 -1
- package/dist/esm/components/DataTableBulkActions/index.native.js +80 -154
- package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/esm/components/DataTableCell/CellModalEditor.mjs +62 -9
- package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/CellModalEditor.native.js +74 -67
- package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
- package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +62 -0
- package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -0
- package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +72 -0
- package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -0
- package/dist/esm/components/DataTableCell/index.mjs +527 -149
- package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/index.native.js +670 -213
- package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
- package/dist/esm/components/DataTableColumnPinning/index.mjs +99 -28
- package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
- package/dist/esm/components/DataTableColumnPinning/index.native.js +105 -29
- package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/esm/components/DataTableDateFilter/index.mjs +387 -200
- package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
- package/dist/esm/components/DataTableDateFilter/index.native.js +416 -216
- package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/esm/components/DataTableExport/index.mjs +223 -195
- package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
- package/dist/esm/components/DataTableExport/index.native.js +318 -217
- package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
- package/dist/esm/components/DataTableFilterButton/index.mjs +324 -0
- package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -0
- package/dist/esm/components/DataTableFilterButton/index.native.js +374 -0
- package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -0
- package/dist/esm/components/DataTableFilterChips/index.mjs +95 -0
- package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -0
- package/dist/esm/components/DataTableFilterChips/index.native.js +159 -0
- package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -0
- package/dist/esm/components/DataTableFilters/index.mjs +36 -31
- package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilters/index.native.js +36 -31
- package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.mjs +248 -191
- package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.native.js +285 -205
- package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/esm/components/DataTablePagination/index.mjs +105 -329
- package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
- package/dist/esm/components/DataTablePagination/index.native.js +117 -366
- package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/esm/components/DataTableSearch/index.mjs +135 -156
- package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/esm/components/DataTableSearch/index.native.js +167 -171
- package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.mjs +75 -118
- package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.native.js +102 -125
- package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.mjs +75 -171
- package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.native.js +90 -186
- package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/esm/components/FilterManager.mjs +7 -5
- package/dist/esm/components/FilterManager.mjs.map +1 -1
- package/dist/esm/components/FilterManager.native.js +21 -8
- package/dist/esm/components/FilterManager.native.js.map +1 -1
- package/dist/esm/components/FilterOperatorValueEditor/index.mjs +84 -0
- package/dist/esm/components/FilterOperatorValueEditor/index.mjs.map +1 -0
- package/dist/esm/components/FilterOperatorValueEditor/index.native.js +93 -0
- package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -0
- package/dist/esm/components/SavedFilterDropdown.mjs +3 -3
- package/dist/esm/components/SavedFilterDropdown.mjs.map +1 -1
- package/dist/esm/components/SavedFilterDropdown.native.js +3 -3
- package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/esm/components/SimpleTable/index.mjs +22 -15
- package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
- package/dist/esm/components/SimpleTable/index.native.js +31 -19
- package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/index.mjs +149 -49
- package/dist/esm/components/TableInput/index.mjs.map +1 -1
- package/dist/esm/components/TableInput/index.native.js +181 -71
- package/dist/esm/components/TableInput/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/shared.mjs +9 -0
- package/dist/esm/components/TableInput/shared.mjs.map +1 -0
- package/dist/esm/components/TableInput/shared.native.js +11 -0
- package/dist/esm/components/TableInput/shared.native.js.map +1 -0
- package/dist/esm/hooks/useDataTable.mjs +115 -22
- package/dist/esm/hooks/useDataTable.mjs.map +1 -1
- package/dist/esm/hooks/useDataTable.native.js +127 -26
- package/dist/esm/hooks/useDataTable.native.js.map +1 -1
- package/dist/esm/hooks/useInfiniteRows.mjs +168 -0
- package/dist/esm/hooks/useInfiniteRows.mjs.map +1 -0
- package/dist/esm/hooks/useInfiniteRows.native.js +175 -0
- package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -0
- package/dist/esm/hooks/useTableFiltering.mjs +14 -18
- package/dist/esm/hooks/useTableFiltering.mjs.map +1 -1
- package/dist/esm/hooks/useTableFiltering.native.js +17 -23
- package/dist/esm/hooks/useTableFiltering.native.js.map +1 -1
- package/dist/esm/hooks/useTablePagination.mjs +2 -2
- package/dist/esm/hooks/useTablePagination.mjs.map +1 -1
- package/dist/esm/hooks/useTablePagination.native.js +2 -2
- package/dist/esm/hooks/useTablePagination.native.js.map +1 -1
- package/dist/esm/index.mjs +8 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +8 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/t.mjs +14 -0
- package/dist/esm/shared/t.mjs.map +1 -0
- package/dist/esm/shared/t.native.js +16 -0
- package/dist/esm/shared/t.native.js.map +1 -0
- package/dist/esm/utils/columnAlign.mjs +34 -0
- package/dist/esm/utils/columnAlign.mjs.map +1 -0
- package/dist/esm/utils/columnAlign.native.js +38 -0
- package/dist/esm/utils/columnAlign.native.js.map +1 -0
- package/dist/esm/utils/filterFields.mjs +149 -0
- package/dist/esm/utils/filterFields.mjs.map +1 -0
- package/dist/esm/utils/filterFields.native.js +208 -0
- package/dist/esm/utils/filterFields.native.js.map +1 -0
- package/dist/esm/utils/filterUtils.mjs +39 -20
- package/dist/esm/utils/filterUtils.mjs.map +1 -1
- package/dist/esm/utils/filterUtils.native.js +39 -20
- package/dist/esm/utils/filterUtils.native.js.map +1 -1
- package/dist/esm/utils/paginationDefaults.mjs +5 -0
- package/dist/esm/utils/paginationDefaults.mjs.map +1 -0
- package/dist/esm/utils/paginationDefaults.native.js +5 -0
- package/dist/esm/utils/paginationDefaults.native.js.map +1 -0
- package/dist/esm/utils/urlStateUtils.mjs +2 -1
- package/dist/esm/utils/urlStateUtils.mjs.map +1 -1
- package/dist/esm/utils/urlStateUtils.native.js +2 -1
- package/dist/esm/utils/urlStateUtils.native.js.map +1 -1
- package/dist/esm/utils/viewData.mjs +20 -0
- package/dist/esm/utils/viewData.mjs.map +1 -0
- package/dist/esm/utils/viewData.native.js +41 -0
- package/dist/esm/utils/viewData.native.js.map +1 -0
- package/dist/esm/utils/withInterp.mjs +13 -0
- package/dist/esm/utils/withInterp.mjs.map +1 -0
- package/dist/esm/utils/withInterp.native.js +13 -0
- package/dist/esm/utils/withInterp.native.js.map +1 -0
- package/dist/jsx/components/ChildTable/index.mjs +45 -10
- package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
- package/dist/jsx/components/ChildTable/index.native.js +56 -13
- package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
- package/dist/jsx/components/ColumnHeaderFilter/index.mjs +29 -111
- package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
- package/dist/jsx/components/ColumnHeaderFilter/index.native.js +27 -119
- package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableCardControls.mjs +108 -0
- package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -0
- package/dist/jsx/components/DataTable/DataTableCardControls.native.js +140 -0
- package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -0
- package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +128 -62
- package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +114 -49
- package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.mjs +578 -174
- package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.native.js +699 -178
- package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableStateContext.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableStateContext.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +79 -4
- package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +86 -3
- package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/jsx/components/DataTable/index.mjs +2 -0
- package/dist/jsx/components/DataTable/index.mjs.map +1 -1
- package/dist/jsx/components/DataTable/index.native.js +170 -72
- package/dist/jsx/components/DataTable/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableBulkActions/index.mjs +65 -147
- package/dist/jsx/components/DataTableBulkActions/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableBulkActions/index.native.js +77 -153
- package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +62 -9
- package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +73 -66
- package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +62 -0
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -0
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +100 -0
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -0
- package/dist/jsx/components/DataTableCell/index.mjs +527 -149
- package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/index.native.js +666 -210
- package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableColumnPinning/index.mjs +99 -28
- package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableColumnPinning/index.native.js +101 -25
- package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableDateFilter/index.mjs +387 -200
- package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableDateFilter/index.native.js +414 -213
- package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableExport/index.mjs +223 -195
- package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableExport/index.native.js +318 -217
- package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableFilterButton/index.mjs +324 -0
- package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -0
- package/dist/jsx/components/DataTableFilterButton/index.native.js +402 -0
- package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -0
- package/dist/jsx/components/DataTableFilterChips/index.mjs +95 -0
- package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -0
- package/dist/jsx/components/DataTableFilterChips/index.native.js +187 -0
- package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -0
- package/dist/jsx/components/DataTableFilters/index.mjs +36 -31
- package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilters/index.native.js +36 -31
- package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.mjs +248 -191
- package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.native.js +283 -203
- package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/jsx/components/DataTablePagination/index.mjs +105 -329
- package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
- package/dist/jsx/components/DataTablePagination/index.native.js +115 -377
- package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.mjs +135 -156
- package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.native.js +164 -170
- package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.mjs +75 -118
- package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.native.js +98 -123
- package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.mjs +75 -171
- package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.native.js +88 -184
- package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/jsx/components/FilterManager.mjs +7 -5
- package/dist/jsx/components/FilterManager.mjs.map +1 -1
- package/dist/jsx/components/FilterManager.native.js +21 -8
- package/dist/jsx/components/FilterManager.native.js.map +1 -1
- package/dist/jsx/components/FilterOperatorValueEditor/index.mjs +84 -0
- package/dist/jsx/components/FilterOperatorValueEditor/index.mjs.map +1 -0
- package/dist/jsx/components/FilterOperatorValueEditor/index.native.js +121 -0
- package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -0
- package/dist/jsx/components/SavedFilterDropdown.mjs +3 -3
- package/dist/jsx/components/SavedFilterDropdown.mjs.map +1 -1
- package/dist/jsx/components/SavedFilterDropdown.native.js +3 -3
- package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/jsx/components/SimpleTable/index.mjs +22 -15
- package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
- package/dist/jsx/components/SimpleTable/index.native.js +31 -19
- package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/index.mjs +149 -49
- package/dist/jsx/components/TableInput/index.mjs.map +1 -1
- package/dist/jsx/components/TableInput/index.native.js +181 -71
- package/dist/jsx/components/TableInput/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/shared.mjs +9 -0
- package/dist/jsx/components/TableInput/shared.mjs.map +1 -0
- package/dist/jsx/components/TableInput/shared.native.js +41 -0
- package/dist/jsx/components/TableInput/shared.native.js.map +1 -0
- package/dist/jsx/hooks/useDataTable.mjs +115 -22
- package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
- package/dist/jsx/hooks/useDataTable.native.js +126 -25
- package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
- package/dist/jsx/hooks/useInfiniteRows.mjs +168 -0
- package/dist/jsx/hooks/useInfiniteRows.mjs.map +1 -0
- package/dist/jsx/hooks/useInfiniteRows.native.js +203 -0
- package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -0
- package/dist/jsx/hooks/useTableFiltering.mjs +14 -18
- package/dist/jsx/hooks/useTableFiltering.mjs.map +1 -1
- package/dist/jsx/hooks/useTableFiltering.native.js +17 -23
- package/dist/jsx/hooks/useTableFiltering.native.js.map +1 -1
- package/dist/jsx/hooks/useTablePagination.mjs +2 -2
- package/dist/jsx/hooks/useTablePagination.mjs.map +1 -1
- package/dist/jsx/hooks/useTablePagination.native.js +2 -2
- package/dist/jsx/hooks/useTablePagination.native.js.map +1 -1
- package/dist/jsx/index.js +8 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +8 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +25 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/t.mjs +14 -0
- package/dist/jsx/shared/t.mjs.map +1 -0
- package/dist/jsx/shared/t.native.js +55 -0
- package/dist/jsx/shared/t.native.js.map +1 -0
- package/dist/jsx/utils/columnAlign.mjs +34 -0
- package/dist/jsx/utils/columnAlign.mjs.map +1 -0
- package/dist/jsx/utils/columnAlign.native.js +67 -0
- package/dist/jsx/utils/columnAlign.native.js.map +1 -0
- package/dist/jsx/utils/filterFields.mjs +149 -0
- package/dist/jsx/utils/filterFields.mjs.map +1 -0
- package/dist/jsx/utils/filterFields.native.js +247 -0
- package/dist/jsx/utils/filterFields.native.js.map +1 -0
- package/dist/jsx/utils/filterUtils.mjs +39 -20
- package/dist/jsx/utils/filterUtils.mjs.map +1 -1
- package/dist/jsx/utils/filterUtils.native.js +39 -20
- package/dist/jsx/utils/filterUtils.native.js.map +1 -1
- package/dist/jsx/utils/paginationDefaults.mjs +5 -0
- package/dist/jsx/utils/paginationDefaults.mjs.map +1 -0
- package/dist/jsx/utils/paginationDefaults.native.js +35 -0
- package/dist/jsx/utils/paginationDefaults.native.js.map +1 -0
- package/dist/jsx/utils/urlStateUtils.mjs +2 -1
- package/dist/jsx/utils/urlStateUtils.mjs.map +1 -1
- package/dist/jsx/utils/urlStateUtils.native.js +2 -1
- package/dist/jsx/utils/urlStateUtils.native.js.map +1 -1
- package/dist/jsx/utils/viewData.mjs +20 -0
- package/dist/jsx/utils/viewData.mjs.map +1 -0
- package/dist/jsx/utils/viewData.native.js +69 -0
- package/dist/jsx/utils/viewData.native.js.map +1 -0
- package/dist/jsx/utils/withInterp.mjs +13 -0
- package/dist/jsx/utils/withInterp.mjs.map +1 -0
- package/dist/jsx/utils/withInterp.native.js +42 -0
- package/dist/jsx/utils/withInterp.native.js.map +1 -0
- package/package.json +29 -19
- package/src/components/ChildTable/index.tsx +70 -9
- package/src/components/ColumnHeaderFilter/index.tsx +43 -161
- package/src/components/DataTable/DataTable.spec.tsx +347 -0
- package/src/components/DataTable/DataTable.stories.tsx +363 -9
- package/src/components/DataTable/DataTableCardControls.tsx +148 -0
- package/src/components/DataTable/DataTableMobileCards.tsx +153 -80
- package/src/components/DataTable/DataTableRoot.tsx +847 -181
- package/src/components/DataTable/DataTableStateContext.ts +24 -1
- package/src/components/DataTable/DataTableVirtualized.tsx +98 -4
- package/src/components/DataTable/FieldsInCells.stories.tsx +296 -6
- package/src/components/DataTable/cardLayout.spec.tsx +294 -0
- package/src/components/DataTable/chromeInterplay.spec.tsx +282 -0
- package/src/components/DataTable/compoundComponent.spec.tsx +6 -1
- package/src/components/DataTable/disabledContract.spec.tsx +242 -0
- package/src/components/DataTable/expandCaretRtl.spec.tsx +80 -0
- package/src/components/DataTable/headerSorting.spec.tsx +155 -0
- package/src/components/DataTable/index.native.tsx +220 -77
- package/src/components/DataTable/index.tsx +2 -0
- package/src/components/DataTable/infiniteMode.spec.tsx +118 -0
- package/src/components/DataTable/pinningGeometry.spec.tsx +144 -0
- package/src/components/DataTable/rowActionLabels.spec.tsx +97 -0
- package/src/components/DataTable/virtualizedGrouping.spec.tsx +99 -0
- package/src/components/DataTableBulkActions/DataTableBulkActions.spec.tsx +276 -3
- package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +1 -0
- package/src/components/DataTableBulkActions/index.tsx +119 -184
- package/src/components/DataTableCell/CellModalEditor.native.tsx +116 -0
- package/src/components/DataTableCell/CellModalEditor.tsx +83 -11
- package/src/components/DataTableCell/CellOptionsEditor.tsx +91 -0
- package/src/components/DataTableCell/DataTableCell.stories.tsx +514 -9
- package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +638 -0
- package/src/components/DataTableCell/dataTableCell.spec.tsx +174 -26
- package/src/components/DataTableCell/index.tsx +730 -191
- package/src/components/DataTableColumnPinning/DataTableColumnPinning.stories.tsx +14 -0
- package/src/components/DataTableColumnPinning/index.tsx +130 -36
- package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +234 -80
- package/src/components/DataTableDateFilter/DataTableDateFilter.stories.tsx +7 -32
- package/src/components/DataTableDateFilter/index.tsx +357 -160
- package/src/components/DataTableExport/DataTableExport.spec.tsx +225 -8
- package/src/components/DataTableExport/index.tsx +241 -186
- package/src/components/DataTableFilterButton/index.tsx +406 -0
- package/src/components/DataTableFilterChips/DataTableFilterChips.spec.tsx +190 -0
- package/src/components/DataTableFilterChips/index.tsx +127 -0
- package/src/components/DataTableFilters/index.tsx +39 -31
- package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +173 -1
- package/src/components/DataTableGrouping/index.tsx +233 -140
- package/src/components/DataTablePagination/DataTablePagination.spec.tsx +91 -12
- package/src/components/DataTablePagination/DataTablePagination.stories.tsx +182 -6
- package/src/components/DataTablePagination/index.tsx +97 -324
- package/src/components/DataTableSearch/DataTableSearch.spec.tsx +14 -14
- package/src/components/DataTableSearch/index.tsx +106 -118
- package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +51 -11
- package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +205 -8
- package/src/components/DataTableToolbar/index.tsx +86 -123
- package/src/components/DataTableViewOptions/DataTableViewOptions.spec.tsx +5 -5
- package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +41 -3
- package/src/components/DataTableViewOptions/index.tsx +89 -183
- package/src/components/FilterManager.spec.tsx +7 -4
- package/src/components/FilterManager.tsx +25 -5
- package/src/components/FilterOperatorValueEditor/index.tsx +124 -0
- package/src/components/SavedFilterDropdown.tsx +7 -5
- package/src/components/SimpleTable/SimpleTable.stories.tsx +114 -0
- package/src/components/SimpleTable/index.tsx +35 -17
- package/src/components/SimpleTable/simpleTable.spec.tsx +25 -5
- package/src/components/Table/Table.stories.tsx +105 -0
- package/src/components/Table/accessibility.spec.tsx +24 -8
- package/src/components/TableInput/TableInput.stories.tsx +266 -8
- package/src/components/TableInput/index.native.tsx +202 -51
- package/src/components/TableInput/index.tsx +236 -56
- package/src/components/TableInput/shared.ts +20 -0
- package/src/components/TableInput/tableInput.spec.tsx +458 -0
- package/src/components/componentConsistency.spec.tsx +19 -13
- package/src/hooks/hookDecomposition.spec.ts +35 -1
- package/src/hooks/useDataTable.ts +169 -24
- package/src/hooks/useInfiniteRows.spec.tsx +215 -0
- package/src/hooks/useInfiniteRows.ts +242 -0
- package/src/hooks/useTableFiltering.ts +22 -21
- package/src/hooks/useTablePagination.ts +2 -3
- package/src/index.ts +37 -1
- package/src/shared/t.ts +24 -0
- package/src/types.ts +217 -5
- package/src/utils/columnAlign.spec.ts +53 -0
- package/src/utils/columnAlign.ts +60 -0
- package/src/utils/filterFields.spec.ts +237 -0
- package/src/utils/filterFields.ts +273 -0
- package/src/utils/filterUtils.ts +34 -24
- package/src/utils/filterUtilsContracts.spec.ts +190 -0
- package/src/utils/paginationDefaults.spec.ts +43 -0
- package/src/utils/paginationDefaults.ts +21 -0
- package/src/utils/urlStateUtils.spec.ts +2 -2
- package/src/utils/urlStateUtils.ts +2 -1
- package/src/utils/viewData.ts +27 -0
- package/src/utils/withInterp.spec.ts +30 -0
- package/src/utils/withInterp.ts +31 -0
- package/types/components/ChildTable/index.d.ts +28 -0
- package/types/components/ChildTable/index.d.ts.map +1 -0
- package/types/components/ColumnHeaderFilter/index.d.ts +23 -0
- package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -0
- package/types/components/DataTable/DataTableCardControls.d.ts +30 -0
- package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -0
- package/types/components/DataTable/DataTableContext.d.ts +11 -0
- package/types/components/DataTable/DataTableContext.d.ts.map +1 -0
- package/types/components/DataTable/DataTableMobileCards.d.ts +37 -0
- package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -0
- package/types/components/DataTable/DataTableRoot.d.ts +22 -0
- package/types/components/DataTable/DataTableRoot.d.ts.map +1 -0
- package/types/components/DataTable/DataTableStateContext.d.ts +77 -0
- package/types/components/DataTable/DataTableStateContext.d.ts.map +1 -0
- package/types/components/DataTable/DataTableVirtualized.d.ts +36 -0
- package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -0
- package/types/components/DataTable/index.d.ts +42 -0
- package/types/components/DataTable/index.d.ts.map +1 -0
- package/types/components/DataTable/index.native.d.ts +33 -0
- package/types/components/DataTable/index.native.d.ts.map +1 -0
- package/types/components/DataTableBulkActions/index.d.ts +33 -0
- package/types/components/DataTableBulkActions/index.d.ts.map +1 -0
- package/types/components/DataTableCell/CellModalEditor.d.ts +34 -0
- package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -0
- package/types/components/DataTableCell/CellModalEditor.native.d.ts +20 -0
- package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -0
- package/types/components/DataTableCell/CellOptionsEditor.d.ts +30 -0
- package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -0
- package/types/components/DataTableCell/index.d.ts +51 -0
- package/types/components/DataTableCell/index.d.ts.map +1 -0
- package/types/components/DataTableColumnPinning/index.d.ts +53 -0
- package/types/components/DataTableColumnPinning/index.d.ts.map +1 -0
- package/types/components/DataTableDateFilter/index.d.ts +54 -0
- package/types/components/DataTableDateFilter/index.d.ts.map +1 -0
- package/types/components/DataTableExport/index.d.ts +37 -0
- package/types/components/DataTableExport/index.d.ts.map +1 -0
- package/types/components/DataTableFilterButton/index.d.ts +16 -0
- package/types/components/DataTableFilterButton/index.d.ts.map +1 -0
- package/types/components/DataTableFilterChips/index.d.ts +12 -0
- package/types/components/DataTableFilterChips/index.d.ts.map +1 -0
- package/types/components/DataTableFilters/index.d.ts +19 -0
- package/types/components/DataTableFilters/index.d.ts.map +1 -0
- package/types/components/DataTableGrouping/index.d.ts +79 -0
- package/types/components/DataTableGrouping/index.d.ts.map +1 -0
- package/types/components/DataTablePagination/index.d.ts +23 -0
- package/types/components/DataTablePagination/index.d.ts.map +1 -0
- package/types/components/DataTableSearch/index.d.ts +57 -0
- package/types/components/DataTableSearch/index.d.ts.map +1 -0
- package/types/components/DataTableToolbar/index.d.ts +23 -0
- package/types/components/DataTableToolbar/index.d.ts.map +1 -0
- package/types/components/DataTableViewOptions/index.d.ts +28 -0
- package/types/components/DataTableViewOptions/index.d.ts.map +1 -0
- package/types/components/FilterManager.d.ts +16 -0
- package/types/components/FilterManager.d.ts.map +1 -0
- package/types/components/FilterOperatorValueEditor/index.d.ts +23 -0
- package/types/components/FilterOperatorValueEditor/index.d.ts.map +1 -0
- package/types/components/KnobDialog.d.ts +57 -0
- package/types/components/KnobDialog.d.ts.map +1 -0
- package/types/components/SavedFilterDropdown.d.ts +11 -0
- package/types/components/SavedFilterDropdown.d.ts.map +1 -0
- package/types/components/SimpleTable/index.d.ts +45 -0
- package/types/components/SimpleTable/index.d.ts.map +1 -0
- package/types/components/TableInput/index.d.ts +66 -0
- package/types/components/TableInput/index.d.ts.map +1 -0
- package/types/components/TableInput/index.native.d.ts +55 -0
- package/types/components/TableInput/index.native.d.ts.map +1 -0
- package/types/components/TableInput/shared.d.ts +12 -0
- package/types/components/TableInput/shared.d.ts.map +1 -0
- package/types/hooks/useDataTable.d.ts +16 -0
- package/types/hooks/useDataTable.d.ts.map +1 -0
- package/types/hooks/useDataTableKeyboard.d.ts +22 -0
- package/types/hooks/useDataTableKeyboard.d.ts.map +1 -0
- package/types/hooks/useDragScroll.d.ts +10 -0
- package/types/hooks/useDragScroll.d.ts.map +1 -0
- package/types/hooks/useInfiniteRows.d.ts +57 -0
- package/types/hooks/useInfiniteRows.d.ts.map +1 -0
- package/types/hooks/useSavedFilters.d.ts +78 -0
- package/types/hooks/useSavedFilters.d.ts.map +1 -0
- package/types/hooks/useTableColumnPinning.d.ts +12 -0
- package/types/hooks/useTableColumnPinning.d.ts.map +1 -0
- package/types/hooks/useTableFiltering.d.ts +27 -0
- package/types/hooks/useTableFiltering.d.ts.map +1 -0
- package/types/hooks/useTableGrouping.d.ts +33 -0
- package/types/hooks/useTableGrouping.d.ts.map +1 -0
- package/types/hooks/useTableKeyboard.d.ts +24 -0
- package/types/hooks/useTableKeyboard.d.ts.map +1 -0
- package/types/hooks/useTablePagination.d.ts +17 -0
- package/types/hooks/useTablePagination.d.ts.map +1 -0
- package/types/hooks/useTableSearch.d.ts +27 -0
- package/types/hooks/useTableSearch.d.ts.map +1 -0
- package/types/hooks/useTableSelection.d.ts +14 -0
- package/types/hooks/useTableSelection.d.ts.map +1 -0
- package/types/hooks/useTableSorting.d.ts +12 -0
- package/types/hooks/useTableSorting.d.ts.map +1 -0
- package/types/hooks/useTableUrlSync.d.ts +15 -0
- package/types/hooks/useTableUrlSync.d.ts.map +1 -0
- package/types/hooks/useTableViews.d.ts +26 -0
- package/types/hooks/useTableViews.d.ts.map +1 -0
- package/types/index.d.ts +68 -0
- package/types/index.d.ts.map +1 -0
- package/types/shared/t.d.ts +10 -0
- package/types/shared/t.d.ts.map +1 -0
- package/types/shims/primitives.d.ts +3 -0
- package/types/shims/primitives.d.ts.map +1 -0
- package/types/shims/tableCellContext.d.ts +3 -0
- package/types/shims/tableCellContext.d.ts.map +1 -0
- package/types/types.d.ts +525 -0
- package/types/types.d.ts.map +1 -0
- package/types/utils/columnAlign.d.ts +23 -0
- package/types/utils/columnAlign.d.ts.map +1 -0
- package/types/utils/filterFields.d.ts +57 -0
- package/types/utils/filterFields.d.ts.map +1 -0
- package/types/utils/filterUtils.d.ts +24 -0
- package/types/utils/filterUtils.d.ts.map +1 -0
- package/types/utils/paginationDefaults.d.ts +18 -0
- package/types/utils/paginationDefaults.d.ts.map +1 -0
- package/types/utils/urlStateUtils.d.ts +8 -0
- package/types/utils/urlStateUtils.d.ts.map +1 -0
- package/types/utils/viewData.d.ts +11 -0
- package/types/utils/viewData.d.ts.map +1 -0
- package/types/utils/withInterp.d.ts +19 -0
- package/types/utils/withInterp.d.ts.map +1 -0
- package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.cjs +0 -50
- package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +0 -55
- package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTable/DataTable.spec.cjs +0 -516
- package/dist/cjs/components/DataTable/DataTable.spec.native.js +0 -539
- package/dist/cjs/components/DataTable/DataTable.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTable/DataTable.stories.cjs +0 -2779
- package/dist/cjs/components/DataTable/DataTable.stories.native.js +0 -2912
- package/dist/cjs/components/DataTable/DataTable.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTable/FieldsInCells.stories.cjs +0 -244
- package/dist/cjs/components/DataTable/FieldsInCells.stories.native.js +0 -265
- package/dist/cjs/components/DataTable/FieldsInCells.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTable/compoundComponent.spec.cjs +0 -334
- package/dist/cjs/components/DataTable/compoundComponent.spec.native.js +0 -348
- package/dist/cjs/components/DataTable/compoundComponent.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.cjs +0 -305
- package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +0 -340
- package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.cjs +0 -347
- package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +0 -372
- package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableCell/DataTableCell.stories.cjs +0 -50
- package/dist/cjs/components/DataTableCell/DataTableCell.stories.native.js +0 -55
- package/dist/cjs/components/DataTableCell/DataTableCell.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableCell/dataTableCell.spec.cjs +0 -203
- package/dist/cjs/components/DataTableCell/dataTableCell.spec.native.js +0 -220
- package/dist/cjs/components/DataTableCell/dataTableCell.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.cjs +0 -287
- package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +0 -315
- package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.cjs +0 -486
- package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +0 -541
- package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.cjs +0 -409
- package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +0 -459
- package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.cjs +0 -368
- package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +0 -375
- package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableExport/DataTableExport.spec.cjs +0 -334
- package/dist/cjs/components/DataTableExport/DataTableExport.spec.native.js +0 -349
- package/dist/cjs/components/DataTableExport/DataTableExport.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableExport/DataTableExport.stories.cjs +0 -452
- package/dist/cjs/components/DataTableExport/DataTableExport.stories.native.js +0 -479
- package/dist/cjs/components/DataTableExport/DataTableExport.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.cjs +0 -687
- package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.native.js +0 -698
- package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.cjs +0 -551
- package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.native.js +0 -564
- package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.cjs +0 -249
- package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.native.js +0 -284
- package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.cjs +0 -523
- package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.native.js +0 -545
- package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.cjs +0 -386
- package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.native.js +0 -389
- package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.cjs +0 -604
- package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.native.js +0 -627
- package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.cjs +0 -469
- package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.native.js +0 -472
- package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.cjs +0 -82
- package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.native.js +0 -89
- package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.cjs +0 -572
- package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.native.js +0 -575
- package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.cjs +0 -51
- package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.native.js +0 -56
- package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +0 -1
- package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.cjs +0 -126
- package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +0 -129
- package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +0 -1
- package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.cjs +0 -436
- package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +0 -458
- package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +0 -1
- package/dist/cjs/components/FilterManager.spec.cjs +0 -52
- package/dist/cjs/components/FilterManager.spec.native.js +0 -55
- package/dist/cjs/components/FilterManager.spec.native.js.map +0 -1
- package/dist/cjs/components/SavedFilterDropdown.spec.cjs +0 -83
- package/dist/cjs/components/SavedFilterDropdown.spec.native.js +0 -86
- package/dist/cjs/components/SavedFilterDropdown.spec.native.js.map +0 -1
- package/dist/cjs/components/SimpleTable/simpleTable.spec.cjs +0 -162
- package/dist/cjs/components/SimpleTable/simpleTable.spec.native.js +0 -165
- package/dist/cjs/components/SimpleTable/simpleTable.spec.native.js.map +0 -1
- package/dist/cjs/components/Table/Table.stories.cjs +0 -196
- package/dist/cjs/components/Table/Table.stories.native.js +0 -207
- package/dist/cjs/components/Table/Table.stories.native.js.map +0 -1
- package/dist/cjs/components/Table/accessibility.spec.cjs +0 -186
- package/dist/cjs/components/Table/accessibility.spec.native.js +0 -216
- package/dist/cjs/components/Table/accessibility.spec.native.js.map +0 -1
- package/dist/cjs/components/TableInput/TableInput.stories.cjs +0 -50
- package/dist/cjs/components/TableInput/TableInput.stories.native.js +0 -55
- package/dist/cjs/components/TableInput/TableInput.stories.native.js.map +0 -1
- package/dist/cjs/components/componentConsistency.spec.cjs +0 -37
- package/dist/cjs/components/componentConsistency.spec.native.js +0 -48
- package/dist/cjs/components/componentConsistency.spec.native.js.map +0 -1
- package/dist/cjs/hooks/hookDecomposition.spec.cjs +0 -326
- package/dist/cjs/hooks/hookDecomposition.spec.native.js +0 -351
- package/dist/cjs/hooks/hookDecomposition.spec.native.js.map +0 -1
- package/dist/cjs/hooks/useDataTable.spec.cjs +0 -10
- package/dist/cjs/hooks/useDataTable.spec.native.js +0 -13
- package/dist/cjs/hooks/useDataTable.spec.native.js.map +0 -1
- package/dist/cjs/hooks/useSavedFilters.spec.cjs +0 -212
- package/dist/cjs/hooks/useSavedFilters.spec.native.js +0 -240
- package/dist/cjs/hooks/useSavedFilters.spec.native.js.map +0 -1
- package/dist/cjs/utils/filterUtils.spec.cjs +0 -350
- package/dist/cjs/utils/filterUtils.spec.native.js +0 -353
- package/dist/cjs/utils/filterUtils.spec.native.js.map +0 -1
- package/dist/cjs/utils/urlStateUtils.spec.cjs +0 -234
- package/dist/cjs/utils/urlStateUtils.spec.native.js +0 -239
- package/dist/cjs/utils/urlStateUtils.spec.native.js.map +0 -1
- package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs +0 -24
- package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs.map +0 -1
- package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +0 -26
- package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +0 -1
- package/dist/esm/components/DataTable/DataTable.spec.mjs +0 -517
- package/dist/esm/components/DataTable/DataTable.spec.mjs.map +0 -1
- package/dist/esm/components/DataTable/DataTable.spec.native.js +0 -537
- package/dist/esm/components/DataTable/DataTable.spec.native.js.map +0 -1
- package/dist/esm/components/DataTable/DataTable.stories.mjs +0 -2672
- package/dist/esm/components/DataTable/DataTable.stories.mjs.map +0 -1
- package/dist/esm/components/DataTable/DataTable.stories.native.js +0 -2802
- package/dist/esm/components/DataTable/DataTable.stories.native.js.map +0 -1
- package/dist/esm/components/DataTable/FieldsInCells.stories.mjs +0 -217
- package/dist/esm/components/DataTable/FieldsInCells.stories.mjs.map +0 -1
- package/dist/esm/components/DataTable/FieldsInCells.stories.native.js +0 -224
- package/dist/esm/components/DataTable/FieldsInCells.stories.native.js.map +0 -1
- package/dist/esm/components/DataTable/compoundComponent.spec.mjs +0 -335
- package/dist/esm/components/DataTable/compoundComponent.spec.mjs.map +0 -1
- package/dist/esm/components/DataTable/compoundComponent.spec.native.js +0 -346
- package/dist/esm/components/DataTable/compoundComponent.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.mjs +0 -306
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +0 -338
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.mjs +0 -304
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +0 -326
- package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableCell/DataTableCell.stories.mjs +0 -24
- package/dist/esm/components/DataTableCell/DataTableCell.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableCell/DataTableCell.stories.native.js +0 -26
- package/dist/esm/components/DataTableCell/DataTableCell.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableCell/dataTableCell.spec.mjs +0 -180
- package/dist/esm/components/DataTableCell/dataTableCell.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableCell/dataTableCell.spec.native.js +0 -194
- package/dist/esm/components/DataTableCell/dataTableCell.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs +0 -264
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +0 -289
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs +0 -457
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +0 -509
- package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.mjs +0 -386
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +0 -433
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.mjs +0 -325
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +0 -329
- package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableExport/DataTableExport.spec.mjs +0 -335
- package/dist/esm/components/DataTableExport/DataTableExport.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableExport/DataTableExport.spec.native.js +0 -347
- package/dist/esm/components/DataTableExport/DataTableExport.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableExport/DataTableExport.stories.mjs +0 -419
- package/dist/esm/components/DataTableExport/DataTableExport.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableExport/DataTableExport.stories.native.js +0 -443
- package/dist/esm/components/DataTableExport/DataTableExport.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableFilters/DataTableFilters.spec.mjs +0 -688
- package/dist/esm/components/DataTableFilters/DataTableFilters.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableFilters/DataTableFilters.spec.native.js +0 -696
- package/dist/esm/components/DataTableFilters/DataTableFilters.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableFilters/DataTableFilters.stories.mjs +0 -499
- package/dist/esm/components/DataTableFilters/DataTableFilters.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableFilters/DataTableFilters.stories.native.js +0 -509
- package/dist/esm/components/DataTableFilters/DataTableFilters.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.mjs +0 -249
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.native.js +0 -281
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.mjs +0 -479
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.native.js +0 -498
- package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +0 -1
- package/dist/esm/components/DataTablePagination/DataTablePagination.spec.mjs +0 -387
- package/dist/esm/components/DataTablePagination/DataTablePagination.spec.mjs.map +0 -1
- package/dist/esm/components/DataTablePagination/DataTablePagination.spec.native.js +0 -387
- package/dist/esm/components/DataTablePagination/DataTablePagination.spec.native.js.map +0 -1
- package/dist/esm/components/DataTablePagination/DataTablePagination.stories.mjs +0 -546
- package/dist/esm/components/DataTablePagination/DataTablePagination.stories.mjs.map +0 -1
- package/dist/esm/components/DataTablePagination/DataTablePagination.stories.native.js +0 -566
- package/dist/esm/components/DataTablePagination/DataTablePagination.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableSearch/DataTableSearch.spec.mjs +0 -470
- package/dist/esm/components/DataTableSearch/DataTableSearch.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableSearch/DataTableSearch.spec.native.js +0 -470
- package/dist/esm/components/DataTableSearch/DataTableSearch.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableSearch/DataTableSearch.stories.mjs +0 -56
- package/dist/esm/components/DataTableSearch/DataTableSearch.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableSearch/DataTableSearch.stories.native.js +0 -60
- package/dist/esm/components/DataTableSearch/DataTableSearch.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.mjs +0 -573
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.native.js +0 -573
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.mjs +0 -25
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.native.js +0 -27
- package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +0 -1
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.mjs +0 -126
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.mjs.map +0 -1
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +0 -126
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +0 -1
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.mjs +0 -393
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.mjs.map +0 -1
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +0 -412
- package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +0 -1
- package/dist/esm/components/FilterManager.spec.mjs +0 -53
- package/dist/esm/components/FilterManager.spec.mjs.map +0 -1
- package/dist/esm/components/FilterManager.spec.native.js +0 -53
- package/dist/esm/components/FilterManager.spec.native.js.map +0 -1
- package/dist/esm/components/SavedFilterDropdown.spec.mjs +0 -84
- package/dist/esm/components/SavedFilterDropdown.spec.mjs.map +0 -1
- package/dist/esm/components/SavedFilterDropdown.spec.native.js +0 -84
- package/dist/esm/components/SavedFilterDropdown.spec.native.js.map +0 -1
- package/dist/esm/components/SimpleTable/simpleTable.spec.mjs +0 -163
- package/dist/esm/components/SimpleTable/simpleTable.spec.mjs.map +0 -1
- package/dist/esm/components/SimpleTable/simpleTable.spec.native.js +0 -163
- package/dist/esm/components/SimpleTable/simpleTable.spec.native.js.map +0 -1
- package/dist/esm/components/Table/Table.stories.mjs +0 -167
- package/dist/esm/components/Table/Table.stories.mjs.map +0 -1
- package/dist/esm/components/Table/Table.stories.native.js +0 -175
- package/dist/esm/components/Table/Table.stories.native.js.map +0 -1
- package/dist/esm/components/Table/accessibility.spec.mjs +0 -187
- package/dist/esm/components/Table/accessibility.spec.mjs.map +0 -1
- package/dist/esm/components/Table/accessibility.spec.native.js +0 -214
- package/dist/esm/components/Table/accessibility.spec.native.js.map +0 -1
- package/dist/esm/components/TableInput/TableInput.stories.mjs +0 -24
- package/dist/esm/components/TableInput/TableInput.stories.mjs.map +0 -1
- package/dist/esm/components/TableInput/TableInput.stories.native.js +0 -26
- package/dist/esm/components/TableInput/TableInput.stories.native.js.map +0 -1
- package/dist/esm/components/componentConsistency.spec.mjs +0 -38
- package/dist/esm/components/componentConsistency.spec.mjs.map +0 -1
- package/dist/esm/components/componentConsistency.spec.native.js +0 -46
- package/dist/esm/components/componentConsistency.spec.native.js.map +0 -1
- package/dist/esm/hooks/hookDecomposition.spec.mjs +0 -327
- package/dist/esm/hooks/hookDecomposition.spec.mjs.map +0 -1
- package/dist/esm/hooks/hookDecomposition.spec.native.js +0 -349
- package/dist/esm/hooks/hookDecomposition.spec.native.js.map +0 -1
- package/dist/esm/hooks/useDataTable.spec.mjs +0 -11
- package/dist/esm/hooks/useDataTable.spec.mjs.map +0 -1
- package/dist/esm/hooks/useDataTable.spec.native.js +0 -11
- package/dist/esm/hooks/useDataTable.spec.native.js.map +0 -1
- package/dist/esm/hooks/useSavedFilters.spec.mjs +0 -213
- package/dist/esm/hooks/useSavedFilters.spec.mjs.map +0 -1
- package/dist/esm/hooks/useSavedFilters.spec.native.js +0 -238
- package/dist/esm/hooks/useSavedFilters.spec.native.js.map +0 -1
- package/dist/esm/utils/filterUtils.spec.mjs +0 -351
- package/dist/esm/utils/filterUtils.spec.mjs.map +0 -1
- package/dist/esm/utils/filterUtils.spec.native.js +0 -351
- package/dist/esm/utils/filterUtils.spec.native.js.map +0 -1
- package/dist/esm/utils/urlStateUtils.spec.mjs +0 -235
- package/dist/esm/utils/urlStateUtils.spec.mjs.map +0 -1
- package/dist/esm/utils/urlStateUtils.spec.native.js +0 -237
- package/dist/esm/utils/urlStateUtils.spec.native.js.map +0 -1
- package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs +0 -24
- package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs.map +0 -1
- package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +0 -55
- package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTable/DataTable.spec.mjs +0 -517
- package/dist/jsx/components/DataTable/DataTable.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTable/DataTable.spec.native.js +0 -539
- package/dist/jsx/components/DataTable/DataTable.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTable/DataTable.stories.mjs +0 -2672
- package/dist/jsx/components/DataTable/DataTable.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTable/DataTable.stories.native.js +0 -2912
- package/dist/jsx/components/DataTable/DataTable.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTable/FieldsInCells.stories.mjs +0 -217
- package/dist/jsx/components/DataTable/FieldsInCells.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTable/FieldsInCells.stories.native.js +0 -265
- package/dist/jsx/components/DataTable/FieldsInCells.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTable/compoundComponent.spec.mjs +0 -335
- package/dist/jsx/components/DataTable/compoundComponent.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTable/compoundComponent.spec.native.js +0 -348
- package/dist/jsx/components/DataTable/compoundComponent.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.mjs +0 -306
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +0 -340
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.mjs +0 -304
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +0 -372
- package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableCell/DataTableCell.stories.mjs +0 -24
- package/dist/jsx/components/DataTableCell/DataTableCell.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableCell/DataTableCell.stories.native.js +0 -55
- package/dist/jsx/components/DataTableCell/DataTableCell.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableCell/dataTableCell.spec.mjs +0 -180
- package/dist/jsx/components/DataTableCell/dataTableCell.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableCell/dataTableCell.spec.native.js +0 -220
- package/dist/jsx/components/DataTableCell/dataTableCell.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs +0 -264
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +0 -315
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs +0 -457
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +0 -541
- package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.mjs +0 -386
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +0 -459
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.mjs +0 -325
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +0 -375
- package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableExport/DataTableExport.spec.mjs +0 -335
- package/dist/jsx/components/DataTableExport/DataTableExport.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableExport/DataTableExport.spec.native.js +0 -349
- package/dist/jsx/components/DataTableExport/DataTableExport.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableExport/DataTableExport.stories.mjs +0 -419
- package/dist/jsx/components/DataTableExport/DataTableExport.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableExport/DataTableExport.stories.native.js +0 -479
- package/dist/jsx/components/DataTableExport/DataTableExport.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.mjs +0 -688
- package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.native.js +0 -698
- package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.mjs +0 -499
- package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.native.js +0 -564
- package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.mjs +0 -249
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.native.js +0 -284
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.mjs +0 -479
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.native.js +0 -545
- package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.mjs +0 -387
- package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.native.js +0 -389
- package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.mjs +0 -546
- package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.native.js +0 -627
- package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.mjs +0 -470
- package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.native.js +0 -472
- package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.mjs +0 -56
- package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.native.js +0 -89
- package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.mjs +0 -573
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.native.js +0 -575
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.mjs +0 -25
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.native.js +0 -56
- package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +0 -1
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.mjs +0 -126
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.mjs.map +0 -1
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +0 -129
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +0 -1
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.mjs +0 -393
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.mjs.map +0 -1
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +0 -458
- package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +0 -1
- package/dist/jsx/components/FilterManager.spec.mjs +0 -53
- package/dist/jsx/components/FilterManager.spec.mjs.map +0 -1
- package/dist/jsx/components/FilterManager.spec.native.js +0 -55
- package/dist/jsx/components/FilterManager.spec.native.js.map +0 -1
- package/dist/jsx/components/SavedFilterDropdown.spec.mjs +0 -84
- package/dist/jsx/components/SavedFilterDropdown.spec.mjs.map +0 -1
- package/dist/jsx/components/SavedFilterDropdown.spec.native.js +0 -86
- package/dist/jsx/components/SavedFilterDropdown.spec.native.js.map +0 -1
- package/dist/jsx/components/SimpleTable/simpleTable.spec.mjs +0 -163
- package/dist/jsx/components/SimpleTable/simpleTable.spec.mjs.map +0 -1
- package/dist/jsx/components/SimpleTable/simpleTable.spec.native.js +0 -165
- package/dist/jsx/components/SimpleTable/simpleTable.spec.native.js.map +0 -1
- package/dist/jsx/components/Table/Table.stories.mjs +0 -167
- package/dist/jsx/components/Table/Table.stories.mjs.map +0 -1
- package/dist/jsx/components/Table/Table.stories.native.js +0 -207
- package/dist/jsx/components/Table/Table.stories.native.js.map +0 -1
- package/dist/jsx/components/Table/accessibility.spec.mjs +0 -187
- package/dist/jsx/components/Table/accessibility.spec.mjs.map +0 -1
- package/dist/jsx/components/Table/accessibility.spec.native.js +0 -216
- package/dist/jsx/components/Table/accessibility.spec.native.js.map +0 -1
- package/dist/jsx/components/TableInput/TableInput.stories.mjs +0 -24
- package/dist/jsx/components/TableInput/TableInput.stories.mjs.map +0 -1
- package/dist/jsx/components/TableInput/TableInput.stories.native.js +0 -55
- package/dist/jsx/components/TableInput/TableInput.stories.native.js.map +0 -1
- package/dist/jsx/components/componentConsistency.spec.mjs +0 -38
- package/dist/jsx/components/componentConsistency.spec.mjs.map +0 -1
- package/dist/jsx/components/componentConsistency.spec.native.js +0 -48
- package/dist/jsx/components/componentConsistency.spec.native.js.map +0 -1
- package/dist/jsx/hooks/hookDecomposition.spec.mjs +0 -327
- package/dist/jsx/hooks/hookDecomposition.spec.mjs.map +0 -1
- package/dist/jsx/hooks/hookDecomposition.spec.native.js +0 -351
- package/dist/jsx/hooks/hookDecomposition.spec.native.js.map +0 -1
- package/dist/jsx/hooks/useDataTable.spec.mjs +0 -11
- package/dist/jsx/hooks/useDataTable.spec.mjs.map +0 -1
- package/dist/jsx/hooks/useDataTable.spec.native.js +0 -13
- package/dist/jsx/hooks/useDataTable.spec.native.js.map +0 -1
- package/dist/jsx/hooks/useSavedFilters.spec.mjs +0 -213
- package/dist/jsx/hooks/useSavedFilters.spec.mjs.map +0 -1
- package/dist/jsx/hooks/useSavedFilters.spec.native.js +0 -240
- package/dist/jsx/hooks/useSavedFilters.spec.native.js.map +0 -1
- package/dist/jsx/utils/filterUtils.spec.mjs +0 -351
- package/dist/jsx/utils/filterUtils.spec.mjs.map +0 -1
- package/dist/jsx/utils/filterUtils.spec.native.js +0 -353
- package/dist/jsx/utils/filterUtils.spec.native.js.map +0 -1
- package/dist/jsx/utils/urlStateUtils.spec.mjs +0 -235
- package/dist/jsx/utils/urlStateUtils.spec.mjs.map +0 -1
- package/dist/jsx/utils/urlStateUtils.spec.native.js +0 -239
- package/dist/jsx/utils/urlStateUtils.spec.native.js.map +0 -1
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filter-field model — the Frappe-agnostic backbone for filtering on fields
|
|
3
|
+
* that are NOT visible columns (owner ask: "filter on columns that are not
|
|
4
|
+
* visible").
|
|
5
|
+
*
|
|
6
|
+
* A table declares `filterableFields` (id, label, type, options) separately
|
|
7
|
+
* from its visible columns. The toolbar filter surface merges the two lists
|
|
8
|
+
* (visible columns first, then "More fields"), and `applyFiltersToData`
|
|
9
|
+
* applies the advanced-filter model client-side against ANY row key — column
|
|
10
|
+
* or not. Server-side tables (manualFiltering) skip the client pass and map
|
|
11
|
+
* the same TableFilter[] to their own query params (frappe-ui does this).
|
|
12
|
+
*
|
|
13
|
+
* One implementation per concept (LC-16): the operator vocabulary here is the
|
|
14
|
+
* SAME set the ColumnHeaderFilter funnel uses — the funnel imports these maps
|
|
15
|
+
* rather than keeping its own copy.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { t } from "../shared/t";
|
|
19
|
+
import type {
|
|
20
|
+
DataTableColumn,
|
|
21
|
+
DataTableColumnType,
|
|
22
|
+
DataTableField,
|
|
23
|
+
FilterOperator,
|
|
24
|
+
FilterValue,
|
|
25
|
+
FilterableField,
|
|
26
|
+
ResolvedFilterField,
|
|
27
|
+
TableFilter,
|
|
28
|
+
} from "../types";
|
|
29
|
+
import { applyFilterToValue } from "./filterUtils";
|
|
30
|
+
|
|
31
|
+
export type { FilterableField, ResolvedFilterField };
|
|
32
|
+
|
|
33
|
+
// ── Field descriptors ─────────────────────────────────────────
|
|
34
|
+
|
|
35
|
+
/** Maps a column's cell field type to its filter editor type. */
|
|
36
|
+
export function mapFieldToFilterType(field?: DataTableField): DataTableColumnType {
|
|
37
|
+
switch (field) {
|
|
38
|
+
case "stepper":
|
|
39
|
+
case "slider":
|
|
40
|
+
case "progress":
|
|
41
|
+
case "rating":
|
|
42
|
+
case "duration":
|
|
43
|
+
return "number";
|
|
44
|
+
case "datepicker":
|
|
45
|
+
case "datetimepicker":
|
|
46
|
+
case "timepicker":
|
|
47
|
+
case "daterangepicker":
|
|
48
|
+
case "multidatepicker":
|
|
49
|
+
return "date";
|
|
50
|
+
case "checkbox":
|
|
51
|
+
case "switch":
|
|
52
|
+
return "boolean";
|
|
53
|
+
case "select":
|
|
54
|
+
case "combobox":
|
|
55
|
+
case "radiogroup":
|
|
56
|
+
case "togglegroup":
|
|
57
|
+
return "select";
|
|
58
|
+
default:
|
|
59
|
+
return "text";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Row-data key for a column (accessorKey wins, id falls back). */
|
|
64
|
+
export function columnFieldId(column: DataTableColumn): string | undefined {
|
|
65
|
+
const key = (column as { accessorKey?: unknown }).accessorKey;
|
|
66
|
+
if (typeof key === "string" && key) return key;
|
|
67
|
+
return typeof column.id === "string" && column.id ? column.id : undefined;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Human label for a column (string header wins, id falls back). */
|
|
71
|
+
function columnFieldLabel(column: DataTableColumn, id: string): string {
|
|
72
|
+
return typeof column.header === "string" && column.header ? column.header : id;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Merge column-derived fields with extra `filterableFields`.
|
|
77
|
+
* Columns come first (they match what the user sees); extras that share an
|
|
78
|
+
* id override the column-derived descriptor, other extras append after.
|
|
79
|
+
*/
|
|
80
|
+
export function resolveFilterFields(
|
|
81
|
+
columns: DataTableColumn[],
|
|
82
|
+
filterableFields?: FilterableField[],
|
|
83
|
+
): ResolvedFilterField[] {
|
|
84
|
+
const byId = new Map<string, ResolvedFilterField>();
|
|
85
|
+
for (const column of columns) {
|
|
86
|
+
const id = columnFieldId(column);
|
|
87
|
+
if (!id) continue;
|
|
88
|
+
if (column.filterable === false) continue;
|
|
89
|
+
byId.set(id, {
|
|
90
|
+
id,
|
|
91
|
+
label: columnFieldLabel(column, id),
|
|
92
|
+
type: mapFieldToFilterType(column.field),
|
|
93
|
+
options: column.fieldProps?.options,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
for (const field of filterableFields ?? []) {
|
|
97
|
+
if (!field.id) continue;
|
|
98
|
+
const existing = byId.get(field.id);
|
|
99
|
+
byId.set(field.id, {
|
|
100
|
+
id: field.id,
|
|
101
|
+
label: field.label || existing?.label || field.id,
|
|
102
|
+
type: field.type ?? existing?.type ?? "text",
|
|
103
|
+
options: field.options ?? existing?.options,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return [...byId.values()];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Filter editor type for a field id ("text" when unknown). */
|
|
110
|
+
export function getFilterFieldType(
|
|
111
|
+
fields: ResolvedFilterField[],
|
|
112
|
+
fieldId: string,
|
|
113
|
+
): DataTableColumnType {
|
|
114
|
+
return fields.find((f) => f.id === fieldId)?.type ?? "text";
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// ── Client-side application ───────────────────────────────────
|
|
118
|
+
|
|
119
|
+
/** "select" fields compare as text; the others map 1:1. */
|
|
120
|
+
function comparisonType(type: DataTableColumnType): "text" | "number" | "date" | "boolean" {
|
|
121
|
+
return type === "select" ? "text" : type;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Apply the advanced-filter model (TableFilter[]) to raw rows. Works for any
|
|
126
|
+
* row key — visible column, hidden column, or non-column field. AND semantics
|
|
127
|
+
* across filters (same as the funnel's per-column filters).
|
|
128
|
+
*/
|
|
129
|
+
export function applyFiltersToData<TData extends Record<string, any>>(
|
|
130
|
+
data: TData[],
|
|
131
|
+
filters: TableFilter[],
|
|
132
|
+
fields: ResolvedFilterField[],
|
|
133
|
+
): TData[] {
|
|
134
|
+
if (!filters.length) return data;
|
|
135
|
+
const active = filters.filter((f) => f.columnId && f.value?.operator);
|
|
136
|
+
if (!active.length) return data;
|
|
137
|
+
return data.filter((row) =>
|
|
138
|
+
active.every((filter) =>
|
|
139
|
+
applyFilterToValue(
|
|
140
|
+
row[filter.columnId],
|
|
141
|
+
filter.value,
|
|
142
|
+
comparisonType(getFilterFieldType(fields, filter.columnId)),
|
|
143
|
+
),
|
|
144
|
+
),
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// ── Operator vocabulary (shared with the column funnel) ───────
|
|
149
|
+
|
|
150
|
+
const TEXT_OPERATORS: FilterOperator[] = [
|
|
151
|
+
"contains",
|
|
152
|
+
"doesNotContain",
|
|
153
|
+
"is",
|
|
154
|
+
"isNot",
|
|
155
|
+
"startsWith",
|
|
156
|
+
"endsWith",
|
|
157
|
+
"isEmpty",
|
|
158
|
+
"isNotEmpty",
|
|
159
|
+
];
|
|
160
|
+
|
|
161
|
+
const NUMBER_OPERATORS: FilterOperator[] = [
|
|
162
|
+
"is",
|
|
163
|
+
"isNot",
|
|
164
|
+
"isLessThan",
|
|
165
|
+
"isGreaterThan",
|
|
166
|
+
"isLessThanOrEqual",
|
|
167
|
+
"isGreaterThanOrEqual",
|
|
168
|
+
];
|
|
169
|
+
|
|
170
|
+
const DATE_OPERATORS: FilterOperator[] = [
|
|
171
|
+
"is",
|
|
172
|
+
"isNot",
|
|
173
|
+
"isBefore",
|
|
174
|
+
"isAfter",
|
|
175
|
+
"isOnOrBefore",
|
|
176
|
+
"isOnOrAfter",
|
|
177
|
+
];
|
|
178
|
+
|
|
179
|
+
const BOOLEAN_OPERATORS: FilterOperator[] = ["is", "isNot"];
|
|
180
|
+
|
|
181
|
+
const SELECT_OPERATORS: FilterOperator[] = ["is", "isNot", "isAnyOf"];
|
|
182
|
+
|
|
183
|
+
/** Operators offered for a filter editor type (same set as the funnel). */
|
|
184
|
+
export function operatorsForFilterType(type: DataTableColumnType): FilterOperator[] {
|
|
185
|
+
switch (type) {
|
|
186
|
+
case "number":
|
|
187
|
+
return NUMBER_OPERATORS;
|
|
188
|
+
case "date":
|
|
189
|
+
return DATE_OPERATORS;
|
|
190
|
+
case "boolean":
|
|
191
|
+
return BOOLEAN_OPERATORS;
|
|
192
|
+
case "select":
|
|
193
|
+
return SELECT_OPERATORS;
|
|
194
|
+
default:
|
|
195
|
+
return TEXT_OPERATORS;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** English operator labels — translate at render time via t(). */
|
|
200
|
+
export const FILTER_OPERATOR_LABELS: Record<string, string> = {
|
|
201
|
+
contains: "Contains",
|
|
202
|
+
doesNotContain: "Does not contain",
|
|
203
|
+
is: "Is",
|
|
204
|
+
isNot: "Is not",
|
|
205
|
+
startsWith: "Starts with",
|
|
206
|
+
endsWith: "Ends with",
|
|
207
|
+
isEmpty: "Is empty",
|
|
208
|
+
isNotEmpty: "Is not empty",
|
|
209
|
+
isLessThan: "Less than",
|
|
210
|
+
isGreaterThan: "Greater than",
|
|
211
|
+
isLessThanOrEqual: "Less than or equal",
|
|
212
|
+
isGreaterThanOrEqual: "Greater than or equal",
|
|
213
|
+
isBefore: "Before",
|
|
214
|
+
isAfter: "After",
|
|
215
|
+
isOnOrBefore: "On or before",
|
|
216
|
+
isOnOrAfter: "On or after",
|
|
217
|
+
isAnyOf: "Is any of",
|
|
218
|
+
isNoneOf: "Is none of",
|
|
219
|
+
isBetween: "Between",
|
|
220
|
+
isNotBetween: "Not between",
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
/** Translated operator label ("Contains", "Before", ...). */
|
|
224
|
+
export function filterOperatorLabel(operator: FilterOperator): string {
|
|
225
|
+
const label = FILTER_OPERATOR_LABELS[operator];
|
|
226
|
+
return label ? t(label) : operator;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/** True when the operator carries no value (isEmpty / isNotEmpty). */
|
|
230
|
+
export function operatorNeedsNoValue(operator: FilterOperator): boolean {
|
|
231
|
+
return operator === "isEmpty" || operator === "isNotEmpty";
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/** Initial operator when a field is first picked (text → contains, else is). */
|
|
235
|
+
export function defaultOperatorForFilterType(type: DataTableColumnType): FilterOperator {
|
|
236
|
+
return type === "text" ? "contains" : "is";
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ── Chip labels ───────────────────────────────────────────────
|
|
240
|
+
|
|
241
|
+
function displayValue(value: FilterValue, options?: Array<{ label: string; value: any }>): string {
|
|
242
|
+
if (operatorNeedsNoValue(value.operator)) return "";
|
|
243
|
+
if (value.values?.length) return value.values.map(String).join(", ");
|
|
244
|
+
const raw = value.value;
|
|
245
|
+
if (raw === null || raw === undefined || raw === "") return "";
|
|
246
|
+
const option = options?.find((o) => String(o.value) === String(raw));
|
|
247
|
+
return option ? option.label : String(raw);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Chip label — "Field: operator value" (HONEST STATE: the chip is how the
|
|
252
|
+
* user sees a hidden-column filter acting on the data).
|
|
253
|
+
*/
|
|
254
|
+
export function getFilterChipLabel(
|
|
255
|
+
fieldLabel: string,
|
|
256
|
+
value: FilterValue,
|
|
257
|
+
options?: Array<{ label: string; value: any }>,
|
|
258
|
+
): string {
|
|
259
|
+
const operator = filterOperatorLabel(value.operator).toLocaleLowerCase();
|
|
260
|
+
const shown = displayValue(value, options);
|
|
261
|
+
return shown
|
|
262
|
+
? t("{{field}}: {{operator}} {{value}}", { field: fieldLabel, operator, value: shown })
|
|
263
|
+
: t("{{field}}: {{operator}}", { field: fieldLabel, operator });
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/** True when a raw columnFilter value is FilterValue-shaped ({operator, ...}). */
|
|
267
|
+
export function isFilterValueShape(value: unknown): value is FilterValue {
|
|
268
|
+
return (
|
|
269
|
+
typeof value === "object" &&
|
|
270
|
+
value !== null &&
|
|
271
|
+
typeof (value as FilterValue).operator === "string"
|
|
272
|
+
);
|
|
273
|
+
}
|
package/src/utils/filterUtils.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t } from "../shared/t";
|
|
1
2
|
import type { FilterValue, TableFilter } from "../types";
|
|
2
3
|
|
|
3
4
|
// Filter ID Generation
|
|
@@ -225,56 +226,65 @@ export function inferColumnType(value: any): "text" | "number" | "date" | "boole
|
|
|
225
226
|
export function getFilterDescription(filter: TableFilter): string {
|
|
226
227
|
const { operator, value, values } = filter.value;
|
|
227
228
|
const columnLabel = filter.label || filter.columnId;
|
|
229
|
+
const opts = { column: columnLabel, value } as Record<string, unknown>;
|
|
228
230
|
|
|
229
231
|
switch (operator) {
|
|
230
232
|
case "contains":
|
|
231
|
-
return
|
|
233
|
+
return t('{{column}} contains "{{value}}"', opts);
|
|
232
234
|
case "doesNotContain":
|
|
233
|
-
return
|
|
235
|
+
return t('{{column}} does not contain "{{value}}"', opts);
|
|
234
236
|
case "is":
|
|
235
|
-
return
|
|
237
|
+
return t('{{column}} is "{{value}}"', opts);
|
|
236
238
|
case "isNot":
|
|
237
|
-
return
|
|
239
|
+
return t('{{column}} is not "{{value}}"', opts);
|
|
238
240
|
case "startsWith":
|
|
239
|
-
return
|
|
241
|
+
return t('{{column}} starts with "{{value}}"', opts);
|
|
240
242
|
case "endsWith":
|
|
241
|
-
return
|
|
243
|
+
return t('{{column}} ends with "{{value}}"', opts);
|
|
242
244
|
case "isEmpty":
|
|
243
|
-
return
|
|
245
|
+
return t("{{column}} is empty", opts);
|
|
244
246
|
case "isNotEmpty":
|
|
245
|
-
return
|
|
247
|
+
return t("{{column}} is not empty", opts);
|
|
246
248
|
case "isLessThan":
|
|
247
|
-
return
|
|
249
|
+
return t("{{column}} < {{value}}", opts);
|
|
248
250
|
case "isGreaterThan":
|
|
249
|
-
return
|
|
251
|
+
return t("{{column}} > {{value}}", opts);
|
|
250
252
|
case "isLessThanOrEqual":
|
|
251
|
-
return
|
|
253
|
+
return t("{{column}} ≤ {{value}}", opts);
|
|
252
254
|
case "isGreaterThanOrEqual":
|
|
253
|
-
return
|
|
255
|
+
return t("{{column}} ≥ {{value}}", opts);
|
|
254
256
|
case "isBetween":
|
|
255
257
|
return values
|
|
256
|
-
?
|
|
257
|
-
|
|
258
|
+
? t("{{column}} between {{min}} and {{max}}", {
|
|
259
|
+
column: columnLabel,
|
|
260
|
+
min: values[0],
|
|
261
|
+
max: values[1],
|
|
262
|
+
})
|
|
263
|
+
: t("{{column}} is between", opts);
|
|
258
264
|
case "isNotBetween":
|
|
259
265
|
return values
|
|
260
|
-
?
|
|
261
|
-
|
|
266
|
+
? t("{{column}} not between {{min}} and {{max}}", {
|
|
267
|
+
column: columnLabel,
|
|
268
|
+
min: values[0],
|
|
269
|
+
max: values[1],
|
|
270
|
+
})
|
|
271
|
+
: t("{{column}} is not between", opts);
|
|
262
272
|
case "isBefore":
|
|
263
|
-
return
|
|
273
|
+
return t("{{column}} is before {{value}}", opts);
|
|
264
274
|
case "isAfter":
|
|
265
|
-
return
|
|
275
|
+
return t("{{column}} is after {{value}}", opts);
|
|
266
276
|
case "isOnOrBefore":
|
|
267
|
-
return
|
|
277
|
+
return t("{{column}} is on or before {{value}}", opts);
|
|
268
278
|
case "isOnOrAfter":
|
|
269
|
-
return
|
|
279
|
+
return t("{{column}} is on or after {{value}}", opts);
|
|
270
280
|
case "isAnyOf":
|
|
271
281
|
return values
|
|
272
|
-
?
|
|
273
|
-
:
|
|
282
|
+
? t("{{column}} is any of: {{list}}", { column: columnLabel, list: values.join(", ") })
|
|
283
|
+
: t('{{column}} is "{{value}}"', opts);
|
|
274
284
|
case "isNoneOf":
|
|
275
285
|
return values
|
|
276
|
-
?
|
|
277
|
-
:
|
|
286
|
+
? t("{{column}} is none of: {{list}}", { column: columnLabel, list: values.join(", ") })
|
|
287
|
+
: t('{{column}} is not "{{value}}"', opts);
|
|
278
288
|
default:
|
|
279
289
|
return `${columnLabel} ${operator} ${value}`;
|
|
280
290
|
}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* filterUtils contracts not covered by filterUtils.spec.ts: filter
|
|
3
|
+
* validation rules, AND/OR column-scoped combination, column type inference,
|
|
4
|
+
* the human-readable chip descriptions, and the filter-preset persistence
|
|
5
|
+
* round-trip (deep-copy on create, Date revival on deserialize).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { describe, expect, it, vi } from "vitest";
|
|
9
|
+
import type { TableFilter } from "../types";
|
|
10
|
+
import {
|
|
11
|
+
combineFilters,
|
|
12
|
+
createFilterPreset,
|
|
13
|
+
deserializeFilterPresets,
|
|
14
|
+
getFilterDescription,
|
|
15
|
+
inferColumnType,
|
|
16
|
+
serializeFilterPresets,
|
|
17
|
+
validateFilter,
|
|
18
|
+
} from "./filterUtils";
|
|
19
|
+
|
|
20
|
+
function makeFilter(overrides: Partial<TableFilter> = {}): TableFilter {
|
|
21
|
+
return {
|
|
22
|
+
id: "f1",
|
|
23
|
+
columnId: "name",
|
|
24
|
+
value: { operator: "contains", value: "ada" },
|
|
25
|
+
...overrides,
|
|
26
|
+
} as TableFilter;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe("validateFilter", () => {
|
|
30
|
+
it("accepts a complete filter", () => {
|
|
31
|
+
expect(validateFilter(makeFilter())).toEqual({ isValid: true, errors: [] });
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("requires a column id and an operator", () => {
|
|
35
|
+
const result = validateFilter({ value: { operator: undefined } } as any);
|
|
36
|
+
expect(result.isValid).toBe(false);
|
|
37
|
+
expect(result.errors).toContain("Column ID is required");
|
|
38
|
+
expect(result.errors).toContain("Filter operator is required");
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("requires two values for between operators", () => {
|
|
42
|
+
const result = validateFilter(
|
|
43
|
+
makeFilter({ value: { operator: "isBetween", values: [1] } as any }),
|
|
44
|
+
);
|
|
45
|
+
expect(result.isValid).toBe(false);
|
|
46
|
+
expect(result.errors).toContain("Between operators require at least 2 values");
|
|
47
|
+
const ok = validateFilter(
|
|
48
|
+
makeFilter({ value: { operator: "isNotBetween", values: [1, 10] } as any }),
|
|
49
|
+
);
|
|
50
|
+
expect(ok.isValid).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("requires values or a value for option operators", () => {
|
|
54
|
+
const bad = validateFilter(makeFilter({ value: { operator: "isAnyOf" } as any }));
|
|
55
|
+
expect(bad.isValid).toBe(false);
|
|
56
|
+
expect(bad.errors).toContain("Option operators require values array or single value");
|
|
57
|
+
const ok = validateFilter(
|
|
58
|
+
makeFilter({ value: { operator: "isNoneOf", values: ["x"] } as any }),
|
|
59
|
+
);
|
|
60
|
+
expect(ok.isValid).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe("combineFilters", () => {
|
|
65
|
+
const containsA = makeFilter({ id: "a", value: { operator: "contains", value: "a" } as any });
|
|
66
|
+
const containsB = makeFilter({ id: "b", value: { operator: "contains", value: "b" } as any });
|
|
67
|
+
|
|
68
|
+
it("passes everything with no filters", () => {
|
|
69
|
+
expect(combineFilters([])("anything", "name")).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it("only applies filters scoped to the queried column", () => {
|
|
73
|
+
const otherColumn = makeFilter({ columnId: "age" });
|
|
74
|
+
expect(combineFilters([otherColumn])("zzz", "name")).toBe(true);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it("ANDs multiple filters on the same column by default", () => {
|
|
78
|
+
const predicate = combineFilters([containsA, containsB]);
|
|
79
|
+
expect(predicate("ab", "name")).toBe(true);
|
|
80
|
+
expect(predicate("a-only", "name")).toBe(false);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("ORs filters when requested", () => {
|
|
84
|
+
const predicate = combineFilters([containsA, containsB], "OR");
|
|
85
|
+
expect(predicate("a-only", "name")).toBe(true);
|
|
86
|
+
expect(predicate("b-only", "name")).toBe(true);
|
|
87
|
+
expect(predicate("neither", "name")).toBe(false);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
describe("inferColumnType", () => {
|
|
92
|
+
it("classifies primitives", () => {
|
|
93
|
+
expect(inferColumnType(true)).toBe("boolean");
|
|
94
|
+
expect(inferColumnType(42)).toBe("number");
|
|
95
|
+
expect(inferColumnType(new Date())).toBe("date");
|
|
96
|
+
expect(inferColumnType("plain words")).toBe("text");
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
describe("getFilterDescription", () => {
|
|
101
|
+
it("describes text operators with the column label", () => {
|
|
102
|
+
expect(
|
|
103
|
+
getFilterDescription(
|
|
104
|
+
makeFilter({ label: "Name", value: { operator: "contains", value: "ada" } as any }),
|
|
105
|
+
),
|
|
106
|
+
).toBe('Name contains "ada"');
|
|
107
|
+
expect(getFilterDescription(makeFilter({ value: { operator: "isEmpty" } as any }))).toBe(
|
|
108
|
+
"name is empty",
|
|
109
|
+
);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("falls back to the column id when no label is set", () => {
|
|
113
|
+
expect(getFilterDescription(makeFilter({ value: { operator: "is", value: "x" } as any }))).toBe(
|
|
114
|
+
'name is "x"',
|
|
115
|
+
);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
it("describes comparison operators with symbols", () => {
|
|
119
|
+
expect(
|
|
120
|
+
getFilterDescription(makeFilter({ value: { operator: "isLessThan", value: 5 } as any })),
|
|
121
|
+
).toBe("name < 5");
|
|
122
|
+
expect(
|
|
123
|
+
getFilterDescription(
|
|
124
|
+
makeFilter({ value: { operator: "isGreaterThanOrEqual", value: 5 } as any }),
|
|
125
|
+
),
|
|
126
|
+
).toBe("name ≥ 5");
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
it("describes between and option operators from their values arrays", () => {
|
|
130
|
+
expect(
|
|
131
|
+
getFilterDescription(
|
|
132
|
+
makeFilter({ value: { operator: "isBetween", values: [1, 10] } as any }),
|
|
133
|
+
),
|
|
134
|
+
).toBe("name between 1 and 10");
|
|
135
|
+
expect(
|
|
136
|
+
getFilterDescription(
|
|
137
|
+
makeFilter({ value: { operator: "isAnyOf", values: ["a", "b"] } as any }),
|
|
138
|
+
),
|
|
139
|
+
).toBe("name is any of: a, b");
|
|
140
|
+
expect(
|
|
141
|
+
getFilterDescription(makeFilter({ value: { operator: "isNoneOf", values: ["a"] } as any })),
|
|
142
|
+
).toBe("name is none of: a");
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("describes date operators", () => {
|
|
146
|
+
expect(
|
|
147
|
+
getFilterDescription(
|
|
148
|
+
makeFilter({ value: { operator: "isAfter", value: "2024-01-01" } as any }),
|
|
149
|
+
),
|
|
150
|
+
).toBe("name is after 2024-01-01");
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it("falls back to a raw description for unknown operators", () => {
|
|
154
|
+
expect(
|
|
155
|
+
getFilterDescription(makeFilter({ value: { operator: "someFuture", value: "x" } as any })),
|
|
156
|
+
).toBe("name someFuture x");
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
describe("filter presets round-trip", () => {
|
|
161
|
+
it("createFilterPreset deep-copies the filters snapshot", () => {
|
|
162
|
+
const filters = [makeFilter()];
|
|
163
|
+
const preset = createFilterPreset("My view", filters, "saved");
|
|
164
|
+
(filters[0].value as any).value = "mutated";
|
|
165
|
+
expect((preset.filters[0].value as any).value).toBe("ada");
|
|
166
|
+
expect(preset.name).toBe("My view");
|
|
167
|
+
expect(preset.description).toBe("saved");
|
|
168
|
+
expect(preset.createdAt).toBeInstanceOf(Date);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
it("serializes and revives presets including Date fields", () => {
|
|
172
|
+
const preset = createFilterPreset("Roundtrip", [makeFilter()]);
|
|
173
|
+
const revived = deserializeFilterPresets(serializeFilterPresets([preset]));
|
|
174
|
+
expect(revived).toHaveLength(1);
|
|
175
|
+
expect(revived[0].name).toBe("Roundtrip");
|
|
176
|
+
expect(revived[0].filters).toEqual(preset.filters);
|
|
177
|
+
expect(revived[0].createdAt).toBeInstanceOf(Date);
|
|
178
|
+
expect(revived[0].createdAt.getTime()).toBe(preset.createdAt.getTime());
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
it("returns an empty list for corrupted or non-array preset payloads", () => {
|
|
182
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
183
|
+
try {
|
|
184
|
+
expect(deserializeFilterPresets("{oops")).toEqual([]);
|
|
185
|
+
expect(deserializeFilterPresets('{"not":"array"}')).toEqual([]);
|
|
186
|
+
} finally {
|
|
187
|
+
warn.mockRestore();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { renderHook } from "@testing-library/react";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { useTablePagination } from "../hooks/useTablePagination";
|
|
4
|
+
import { useDataTable } from "../hooks/useDataTable";
|
|
5
|
+
import { deserializeTableState } from "./urlStateUtils";
|
|
6
|
+
import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS } from "./paginationDefaults";
|
|
7
|
+
|
|
8
|
+
describe("pagination defaults (DG-TBL-04)", () => {
|
|
9
|
+
it("exports pageSize 25 and options 10/25/50/100", () => {
|
|
10
|
+
expect(DEFAULT_PAGE_SIZE).toBe(25);
|
|
11
|
+
expect([...DEFAULT_PAGE_SIZE_OPTIONS]).toEqual([10, 25, 50, 100]);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it("useTablePagination defaults pageSize to 25", () => {
|
|
15
|
+
const { result } = renderHook(() => useTablePagination());
|
|
16
|
+
expect(result.current.pagination.pageSize).toBe(25);
|
|
17
|
+
expect(result.current.pagination.pageIndex).toBe(0);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("useDataTable defaults pageSize to 25 when initialState omits pagination", () => {
|
|
21
|
+
const { result } = renderHook(() =>
|
|
22
|
+
useDataTable({
|
|
23
|
+
data: [{ id: 1, name: "a" }],
|
|
24
|
+
columns: [{ id: "name", accessorKey: "name", header: "Name" }],
|
|
25
|
+
}),
|
|
26
|
+
);
|
|
27
|
+
expect(result.current.state.pagination.pageSize).toBe(25);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("URL deserialize falls back to default pageSize 25 when pageSize is omitted", () => {
|
|
31
|
+
const result = deserializeTableState({ page: "1" });
|
|
32
|
+
expect(result.pagination).toEqual({ pageIndex: 0, pageSize: DEFAULT_PAGE_SIZE });
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("URL serialize/deserialize round-trips pageSize (persist via syncWithUrl pattern)", () => {
|
|
36
|
+
const serialized = {
|
|
37
|
+
page: "2",
|
|
38
|
+
pageSize: "50",
|
|
39
|
+
};
|
|
40
|
+
const state = deserializeTableState(serialized);
|
|
41
|
+
expect(state.pagination).toEqual({ pageIndex: 1, pageSize: 50 });
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DG-TBL-04 — pagination smart defaults.
|
|
3
|
+
*
|
|
4
|
+
* Default pageSize 25 with options 10/25/50/100.
|
|
5
|
+
* Persistence rides the existing URL-state / saved-view patterns
|
|
6
|
+
* (`syncWithUrl`, `useTableViews`) — no separate storage invented here.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Default rows per page (DG-TBL-04). */
|
|
10
|
+
export const DEFAULT_PAGE_SIZE = 25;
|
|
11
|
+
|
|
12
|
+
/** Default page-size selector options (DG-TBL-04). */
|
|
13
|
+
export const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100] as const;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Infinite mode: how many rows before the tail the next-page append triggers.
|
|
17
|
+
* Prefetch already has page N+1 in cache, so this lead only hides append work.
|
|
18
|
+
*/
|
|
19
|
+
export const INFINITE_TRIGGER_ROWS = 5;
|
|
20
|
+
|
|
21
|
+
export type DefaultPageSizeOption = (typeof DEFAULT_PAGE_SIZE_OPTIONS)[number];
|
|
@@ -64,9 +64,9 @@ describe("deserializeTableState", () => {
|
|
|
64
64
|
expect(result.pagination).toEqual({ pageIndex: 2, pageSize: 25 });
|
|
65
65
|
});
|
|
66
66
|
|
|
67
|
-
it("defaults page size to
|
|
67
|
+
it("defaults page size to 25 when not provided (DG-TBL-04)", () => {
|
|
68
68
|
const result = deserializeTableState({ page: "1" });
|
|
69
|
-
expect(result.pagination).toEqual({ pageIndex: 0, pageSize:
|
|
69
|
+
expect(result.pagination).toEqual({ pageIndex: 0, pageSize: 25 });
|
|
70
70
|
});
|
|
71
71
|
|
|
72
72
|
it("deserializes sorting", () => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DataTableState, TableFilter, TableSorting } from "../types";
|
|
2
|
+
import { DEFAULT_PAGE_SIZE } from "./paginationDefaults";
|
|
2
3
|
|
|
3
4
|
// URL State Serialization
|
|
4
5
|
|
|
@@ -48,7 +49,7 @@ export function deserializeTableState(urlState: Record<string, string>): Partial
|
|
|
48
49
|
// Pagination
|
|
49
50
|
if (urlState.page) {
|
|
50
51
|
const pageIndex = Number.parseInt(urlState.page, 10) - 1; // Convert to 0-based
|
|
51
|
-
const pageSize = urlState.pageSize ? Number.parseInt(urlState.pageSize, 10) :
|
|
52
|
+
const pageSize = urlState.pageSize ? Number.parseInt(urlState.pageSize, 10) : DEFAULT_PAGE_SIZE;
|
|
52
53
|
|
|
53
54
|
if (!Number.isNaN(pageIndex) && !Number.isNaN(pageSize)) {
|
|
54
55
|
state.pagination = { pageIndex, pageSize };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rows as the user currently sees them: the sorted (post-filter) row model,
|
|
3
|
+
* flattened to leaf rows so group-header rows never leak downstream.
|
|
4
|
+
* Pagination is intentionally NOT applied — "current view" means everything
|
|
5
|
+
* matching the active filters in the visible order, not just the visible
|
|
6
|
+
* page. Shared by DataTableExport (file contents) and DataTableGrouping
|
|
7
|
+
* (group building) so both stay in lockstep with what the table shows
|
|
8
|
+
* (LC-16 one implementation).
|
|
9
|
+
*/
|
|
10
|
+
export function getViewLeafRows<T>(table: any): T[] {
|
|
11
|
+
try {
|
|
12
|
+
const leaves: T[] = [];
|
|
13
|
+
const walk = (rows: any[]) => {
|
|
14
|
+
for (const row of rows) {
|
|
15
|
+
if (row.getIsGrouped?.()) {
|
|
16
|
+
walk(row.subRows ?? []);
|
|
17
|
+
} else {
|
|
18
|
+
leaves.push(row.original as T);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
walk(table.getSortedRowModel().rows);
|
|
23
|
+
return leaves;
|
|
24
|
+
} catch {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
}
|