@economic/taco 1.40.3 → 2.0.0-alpha.173
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Icon/components/HeightTall.d.ts +3 -0
- package/dist/components/Icon/components/index.d.ts +1 -1
- package/dist/components/IconButton/IconButton.d.ts +3 -3
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Menu/Menu.d.ts +2 -0
- package/dist/components/Menu/components/Item.d.ts +6 -1
- package/dist/components/Menu/components/Link.d.ts +1 -1
- package/dist/components/Menu/components/SubMenu.d.ts +8 -0
- package/dist/components/Navigation2/components/Link.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts +3 -0
- package/dist/components/Provider/Localization.d.ts +55 -20
- package/dist/components/RadioGroup/util.d.ts +1 -0
- package/dist/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/components/SearchInput2/SearchInput2.d.ts +23 -0
- package/dist/components/Select2/components/Option.d.ts +1 -1
- package/dist/components/Select2/components/Search.d.ts +1 -1
- package/dist/components/Table3/Table3.d.ts +11 -0
- package/dist/components/Table3/components/columns/cell/Cell.d.ts +6 -0
- package/dist/components/Table3/components/columns/cell/DisplayCell.d.ts +22 -0
- package/dist/components/Table3/components/columns/cell/EditingCell.d.ts +7 -0
- package/dist/components/Table3/components/columns/footer/Footer.d.ts +14 -0
- package/dist/components/Table3/components/columns/footer/Summary.d.ts +7 -0
- package/dist/components/Table3/components/columns/header/Goto.d.ts +6 -0
- package/dist/components/Table3/components/columns/header/Header.d.ts +27 -0
- package/dist/components/Table3/components/columns/header/Menu.d.ts +16 -0
- package/dist/components/Table3/components/columns/header/Resizer.d.ts +7 -0
- package/dist/components/Table3/components/columns/header/SortIndicator.d.ts +12 -0
- package/dist/components/Table3/components/columns/internal/Actions.d.ts +4 -0
- package/dist/components/Table3/components/columns/internal/Drag.d.ts +4 -0
- package/dist/components/Table3/components/columns/internal/EditingActions.d.ts +8 -0
- package/dist/components/Table3/components/columns/internal/Expansion.d.ts +4 -0
- package/dist/components/Table3/components/columns/internal/Selection.d.ts +4 -0
- package/dist/components/Table3/components/columns/styles.d.ts +4 -0
- package/dist/components/Table3/components/rows/ExpandedRow.d.ts +8 -0
- package/dist/components/Table3/components/rows/Row.d.ts +21 -0
- package/dist/components/Table3/components/rows/RowContext.d.ts +9 -0
- package/dist/components/Table3/components/rows/SkeletonRow.d.ts +10 -0
- package/dist/components/Table3/components/rows/styles.d.ts +6 -0
- package/dist/components/{Table2/components/ColumnSettingsButton.d.ts → Table3/components/toolbar/ColumnSettings.d.ts} +1 -1
- package/dist/components/Table3/components/toolbar/EditButton.d.ts +7 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/Filters.d.ts +7 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Comparator.d.ts +11 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Filter.d.ts +13 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.d.ts +8 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.d.ts +7 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterValue.d.ts +10 -0
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Placeholder.d.ts +11 -0
- package/dist/components/Table3/components/toolbar/FontSize.d.ts +7 -0
- package/dist/components/Table3/components/toolbar/PrintButton/PrintButton.d.ts +8 -0
- package/dist/components/Table3/components/toolbar/PrintButton/PrintIFrame.d.ts +8 -0
- package/dist/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.d.ts +1 -0
- package/dist/components/Table3/components/toolbar/RowHeight.d.ts +7 -0
- package/dist/components/Table3/components/toolbar/Search.d.ts +8 -0
- package/dist/components/Table3/components/toolbar/Toolbar.d.ts +12 -0
- package/dist/components/Table3/hooks/features/useColumnFreezing.d.ts +12 -0
- package/dist/components/Table3/hooks/features/useColumnOrdering.d.ts +6 -0
- package/dist/components/Table3/hooks/features/useCurrentRow.d.ts +9 -0
- package/dist/components/Table3/hooks/features/useEditing.d.ts +31 -0
- package/dist/components/Table3/hooks/features/useFontSize.d.ts +7 -0
- package/dist/components/Table3/hooks/features/usePauseHoverState.d.ts +6 -0
- package/dist/components/Table3/hooks/features/usePrinting.d.ts +5 -0
- package/dist/components/Table3/hooks/features/useRowClick.d.ts +7 -0
- package/dist/components/Table3/hooks/features/useRowDrag.d.ts +6 -0
- package/dist/components/Table3/hooks/features/useRowDrop.d.ts +5 -0
- package/dist/components/Table3/hooks/features/useRowGoto.d.ts +5 -0
- package/dist/components/Table3/hooks/features/useRowHeight.d.ts +7 -0
- package/dist/components/Table3/hooks/features/useRowSelection.d.ts +6 -0
- package/dist/components/Table3/hooks/features/useSearch.d.ts +16 -0
- package/dist/components/Table3/hooks/listeners/useCurrentRowListener.d.ts +2 -0
- package/dist/components/Table3/hooks/listeners/useEditingStateListener.d.ts +2 -0
- package/dist/components/Table3/hooks/listeners/useFilteringStateListener.d.ts +3 -0
- package/dist/components/Table3/hooks/listeners/useRowSelectionListener.d.ts +3 -0
- package/dist/components/Table3/hooks/listeners/useSearchStateListener.d.ts +3 -0
- package/dist/components/Table3/hooks/listeners/useServerLoadingListener.d.ts +3 -0
- package/dist/components/Table3/hooks/listeners/useSettingsStateListener.d.ts +3 -0
- package/dist/components/Table3/hooks/listeners/useShortcutsListener.d.ts +3 -0
- package/dist/components/Table3/hooks/listeners/useSortingStateListener.d.ts +3 -0
- package/dist/components/Table3/hooks/useConvertChildrenToColumns.d.ts +9 -0
- package/dist/components/Table3/hooks/useCssGrid.d.ts +5 -0
- package/dist/components/Table3/hooks/useCssVars.d.ts +6 -0
- package/dist/components/Table3/hooks/useTable.d.ts +63 -0
- package/dist/components/Table3/hooks/useTableData.d.ts +23 -0
- package/dist/components/Table3/hooks/useTablePreset.d.ts +2 -0
- package/dist/components/Table3/hooks/useTableRefInstanceSetup.d.ts +4 -0
- package/dist/components/Table3/strategies/index.d.ts +4 -0
- package/dist/components/Table3/strategies/virtualised.d.ts +4 -0
- package/dist/components/Table3/types.d.ts +311 -0
- package/dist/components/Table3/util/columns.d.ts +7 -0
- package/dist/components/{Table2/components/column/utils.d.ts → Table3/util/editing.d.ts} +2 -1
- package/dist/components/Table3/util/filtering.d.ts +3 -0
- package/dist/components/Tabs/Tabs.d.ts +2 -0
- package/dist/components/Tag/Tag.d.ts +1 -1
- package/dist/esm/index.css +130 -2
- package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js +2 -2
- package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Alert/Alert.js +1 -0
- package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +3 -1
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +4 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +1 -1
- package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/{DensitySpacious.js → HeightExtraTall.js} +4 -4
- package/dist/esm/packages/taco/src/components/Icon/components/{DensitySpacious.js.map → HeightExtraTall.js.map} +1 -1
- package/dist/esm/packages/taco/src/components/Icon/components/{DensityNormal.js → HeightMedium.js} +4 -4
- package/dist/esm/packages/taco/src/components/Icon/components/HeightMedium.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/{DensityCompact.js → HeightShort.js} +4 -4
- package/dist/esm/packages/taco/src/components/Icon/components/HeightShort.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/{DensityComfortable.js → HeightTall.js} +4 -4
- package/dist/esm/packages/taco/src/components/Icon/components/HeightTall.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js +10 -8
- package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
- package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Input/Input.js +1 -1
- package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/Menu.js +2 -0
- package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js +20 -2
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js +22 -0
- package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Popover/Popover.js +11 -3
- package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +56 -21
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js +2 -7
- package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/RadioGroup/util.js +14 -0
- package/dist/esm/packages/taco/src/components/RadioGroup/util.js.map +1 -0
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +4 -0
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +196 -0
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +3 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Switch/Switch.js +3 -1
- package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +145 -0
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js +27 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +128 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +283 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -0
- package/dist/esm/packages/taco/src/components/{Table2/components/column → Table3/components/columns/cell}/Indicator.js +14 -13
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Indicator.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js +50 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js +30 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js +27 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js +134 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +156 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Resizer.js +42 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Resizer.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/SortIndicator.js +38 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/SortIndicator.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js +108 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js +86 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js +124 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js +103 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +121 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js +17 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/ExpandedRow.js +27 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/ExpandedRow.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js +255 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js +13 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js +43 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/styles.js +9 -0
- package/dist/esm/packages/taco/src/components/Table3/components/rows/styles.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js +105 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js +45 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +148 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js +107 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js +28 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +60 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js +89 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +45 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/FontSize.js +25 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/FontSize.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js +99 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +223 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +88 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/RowHeight.js +26 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/RowHeight.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +137 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js +85 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +87 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js +45 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +52 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js +197 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js +13 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js +19 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js +9 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js +25 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrag.js +13 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrag.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrop.js +9 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrop.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js +9 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js +27 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js +29 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js +27 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js +14 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js +24 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js +19 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js +19 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSearchStateListener.js +51 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSearchStateListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js +16 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +26 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/{Table2/hooks/useTableShortcuts.js → Table3/hooks/listeners/useShortcutsListener.js} +9 -6
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useShortcutsListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js +17 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +116 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +56 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js +61 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +154 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js +128 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js +98 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTableRefInstanceSetup.js +19 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTableRefInstanceSetup.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/strategies/index.js +8 -0
- package/dist/esm/packages/taco/src/components/Table3/strategies/index.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js +113 -0
- package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/types.js +18 -0
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/util/columns.js +39 -0
- package/dist/esm/packages/taco/src/components/Table3/util/columns.js.map +1 -0
- package/dist/esm/packages/taco/src/components/{Table2/components/column/utils.js → Table3/util/editing.js} +7 -5
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -0
- package/dist/esm/packages/taco/src/components/{Table2/utilities/filterFn.js → Table3/util/filtering.js} +19 -17
- package/dist/esm/packages/taco/src/components/Table3/util/filtering.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Tabs/Tabs.js +9 -1
- package/dist/esm/packages/taco/src/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +10 -5
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +16 -0
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -0
- package/dist/esm/packages/taco/src/index.js +6 -3
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Button.js +6 -17
- package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/dom.js +1 -2
- package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/input.js +14 -1
- package/dist/esm/packages/taco/src/utils/input.js.map +1 -1
- package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
- package/dist/hooks/useLazyEffect.d.ts +2 -0
- package/dist/index.css +130 -2
- package/dist/index.d.ts +3 -1
- package/dist/taco.cjs.development.js +4654 -3365
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/utils/input.d.ts +1 -0
- package/package.json +8 -10
- package/tailwind.config.js +0 -1
- package/types.json +1874 -1408
- package/dist/components/Table2/Table2.d.ts +0 -130
- package/dist/components/Table2/components/BatchActionsMenu.d.ts +0 -10
- package/dist/components/Table2/components/EditModeButton.d.ts +0 -8
- package/dist/components/Table2/components/RowDensityButton.d.ts +0 -7
- package/dist/components/Table2/components/Search.d.ts +0 -3
- package/dist/components/Table2/components/ShortcutsGuideButton.d.ts +0 -7
- package/dist/components/Table2/components/column/Base.d.ts +0 -14
- package/dist/components/Table2/components/column/Cell.d.ts +0 -15
- package/dist/components/Table2/components/column/Footer.d.ts +0 -9
- package/dist/components/Table2/components/column/Header.d.ts +0 -11
- package/dist/components/Table2/components/column/ValidationError.d.ts +0 -5
- package/dist/components/Table2/components/filters/FiltersButton.d.ts +0 -7
- package/dist/components/Table2/components/filters/components/Column.d.ts +0 -11
- package/dist/components/Table2/components/filters/components/ColumnFilter.d.ts +0 -10
- package/dist/components/Table2/components/filters/components/Comparator.d.ts +0 -11
- package/dist/components/Table2/components/filters/components/EmptyFilter.d.ts +0 -13
- package/dist/components/Table2/components/filters/components/InferredControl.d.ts +0 -10
- package/dist/components/Table2/components/row/Context.d.ts +0 -24
- package/dist/components/Table2/components/row/ExpandedRow.d.ts +0 -6
- package/dist/components/Table2/components/row/Row.d.ts +0 -2
- package/dist/components/Table2/hooks/listeners/useActiveCellStateListener.d.ts +0 -3
- package/dist/components/Table2/hooks/listeners/useActiveRowStateListener.d.ts +0 -3
- package/dist/components/Table2/hooks/listeners/useColumnOffsetStateListener.d.ts +0 -3
- package/dist/components/Table2/hooks/listeners/useFilterStateListener.d.ts +0 -3
- package/dist/components/Table2/hooks/listeners/useRowSelectionListener.d.ts +0 -3
- package/dist/components/Table2/hooks/listeners/useSettingsStateListener.d.ts +0 -3
- package/dist/components/Table2/hooks/useActiveCell.d.ts +0 -26
- package/dist/components/Table2/hooks/useActiveRow.d.ts +0 -10
- package/dist/components/Table2/hooks/useColumnDefinitions.d.ts +0 -37
- package/dist/components/Table2/hooks/useEditMode.d.ts +0 -28
- package/dist/components/Table2/hooks/useGridTemplate.d.ts +0 -2
- package/dist/components/Table2/hooks/useTable.d.ts +0 -46
- package/dist/components/Table2/hooks/useTableShortcuts.d.ts +0 -2
- package/dist/components/Table2/hooks/useVirtualiser.d.ts +0 -23
- package/dist/components/Table2/types.d.ts +0 -148
- package/dist/components/Table2/utilities/cell.d.ts +0 -14
- package/dist/components/Table2/utilities/columns.d.ts +0 -16
- package/dist/components/Table2/utilities/filterFn.d.ts +0 -3
- package/dist/esm/packages/taco/src/components/Icon/components/DensityComfortable.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Icon/components/DensityCompact.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Icon/components/DensityNormal.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/Table2.js +0 -422
- package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/BatchActionsMenu.js +0 -83
- package/dist/esm/packages/taco/src/components/Table2/components/BatchActionsMenu.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js +0 -116
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js +0 -81
- package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js +0 -35
- package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/Search.js +0 -62
- package/dist/esm/packages/taco/src/components/Table2/components/Search.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Base.js +0 -32
- package/dist/esm/packages/taco/src/components/Table2/components/column/Base.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +0 -600
- package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js +0 -32
- package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js +0 -243
- package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/ValidationError.js +0 -30
- package/dist/esm/packages/taco/src/components/Table2/components/column/ValidationError.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/utils.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +0 -155
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Column.js +0 -31
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Column.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js +0 -129
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js +0 -68
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/EmptyFilter.js +0 -63
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/EmptyFilter.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js +0 -99
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js +0 -58
- package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/ExpandedRow.js +0 -36
- package/dist/esm/packages/taco/src/components/Table2/components/row/ExpandedRow.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +0 -43
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useActiveRowStateListener.js +0 -19
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useActiveRowStateListener.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useColumnOffsetStateListener.js +0 -28
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useColumnOffsetStateListener.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useFilterStateListener.js +0 -12
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useFilterStateListener.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useRowSelectionListener.js +0 -18
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useRowSelectionListener.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useSettingsStateListener.js +0 -25
- package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useSettingsStateListener.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useActiveRow.js +0 -33
- package/dist/esm/packages/taco/src/components/Table2/hooks/useActiveRow.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +0 -122
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useEditMode.js +0 -112
- package/dist/esm/packages/taco/src/components/Table2/hooks/useEditMode.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js +0 -34
- package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +0 -222
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTableShortcuts.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useVirtualiser.js +0 -48
- package/dist/esm/packages/taco/src/components/Table2/hooks/useVirtualiser.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/types.js +0 -18
- package/dist/esm/packages/taco/src/components/Table2/types.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js +0 -41
- package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +0 -387
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/filterFn.js.map +0 -1
- package/dist/esm/packages/taco/src/components/Truncate/Truncate.js +0 -32
- package/dist/esm/packages/taco/src/components/Truncate/Truncate.js.map +0 -1
- package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js +0 -20
- package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js.map +0 -1
- /package/dist/components/Icon/components/{DensityComfortable.d.ts → FontSize.d.ts} +0 -0
- /package/dist/components/Icon/components/{DensityCompact.d.ts → HeightExtraTall.d.ts} +0 -0
- /package/dist/components/Icon/components/{DensityNormal.d.ts → HeightMedium.d.ts} +0 -0
- /package/dist/components/Icon/components/{DensitySpacious.d.ts → HeightShort.d.ts} +0 -0
- /package/dist/components/{Table2/components/column → Table3/components/columns/cell}/Indicator.d.ts +0 -0
@@ -0,0 +1,98 @@
|
|
1
|
+
import React__default from 'react';
|
2
|
+
|
3
|
+
const DEFAULT_ALL_DISABLED = {
|
4
|
+
enableColumnFreezing: false,
|
5
|
+
enableColumnHiding: false,
|
6
|
+
enableColumnOrdering: false,
|
7
|
+
enableColumnResizing: false,
|
8
|
+
enableFontSize: false,
|
9
|
+
enablePrinting: false,
|
10
|
+
enableRowDrag: false,
|
11
|
+
enableRowDrop: false,
|
12
|
+
enableRowExpansion: false,
|
13
|
+
enableRowGoto: false,
|
14
|
+
enableRowHeight: false,
|
15
|
+
enableRowSelection: false,
|
16
|
+
enableRowSelectionSingle: false,
|
17
|
+
enableEditing: false,
|
18
|
+
enableFiltering: false,
|
19
|
+
enableSearch: false,
|
20
|
+
enableSorting: false
|
21
|
+
};
|
22
|
+
const presets = {
|
23
|
+
display: {
|
24
|
+
enableColumnFreezing: true,
|
25
|
+
enableColumnHiding: true,
|
26
|
+
enableColumnOrdering: true,
|
27
|
+
enableColumnResizing: true,
|
28
|
+
enableFontSize: true,
|
29
|
+
enablePrinting: false,
|
30
|
+
enableRowDrag: true,
|
31
|
+
enableRowDrop: true,
|
32
|
+
enableRowExpansion: true,
|
33
|
+
enableRowGoto: true,
|
34
|
+
enableRowHeight: true,
|
35
|
+
enableRowSelection: true,
|
36
|
+
enableRowSelectionSingle: false,
|
37
|
+
enableEditing: false,
|
38
|
+
enableFiltering: true,
|
39
|
+
enableSearch: true,
|
40
|
+
enableSorting: true
|
41
|
+
},
|
42
|
+
editable: {
|
43
|
+
enableColumnFreezing: true,
|
44
|
+
enableColumnHiding: true,
|
45
|
+
enableColumnOrdering: true,
|
46
|
+
enableColumnResizing: true,
|
47
|
+
enableFontSize: true,
|
48
|
+
enablePrinting: false,
|
49
|
+
enableRowDrag: true,
|
50
|
+
enableRowDrop: true,
|
51
|
+
enableRowExpansion: true,
|
52
|
+
enableRowGoto: true,
|
53
|
+
enableRowHeight: true,
|
54
|
+
enableRowSelection: true,
|
55
|
+
enableRowSelectionSingle: false,
|
56
|
+
enableEditing: true,
|
57
|
+
enableFiltering: true,
|
58
|
+
enableSearch: true,
|
59
|
+
enableSorting: true
|
60
|
+
}
|
61
|
+
};
|
62
|
+
function useTablePreset(props) {
|
63
|
+
var _props$enableRowExpan, _props$enableRowSelec, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnOr, _props$enableColumnRe, _props$enableFontSize, _props$enablePrinting, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowHeigh, _props$enableRowSelec2, _props$enableEditing, _props$enableFilterin, _props$enableSearch, _props$enableSorting;
|
64
|
+
const presetOptions = props.preset ? presets[props.preset] : DEFAULT_ALL_DISABLED;
|
65
|
+
const enableRowExpansion = (_props$enableRowExpan = props.enableRowExpansion) !== null && _props$enableRowExpan !== void 0 ? _props$enableRowExpan : presetOptions.enableRowExpansion;
|
66
|
+
const enableRowSelection = (_props$enableRowSelec = props.enableRowSelection) !== null && _props$enableRowSelec !== void 0 ? _props$enableRowSelec : presetOptions.enableRowSelection;
|
67
|
+
// guard options that might be unintentionally broken
|
68
|
+
React__default.useEffect(() => {
|
69
|
+
if (enableRowExpansion && !props.expandedRowRenderer) {
|
70
|
+
console.warn(`Table3 (id: ${props.id}) - Row expansion is enabled but no \`expandedRowRenderer\` has been provided. Provide one to enable row expansion or set \`enableRowExpansion\` to \`false\`.`);
|
71
|
+
}
|
72
|
+
if (enableRowSelection && !props.onRowSelect) {
|
73
|
+
console.warn(`Table3 (id: ${props.id}) - Row selection is enabled but no \`onRowSelect\` handler has been provided. Provide one to enable row selection or set \`enableRowSelection\` to \`false\`.`);
|
74
|
+
}
|
75
|
+
}, []);
|
76
|
+
return {
|
77
|
+
enableColumnFreezing: (_props$enableColumnFr = props.enableColumnFreezing) !== null && _props$enableColumnFr !== void 0 ? _props$enableColumnFr : presetOptions.enableColumnFreezing,
|
78
|
+
enableColumnHiding: (_props$enableColumnHi = props.enableColumnHiding) !== null && _props$enableColumnHi !== void 0 ? _props$enableColumnHi : presetOptions.enableColumnHiding,
|
79
|
+
enableColumnOrdering: (_props$enableColumnOr = props.enableColumnOrdering) !== null && _props$enableColumnOr !== void 0 ? _props$enableColumnOr : presetOptions.enableColumnOrdering,
|
80
|
+
enableColumnResizing: (_props$enableColumnRe = props.enableColumnResizing) !== null && _props$enableColumnRe !== void 0 ? _props$enableColumnRe : presetOptions.enableColumnResizing,
|
81
|
+
enableFontSize: (_props$enableFontSize = props.enableFontSize) !== null && _props$enableFontSize !== void 0 ? _props$enableFontSize : presetOptions.enableFontSize,
|
82
|
+
enablePrinting: (_props$enablePrinting = props.enablePrinting) !== null && _props$enablePrinting !== void 0 ? _props$enablePrinting : presetOptions.enablePrinting,
|
83
|
+
enableRowDrag: ((_props$enableRowDrag = props.enableRowDrag) !== null && _props$enableRowDrag !== void 0 ? _props$enableRowDrag : presetOptions.enableRowDrag) && !!props.onRowDrag,
|
84
|
+
enableRowDrop: ((_props$enableRowDrop = props.enableRowDrop) !== null && _props$enableRowDrop !== void 0 ? _props$enableRowDrop : presetOptions.enableRowDrop) && !!props.onRowDrop,
|
85
|
+
enableRowExpansion: enableRowExpansion && !!props.expandedRowRenderer,
|
86
|
+
enableRowGoto: ((_props$enableRowGoto = props.enableRowGoto) !== null && _props$enableRowGoto !== void 0 ? _props$enableRowGoto : presetOptions.enableRowGoto) && !!props.onRowGoto,
|
87
|
+
enableRowHeight: (_props$enableRowHeigh = props.enableRowHeight) !== null && _props$enableRowHeigh !== void 0 ? _props$enableRowHeigh : presetOptions.enableRowHeight,
|
88
|
+
enableRowSelection: enableRowSelection && !!props.onRowSelect,
|
89
|
+
enableRowSelectionSingle: ((_props$enableRowSelec2 = props.enableRowSelectionSingle) !== null && _props$enableRowSelec2 !== void 0 ? _props$enableRowSelec2 : presetOptions.enableRowSelectionSingle) && enableRowSelection && !!props.onRowSelect,
|
90
|
+
enableEditing: (_props$enableEditing = props.enableEditing) !== null && _props$enableEditing !== void 0 ? _props$enableEditing : presetOptions.enableEditing,
|
91
|
+
enableFiltering: (_props$enableFilterin = props.enableFiltering) !== null && _props$enableFilterin !== void 0 ? _props$enableFilterin : presetOptions.enableFiltering,
|
92
|
+
enableSearch: (_props$enableSearch = props.enableSearch) !== null && _props$enableSearch !== void 0 ? _props$enableSearch : presetOptions.enableSearch,
|
93
|
+
enableSorting: (_props$enableSorting = props.enableSorting) !== null && _props$enableSorting !== void 0 ? _props$enableSorting : presetOptions.enableSorting
|
94
|
+
};
|
95
|
+
}
|
96
|
+
|
97
|
+
export { useTablePreset };
|
98
|
+
//# sourceMappingURL=useTablePreset.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useTablePreset.js","sources":["../../../../../../../../src/components/Table3/hooks/useTablePreset.ts"],"sourcesContent":["import React from 'react';\nimport { Table3Options, Table3Preset, Table3Props } from '../types';\n\nconst DEFAULT_ALL_DISABLED: Table3Options = {\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnOrdering: false,\n enableColumnResizing: false,\n enableFontSize: false,\n enablePrinting: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowExpansion: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableRowSelection: false,\n enableRowSelectionSingle: false,\n enableEditing: false,\n enableFiltering: false,\n enableSearch: false,\n enableSorting: false,\n};\n\nconst presets: Record<Table3Preset, Table3Options> = {\n display: {\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnOrdering: true,\n enableColumnResizing: true,\n enableFontSize: true,\n enablePrinting: false,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowExpansion: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableRowSelection: true,\n enableRowSelectionSingle: false,\n enableEditing: false,\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n },\n editable: {\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnOrdering: true,\n enableColumnResizing: true,\n enableFontSize: true,\n enablePrinting: false,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowExpansion: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableRowSelection: true,\n enableRowSelectionSingle: false,\n enableEditing: true,\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n },\n};\n\nexport function useTablePreset<TType = unknown>(props: Table3Props<TType>): Table3Options {\n const presetOptions = props.preset ? presets[props.preset] : DEFAULT_ALL_DISABLED;\n\n const enableRowExpansion = props.enableRowExpansion ?? presetOptions.enableRowExpansion;\n const enableRowSelection = props.enableRowSelection ?? presetOptions.enableRowSelection;\n\n // guard options that might be unintentionally broken\n React.useEffect(() => {\n if (enableRowExpansion && !props.expandedRowRenderer) {\n console.warn(\n `Table3 (id: ${props.id}) - Row expansion is enabled but no \\`expandedRowRenderer\\` has been provided. Provide one to enable row expansion or set \\`enableRowExpansion\\` to \\`false\\`.`\n );\n }\n\n if (enableRowSelection && !props.onRowSelect) {\n console.warn(\n `Table3 (id: ${props.id}) - Row selection is enabled but no \\`onRowSelect\\` handler has been provided. Provide one to enable row selection or set \\`enableRowSelection\\` to \\`false\\`.`\n );\n }\n }, []);\n\n return {\n enableColumnFreezing: props.enableColumnFreezing ?? presetOptions.enableColumnFreezing,\n enableColumnHiding: props.enableColumnHiding ?? presetOptions.enableColumnHiding,\n enableColumnOrdering: props.enableColumnOrdering ?? presetOptions.enableColumnOrdering,\n enableColumnResizing: props.enableColumnResizing ?? presetOptions.enableColumnResizing,\n enableFontSize: props.enableFontSize ?? presetOptions.enableFontSize,\n enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,\n enableRowDrag: (props.enableRowDrag ?? presetOptions.enableRowDrag) && !!props.onRowDrag,\n enableRowDrop: (props.enableRowDrop ?? presetOptions.enableRowDrop) && !!props.onRowDrop,\n enableRowExpansion: enableRowExpansion && !!props.expandedRowRenderer,\n enableRowGoto: (props.enableRowGoto ?? presetOptions.enableRowGoto) && !!props.onRowGoto,\n enableRowHeight: props.enableRowHeight ?? presetOptions.enableRowHeight,\n enableRowSelection: enableRowSelection && !!props.onRowSelect,\n enableRowSelectionSingle:\n (props.enableRowSelectionSingle ?? presetOptions.enableRowSelectionSingle) &&\n enableRowSelection &&\n !!props.onRowSelect,\n enableEditing: props.enableEditing ?? presetOptions.enableEditing,\n enableFiltering: props.enableFiltering ?? presetOptions.enableFiltering,\n enableSearch: props.enableSearch ?? presetOptions.enableSearch,\n enableSorting: props.enableSorting ?? presetOptions.enableSorting,\n };\n}\n"],"names":["DEFAULT_ALL_DISABLED","enableColumnFreezing","enableColumnHiding","enableColumnOrdering","enableColumnResizing","enableFontSize","enablePrinting","enableRowDrag","enableRowDrop","enableRowExpansion","enableRowGoto","enableRowHeight","enableRowSelection","enableRowSelectionSingle","enableEditing","enableFiltering","enableSearch","enableSorting","presets","display","editable","useTablePreset","props","presetOptions","preset","React","useEffect","expandedRowRenderer","console","warn","id","onRowSelect","onRowDrag","onRowDrop","onRowGoto"],"mappings":";;AAGA,MAAMA,oBAAoB,GAAkB;EACxCC,oBAAoB,EAAE,KAAK;EAC3BC,kBAAkB,EAAE,KAAK;EACzBC,oBAAoB,EAAE,KAAK;EAC3BC,oBAAoB,EAAE,KAAK;EAC3BC,cAAc,EAAE,KAAK;EACrBC,cAAc,EAAE,KAAK;EACrBC,aAAa,EAAE,KAAK;EACpBC,aAAa,EAAE,KAAK;EACpBC,kBAAkB,EAAE,KAAK;EACzBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,kBAAkB,EAAE,KAAK;EACzBC,wBAAwB,EAAE,KAAK;EAC/BC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,YAAY,EAAE,KAAK;EACnBC,aAAa,EAAE;CAClB;AAED,MAAMC,OAAO,GAAwC;EACjDC,OAAO,EAAE;IACLlB,oBAAoB,EAAE,IAAI;IAC1BC,kBAAkB,EAAE,IAAI;IACxBC,oBAAoB,EAAE,IAAI;IAC1BC,oBAAoB,EAAE,IAAI;IAC1BC,cAAc,EAAE,IAAI;IACpBC,cAAc,EAAE,KAAK;IACrBC,aAAa,EAAE,IAAI;IACnBC,aAAa,EAAE,IAAI;IACnBC,kBAAkB,EAAE,IAAI;IACxBC,aAAa,EAAE,IAAI;IACnBC,eAAe,EAAE,IAAI;IACrBC,kBAAkB,EAAE,IAAI;IACxBC,wBAAwB,EAAE,KAAK;IAC/BC,aAAa,EAAE,KAAK;IACpBC,eAAe,EAAE,IAAI;IACrBC,YAAY,EAAE,IAAI;IAClBC,aAAa,EAAE;GAClB;EACDG,QAAQ,EAAE;IACNnB,oBAAoB,EAAE,IAAI;IAC1BC,kBAAkB,EAAE,IAAI;IACxBC,oBAAoB,EAAE,IAAI;IAC1BC,oBAAoB,EAAE,IAAI;IAC1BC,cAAc,EAAE,IAAI;IACpBC,cAAc,EAAE,KAAK;IACrBC,aAAa,EAAE,IAAI;IACnBC,aAAa,EAAE,IAAI;IACnBC,kBAAkB,EAAE,IAAI;IACxBC,aAAa,EAAE,IAAI;IACnBC,eAAe,EAAE,IAAI;IACrBC,kBAAkB,EAAE,IAAI;IACxBC,wBAAwB,EAAE,KAAK;IAC/BC,aAAa,EAAE,IAAI;IACnBC,eAAe,EAAE,IAAI;IACrBC,YAAY,EAAE,IAAI;IAClBC,aAAa,EAAE;;CAEtB;SAEeI,cAAc,CAAkBC,KAAyB;;EACrE,MAAMC,aAAa,GAAGD,KAAK,CAACE,MAAM,GAAGN,OAAO,CAACI,KAAK,CAACE,MAAM,CAAC,GAAGxB,oBAAoB;EAEjF,MAAMS,kBAAkB,4BAAGa,KAAK,CAACb,kBAAkB,yEAAIc,aAAa,CAACd,kBAAkB;EACvF,MAAMG,kBAAkB,4BAAGU,KAAK,CAACV,kBAAkB,yEAAIW,aAAa,CAACX,kBAAkB;;EAGvFa,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIjB,kBAAkB,IAAI,CAACa,KAAK,CAACK,mBAAmB,EAAE;MAClDC,OAAO,CAACC,IAAI,gBACOP,KAAK,CAACQ,kKAAkK,CAC1L;;IAGL,IAAIlB,kBAAkB,IAAI,CAACU,KAAK,CAACS,WAAW,EAAE;MAC1CH,OAAO,CAACC,IAAI,gBACOP,KAAK,CAACQ,kKAAkK,CAC1L;;GAER,EAAE,EAAE,CAAC;EAEN,OAAO;IACH7B,oBAAoB,2BAAEqB,KAAK,CAACrB,oBAAoB,yEAAIsB,aAAa,CAACtB,oBAAoB;IACtFC,kBAAkB,2BAAEoB,KAAK,CAACpB,kBAAkB,yEAAIqB,aAAa,CAACrB,kBAAkB;IAChFC,oBAAoB,2BAAEmB,KAAK,CAACnB,oBAAoB,yEAAIoB,aAAa,CAACpB,oBAAoB;IACtFC,oBAAoB,2BAAEkB,KAAK,CAAClB,oBAAoB,yEAAImB,aAAa,CAACnB,oBAAoB;IACtFC,cAAc,2BAAEiB,KAAK,CAACjB,cAAc,yEAAIkB,aAAa,CAAClB,cAAc;IACpEC,cAAc,2BAAEgB,KAAK,CAAChB,cAAc,yEAAIiB,aAAa,CAACjB,cAAc;IACpEC,aAAa,EAAE,yBAACe,KAAK,CAACf,aAAa,uEAAIgB,aAAa,CAAChB,aAAa,KAAK,CAAC,CAACe,KAAK,CAACU,SAAS;IACxFxB,aAAa,EAAE,yBAACc,KAAK,CAACd,aAAa,uEAAIe,aAAa,CAACf,aAAa,KAAK,CAAC,CAACc,KAAK,CAACW,SAAS;IACxFxB,kBAAkB,EAAEA,kBAAkB,IAAI,CAAC,CAACa,KAAK,CAACK,mBAAmB;IACrEjB,aAAa,EAAE,yBAACY,KAAK,CAACZ,aAAa,uEAAIa,aAAa,CAACb,aAAa,KAAK,CAAC,CAACY,KAAK,CAACY,SAAS;IACxFvB,eAAe,2BAAEW,KAAK,CAACX,eAAe,yEAAIY,aAAa,CAACZ,eAAe;IACvEC,kBAAkB,EAAEA,kBAAkB,IAAI,CAAC,CAACU,KAAK,CAACS,WAAW;IAC7DlB,wBAAwB,EACpB,2BAACS,KAAK,CAACT,wBAAwB,2EAAIU,aAAa,CAACV,wBAAwB,KACzED,kBAAkB,IAClB,CAAC,CAACU,KAAK,CAACS,WAAW;IACvBjB,aAAa,0BAAEQ,KAAK,CAACR,aAAa,uEAAIS,aAAa,CAACT,aAAa;IACjEC,eAAe,2BAAEO,KAAK,CAACP,eAAe,yEAAIQ,aAAa,CAACR,eAAe;IACvEC,YAAY,yBAAEM,KAAK,CAACN,YAAY,qEAAIO,aAAa,CAACP,YAAY;IAC9DC,aAAa,0BAAEK,KAAK,CAACL,aAAa,uEAAIM,aAAa,CAACN;GACvD;AACL;;;;"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React__default from 'react';
|
2
|
+
|
3
|
+
function useTableRefInstanceSetup(table, ref) {
|
4
|
+
React__default.useEffect(() => {
|
5
|
+
if (ref.current) {
|
6
|
+
const tableMeta = table.options.meta;
|
7
|
+
ref.current.instance = {
|
8
|
+
resetFiltering: () => table.resetColumnFilters(),
|
9
|
+
resetRowExpansion: () => table.resetExpanded(),
|
10
|
+
resetRowSelection: () => table.resetRowSelection(),
|
11
|
+
resetSorting: () => table.resetSorting(),
|
12
|
+
toggleEditing: enabled => tableMeta.editing.toggleEditing(enabled !== null && enabled !== void 0 ? enabled : editing => !editing)
|
13
|
+
};
|
14
|
+
}
|
15
|
+
}, [table, ref.current]);
|
16
|
+
}
|
17
|
+
|
18
|
+
export { useTableRefInstanceSetup };
|
19
|
+
//# sourceMappingURL=useTableRefInstanceSetup.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useTableRefInstanceSetup.js","sources":["../../../../../../../../src/components/Table3/hooks/useTableRefInstanceSetup.ts"],"sourcesContent":["import React from 'react';\nimport { Table3Ref } from '../types';\nimport { Table as RTable, TableMeta } from '@tanstack/react-table';\n\nexport function useTableRefInstanceSetup<TType = unknown>(table: RTable<TType>, ref: React.RefObject<Table3Ref>) {\n React.useEffect(() => {\n if (ref.current) {\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n ref.current.instance = {\n resetFiltering: () => table.resetColumnFilters(),\n resetRowExpansion: () => table.resetExpanded(),\n resetRowSelection: () => table.resetRowSelection(),\n resetSorting: () => table.resetSorting(),\n toggleEditing: (enabled: boolean | undefined) =>\n tableMeta.editing.toggleEditing(enabled ?? (editing => !editing)),\n };\n }\n }, [table, ref.current]);\n}\n"],"names":["useTableRefInstanceSetup","table","ref","React","useEffect","current","tableMeta","options","meta","instance","resetFiltering","resetColumnFilters","resetRowExpansion","resetExpanded","resetRowSelection","resetSorting","toggleEditing","enabled","editing"],"mappings":";;SAIgBA,wBAAwB,CAAkBC,KAAoB,EAAEC,GAA+B;EAC3GC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIF,GAAG,CAACG,OAAO,EAAE;MACb,MAAMC,SAAS,GAAGL,KAAK,CAACM,OAAO,CAACC,IAAwB;MAExDN,GAAG,CAACG,OAAO,CAACI,QAAQ,GAAG;QACnBC,cAAc,EAAE,MAAMT,KAAK,CAACU,kBAAkB,EAAE;QAChDC,iBAAiB,EAAE,MAAMX,KAAK,CAACY,aAAa,EAAE;QAC9CC,iBAAiB,EAAE,MAAMb,KAAK,CAACa,iBAAiB,EAAE;QAClDC,YAAY,EAAE,MAAMd,KAAK,CAACc,YAAY,EAAE;QACxCC,aAAa,EAAGC,OAA4B,IACxCX,SAAS,CAACY,OAAO,CAACF,aAAa,CAACC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAKC,OAAO,IAAI,CAACA,OAAO;OACtE;;GAER,EAAE,CAACjB,KAAK,EAAEC,GAAG,CAACG,OAAO,CAAC,CAAC;AAC5B;;;;"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { useTableRenderStrategy as useTableRenderStrategy$1 } from './virtualised.js';
|
2
|
+
|
3
|
+
function useTableRenderStrategy(props, table, ref) {
|
4
|
+
return useTableRenderStrategy$1(props, table, ref);
|
5
|
+
}
|
6
|
+
|
7
|
+
export { useTableRenderStrategy };
|
8
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../src/components/Table3/strategies/index.ts"],"sourcesContent":["import { Table as RTable } from '@tanstack/react-table';\nimport { Table3Props, TableStrategy } from '../types';\nimport * as virtualRenderer from './virtualised';\n\nexport function useTableRenderStrategy<TType = unknown>(\n props: Table3Props<TType>,\n table: RTable<TType>,\n ref: React.RefObject<HTMLDivElement>\n): TableStrategy {\n return virtualRenderer.useTableRenderStrategy<TType>(props, table, ref);\n}\n"],"names":["useTableRenderStrategy","props","table","ref","virtualRenderer"],"mappings":";;SAIgBA,sBAAsB,CAClCC,KAAyB,EACzBC,KAAoB,EACpBC,GAAoC;EAEpC,OAAOC,wBAAsC,CAAQH,KAAK,EAAEC,KAAK,EAAEC,GAAG,CAAC;AAC3E;;;;"}
|
@@ -0,0 +1,113 @@
|
|
1
|
+
import React__default from 'react';
|
2
|
+
import { flexRender } from '@tanstack/react-table';
|
3
|
+
import { useVirtual } from 'react-virtual';
|
4
|
+
import { Row } from '../components/rows/Row.js';
|
5
|
+
import { ExpandedRow } from '../components/rows/ExpandedRow.js';
|
6
|
+
import { rowHeightSizeEstimates } from '../components/rows/styles.js';
|
7
|
+
import { SkeletonRow } from '../components/rows/SkeletonRow.js';
|
8
|
+
|
9
|
+
function createBodyRenderer(props, rows, table, tableRef, virtualiser, setExpandedRowSizes) {
|
10
|
+
return () => {
|
11
|
+
if (rows.length) {
|
12
|
+
var _virtualiser$virtualI, _virtualiser$virtualI2, _virtualiser$virtualI3, _virtualiser$virtualI4;
|
13
|
+
const paddingTop = virtualiser.virtualItems.length > 0 ? (_virtualiser$virtualI = (_virtualiser$virtualI2 = virtualiser.virtualItems[0]) === null || _virtualiser$virtualI2 === void 0 ? void 0 : _virtualiser$virtualI2.start) !== null && _virtualiser$virtualI !== void 0 ? _virtualiser$virtualI : 0 : 0;
|
14
|
+
const paddingBottom = virtualiser.virtualItems.length > 0 ? virtualiser.totalSize - ((_virtualiser$virtualI3 = (_virtualiser$virtualI4 = virtualiser.virtualItems[virtualiser.virtualItems.length - 1]) === null || _virtualiser$virtualI4 === void 0 ? void 0 : _virtualiser$virtualI4.end) !== null && _virtualiser$virtualI3 !== void 0 ? _virtualiser$virtualI3 : 0) : 0;
|
15
|
+
const createSetSizeHandler = index => size => {
|
16
|
+
setExpandedRowSizes(sizes => {
|
17
|
+
if (size !== sizes[index]) {
|
18
|
+
return {
|
19
|
+
...sizes,
|
20
|
+
[index]: size
|
21
|
+
};
|
22
|
+
}
|
23
|
+
return sizes;
|
24
|
+
});
|
25
|
+
};
|
26
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, paddingTop ? /*#__PURE__*/React__default.createElement("div", {
|
27
|
+
style: {
|
28
|
+
height: paddingTop
|
29
|
+
},
|
30
|
+
className: "col-span-full"
|
31
|
+
}) : null, virtualiser.virtualItems.map(virtualRow => {
|
32
|
+
const row = rows[virtualRow.index];
|
33
|
+
if (row.original === undefined && props.pageSize) {
|
34
|
+
const pageIndex = Math.floor(virtualRow.index / props.pageSize) * props.pageSize / props.pageSize;
|
35
|
+
return /*#__PURE__*/React__default.createElement(SkeletonRow, {
|
36
|
+
key: row.id,
|
37
|
+
columns: table.getVisibleLeafColumns(),
|
38
|
+
loadPage: props.loadPage,
|
39
|
+
pageIndex: pageIndex,
|
40
|
+
table: table
|
41
|
+
});
|
42
|
+
}
|
43
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
44
|
+
key: row.id
|
45
|
+
}, /*#__PURE__*/React__default.createElement(Row, {
|
46
|
+
index: virtualRow.index,
|
47
|
+
isLastRow: virtualRow.index === rows.length - 1,
|
48
|
+
row: row,
|
49
|
+
table: table,
|
50
|
+
tableRef: tableRef
|
51
|
+
}, row.getVisibleCells().map((cell, index) => /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
52
|
+
key: cell.id
|
53
|
+
}, flexRender(cell.column.columnDef.cell, {
|
54
|
+
...cell.getContext(),
|
55
|
+
index,
|
56
|
+
tableRef
|
57
|
+
})))), row.getIsExpanded() ? /*#__PURE__*/React__default.createElement(ExpandedRow, {
|
58
|
+
data: row.original,
|
59
|
+
renderer: props.expandedRowRenderer,
|
60
|
+
registerSize: createSetSizeHandler(virtualRow.index)
|
61
|
+
}) : null);
|
62
|
+
}), paddingBottom ? /*#__PURE__*/React__default.createElement("div", {
|
63
|
+
style: {
|
64
|
+
height: paddingBottom
|
65
|
+
},
|
66
|
+
className: "col-span-full"
|
67
|
+
}) : null);
|
68
|
+
}
|
69
|
+
return null;
|
70
|
+
};
|
71
|
+
}
|
72
|
+
function useTableRenderStrategy(props, table, tableRef) {
|
73
|
+
const meta = table.options.meta;
|
74
|
+
const rows = table.getRowModel().rows;
|
75
|
+
const expandedState = table.getState().expanded;
|
76
|
+
const [expandedRowSizes, setExpandedRowSizes] = React__default.useState({});
|
77
|
+
const firstAvailableExpandedRowHeight = React__default.useMemo(() => {
|
78
|
+
const values = Object.values(expandedRowSizes);
|
79
|
+
return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;
|
80
|
+
}, [expandedRowSizes]);
|
81
|
+
const estimateSize = React__default.useCallback(index => {
|
82
|
+
const rowHeight = meta.rowHeight.height ? rowHeightSizeEstimates[meta.rowHeight.height] : rowHeightSizeEstimates.medium;
|
83
|
+
if (expandedState === true || expandedState !== null && expandedState !== void 0 && expandedState[index]) {
|
84
|
+
var _ref, _expandedRowSizes$ind;
|
85
|
+
return rowHeight + ((_ref = (_expandedRowSizes$ind = expandedRowSizes[index]) !== null && _expandedRowSizes$ind !== void 0 ? _expandedRowSizes$ind : firstAvailableExpandedRowHeight) !== null && _ref !== void 0 ? _ref : 0);
|
86
|
+
}
|
87
|
+
return rowHeight;
|
88
|
+
}, [meta.rowHeight.height, expandedRowSizes, expandedState]);
|
89
|
+
const virtualiser = useVirtual({
|
90
|
+
parentRef: tableRef,
|
91
|
+
size: rows.length,
|
92
|
+
estimateSize
|
93
|
+
});
|
94
|
+
const scrollToIndex = React__default.useCallback((index, options) => {
|
95
|
+
if (tableRef.current) {
|
96
|
+
if (index <= 0) {
|
97
|
+
tableRef.current.scrollTo(tableRef.current.scrollLeft, 0);
|
98
|
+
} else if (index >= rows.length - 1) {
|
99
|
+
var _tableRef$current;
|
100
|
+
(_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.scrollTo(0, tableRef.current.scrollHeight);
|
101
|
+
} else {
|
102
|
+
virtualiser.scrollToIndex(index, options);
|
103
|
+
}
|
104
|
+
}
|
105
|
+
}, [rows.length, tableRef.current]);
|
106
|
+
return {
|
107
|
+
renderBody: createBodyRenderer(props, rows, table, tableRef, virtualiser, setExpandedRowSizes),
|
108
|
+
scrollToIndex
|
109
|
+
};
|
110
|
+
}
|
111
|
+
|
112
|
+
export { useTableRenderStrategy };
|
113
|
+
//# sourceMappingURL=virtualised.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"virtualised.js","sources":["../../../../../../../../src/components/Table3/strategies/virtualised.tsx"],"sourcesContent":["import React from 'react';\nimport { flexRender, Row as RTRow, Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { useVirtual } from 'react-virtual';\nimport { Row } from '../components/rows/Row';\nimport { Table3Props, Table3RowExpansionRenderer, TableStrategy } from '../types';\nimport { ExpandedRow } from '../components/rows/ExpandedRow';\nimport { rowHeightSizeEstimates } from '../components/rows/styles';\nimport { SkeletonRow } from '../components/rows/SkeletonRow';\n\nfunction createBodyRenderer<TType = unknown>(\n props: Table3Props<TType>,\n rows: RTRow<TType>[],\n table: RTable<TType>,\n tableRef: React.RefObject<HTMLDivElement>,\n virtualiser: ReturnType<typeof useVirtual>,\n setExpandedRowSizes: React.Dispatch<React.SetStateAction<Record<string, number>>>\n) {\n return () => {\n if (rows.length) {\n const paddingTop = virtualiser.virtualItems.length > 0 ? virtualiser.virtualItems[0]?.start ?? 0 : 0;\n const paddingBottom =\n virtualiser.virtualItems.length > 0\n ? virtualiser.totalSize - (virtualiser.virtualItems[virtualiser.virtualItems.length - 1]?.end ?? 0)\n : 0;\n\n const createSetSizeHandler = (index: number) => (size: number) => {\n setExpandedRowSizes(sizes => {\n if (size !== sizes[index]) {\n return { ...sizes, [index]: size };\n }\n\n return sizes;\n });\n };\n\n return (\n <>\n {paddingTop ? <div style={{ height: paddingTop }} className=\"col-span-full\" /> : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n if (row.original === undefined && props.pageSize) {\n const pageIndex = (Math.floor(virtualRow.index / props.pageSize) * props.pageSize) / props.pageSize;\n\n return (\n <SkeletonRow<TType>\n key={row.id}\n columns={table.getVisibleLeafColumns()}\n loadPage={props.loadPage}\n pageIndex={pageIndex}\n table={table}\n />\n );\n }\n\n return (\n <React.Fragment key={row.id}>\n <Row<TType>\n index={virtualRow.index}\n isLastRow={virtualRow.index === rows.length - 1}\n row={row}\n table={table}\n tableRef={tableRef}>\n {row.getVisibleCells().map((cell, index) => (\n <React.Fragment key={cell.id}>\n {flexRender(cell.column.columnDef.cell, { ...cell.getContext(), index, tableRef })}\n </React.Fragment>\n ))}\n </Row>\n {row.getIsExpanded() ? (\n <ExpandedRow\n data={row.original}\n renderer={props.expandedRowRenderer as Table3RowExpansionRenderer}\n registerSize={createSetSizeHandler(virtualRow.index)}\n />\n ) : null}\n </React.Fragment>\n );\n })}\n {paddingBottom ? <div style={{ height: paddingBottom }} className=\"col-span-full\" /> : null}\n </>\n );\n }\n\n return null;\n };\n}\n\nexport function useTableRenderStrategy<TType = unknown>(\n props: Table3Props<TType>,\n table: RTable<TType>,\n tableRef: React.RefObject<HTMLDivElement>\n): TableStrategy {\n const meta = table.options.meta as TableMeta<TType>;\n const rows = table.getRowModel().rows;\n const expandedState = table.getState().expanded;\n\n const [expandedRowSizes, setExpandedRowSizes] = React.useState<Record<string, number>>({});\n\n const firstAvailableExpandedRowHeight = React.useMemo(() => {\n const values: number[] = Object.values(expandedRowSizes);\n return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;\n }, [expandedRowSizes]);\n\n const estimateSize = React.useCallback(\n index => {\n const rowHeight = meta.rowHeight.height\n ? rowHeightSizeEstimates[meta.rowHeight.height]\n : rowHeightSizeEstimates.medium;\n\n if (expandedState === true || expandedState?.[index]) {\n return rowHeight + (expandedRowSizes[index] ?? firstAvailableExpandedRowHeight ?? 0);\n }\n\n return rowHeight;\n },\n [meta.rowHeight.height, expandedRowSizes, expandedState]\n );\n\n const virtualiser = useVirtual({\n parentRef: tableRef,\n size: rows.length,\n estimateSize,\n });\n\n const scrollToIndex = React.useCallback(\n (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => {\n if (tableRef.current) {\n if (index <= 0) {\n tableRef.current.scrollTo(tableRef.current.scrollLeft, 0);\n } else if (index >= rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [rows.length, tableRef.current]\n );\n\n return {\n renderBody: createBodyRenderer(props, rows, table, tableRef, virtualiser, setExpandedRowSizes),\n scrollToIndex,\n };\n}\n"],"names":["createBodyRenderer","props","rows","table","tableRef","virtualiser","setExpandedRowSizes","length","paddingTop","virtualItems","start","paddingBottom","totalSize","end","createSetSizeHandler","index","size","sizes","React","style","height","className","map","virtualRow","row","original","undefined","pageSize","pageIndex","Math","floor","SkeletonRow","key","id","columns","getVisibleLeafColumns","loadPage","Fragment","Row","isLastRow","getVisibleCells","cell","flexRender","column","columnDef","getContext","getIsExpanded","ExpandedRow","data","renderer","expandedRowRenderer","registerSize","useTableRenderStrategy","meta","options","getRowModel","expandedState","getState","expanded","expandedRowSizes","useState","firstAvailableExpandedRowHeight","useMemo","values","Object","reduce","a","b","estimateSize","useCallback","rowHeight","rowHeightSizeEstimates","medium","useVirtual","parentRef","scrollToIndex","current","scrollTo","scrollLeft","scrollHeight","renderBody"],"mappings":"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"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
var Table3FilterComparator;
|
2
|
+
(function (Table3FilterComparator) {
|
3
|
+
Table3FilterComparator[Table3FilterComparator["Contains"] = 0] = "Contains";
|
4
|
+
Table3FilterComparator[Table3FilterComparator["DoesNotContain"] = 1] = "DoesNotContain";
|
5
|
+
Table3FilterComparator[Table3FilterComparator["IsEqualTo"] = 2] = "IsEqualTo";
|
6
|
+
Table3FilterComparator[Table3FilterComparator["IsNotEqualTo"] = 3] = "IsNotEqualTo";
|
7
|
+
Table3FilterComparator[Table3FilterComparator["IsGreaterThan"] = 4] = "IsGreaterThan";
|
8
|
+
Table3FilterComparator[Table3FilterComparator["IsLessThan"] = 5] = "IsLessThan";
|
9
|
+
Table3FilterComparator[Table3FilterComparator["IsBetween"] = 6] = "IsBetween";
|
10
|
+
Table3FilterComparator[Table3FilterComparator["IsOneOf"] = 7] = "IsOneOf";
|
11
|
+
Table3FilterComparator[Table3FilterComparator["IsNoneOf"] = 8] = "IsNoneOf";
|
12
|
+
Table3FilterComparator[Table3FilterComparator["IsAllOf"] = 9] = "IsAllOf";
|
13
|
+
Table3FilterComparator[Table3FilterComparator["IsEmpty"] = 10] = "IsEmpty";
|
14
|
+
Table3FilterComparator[Table3FilterComparator["IsNotEmpty"] = 11] = "IsNotEmpty";
|
15
|
+
})(Table3FilterComparator || (Table3FilterComparator = {}));
|
16
|
+
|
17
|
+
export { Table3FilterComparator };
|
18
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table3/types.ts"],"sourcesContent":["import {\n ColumnFilter as RTColumnFilter,\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ColumnSort as RTColumnSort,\n SortingState,\n VisibilityState,\n BuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { MenuProps } from '../Menu/Menu';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type SortFn<TType = unknown> = ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | BuiltInSortingFn | 'auto';\n\n// columns\nexport type Table3ColumnRenderer<TValue = unknown, TType = unknown> = (value: TValue, row: TType) => JSX.Element | string | null;\nexport type Table3ColumnFooterRenderer<TValue = unknown> = (values: TValue[]) => JSX.Element | string | null;\nexport type Table3ColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string);\nexport type ColumnAlignment = 'left' | 'center' | 'right';\nexport type ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\nexport type Table3ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\n\nexport type Table3ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type Table3ColumnControlRenderer<TType = unknown> =\n | ((props: Table3ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\nexport type Table3ColumnProps<TType = unknown> = {\n accessor: string;\n align?: ColumnAlignment;\n className?: Table3ColumnClassNameHandler<TType>;\n control?: Table3ColumnControlRenderer<TType>;\n dataType?: ColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: number | 'grow';\n enableFiltering?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n renderer?: Table3ColumnRenderer<unknown, TType>;\n sort?: SortDirection;\n sortFn?: SortFn<TType>;\n tooltip?: string;\n};\n\n// rows\nexport type DeprecatedRowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type Table3RowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type Table3FontSize = 'small' | 'medium' | 'large';\nexport type Table3RowClickHandler<TType = unknown> = (row: TType) => void;\nexport type Table3RowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type Table3RowDropHandler<TType = any> = (event: React.DragEvent, row: TType) => void;\nexport type Table3RowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type Table3RowSelectionHandler<TType = unknown> = (rows: TType[]) => void;\n\nexport type Table3RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element;\n\n// table\nexport type Table3RenderStrategy = 'static' | 'virtual';\nexport type Table3Preset = 'display' | 'editable';\nexport type Table3Settings = {\n columnFilters?: ColumnFiltersState;\n columnFreezingIndex?: number;\n columnOrder?: ColumnOrderState;\n columnPinning?: ColumnPinningState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: Table3FontSize;\n // deprecated - here to map existing settings across to new settings\n rowDensity?: DeprecatedRowDensity;\n rowHeight?: Table3RowHeight;\n sorting?: SortingState;\n};\nexport type Table3SettingsAdapter = (settings: Table3Settings) => void;\n\nexport enum Table3FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table3FilterValue = {\n comparator: Table3FilterComparator;\n value: any;\n};\n\nexport type Table3Filter = { id: string; value: Table3FilterValue };\n\nexport type ColumnFilter = RTColumnFilter;\nexport type Table3FilterHandler = (filters: ColumnFilter[]) => void;\nexport type Table3SearchHandler = (query: string | undefined) => Promise<void>;\nexport type Table3LoadPageHandler = (\n pageIndex: number,\n sorting: ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3LoadAllHandler = (sorting: ColumnSort[], filters: ColumnFilter[], search: string | undefined) => Promise<void>;\nexport type Table3RowGotoHandler = (\n column: string,\n query: string,\n sorting: ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type ColumnSort = RTColumnSort;\nexport type Table3SortHandler = (sorting: ColumnSort[]) => void;\nexport type TableStrategy = {\n renderBody: () => JSX.Element | JSX.Element[] | null;\n scrollToIndex: (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\n};\nexport type Table3ShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type Table3ShortcutHandlerObject<TType = unknown> = {\n handler: Table3ShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\nexport type Table3Shortcuts<TType = unknown> = Record<\n string,\n Table3ShortcutHandlerFn<TType> | Table3ShortcutHandlerObject<TType>\n>;\nexport type Table3SaveHandler<TType = unknown> = (data: TType) => Promise<void>;\n\nexport type Table3Options = {\n enableColumnFreezing: boolean;\n enableColumnHiding: boolean;\n enableColumnOrdering: boolean;\n enableColumnResizing: boolean;\n enableFontSize: boolean;\n enablePrinting: boolean;\n enableRowDrag: boolean;\n enableRowDrop: boolean;\n enableRowExpansion: boolean;\n enableRowGoto: boolean;\n enableRowHeight: boolean;\n enableRowSelection: boolean;\n enableRowSelectionSingle: boolean;\n enableEditing: boolean;\n enableFiltering: boolean;\n enableSearch: boolean;\n enableSorting: boolean;\n};\n\nexport type CommonTable3Props<TType = unknown> = Partial<Table3Options> & {\n actionsForRow?: Table3RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n children: (React.ReactElement<Table3ColumnProps<TType>> | boolean | null | undefined)[];\n data: TType[];\n defaultColumnFreezingIndex?: number;\n defaultCurrentRowIndex?: number;\n defaultSettings?: Table3Settings;\n emptyState?: () => JSX.Element;\n expandedRowRenderer?: Table3RowExpansionRenderer<TType>;\n id: string;\n onChangeSettings?: Table3SettingsAdapter;\n onRowClick?: Table3RowClickHandler<TType>;\n onRowDrag?: Table3RowDragHandler<TType>;\n onRowDrop?: Table3RowDropHandler<TType>;\n onRowGoto?: Table3RowGotoHandler;\n onRowSelect?: Table3RowSelectionHandler<TType>;\n onFilter?: Table3FilterHandler;\n onSave?: Table3SaveHandler;\n onSearch?: Table3SearchHandler;\n onSort?: Table3SortHandler;\n preset?: Table3Preset;\n shortcuts?: Table3Shortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n};\n\ninterface ClientTable3Props<TType = unknown> extends CommonTable3Props<TType> {\n length?: never;\n loadPage?: never;\n loadAll?: never;\n pageSize?: never;\n}\n\ninterface ServerTable3Props<TType = unknown> extends CommonTable3Props<TType> {\n length: number | undefined;\n loadPage: Table3LoadPageHandler;\n loadAll: Table3LoadAllHandler;\n pageSize?: number;\n}\n\nexport type Table3Props<TType = unknown> = ClientTable3Props<TType> | ServerTable3Props<TType>;\n\nexport type Table3Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n toggleEditing: (enabled: boolean | undefined) => void;\n };\n};\n\nexport type Table3Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n editing: {\n actions: {\n tooltip: string;\n save: string;\n clear: string;\n exit: string;\n };\n buttons: {\n edit: {\n text: string;\n tooltip: string;\n };\n };\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n saving: {\n progress: string;\n complete: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n};\n"],"names":["Table3FilterComparator"],"mappings":"IAqGYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { isDate } from 'date-fns';
|
2
|
+
|
3
|
+
const isInternalColumn = id => id.startsWith('__');
|
4
|
+
const isFrozenColumn = (index, table) => {
|
5
|
+
const tableMeta = table.options.meta;
|
6
|
+
if (!tableMeta.columnFreezing.isEnabled || tableMeta.columnFreezing.frozenColumnIndex === undefined) {
|
7
|
+
return false;
|
8
|
+
}
|
9
|
+
return tableMeta.columnFreezing.frozenColumnIndex >= index;
|
10
|
+
};
|
11
|
+
const getCurrentRowCellElement = (index, table) => {
|
12
|
+
const cellSelector = `[data-current="true"] [data-column-index="${index}"`;
|
13
|
+
return table.querySelector(cellSelector);
|
14
|
+
};
|
15
|
+
function scrollColumnIntoView(columnIndex, frozenColumnIndex, column, table) {
|
16
|
+
if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {
|
17
|
+
const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, table);
|
18
|
+
const highlightRef = column === null || column === void 0 ? void 0 : column.getBoundingClientRect();
|
19
|
+
const lastFrozenRect = lastFrozenColumnElement === null || lastFrozenColumnElement === void 0 ? void 0 : lastFrozenColumnElement.getBoundingClientRect();
|
20
|
+
// offset the width of frozen columns so that the column being scrolled to is not hidden behind them
|
21
|
+
if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {
|
22
|
+
const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;
|
23
|
+
table === null || table === void 0 ? void 0 : table.scrollTo(highlightRef.left - pinnedColumnsWidth, table.scrollTop);
|
24
|
+
}
|
25
|
+
} else {
|
26
|
+
column.scrollIntoView({
|
27
|
+
block: 'nearest',
|
28
|
+
inline: 'nearest'
|
29
|
+
});
|
30
|
+
}
|
31
|
+
}
|
32
|
+
function isCellHighlighted(query, value, children) {
|
33
|
+
// if we just stringify date, we get the full object with "Greenwich Meantime" etc in
|
34
|
+
const highlightValue = isDate(value) ? children : value;
|
35
|
+
return String(highlightValue).toLocaleLowerCase().includes(query.toLocaleLowerCase());
|
36
|
+
}
|
37
|
+
|
38
|
+
export { getCurrentRowCellElement, isCellHighlighted, isFrozenColumn, isInternalColumn, scrollColumnIntoView };
|
39
|
+
//# sourceMappingURL=columns.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"columns.js","sources":["../../../../../../../../src/components/Table3/util/columns.ts"],"sourcesContent":["import { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { isDate } from 'date-fns';\n\nexport const isInternalColumn = (id: string) => id.startsWith('__');\n\nexport const isFrozenColumn = <TType = unknown>(index: number, table: RTable<TType>) => {\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n if (!tableMeta.columnFreezing.isEnabled || tableMeta.columnFreezing.frozenColumnIndex === undefined) {\n return false;\n }\n\n return tableMeta.columnFreezing.frozenColumnIndex >= index;\n};\n\nexport const getCurrentRowCellElement = (index: number, table: HTMLElement) => {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return table.querySelector(cellSelector);\n};\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, table: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, table);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n table?.scrollTo(highlightRef.left - pinnedColumnsWidth, table.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n\nexport function isCellHighlighted(query: string, value: unknown, children: JSX.Element | string | null) {\n // if we just stringify date, we get the full object with \"Greenwich Meantime\" etc in\n const highlightValue = isDate(value) ? children : value;\n return String(highlightValue).toLocaleLowerCase().includes(query.toLocaleLowerCase());\n}\n"],"names":["isInternalColumn","id","startsWith","isFrozenColumn","index","table","tableMeta","options","meta","columnFreezing","isEnabled","frozenColumnIndex","undefined","getCurrentRowCellElement","cellSelector","querySelector","scrollColumnIntoView","columnIndex","column","lastFrozenColumnElement","highlightRef","getBoundingClientRect","lastFrozenRect","left","width","pinnedColumnsWidth","scrollTo","scrollTop","scrollIntoView","block","inline","isCellHighlighted","query","value","children","highlightValue","isDate","String","toLocaleLowerCase","includes"],"mappings":";;MAGaA,gBAAgB,GAAIC,EAAU,IAAKA,EAAE,CAACC,UAAU,CAAC,IAAI;MAErDC,cAAc,GAAG,CAAkBC,KAAa,EAAEC,KAAoB;EAC/E,MAAMC,SAAS,GAAGD,KAAK,CAACE,OAAO,CAACC,IAAwB;EAExD,IAAI,CAACF,SAAS,CAACG,cAAc,CAACC,SAAS,IAAIJ,SAAS,CAACG,cAAc,CAACE,iBAAiB,KAAKC,SAAS,EAAE;IACjG,OAAO,KAAK;;EAGhB,OAAON,SAAS,CAACG,cAAc,CAACE,iBAAiB,IAAIP,KAAK;AAC9D;MAEaS,wBAAwB,GAAG,CAACT,KAAa,EAAEC,KAAkB;EACtE,MAAMS,YAAY,gDAAgDV,QAAQ;EAC1E,OAAOC,KAAK,CAACU,aAAa,CAACD,YAAY,CAAC;AAC5C;SAEgBE,oBAAoB,CAACC,WAAmB,EAAEN,iBAAyB,EAAEO,MAAmB,EAAEb,KAAkB;EACxH,IAAIM,iBAAiB,KAAKC,SAAS,IAAIK,WAAW,GAAGN,iBAAiB,EAAE;IACpE,MAAMQ,uBAAuB,GAAGN,wBAAwB,CAACF,iBAAiB,EAAEN,KAAK,CAAC;IAClF,MAAMe,YAAY,GAAGF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,qBAAqB,EAAE;IACpD,MAAMC,cAAc,GAAGH,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEE,qBAAqB,EAAE;;IAGvE,IAAID,YAAY,IAAIE,cAAc,IAAIF,YAAY,CAACG,IAAI,GAAGD,cAAc,CAACC,IAAI,GAAGD,cAAc,CAACE,KAAK,EAAE;MAClG,MAAMC,kBAAkB,GAAGH,cAAc,CAACC,IAAI,GAAGD,cAAc,CAACE,KAAK;MACrEnB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEqB,QAAQ,CAACN,YAAY,CAACG,IAAI,GAAGE,kBAAkB,EAAEpB,KAAK,CAACsB,SAAS,CAAC;;GAE/E,MAAM;IACHT,MAAM,CAACU,cAAc,CAAC;MAAEC,KAAK,EAAE,SAAS;MAAEC,MAAM,EAAE;KAAW,CAAC;;AAEtE;SAEgBC,iBAAiB,CAACC,KAAa,EAAEC,KAAc,EAAEC,QAAqC;;EAElG,MAAMC,cAAc,GAAGC,MAAM,CAACH,KAAK,CAAC,GAAGC,QAAQ,GAAGD,KAAK;EACvD,OAAOI,MAAM,CAACF,cAAc,CAAC,CAACG,iBAAiB,EAAE,CAACC,QAAQ,CAACP,KAAK,CAACM,iBAAiB,EAAE,CAAC;AACzF;;;;"}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import { isDate } from 'date-fns';
|
2
|
-
import { isWeakEqual } from '
|
2
|
+
import { isWeakEqual } from '../../../utils/date.js';
|
3
3
|
|
4
|
+
const focussableNodeNames = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'DETAILS'];
|
5
|
+
const focusableSelector = /*#__PURE__*/focussableNodeNames.join(', ');
|
4
6
|
const hasChanged = (value, newValue) => {
|
5
7
|
if (isDate(value) && isDate(newValue)) {
|
6
8
|
return !isWeakEqual(value, newValue);
|
@@ -10,6 +12,7 @@ const hasChanged = (value, newValue) => {
|
|
10
12
|
return value !== newValue;
|
11
13
|
};
|
12
14
|
const willRowMoveAfterSorting = (value, cell, rowIndex, rows, desc) => {
|
15
|
+
var _resortedRows$index;
|
13
16
|
const miniSortRows = [{
|
14
17
|
...cell.row,
|
15
18
|
original: {
|
@@ -31,9 +34,8 @@ const willRowMoveAfterSorting = (value, cell, rowIndex, rows, desc) => {
|
|
31
34
|
if (desc) {
|
32
35
|
resortedRows = resortedRows.reverse();
|
33
36
|
}
|
34
|
-
return resortedRows[index].id !== cell.row.id;
|
37
|
+
return ((_resortedRows$index = resortedRows[index]) === null || _resortedRows$index === void 0 ? void 0 : _resortedRows$index.id) !== cell.row.id;
|
35
38
|
};
|
36
|
-
const clickableNodeNames = ['INPUT', 'BUTTON', 'A', 'SELECT', 'OPTION', 'LABEL', 'TEXTAREA', 'DETAILS'];
|
37
39
|
|
38
|
-
export {
|
39
|
-
//# sourceMappingURL=
|
40
|
+
export { focusableSelector, focussableNodeNames, hasChanged, willRowMoveAfterSorting };
|
41
|
+
//# sourceMappingURL=editing.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"editing.js","sources":["../../../../../../../../src/components/Table3/util/editing.ts"],"sourcesContent":["import { isDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../utils/date';\n\nexport const focussableNodeNames = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'DETAILS'];\nexport const focusableSelector = focussableNodeNames.join(', ');\n\nexport const hasChanged = (value, newValue) => {\n if (isDate(value) && isDate(newValue)) {\n return !isWeakEqualDate(value, newValue);\n } else if (Array.isArray(value)) {\n return JSON.stringify(value) !== JSON.stringify(newValue);\n }\n\n return value !== newValue;\n};\n\nexport const willRowMoveAfterSorting = (value, cell, rowIndex, rows, desc): boolean => {\n const miniSortRows = [{ ...cell.row, original: { ...cell.row.original, [cell.column.id]: value } }];\n // getValue is used by the built-in sort functons, so we need to make sure it returns the changed value\n miniSortRows[0].getValue = () => value;\n\n let index = 0;\n\n if (rowIndex > 0) {\n miniSortRows.unshift(rows[rowIndex - 1]);\n index = 1;\n }\n\n if (rowIndex < rows.length - 1) {\n miniSortRows.push(rows[rowIndex + 1]);\n }\n\n let resortedRows = [...miniSortRows].sort((a, b) => cell.column.getSortingFn()(a, b, cell.column.id));\n\n if (desc) {\n resortedRows = resortedRows.reverse();\n }\n\n return resortedRows[index]?.id !== cell.row.id;\n};\n"],"names":["focussableNodeNames","focusableSelector","join","hasChanged","value","newValue","isDate","isWeakEqualDate","Array","isArray","JSON","stringify","willRowMoveAfterSorting","cell","rowIndex","rows","desc","miniSortRows","row","original","column","id","getValue","index","unshift","length","push","resortedRows","sort","a","b","getSortingFn","reverse"],"mappings":";;;MAGaA,mBAAmB,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS;MAC9EC,iBAAiB,gBAAGD,mBAAmB,CAACE,IAAI,CAAC,IAAI;MAEjDC,UAAU,GAAG,CAACC,KAAK,EAAEC,QAAQ;EACtC,IAAIC,MAAM,CAACF,KAAK,CAAC,IAAIE,MAAM,CAACD,QAAQ,CAAC,EAAE;IACnC,OAAO,CAACE,WAAe,CAACH,KAAK,EAAEC,QAAQ,CAAC;GAC3C,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;IAC7B,OAAOM,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,KAAKM,IAAI,CAACC,SAAS,CAACN,QAAQ,CAAC;;EAG7D,OAAOD,KAAK,KAAKC,QAAQ;AAC7B;MAEaO,uBAAuB,GAAG,CAACR,KAAK,EAAES,IAAI,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI;;EACrE,MAAMC,YAAY,GAAG,CAAC;IAAE,GAAGJ,IAAI,CAACK,GAAG;IAAEC,QAAQ,EAAE;MAAE,GAAGN,IAAI,CAACK,GAAG,CAACC,QAAQ;MAAE,CAACN,IAAI,CAACO,MAAM,CAACC,EAAE,GAAGjB;;GAAS,CAAC;;EAEnGa,YAAY,CAAC,CAAC,CAAC,CAACK,QAAQ,GAAG,MAAMlB,KAAK;EAEtC,IAAImB,KAAK,GAAG,CAAC;EAEb,IAAIT,QAAQ,GAAG,CAAC,EAAE;IACdG,YAAY,CAACO,OAAO,CAACT,IAAI,CAACD,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxCS,KAAK,GAAG,CAAC;;EAGb,IAAIT,QAAQ,GAAGC,IAAI,CAACU,MAAM,GAAG,CAAC,EAAE;IAC5BR,YAAY,CAACS,IAAI,CAACX,IAAI,CAACD,QAAQ,GAAG,CAAC,CAAC,CAAC;;EAGzC,IAAIa,YAAY,GAAG,CAAC,GAAGV,YAAY,CAAC,CAACW,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKjB,IAAI,CAACO,MAAM,CAACW,YAAY,EAAE,CAACF,CAAC,EAAEC,CAAC,EAAEjB,IAAI,CAACO,MAAM,CAACC,EAAE,CAAC,CAAC;EAErG,IAAIL,IAAI,EAAE;IACNW,YAAY,GAAGA,YAAY,CAACK,OAAO,EAAE;;EAGzC,OAAO,wBAAAL,YAAY,CAACJ,KAAK,CAAC,wDAAnB,oBAAqBF,EAAE,MAAKR,IAAI,CAACK,GAAG,CAACG,EAAE;AAClD;;;;"}
|
@@ -1,29 +1,31 @@
|
|
1
1
|
import { isDate, isBefore, isAfter } from 'date-fns';
|
2
2
|
import { isWeakEqual as isWeakEqual$1 } from '../../../utils/date.js';
|
3
|
-
import {
|
3
|
+
import { Table3FilterComparator } from '../types.js';
|
4
4
|
|
5
5
|
const toLowerCase = value => String(value !== null && value !== void 0 ? value : '').toLocaleLowerCase();
|
6
6
|
const isWeakContains = (left, right) => toLowerCase(left).includes(toLowerCase(right));
|
7
7
|
const isWeakEqual = (left, right) => toLowerCase(left) === toLowerCase(right);
|
8
|
-
|
8
|
+
function globalFilterFn(value, query) {
|
9
|
+
return isWeakContains(value, query);
|
10
|
+
}
|
9
11
|
// the filter type is only settable on the column definition, which would re-render all columns
|
10
12
|
// so instead we store it in the filter value, but that means we also have to destructure that
|
11
13
|
// before we filter - that's why this custom filter function exists
|
12
|
-
|
14
|
+
function columnFilterFn(value, filter) {
|
13
15
|
try {
|
14
|
-
if (filter.comparator ===
|
16
|
+
if (filter.comparator === Table3FilterComparator.IsEmpty || filter.comparator === Table3FilterComparator.IsNotEmpty) {
|
15
17
|
const isEmpty = value === undefined || value === null || value === '';
|
16
|
-
return filter.comparator ===
|
18
|
+
return filter.comparator === Table3FilterComparator.IsEmpty ? isEmpty : !isEmpty;
|
17
19
|
}
|
18
20
|
if (filter.value === undefined || filter.value === null || filter.value === '') {
|
19
21
|
return true;
|
20
22
|
}
|
21
23
|
switch (filter.comparator) {
|
22
|
-
case
|
24
|
+
case Table3FilterComparator.Contains:
|
23
25
|
return isWeakContains(value, filter.value);
|
24
|
-
case
|
26
|
+
case Table3FilterComparator.DoesNotContain:
|
25
27
|
return !isWeakContains(value, filter.value);
|
26
|
-
case
|
28
|
+
case Table3FilterComparator.IsEqualTo:
|
27
29
|
{
|
28
30
|
if (isDate(value)) {
|
29
31
|
return isDate(filter.value) && isWeakEqual$1(value, filter.value);
|
@@ -32,7 +34,7 @@ const columnFilterFn = (value, filter) => {
|
|
32
34
|
}
|
33
35
|
return isWeakEqual(value, filter.value);
|
34
36
|
}
|
35
|
-
case
|
37
|
+
case Table3FilterComparator.IsNotEqualTo:
|
36
38
|
{
|
37
39
|
if (isDate(value)) {
|
38
40
|
return isDate(filter.value) && isWeakEqual$1(value, filter.value) === false;
|
@@ -41,7 +43,7 @@ const columnFilterFn = (value, filter) => {
|
|
41
43
|
}
|
42
44
|
return !isWeakEqual(value, filter.value);
|
43
45
|
}
|
44
|
-
case
|
46
|
+
case Table3FilterComparator.IsGreaterThan:
|
45
47
|
{
|
46
48
|
if (isDate(value)) {
|
47
49
|
return isDate(filter.value) && isAfter(value, filter.value);
|
@@ -50,7 +52,7 @@ const columnFilterFn = (value, filter) => {
|
|
50
52
|
return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;
|
51
53
|
}
|
52
54
|
}
|
53
|
-
case
|
55
|
+
case Table3FilterComparator.IsLessThan:
|
54
56
|
{
|
55
57
|
if (isDate(value)) {
|
56
58
|
return isDate(filter.value) && isBefore(value, filter.value);
|
@@ -59,7 +61,7 @@ const columnFilterFn = (value, filter) => {
|
|
59
61
|
return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;
|
60
62
|
}
|
61
63
|
}
|
62
|
-
case
|
64
|
+
case Table3FilterComparator.IsBetween:
|
63
65
|
{
|
64
66
|
const [fromValue, toValue] = filter.value;
|
65
67
|
if (isDate(value)) {
|
@@ -82,11 +84,11 @@ const columnFilterFn = (value, filter) => {
|
|
82
84
|
return true;
|
83
85
|
}
|
84
86
|
}
|
85
|
-
case
|
87
|
+
case Table3FilterComparator.IsOneOf:
|
86
88
|
return Array.isArray(filter.value) ? filter.value.includes(value) : false;
|
87
|
-
case
|
89
|
+
case Table3FilterComparator.IsNoneOf:
|
88
90
|
return Array.isArray(filter.value) ? filter.value.includes(value) === false : false;
|
89
|
-
case
|
91
|
+
case Table3FilterComparator.IsAllOf:
|
90
92
|
return Array.isArray(filter.value) && Array.isArray(value) ? filter.value.filter(v => value.includes(v)).length === filter.value.length : false;
|
91
93
|
}
|
92
94
|
return false;
|
@@ -94,7 +96,7 @@ const columnFilterFn = (value, filter) => {
|
|
94
96
|
console.error(e);
|
95
97
|
return true;
|
96
98
|
}
|
97
|
-
}
|
99
|
+
}
|
98
100
|
|
99
101
|
export { columnFilterFn, globalFilterFn };
|
100
|
-
//# sourceMappingURL=
|
102
|
+
//# sourceMappingURL=filtering.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filtering.js","sources":["../../../../../../../../src/components/Table3/util/filtering.ts"],"sourcesContent":["import { isDate, isAfter as isAfterDate, isBefore as isBeforeDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../utils/date';\nimport { Table3FilterValue, Table3FilterComparator } from '../types';\n\nconst toLowerCase = (value: string | number) => String(value ?? '').toLocaleLowerCase();\nconst isWeakContains = (left: string | number, right: string | number) => toLowerCase(left).includes(toLowerCase(right));\nconst isWeakEqual = (left: string | number, right: string | number) => toLowerCase(left) === toLowerCase(right);\n\nexport function globalFilterFn(value: string, query: string) {\n return isWeakContains(value, query);\n}\n\n// the filter type is only settable on the column definition, which would re-render all columns\n// so instead we store it in the filter value, but that means we also have to destructure that\n// before we filter - that's why this custom filter function exists\nexport function columnFilterFn(value: any, filter: Table3FilterValue) {\n try {\n if (filter.comparator === Table3FilterComparator.IsEmpty || filter.comparator === Table3FilterComparator.IsNotEmpty) {\n const isEmpty = value === undefined || value === null || value === '';\n return filter.comparator === Table3FilterComparator.IsEmpty ? isEmpty : !isEmpty;\n }\n\n if (filter.value === undefined || filter.value === null || filter.value === '') {\n return true;\n }\n\n switch (filter.comparator) {\n case Table3FilterComparator.Contains:\n return isWeakContains(value, filter.value);\n\n case Table3FilterComparator.DoesNotContain:\n return !isWeakContains(value, filter.value);\n\n case Table3FilterComparator.IsEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value);\n } else if (typeof filter.value === 'boolean') {\n return value === filter.value;\n }\n\n return isWeakEqual(value, filter.value);\n }\n\n case Table3FilterComparator.IsNotEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value) === false;\n } else if (typeof filter.value === 'boolean') {\n return value !== filter.value;\n }\n\n return !isWeakEqual(value, filter.value);\n }\n\n case Table3FilterComparator.IsGreaterThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isAfterDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;\n }\n }\n\n case Table3FilterComparator.IsLessThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isBeforeDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;\n }\n }\n\n case Table3FilterComparator.IsBetween: {\n const [fromValue, toValue] = filter.value;\n\n if (isDate(value)) {\n if (isDate(fromValue) && isBeforeDate(value, fromValue)) {\n return false;\n } else if (isDate(toValue) && isAfterDate(value, toValue)) {\n return false;\n }\n\n return true;\n } else {\n const valueAsNumber = parseInt(value);\n\n if (isNaN(valueAsNumber)) {\n return false;\n }\n\n if (fromValue !== undefined && valueAsNumber < fromValue) {\n return false;\n } else if (toValue !== undefined && valueAsNumber > toValue) {\n return false;\n }\n\n return true;\n }\n }\n\n case Table3FilterComparator.IsOneOf:\n return Array.isArray(filter.value) ? filter.value.includes(value) : false;\n\n case Table3FilterComparator.IsNoneOf:\n return Array.isArray(filter.value) ? filter.value.includes(value) === false : false;\n\n case Table3FilterComparator.IsAllOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.filter(v => value.includes(v)).length === filter.value.length\n : false;\n }\n\n return false;\n } catch (e) {\n console.error(e);\n return true;\n }\n}\n"],"names":["toLowerCase","value","String","toLocaleLowerCase","isWeakContains","left","right","includes","isWeakEqual","globalFilterFn","query","columnFilterFn","filter","comparator","Table3FilterComparator","IsEmpty","IsNotEmpty","isEmpty","undefined","Contains","DoesNotContain","IsEqualTo","isDate","isWeakEqualDate","IsNotEqualTo","IsGreaterThan","isAfterDate","valueAsNumber","parseInt","isNaN","IsLessThan","isBeforeDate","IsBetween","fromValue","toValue","IsOneOf","Array","isArray","IsNoneOf","IsAllOf","v","length","e","console","error"],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { forwardRef, createElement } from 'react';
|
2
2
|
import cn from 'classnames';
|
3
|
+
import { Tooltip } from '../Tooltip/Tooltip.js';
|
3
4
|
import { getButtonClasses } from '../Button/util.js';
|
4
5
|
import { Root, List, Trigger, Content } from '@radix-ui/react-tabs';
|
5
6
|
|
@@ -38,6 +39,7 @@ const TabTrigger = /*#__PURE__*/forwardRef(function Tab(props, ref) {
|
|
38
39
|
children,
|
39
40
|
id,
|
40
41
|
disabled,
|
42
|
+
tooltip,
|
41
43
|
...otherProps
|
42
44
|
} = props;
|
43
45
|
const triggerClassName = cn('group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',
|
@@ -51,7 +53,7 @@ const TabTrigger = /*#__PURE__*/forwardRef(function Tab(props, ref) {
|
|
51
53
|
'[[aria-orientation="horizontal"]_&]:rounded-t-sm [[aria-orientation="horizontal"]_&]:bottom-0 [[aria-orientation="horizontal"]_&]:left-0 [[aria-orientation="horizontal"]_&]:right-0 [[aria-orientation="horizontal"]_&]:-mb-px [[aria-orientation="horizontal"]_&]:h-0.5',
|
52
54
|
// vertical
|
53
55
|
'[[aria-orientation="vertical"]_&]:rounded-l-sm [[aria-orientation="vertical"]_&]:right-0 [[aria-orientation="vertical"]_&]:top-0 [[aria-orientation="vertical"]_&]:bottom-0 [[aria-orientation="vertical"]_&]:-mr-px [[aria-orientation="vertical"]_&]:w-0.5');
|
54
|
-
|
56
|
+
const trigger = /*#__PURE__*/createElement(Trigger, Object.assign({}, otherProps, {
|
55
57
|
className: triggerClassName,
|
56
58
|
disabled: disabled,
|
57
59
|
ref: ref,
|
@@ -61,6 +63,12 @@ const TabTrigger = /*#__PURE__*/forwardRef(function Tab(props, ref) {
|
|
61
63
|
}, children), /*#__PURE__*/createElement("span", {
|
62
64
|
className: activeClassName
|
63
65
|
}));
|
66
|
+
if (tooltip) {
|
67
|
+
return /*#__PURE__*/createElement(Tooltip, {
|
68
|
+
title: tooltip
|
69
|
+
}, trigger);
|
70
|
+
}
|
71
|
+
return trigger;
|
64
72
|
});
|
65
73
|
const TabContent = /*#__PURE__*/forwardRef(function Tab(props, ref) {
|
66
74
|
const {
|