@salt-ds/lab 1.0.0-alpha.49 → 1.0.0-alpha.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/salt-lab.css +53 -1
- package/dist-cjs/app-header/AppHeader.js +2 -2
- package/dist-cjs/breadcrumbs/Breadcrumb.js +3 -3
- package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-cjs/breadcrumbs/Breadcrumbs.js +6 -10
- package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +7 -7
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js +3 -3
- package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js +4 -4
- package/dist-cjs/button-bar/ButtonBar.js +4 -4
- package/dist-cjs/button-bar/OrderedButton.js +3 -3
- package/dist-cjs/button-bar/internal/DescendantContext.js +4 -4
- package/dist-cjs/button-bar/internal/useDescendant.js +3 -3
- package/dist-cjs/button-bar/internal/useDescendants.js +2 -2
- package/dist-cjs/calendar/Calendar.js +4 -4
- package/dist-cjs/calendar/internal/CalendarCarousel.js +6 -6
- package/dist-cjs/calendar/internal/CalendarContext.js +3 -3
- package/dist-cjs/calendar/internal/CalendarDay.js +3 -3
- package/dist-cjs/calendar/internal/CalendarMonth.js +2 -2
- package/dist-cjs/calendar/internal/CalendarNavigation.js +2 -2
- package/dist-cjs/calendar/internal/CalendarWeekHeader.js +2 -2
- package/dist-cjs/calendar/useCalendar.js +9 -9
- package/dist-cjs/calendar/useCalendarDay.js +2 -2
- package/dist-cjs/carousel/Carousel.js +5 -5
- package/dist-cjs/carousel/CarouselSlide.js +3 -3
- package/dist-cjs/cascading-menu/CascadingMenu.js +18 -18
- package/dist-cjs/cascading-menu/CascadingMenuItem.js +5 -5
- package/dist-cjs/cascading-menu/CascadingMenuList.js +9 -9
- package/dist-cjs/cascading-menu/internal/useClickAway.js +2 -2
- package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +3 -3
- package/dist-cjs/cascading-menu/internal/useMountedRef.js +3 -3
- package/dist-cjs/cascading-menu/internal/useMouseHandlers.js +7 -7
- package/dist-cjs/cascading-menu/internal/useRefsManager.js +7 -7
- package/dist-cjs/cascading-menu/internal/useStateReducer.js +2 -2
- package/dist-cjs/color-chooser/AlphaInputField.js +3 -3
- package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-cjs/color-chooser/ColorChooser.js +3 -3
- package/dist-cjs/color-chooser/HexInput.js +3 -3
- package/dist-cjs/color-chooser/HexInput.js.map +1 -1
- package/dist-cjs/color-chooser/RGBAInputField.js +3 -3
- package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-cjs/color-chooser/Swatches.js.map +1 -1
- package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
- package/dist-cjs/combo-box/ComboBox.js +3 -3
- package/dist-cjs/combo-box/useCombobox.js +25 -25
- package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js +3 -3
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +12 -12
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +12 -12
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +11 -11
- package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +12 -12
- package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js +2 -2
- package/dist-cjs/common-hooks/collectionProvider.js +4 -4
- package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
- package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
- package/dist-cjs/common-hooks/useAutoSizer.js +3 -3
- package/dist-cjs/common-hooks/useCollapsibleGroups.js +3 -3
- package/dist-cjs/common-hooks/useCollectionItems.js +24 -24
- package/dist-cjs/common-hooks/useImperativeScrollingAPI.js +3 -3
- package/dist-cjs/common-hooks/useKeyboardNavigation.js +13 -13
- package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js +10 -10
- package/dist-cjs/common-hooks/useSelection.js +13 -13
- package/dist-cjs/common-hooks/useTypeahead.js +6 -6
- package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
- package/dist-cjs/common-hooks/useViewportTracking.js +9 -9
- package/dist-cjs/common-hooks/utils/collection-item-utils.js +5 -5
- package/dist-cjs/contact-details/ContactAction.js +2 -2
- package/dist-cjs/contact-details/ContactActions.js +2 -2
- package/dist-cjs/contact-details/ContactAvatar.js +3 -3
- package/dist-cjs/contact-details/ContactDetails.js +9 -9
- package/dist-cjs/contact-details/ContactFavoriteToggle.js +2 -2
- package/dist-cjs/contact-details/ContactMetadata.js +3 -3
- package/dist-cjs/contact-details/ContactMetadataItem.js +2 -2
- package/dist-cjs/contact-details/ContactPrimaryInfo.js +3 -3
- package/dist-cjs/contact-details/ContactSecondaryInfo.js +3 -3
- package/dist-cjs/contact-details/ContactTertiaryInfo.js +3 -3
- package/dist-cjs/contact-details/internal/ContactDetailsContext.js +3 -3
- package/dist-cjs/contact-details/internal/FavoriteToggle.js +5 -5
- package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js +2 -2
- package/dist-cjs/contact-details/internal/StarIcon.js +2 -2
- package/dist-cjs/contact-details/internal/StarIconContainer.js +2 -2
- package/dist-cjs/contact-details/internal/useComponentSize.js +4 -4
- package/dist-cjs/content-status/ContentStatus.js +3 -3
- package/dist-cjs/date-input/DateInput.js +7 -7
- package/dist-cjs/date-picker/DatePicker.js +11 -11
- package/dist-cjs/date-picker/DatePicker.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerContext.js +2 -2
- package/dist-cjs/date-picker/DatePickerPanel.js +4 -4
- package/dist-cjs/deck-item/DeckItem.js +4 -4
- package/dist-cjs/deck-layout/DeckLayout.js +5 -5
- package/dist-cjs/dropdown/Dropdown.js +5 -5
- package/dist-cjs/dropdown/DropdownBase.js +11 -11
- package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/dropdown/DropdownButton.js +2 -2
- package/dist-cjs/dropdown/useClickAway.js +2 -2
- package/dist-cjs/dropdown/useDropdown.js +5 -5
- package/dist-cjs/dropdown/useDropdownBase.js +11 -11
- package/dist-cjs/editable-label/EditableLabel.js +5 -5
- package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js +2 -2
- package/dist-cjs/form-field-legacy/FormFieldLegacy.js +5 -5
- package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-cjs/form-group/FormGroup.js +2 -2
- package/dist-cjs/formatted-input/FormattedInput.js +2 -2
- package/dist-cjs/formatted-input/internal/InputWithMask.js +2 -2
- package/dist-cjs/index.js +6 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/input-legacy/InputLegacy.js +4 -4
- package/dist-cjs/input-legacy/StaticInputAdornment.js +2 -2
- package/dist-cjs/input-legacy/useCursorOnFocus.js +9 -9
- package/dist-cjs/layer-layout/LayerLayout.js +5 -5
- package/dist-cjs/list/List.js +8 -8
- package/dist-cjs/list/ListItem.js +3 -3
- package/dist-cjs/list/VirtualizedList.js +4 -4
- package/dist-cjs/list/useList.js +9 -9
- package/dist-cjs/list/useListHeight.js +4 -4
- package/dist-cjs/list/useVirtualization.js +6 -6
- package/dist-cjs/list-deprecated/List.js +5 -5
- package/dist-cjs/list-deprecated/ListBase.js +13 -13
- package/dist-cjs/list-deprecated/ListItem.js +2 -2
- package/dist-cjs/list-deprecated/ListItemBase.js +4 -4
- package/dist-cjs/list-deprecated/ListItemContext.js +3 -3
- package/dist-cjs/list-deprecated/ListStateContext.js +3 -3
- package/dist-cjs/list-deprecated/internal/DescendantContext.js +6 -6
- package/dist-cjs/list-deprecated/internal/useListAutoSizer.js +4 -4
- package/dist-cjs/list-deprecated/internal/useWidth.js +4 -4
- package/dist-cjs/list-deprecated/useList.js +17 -17
- package/dist-cjs/list-deprecated/useListItem.js +5 -5
- package/dist-cjs/list-deprecated/useTypeSelect.js +3 -3
- package/dist-cjs/list-next/ListItemNext.js +2 -2
- package/dist-cjs/list-next/ListNext.js +3 -3
- package/dist-cjs/list-next/ListNextContext.js +2 -2
- package/dist-cjs/list-next/useList.js +14 -14
- package/dist-cjs/logo/Logo.js +2 -2
- package/dist-cjs/logo/LogoImage.js +2 -2
- package/dist-cjs/logo/LogoSeparator.js +2 -2
- package/dist-cjs/menu-button/MenuButton.js +5 -5
- package/dist-cjs/menu-button/MenuButtonTrigger.js +2 -2
- package/dist-cjs/metric/Metric.js +3 -3
- package/dist-cjs/metric/MetricContent.js +2 -2
- package/dist-cjs/metric/MetricHeader.js +3 -3
- package/dist-cjs/metric/internal/MetricContext.js +3 -3
- package/dist-cjs/portal/Portal.js +6 -6
- package/dist-cjs/query-input/QueryInput.js +2 -2
- package/dist-cjs/query-input/internal/CategoryList.js +5 -5
- package/dist-cjs/query-input/internal/CategoryListContext.js +3 -3
- package/dist-cjs/query-input/internal/CategoryListItem.js +3 -3
- package/dist-cjs/query-input/internal/QueryInputBody.js +3 -3
- package/dist-cjs/query-input/internal/SearchList.js +2 -2
- package/dist-cjs/query-input/internal/ValueSelector.js +2 -2
- package/dist-cjs/query-input/internal/usePopperStatus.js +2 -2
- package/dist-cjs/query-input/useQueryInput.js +13 -13
- package/dist-cjs/responsive/OverflowReducer.js +3 -7
- package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
- package/dist-cjs/responsive/useDynamicCollapse.js +7 -7
- package/dist-cjs/responsive/useInstantCollapse.js +7 -7
- package/dist-cjs/responsive/useOverflow.js +11 -11
- package/dist-cjs/responsive/useOverflowCollectionItems.js +12 -12
- package/dist-cjs/responsive/useOverflowLayout.js +8 -8
- package/dist-cjs/responsive/useReclaimSpace.js +3 -3
- package/dist-cjs/responsive/useResizeObserver.js +3 -3
- package/dist-cjs/responsive/useWidth.js +4 -4
- package/dist-cjs/search-input/SearchInput.js +3 -3
- package/dist-cjs/skip-link/SkipLink.js +2 -2
- package/dist-cjs/skip-link/SkipLinks.js +2 -2
- package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +6 -6
- package/dist-cjs/slider/Slider.js +5 -5
- package/dist-cjs/slider/internal/SliderMarkLabels.js +3 -3
- package/dist-cjs/slider/internal/SliderRailMarks.js +3 -3
- package/dist-cjs/slider/internal/useSliderKeyDown.js.map +1 -1
- package/dist-cjs/slider/internal/useSliderMouseDown.js +6 -6
- package/dist-cjs/slider/internal/utils.js +2 -2
- package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +2 -2
- package/dist-cjs/stepped-tracker/SteppedTracker.js +7 -7
- package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +6 -6
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +3 -3
- package/dist-cjs/stepper-input/StepperInput.js +3 -3
- package/dist-cjs/stepper-input/internal/useInterval.js +4 -4
- package/dist-cjs/stepper-input/internal/useSpinner.js +4 -4
- package/dist-cjs/system-status/SystemStatus.css.js +6 -0
- package/dist-cjs/system-status/SystemStatus.css.js.map +1 -0
- package/dist-cjs/system-status/SystemStatus.js +39 -0
- package/dist-cjs/system-status/SystemStatus.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusActions.css.js +6 -0
- package/dist-cjs/system-status/SystemStatusActions.css.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusActions.js +30 -0
- package/dist-cjs/system-status/SystemStatusActions.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusContent.css.js +6 -0
- package/dist-cjs/system-status/SystemStatusContent.css.js.map +1 -0
- package/dist-cjs/system-status/SystemStatusContent.js +30 -0
- package/dist-cjs/system-status/SystemStatusContent.js.map +1 -0
- package/dist-cjs/tabs/Tab.js +6 -6
- package/dist-cjs/tabs/TabActivationIndicator.js +2 -2
- package/dist-cjs/tabs/TabPanel.js +2 -2
- package/dist-cjs/tabs/Tabs.js +5 -5
- package/dist-cjs/tabs/Tabstrip.js +26 -30
- package/dist-cjs/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/Draggable.js +3 -3
- package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js +20 -20
- package/dist-cjs/tabs/drag-drop/useDragSpacers.js +9 -9
- package/dist-cjs/tabs/useActivationIndicator.js +7 -7
- package/dist-cjs/tabs/useEditableItem.js +3 -3
- package/dist-cjs/tabs/useItemsWithIds.js +6 -6
- package/dist-cjs/tabs/useKeyboardNavigation.js +12 -12
- package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/tabs/useSelection.js +5 -5
- package/dist-cjs/tabs/useTabs.js +2 -2
- package/dist-cjs/tabs/useTabstrip.js +12 -12
- package/dist-cjs/tabs-next/OverflowMenu.js +2 -2
- package/dist-cjs/tabs-next/TabNext.js +3 -3
- package/dist-cjs/tabs-next/TabNextContext.js +2 -2
- package/dist-cjs/tabs-next/TabstripNext.js +13 -13
- package/dist-cjs/toast-group/ToastGroup.js +2 -2
- package/dist-cjs/tokenized-input/TokenizedInput.js +2 -2
- package/dist-cjs/tokenized-input/TokenizedInputBase.js +9 -9
- package/dist-cjs/tokenized-input/internal/InputPill.js +3 -3
- package/dist-cjs/tokenized-input/internal/InputRuler.js +2 -2
- package/dist-cjs/tokenized-input/internal/useResizeObserver.js +3 -3
- package/dist-cjs/tokenized-input/internal/useWidth.js +3 -3
- package/dist-cjs/tokenized-input/useTokenizedInput.js +16 -16
- package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +3 -3
- package/dist-cjs/tokenized-input-next/internal/InputPill.js +4 -4
- package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js +3 -3
- package/dist-cjs/tokenized-input-next/internal/useWidth.js +3 -3
- package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js +15 -15
- package/dist-cjs/toolbar/Toolbar.js +6 -6
- package/dist-cjs/toolbar/ToolbarButton.js +2 -2
- package/dist-cjs/toolbar/Tooltray.js +2 -2
- package/dist-cjs/toolbar/internal/renderToolbarItems.js +5 -9
- package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderTrayTools.js +6 -10
- package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +7 -14
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-cjs/toolbar/toolbar-field/ToolbarField.js +2 -2
- package/dist-cjs/toolbar/toolbar-field/useToolbarField.js +5 -5
- package/dist-cjs/tree/Tree.js +8 -8
- package/dist-cjs/tree/use-tree-keyboard-navigation.js +2 -2
- package/dist-cjs/tree/useTree.js +5 -5
- package/dist-cjs/utils/useClickOutside.js +3 -3
- package/dist-cjs/utils/useEventCallback.js +3 -3
- package/dist-cjs/utils/useLayoutEffectOnce.js +2 -2
- package/dist-cjs/utils/useLayoutEffectSkipFirst.js +2 -2
- package/dist-cjs/utils/useOverflowDetection.js +4 -4
- package/dist-cjs/utils/useSlideSelection.js +3 -3
- package/dist-cjs/window/ElectronWindow.js +7 -7
- package/dist-cjs/window/WindowContext.js +4 -4
- package/dist-cjs/window/desktop-utils.js +3 -3
- package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-es/breadcrumbs/Breadcrumbs.js +4 -4
- package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-es/color-chooser/HexInput.js.map +1 -1
- package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-es/color-chooser/Swatches.js.map +1 -1
- package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
- package/dist-es/common-hooks/keyUtils.js.map +1 -1
- package/dist-es/common-hooks/selectionTypes.js.map +1 -1
- package/dist-es/common-hooks/useTypeahead.js.map +1 -1
- package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-es/index.js +3 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/responsive/OverflowReducer.js +2 -2
- package/dist-es/responsive/OverflowReducer.js.map +1 -1
- package/dist-es/slider/internal/useSliderKeyDown.js.map +1 -1
- package/dist-es/system-status/SystemStatus.css.js +4 -0
- package/dist-es/system-status/SystemStatus.css.js.map +1 -0
- package/dist-es/system-status/SystemStatus.js +35 -0
- package/dist-es/system-status/SystemStatus.js.map +1 -0
- package/dist-es/system-status/SystemStatusActions.css.js +4 -0
- package/dist-es/system-status/SystemStatusActions.css.js.map +1 -0
- package/dist-es/system-status/SystemStatusActions.js +26 -0
- package/dist-es/system-status/SystemStatusActions.js.map +1 -0
- package/dist-es/system-status/SystemStatusContent.css.js +4 -0
- package/dist-es/system-status/SystemStatusContent.css.js.map +1 -0
- package/dist-es/system-status/SystemStatusContent.js +26 -0
- package/dist-es/system-status/SystemStatusContent.js.map +1 -0
- package/dist-es/tabs/Tabstrip.js +10 -10
- package/dist-es/tabs/Tabstrip.js.map +1 -1
- package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-es/toolbar/internal/renderToolbarItems.js +5 -5
- package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-es/toolbar/internal/renderTrayTools.js +4 -4
- package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js +2 -5
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-types/breadcrumbs/Breadcrumb.d.ts +2 -2
- package/dist-types/breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/dist-types/color-chooser/HexInput.d.ts +2 -1
- package/dist-types/color-chooser/HexInputField.d.ts +2 -1
- package/dist-types/color-chooser/RGBAInputField.d.ts +2 -1
- package/dist-types/color-chooser/Swatches.d.ts +2 -1
- package/dist-types/color-chooser/SwatchesPicker.d.ts +2 -1
- package/dist-types/common-hooks/keyUtils.d.ts +3 -3
- package/dist-types/common-hooks/selectionTypes.d.ts +5 -5
- package/dist-types/common-hooks/useTypeahead.d.ts +2 -1
- package/dist-types/contact-details/internal/FavoriteToggle.d.ts +3 -4
- package/dist-types/form-field-legacy/FormHelperText.d.ts +3 -3
- package/dist-types/index.d.ts +1 -0
- package/dist-types/list/listTypes.d.ts +3 -4
- package/dist-types/slider/internal/useSliderKeyDown.d.ts +2 -1
- package/dist-types/system-status/SystemStatus.d.ts +9 -0
- package/dist-types/system-status/SystemStatusActions.d.ts +9 -0
- package/dist-types/system-status/SystemStatusContent.d.ts +9 -0
- package/dist-types/system-status/index.d.ts +3 -0
- package/dist-types/tabs/Tabstrip.d.ts +1 -2
- package/dist-types/toolbar/overflow-panel/OverflowPanel.d.ts +1 -2
- package/package.json +2 -2
|
@@ -6,13 +6,13 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var icons = require('@salt-ds/icons');
|
|
8
8
|
var clsx = require('clsx');
|
|
9
|
-
var
|
|
9
|
+
var react = require('react');
|
|
10
10
|
var styles = require('@salt-ds/styles');
|
|
11
11
|
var window = require('@salt-ds/window');
|
|
12
12
|
var MenuButtonTrigger$1 = require('./MenuButtonTrigger.css.js');
|
|
13
13
|
|
|
14
14
|
const withBaseName = core.makePrefixer("saltMenuButtonTrigger");
|
|
15
|
-
const MenuButtonTrigger =
|
|
15
|
+
const MenuButtonTrigger = react.forwardRef(function MenuButtonTrigger2({ className, hideCaret, isMenuOpen, children, ...rest }, ref) {
|
|
16
16
|
const targetWindow = window.useWindow();
|
|
17
17
|
styles.useComponentCssInjection({
|
|
18
18
|
testId: "salt-menu-button-trigger",
|
|
@@ -5,14 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var clsx = require('clsx');
|
|
8
|
-
var
|
|
8
|
+
var react = require('react');
|
|
9
9
|
var MetricContext = require('./internal/MetricContext.js');
|
|
10
10
|
var styles = require('@salt-ds/styles');
|
|
11
11
|
var window = require('@salt-ds/window');
|
|
12
12
|
var Metric$1 = require('./Metric.css.js');
|
|
13
13
|
|
|
14
14
|
const withBaseName = core.makePrefixer("saltMetric");
|
|
15
|
-
const Metric =
|
|
15
|
+
const Metric = react.forwardRef(function Metric2({
|
|
16
16
|
className,
|
|
17
17
|
children,
|
|
18
18
|
direction,
|
|
@@ -35,7 +35,7 @@ const Metric = React.forwardRef(function Metric2({
|
|
|
35
35
|
const titleId = `metric-title-${id}`;
|
|
36
36
|
const subtitleId = `metric-subtitle-${id}`;
|
|
37
37
|
const valueId = `metric-value-${id}`;
|
|
38
|
-
const value =
|
|
38
|
+
const value = react.useMemo(
|
|
39
39
|
() => ({
|
|
40
40
|
align,
|
|
41
41
|
direction,
|
|
@@ -6,7 +6,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var icons = require('@salt-ds/icons');
|
|
8
8
|
var clsx = require('clsx');
|
|
9
|
-
var
|
|
9
|
+
var react = require('react');
|
|
10
10
|
var MetricContext = require('./internal/MetricContext.js');
|
|
11
11
|
var styles = require('@salt-ds/styles');
|
|
12
12
|
var window = require('@salt-ds/window');
|
|
@@ -17,7 +17,7 @@ const iconComponentMap = {
|
|
|
17
17
|
up: icons.ArrowUpIcon
|
|
18
18
|
};
|
|
19
19
|
const withBaseName = core.makePrefixer("saltMetricContent");
|
|
20
|
-
const MetricContent =
|
|
20
|
+
const MetricContent = react.forwardRef(
|
|
21
21
|
function MetricContent2({
|
|
22
22
|
IndicatorIconProps,
|
|
23
23
|
IndicatorIconComponent,
|
|
@@ -5,14 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var clsx = require('clsx');
|
|
8
|
-
var
|
|
8
|
+
var react = require('react');
|
|
9
9
|
var MetricContext = require('./internal/MetricContext.js');
|
|
10
10
|
var styles = require('@salt-ds/styles');
|
|
11
11
|
var window = require('@salt-ds/window');
|
|
12
12
|
var MetricHeader$1 = require('./MetricHeader.css.js');
|
|
13
13
|
|
|
14
14
|
const withBaseName = core.makePrefixer("saltMetricHeader");
|
|
15
|
-
const MetricHeader =
|
|
15
|
+
const MetricHeader = react.forwardRef(
|
|
16
16
|
function MetricHeader2({ SubtitleLinkProps, className, title, subtitle, ...restProps }, ref) {
|
|
17
17
|
const targetWindow = window.useWindow();
|
|
18
18
|
styles.useComponentCssInjection({
|
|
@@ -21,7 +21,7 @@ const MetricHeader = React.forwardRef(
|
|
|
21
21
|
window: targetWindow
|
|
22
22
|
});
|
|
23
23
|
const { titleId, subtitleId, headingAriaLevel } = MetricContext.useMetricContext();
|
|
24
|
-
const renderSubtitle =
|
|
24
|
+
const renderSubtitle = react.useCallback(() => {
|
|
25
25
|
if (!subtitle)
|
|
26
26
|
return null;
|
|
27
27
|
const subtitleComponent = /* @__PURE__ */ jsxRuntime.jsx(core.Text, {
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
|
|
7
|
-
const MetricContext =
|
|
7
|
+
const MetricContext = react.createContext({});
|
|
8
8
|
const { Provider: MetricContextProvider } = MetricContext;
|
|
9
|
-
const useMetricContext = () =>
|
|
9
|
+
const useMetricContext = () => react.useContext(MetricContext);
|
|
10
10
|
|
|
11
11
|
exports.MetricContextProvider = MetricContextProvider;
|
|
12
12
|
exports.useMetricContext = useMetricContext;
|
|
@@ -4,22 +4,22 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
|
-
var
|
|
7
|
+
var react = require('react');
|
|
8
8
|
var ReactDOM = require('react-dom');
|
|
9
9
|
|
|
10
10
|
function getContainer(container) {
|
|
11
11
|
return typeof container === "function" ? container() : container;
|
|
12
12
|
}
|
|
13
13
|
const DEFAULT_ID = "portal-root";
|
|
14
|
-
const Portal =
|
|
14
|
+
const Portal = react.forwardRef(function Portal2({
|
|
15
15
|
children,
|
|
16
16
|
container: containerProp = document.body,
|
|
17
17
|
disablePortal = false,
|
|
18
18
|
id = DEFAULT_ID
|
|
19
19
|
}, ref) {
|
|
20
20
|
var _a;
|
|
21
|
-
const [mounted, setMounted] =
|
|
22
|
-
const portalRef =
|
|
21
|
+
const [mounted, setMounted] = react.useState(false);
|
|
22
|
+
const portalRef = react.useRef(null);
|
|
23
23
|
const handleRef = core.useForkRef(core.getRefFromChildren(children), ref);
|
|
24
24
|
const container = (_a = getContainer(containerProp)) != null ? _a : document.body;
|
|
25
25
|
core.useIsomorphicLayoutEffect(() => {
|
|
@@ -37,8 +37,8 @@ const Portal = React.forwardRef(function Portal2({
|
|
|
37
37
|
setMounted(true);
|
|
38
38
|
}, [id, container]);
|
|
39
39
|
if (disablePortal) {
|
|
40
|
-
if (
|
|
41
|
-
return
|
|
40
|
+
if (react.isValidElement(children)) {
|
|
41
|
+
return react.cloneElement(children, {
|
|
42
42
|
ref: handleRef
|
|
43
43
|
});
|
|
44
44
|
}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var clsx = require('clsx');
|
|
8
|
-
var
|
|
8
|
+
var react = require('react');
|
|
9
9
|
require('./internal/CategoryList.js');
|
|
10
10
|
require('./internal/CategoryListContext.js');
|
|
11
11
|
require('./internal/CategoryListItem.js');
|
|
@@ -19,7 +19,7 @@ var window = require('@salt-ds/window');
|
|
|
19
19
|
var QueryInput$1 = require('./QueryInput.css.js');
|
|
20
20
|
|
|
21
21
|
const withBaseName = core.makePrefixer("saltQueryInput");
|
|
22
|
-
const QueryInput =
|
|
22
|
+
const QueryInput = react.forwardRef(
|
|
23
23
|
function QueryInput2(props, externalRef) {
|
|
24
24
|
const {
|
|
25
25
|
disabled,
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
|
-
var
|
|
7
|
+
var react = require('react');
|
|
8
8
|
require('../../list/Highlighter.js');
|
|
9
9
|
require('../../list/ListItem.js');
|
|
10
10
|
var List = require('../../list/List.js');
|
|
@@ -25,9 +25,9 @@ function CategoryList(props) {
|
|
|
25
25
|
highlightedCategoryIndex,
|
|
26
26
|
setHighlightedCategoryIndex
|
|
27
27
|
} = props;
|
|
28
|
-
const measureRef =
|
|
29
|
-
const [measuredCategories, setMeasuredCategories] =
|
|
30
|
-
const [contextValue, setContextValue] =
|
|
28
|
+
const measureRef = react.useRef(null);
|
|
29
|
+
const [measuredCategories, setMeasuredCategories] = react.useState([]);
|
|
30
|
+
const [contextValue, setContextValue] = react.useState({
|
|
31
31
|
width: 0
|
|
32
32
|
});
|
|
33
33
|
core.useIsomorphicLayoutEffect(() => {
|
|
@@ -41,7 +41,7 @@ function CategoryList(props) {
|
|
|
41
41
|
}
|
|
42
42
|
}, 0);
|
|
43
43
|
}, [categories]);
|
|
44
|
-
const onSelect =
|
|
44
|
+
const onSelect = react.useCallback(
|
|
45
45
|
(_, item) => {
|
|
46
46
|
onCategorySelect(item);
|
|
47
47
|
},
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
|
|
7
|
-
const CategoryListContext =
|
|
7
|
+
const CategoryListContext = react.createContext(void 0);
|
|
8
8
|
function useCategoryListContext() {
|
|
9
|
-
const context =
|
|
9
|
+
const context = react.useContext(CategoryListContext);
|
|
10
10
|
if (!context) {
|
|
11
11
|
throw new Error(
|
|
12
12
|
"useCategoryListContext should be used inside CategoryList"
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var icons = require('@salt-ds/icons');
|
|
8
|
-
var
|
|
8
|
+
var react = require('react');
|
|
9
9
|
require('../../list/Highlighter.js');
|
|
10
10
|
var ListItem = require('../../list/ListItem.js');
|
|
11
11
|
require('../../list/List.js');
|
|
@@ -17,9 +17,9 @@ var CategoryListContext = require('./CategoryListContext.js');
|
|
|
17
17
|
|
|
18
18
|
const withBaseName = core.makePrefixer("saltCategoryListItem");
|
|
19
19
|
const CategoryListItem = function CategoryListItem2({ item: category, ...props }) {
|
|
20
|
-
const textRef =
|
|
20
|
+
const textRef = react.useRef(null);
|
|
21
21
|
const context = CategoryListContext.useCategoryListContext();
|
|
22
|
-
const textStyle =
|
|
22
|
+
const textStyle = react.useMemo(
|
|
23
23
|
() => ({
|
|
24
24
|
minWidth: context.width
|
|
25
25
|
}),
|
|
@@ -5,14 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
7
|
var icons = require('@salt-ds/icons');
|
|
8
|
-
var
|
|
8
|
+
var react = require('react');
|
|
9
9
|
var TokenizedInput = require('../../tokenized-input/TokenizedInput.js');
|
|
10
10
|
require('../../tokenized-input/TokenizedInputBase.js');
|
|
11
11
|
require('clipboard-copy');
|
|
12
12
|
require('../../form-field-context-legacy/FormFieldLegacyContext.js');
|
|
13
13
|
|
|
14
14
|
const withBaseName = core.makePrefixer("saltQueryInputBody");
|
|
15
|
-
const QueryInputBody =
|
|
15
|
+
const QueryInputBody = react.forwardRef(
|
|
16
16
|
function QueryInputBody2(props, ref) {
|
|
17
17
|
const {
|
|
18
18
|
inputRef,
|
|
@@ -31,7 +31,7 @@ const QueryInputBody = React.forwardRef(
|
|
|
31
31
|
booleanOperator,
|
|
32
32
|
onBooleanOperatorChange
|
|
33
33
|
} = props;
|
|
34
|
-
const itemToString =
|
|
34
|
+
const itemToString = react.useMemo(() => {
|
|
35
35
|
if (showCategory) {
|
|
36
36
|
return (item) => [item.category, item.value].join(": ");
|
|
37
37
|
}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
|
-
var
|
|
7
|
+
var react = require('react');
|
|
8
8
|
require('../../list/Highlighter.js');
|
|
9
9
|
var ListItem = require('../../list/ListItem.js');
|
|
10
10
|
var List = require('../../list/List.js');
|
|
@@ -37,7 +37,7 @@ function SearchList(props) {
|
|
|
37
37
|
css: QueryInput,
|
|
38
38
|
window: targetWindow
|
|
39
39
|
});
|
|
40
|
-
const onChange =
|
|
40
|
+
const onChange = react.useCallback(
|
|
41
41
|
(event, items) => {
|
|
42
42
|
onChangeProp(items || []);
|
|
43
43
|
},
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@salt-ds/core');
|
|
7
|
-
var
|
|
7
|
+
var react = require('react');
|
|
8
8
|
var Portal = require('../../portal/Portal.js');
|
|
9
9
|
var WindowContext = require('../../window/WindowContext.js');
|
|
10
10
|
require('../../window/ElectronWindow.js');
|
|
@@ -34,7 +34,7 @@ function ValueSelector(props) {
|
|
|
34
34
|
setHighlightedCategoryIndex,
|
|
35
35
|
setHighlightedIndex
|
|
36
36
|
} = props;
|
|
37
|
-
const selectedCategoryValues =
|
|
37
|
+
const selectedCategoryValues = react.useMemo(() => {
|
|
38
38
|
if (!selectedCategory) {
|
|
39
39
|
return [];
|
|
40
40
|
}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
|
|
7
7
|
function usePopperStatus(props) {
|
|
8
8
|
const { initialOpen, autoClose } = props;
|
|
9
|
-
const [isOpen, setIsOpen] =
|
|
9
|
+
const [isOpen, setIsOpen] = react.useState(!!initialOpen);
|
|
10
10
|
const onKeyDown = (event) => {
|
|
11
11
|
if (event.altKey && ["ArrowUp", "ArrowDown"].includes(event.key)) {
|
|
12
12
|
setIsOpen((x) => !x);
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
require('react/jsx-runtime');
|
|
8
8
|
require('../responsive/useResizeObserver.js');
|
|
9
9
|
var useWidth = require('../responsive/useWidth.js');
|
|
10
10
|
var usePopperStatus = require('./internal/usePopperStatus.js');
|
|
11
11
|
|
|
12
12
|
function useQueryInput(props, forwardedRef) {
|
|
13
|
-
const bodyRef =
|
|
14
|
-
const popperRef =
|
|
15
|
-
const inputRef =
|
|
13
|
+
const bodyRef = react.useRef(null);
|
|
14
|
+
const popperRef = react.useRef(null);
|
|
15
|
+
const inputRef = react.useRef(null);
|
|
16
16
|
const [widthBodyRef, bodyWidth] = useWidth.useWidth(true);
|
|
17
17
|
const forkedRef1 = core.useForkRef(
|
|
18
18
|
forwardedRef,
|
|
@@ -38,12 +38,12 @@ function useQueryInput(props, forwardedRef) {
|
|
|
38
38
|
initialOpen: false,
|
|
39
39
|
autoClose: props.autoClose
|
|
40
40
|
});
|
|
41
|
-
const [isFocused, setIsFocused] =
|
|
42
|
-
const [highlightedIndex, setHighlightedIndex] =
|
|
43
|
-
const [highlightedCategoryIndex, setHighlightedCategoryIndex] =
|
|
44
|
-
const [highlightedValueIndex, setHighlightedValueIndex] =
|
|
45
|
-
const [selectedCategory, setSelectedCategory] =
|
|
46
|
-
const searchListIndexPositions =
|
|
41
|
+
const [isFocused, setIsFocused] = react.useState(false);
|
|
42
|
+
const [highlightedIndex, setHighlightedIndex] = react.useState(0);
|
|
43
|
+
const [highlightedCategoryIndex, setHighlightedCategoryIndex] = react.useState(0);
|
|
44
|
+
const [highlightedValueIndex, setHighlightedValueIndex] = react.useState(0);
|
|
45
|
+
const [selectedCategory, setSelectedCategory] = react.useState(null);
|
|
46
|
+
const searchListIndexPositions = react.useRef(
|
|
47
47
|
[]
|
|
48
48
|
);
|
|
49
49
|
const onInputFocus = (event) => {
|
|
@@ -120,8 +120,8 @@ function useQueryInput(props, forwardedRef) {
|
|
|
120
120
|
}
|
|
121
121
|
setSelectedCategory(category);
|
|
122
122
|
};
|
|
123
|
-
const [inputValue, setInputValue] =
|
|
124
|
-
const searchListItems =
|
|
123
|
+
const [inputValue, setInputValue] = react.useState("");
|
|
124
|
+
const searchListItems = react.useMemo(() => {
|
|
125
125
|
const [searchListItems2, indexPositions] = filterCategories(
|
|
126
126
|
props.categories,
|
|
127
127
|
inputValue
|
|
@@ -134,7 +134,7 @@ function useQueryInput(props, forwardedRef) {
|
|
|
134
134
|
setInputValue(newInputValue);
|
|
135
135
|
setHighlightedIndex(searchListIndexPositions.current.length === 0 ? 0 : 1);
|
|
136
136
|
};
|
|
137
|
-
const searchListItemCount =
|
|
137
|
+
const searchListItemCount = react.useMemo(() => {
|
|
138
138
|
return searchListItems.reduce(
|
|
139
139
|
(acc, category) => acc + category.values.length,
|
|
140
140
|
0
|
|
@@ -2,17 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
-
|
|
9
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
5
|
+
var react = require('react');
|
|
10
6
|
|
|
11
7
|
const DEFAULT_PRIORITY = 3;
|
|
12
8
|
const mapReactElementChildren = (children, fn) => {
|
|
13
9
|
const childElements = [];
|
|
14
|
-
|
|
15
|
-
if (
|
|
10
|
+
react.Children.forEach(children, (child, i) => {
|
|
11
|
+
if (react.isValidElement(child)) {
|
|
16
12
|
childElements.push(fn(child, i));
|
|
17
13
|
}
|
|
18
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverflowReducer.js","sources":["../src/responsive/OverflowReducer.ts"],"sourcesContent":["/**\n * This reducer manages a collection of items that represent the content of an overflowable container.\n * The items are mostly content configured by the caller of the container, either data passed though\n * the source prop or as child elements. We also support 'injected' items. These allow for additional UI\n * controls to be inserted into the container, eg an 'Add Item' button.\n */\nimport React, {\n isValidElement,\n type ReactElement,\n type ReactNode,\n type Reducer,\n} from \"react\";\n\nimport type {\n InjectedChildItem,\n InjectedSourceItem,\n OverflowCollectionOptions,\n OverflowItem,\n OverflowItems,\n OverflowSource,\n} from \"./overflowTypes\";\n\ninterface InitAction {\n type: \"init\";\n overflowItems?: OverflowItem[];\n}\n\ninterface SourceAction {\n type: \"add-source-item\";\n idRoot: string;\n source: any;\n}\ninterface AddChildAction {\n type: \"add-child-item\";\n idRoot: string;\n indexPosition?: number;\n element: ReactElement;\n}\ninterface RemoveItemAction {\n type: \"remove-item\";\n indexPosition: number;\n}\n\ninterface MultiItemAction {\n type: \"update-items\" | \"update-items-remove-overflow-indicator\";\n overflowItems: Partial<Omit<OverflowItem, \"id\">> & Pick<OverflowItem, \"id\">[];\n}\ninterface SingleItemAction {\n type:\n | \"add-overflow-indicator\"\n | \"replace-item\"\n | \"collapsing-item\"\n | \"uncollapse-dynamic-item\"\n | \"collapse-instant-item\";\n\n overflowItem: OverflowItem;\n}\n\ninterface CombinedItemAction {\n type: \"update-items-add-overflow-indicator\";\n overflowItem: OverflowItem<any>;\n overflowItems: OverflowItem[];\n}\n\ninterface EmptyPayloadAction {\n type: \"restore-collapsing-item\";\n}\ninterface DynamicCollapseAction extends Omit<SingleItemAction, \"type\"> {\n type: \"collapse-dynamic-item\";\n collapsedSize: number;\n minSize: number;\n}\n\nexport type OverflowAction =\n | AddChildAction\n | CombinedItemAction\n | DynamicCollapseAction\n | EmptyPayloadAction\n | InitAction\n | MultiItemAction\n | RemoveItemAction\n | SingleItemAction\n | SourceAction;\n\nconst DEFAULT_PRIORITY = 3;\n\nconst mapReactElementChildren = (\n children: ReactNode,\n fn: (el: ReactElement, index: number) => OverflowItem,\n): OverflowItem[] => {\n const childElements: OverflowItem[] = [];\n React.Children.forEach(children, (child, i) => {\n if (isValidElement(child)) {\n childElements.push(fn(child, i));\n }\n });\n return childElements;\n};\n\nconst sourceItem = (\n item: OverflowSource,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\"> => {\n const priority =\n options?.getPriority?.(item, index) ?? item.priority ?? DEFAULT_PRIORITY;\n\n return {\n //TODO editable closeable configurable via item\n closeable: item.closeable || options?.closeable,\n editable: options?.editable,\n element: null,\n fullSize: null,\n id: item.id ?? id,\n index,\n label: item.label,\n position: item.position,\n priority,\n size: 0,\n source: item,\n type: \"source\",\n };\n};\n\nconst createSourceItems = (\n source: any,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\">[] | undefined => {\n if (Array.isArray(source)) {\n return source.map((item, index) => {\n const priority = options?.getPriority?.(source, index);\n return sourceItem(item, `${idRoot}-${index}`, index, options);\n });\n }\n};\n\ntype OverflowChild = {\n closeable?: boolean;\n disabled?: boolean;\n id?: string;\n label?: string;\n \"data-collapsible\"?: boolean;\n \"data-editable\"?: boolean;\n \"data-position\"?: number;\n \"data-priority\"?: string;\n};\n\nconst childItem = (\n child: ReactElement,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\"> => {\n const {\n closeable,\n disabled,\n id: idProp,\n label,\n \"data-collapsible\": collapsible,\n \"data-editable\": editable,\n \"data-position\": dataPosition,\n \"data-priority\": dataPriority = \"2\",\n } = child.props as OverflowChild;\n\n const priority = options?.getPriority?.(child, index);\n\n return {\n closeable: closeable || options?.closeable,\n collapsible,\n editable: editable ? true : options?.editable,\n disabled,\n fullSize: null,\n id: idProp ?? id,\n index,\n element: child,\n label,\n position: dataPosition,\n priority: priority ?? Number.parseInt(dataPriority),\n size: 0,\n source: null,\n type: \"child\",\n } as OverflowItem;\n};\n\nconst createChildItems = (\n children: React.ReactNode,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\">[] | undefined => {\n if (children) {\n return mapReactElementChildren(children, (child, index) => {\n const id = `${idRoot}-${index}`;\n return childItem(child, id, index, options);\n });\n }\n};\n\nconst createInjectedContent = (\n items: Array<InjectedSourceItem | InjectedChildItem>,\n idRoot: string,\n startIndex: number,\n): OverflowItem<\"source\" | \"child\">[] => {\n return items.map((item, i) => {\n const index = startIndex + i;\n const id = `${idRoot}-${index}`;\n const { source } = item as InjectedSourceItem;\n if (source) {\n const injectedItem = sourceItem(source, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n }\n const { element } = item as InjectedChildItem;\n const injectedItem = childItem(element, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n });\n};\n\nexport type OverflowReducer = Reducer<OverflowItems, OverflowAction>;\n\nconst defaultOptions = {};\n\nexport type OverflowReducerInitialisationProps = {\n children?: ReactNode;\n source?: OverflowSource[];\n injectedItems?: any[];\n idRoot: string;\n options?: OverflowCollectionOptions;\n};\n\nexport const reducerInitialiser: (\n props: OverflowReducerInitialisationProps,\n) => OverflowItems = ({\n children,\n source,\n injectedItems = [],\n idRoot,\n options = defaultOptions,\n}) => {\n const providedContent: OverflowItems =\n createChildItems(children, idRoot, options) ||\n createSourceItems(source, idRoot, options) ||\n [];\n const injectedContent = createInjectedContent(\n injectedItems,\n idRoot,\n providedContent.length,\n );\n return providedContent.concat(injectedContent);\n};\n\nconst collapsingItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsing: true,\n }\n : item,\n );\n\nconst uncollapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: false,\n collapsing: true,\n size: item.fullSize as number,\n fullSize: null,\n }\n : item,\n );\n\nconst collapseInstantItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: true,\n }\n : item,\n );\n\nconst replaceItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item.index === overflowItem?.index ? overflowItem : item,\n );\n\nconst updateItems = (\n items: OverflowItem[],\n { overflowItems = [] }: MultiItemAction,\n) => {\n return items.map((item) => {\n const targetItem = overflowItems.find((i) => i.id === item.id);\n return targetItem ? { ...item, ...targetItem } : item;\n });\n};\n\nconst restoreCollapsingItem = (items: OverflowItem[]) => {\n const collapsingItem = items.find(\n ({ collapsible, collapsing }) => collapsible === \"dynamic\" && collapsing,\n );\n const collapsedItem = items.find(\n ({ collapsible, collapsed }) => collapsible === \"dynamic\" && collapsed,\n );\n return items.map((item) => {\n if (item === collapsingItem) {\n return {\n ...item,\n collapsing: false,\n };\n }\n if (item === collapsedItem) {\n return {\n ...item,\n collapsed: false,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst collapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem, collapsedSize = 0, minSize = 0 }: DynamicCollapseAction,\n) => {\n const remainingUncollpasedItems = items.filter(\n (i) => i.collapsible === \"dynamic\" && !i.collapsed && i !== overflowItem,\n );\n const lastUncollapsedItem = remainingUncollpasedItems.pop();\n\n return items.map((item) => {\n if (item === overflowItem) {\n return {\n ...item,\n collapsing: false,\n collapsed: true,\n fullSize: item.size,\n minSize,\n size: collapsedSize,\n };\n }\n if (item === lastUncollapsedItem) {\n return {\n ...item,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst addSourceItem = (\n items: OverflowItem<any>[],\n { idRoot, source }: SourceAction,\n): OverflowItem[] => {\n const index = items.length;\n return items.concat(sourceItem(source, `${idRoot}-${index}`, index));\n};\n\nconst removeItem = (\n items: OverflowItem<any>[],\n { indexPosition }: RemoveItemAction,\n): OverflowItem[] => {\n return items.slice(0, indexPosition).concat(items.slice(indexPosition + 1));\n};\n\nconst addOverflowIndicator = (\n items: OverflowItem<any>[],\n { overflowItem }: SingleItemAction,\n) => {\n // Guard against accidental duplicate overflowIndicator\n if (!items.find((i) => i.isOverflowIndicator)) {\n if (items.find((i) => i.label === \"Add Tab\")) {\n const [addTab] = items.slice(-1);\n return items\n .slice(0, -1)\n .concat({ ...overflowItem, index: addTab.index })\n .concat({ ...addTab, index: overflowItem.index });\n }\n return items.concat(overflowItem);\n }\n return items;\n};\n\nexport const overflowReducer: OverflowReducer = (state, action) => {\n switch (action.type) {\n case \"init\":\n return action.overflowItems ?? state;\n case \"add-overflow-indicator\":\n return addOverflowIndicator(state, action);\n\n case \"update-items\":\n return updateItems(state, action);\n\n case \"replace-item\":\n return replaceItem(state, action);\n\n case \"update-items-add-overflow-indicator\":\n return addOverflowIndicator(\n updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }),\n { type: \"add-overflow-indicator\", overflowItem: action.overflowItem },\n );\n\n case \"update-items-remove-overflow-indicator\":\n return updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }).filter((item) => !item.isOverflowIndicator);\n\n case \"collapsing-item\":\n return collapsingItem(state, action);\n\n case \"collapse-dynamic-item\":\n return collapseDynamicItem(state, action);\n\n case \"uncollapse-dynamic-item\":\n return uncollapseDynamicItem(state, action);\n\n case \"restore-collapsing-item\":\n return restoreCollapsingItem(state);\n\n case \"collapse-instant-item\":\n return collapseInstantItem(state, action);\n\n case \"add-source-item\":\n return addSourceItem(state, action);\n\n case \"remove-item\":\n return removeItem(state, action);\n\n default:\n return state;\n }\n};\n"],"names":["React","isValidElement","injectedItem","collapsingItem"],"mappings":";;;;;;;;;;AAoFA,MAAM,gBAAmB,GAAA,CAAA,CAAA;AAEzB,MAAM,uBAAA,GAA0B,CAC9B,QAAA,EACA,EACmB,KAAA;AACnB,EAAA,MAAM,gBAAgC,EAAC,CAAA;AACvC,EAAAA,yBAAA,CAAM,QAAS,CAAA,OAAA,CAAQ,QAAU,EAAA,CAAC,OAAO,CAAM,KAAA;AAC7C,IAAI,IAAAC,oBAAA,CAAe,KAAK,CAAG,EAAA;AACzB,MAAA,aAAA,CAAc,IAAK,CAAA,EAAA,CAAG,KAAO,EAAA,CAAC,CAAC,CAAA,CAAA;AAAA,KACjC;AAAA,GACD,CAAA,CAAA;AACD,EAAO,OAAA,aAAA,CAAA;AACT,CAAA,CAAA;AAEA,MAAM,UAAa,GAAA,CACjB,IACA,EAAA,EAAA,EACA,OACA,OAC2B,KAAA;AAxG7B,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAyGE,EAAM,MAAA,QAAA,GAAA,CACJ,oDAAS,WAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAuB,MAAM,KAA7B,CAAA,KAAA,IAAA,GAAA,EAAA,GAAuC,IAAK,CAAA,QAAA,KAA5C,IAAwD,GAAA,EAAA,GAAA,gBAAA,CAAA;AAE1D,EAAO,OAAA;AAAA,IAEL,SAAA,EAAW,IAAK,CAAA,SAAA,KAAa,OAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,SAAA,CAAA;AAAA,IACtC,UAAU,OAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,QAAA;AAAA,IACnB,OAAS,EAAA,IAAA;AAAA,IACT,QAAU,EAAA,IAAA;AAAA,IACV,EAAA,EAAA,CAAI,EAAK,GAAA,IAAA,CAAA,EAAA,KAAL,IAAW,GAAA,EAAA,GAAA,EAAA;AAAA,IACf,KAAA;AAAA,IACA,OAAO,IAAK,CAAA,KAAA;AAAA,IACZ,UAAU,IAAK,CAAA,QAAA;AAAA,IACf,QAAA;AAAA,IACA,IAAM,EAAA,CAAA;AAAA,IACN,MAAQ,EAAA,IAAA;AAAA,IACR,IAAM,EAAA,QAAA;AAAA,GACR,CAAA;AACF,CAAA,CAAA;AAEA,MAAM,iBAAoB,GAAA,CACxB,MACA,EAAA,MAAA,EACA,OACyC,KAAA;AACzC,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,MAAM,CAAG,EAAA;AACzB,IAAA,OAAO,MAAO,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,KAAU,KAAA;AAnIvC,MAAA,IAAA,EAAA,CAAA;AAoIM,MAAiB,CAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAS,WAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAuB,MAAQ,EAAA,KAAA,EAAA;AAChD,MAAA,OAAO,WAAW,IAAM,EAAA,CAAA,EAAG,MAAU,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAS,OAAO,OAAO,CAAA,CAAA;AAAA,KAC7D,CAAA,CAAA;AAAA,GACH;AACF,CAAA,CAAA;AAaA,MAAM,SAAY,GAAA,CAChB,KACA,EAAA,EAAA,EACA,OACA,OAC0B,KAAA;AA1J5B,EAAA,IAAA,EAAA,CAAA;AA2JE,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,QAAA;AAAA,IACA,EAAI,EAAA,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,kBAAoB,EAAA,WAAA;AAAA,IACpB,eAAiB,EAAA,QAAA;AAAA,IACjB,eAAiB,EAAA,YAAA;AAAA,IACjB,iBAAiB,YAAe,GAAA,GAAA;AAAA,MAC9B,KAAM,CAAA,KAAA,CAAA;AAEV,EAAA,MAAM,QAAW,GAAA,CAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAS,WAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAuB,KAAO,EAAA,KAAA,CAAA,CAAA;AAE/C,EAAO,OAAA;AAAA,IACL,SAAA,EAAW,cAAa,OAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,SAAA,CAAA;AAAA,IACjC,WAAA;AAAA,IACA,QAAA,EAAU,QAAW,GAAA,IAAA,GAAO,OAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,QAAA;AAAA,IACrC,QAAA;AAAA,IACA,QAAU,EAAA,IAAA;AAAA,IACV,IAAI,MAAU,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA;AAAA,IACd,KAAA;AAAA,IACA,OAAS,EAAA,KAAA;AAAA,IACT,KAAA;AAAA,IACA,QAAU,EAAA,YAAA;AAAA,IACV,QAAU,EAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,MAAO,CAAA,QAAA,CAAS,YAAY,CAAA;AAAA,IAClD,IAAM,EAAA,CAAA;AAAA,IACN,MAAQ,EAAA,IAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,GACR,CAAA;AACF,CAAA,CAAA;AAEA,MAAM,gBAAmB,GAAA,CACvB,QACA,EAAA,MAAA,EACA,OACwC,KAAA;AACxC,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,OAAO,uBAAwB,CAAA,QAAA,EAAU,CAAC,KAAA,EAAO,KAAU,KAAA;AACzD,MAAM,MAAA,EAAA,GAAK,GAAG,MAAU,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACxB,MAAA,OAAO,SAAU,CAAA,KAAA,EAAO,EAAI,EAAA,KAAA,EAAO,OAAO,CAAA,CAAA;AAAA,KAC3C,CAAA,CAAA;AAAA,GACH;AACF,CAAA,CAAA;AAEA,MAAM,qBAAwB,GAAA,CAC5B,KACA,EAAA,MAAA,EACA,UACuC,KAAA;AACvC,EAAA,OAAO,KAAM,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,CAAM,KAAA;AAC5B,IAAA,MAAM,QAAQ,UAAa,GAAA,CAAA,CAAA;AAC3B,IAAM,MAAA,EAAA,GAAK,GAAG,MAAU,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACxB,IAAM,MAAA,EAAE,QAAW,GAAA,IAAA,CAAA;AACnB,IAAA,IAAI,MAAQ,EAAA;AACV,MAAA,MAAMC,aAAe,GAAA,UAAA,CAAW,MAAQ,EAAA,EAAA,EAAI,KAAK,CAAA,CAAA;AACjD,MAAAA,cAAa,cAAiB,GAAA,IAAA,CAAA;AAC9B,MAAOA,OAAAA,aAAAA,CAAAA;AAAA,KACT;AACA,IAAM,MAAA,EAAE,SAAY,GAAA,IAAA,CAAA;AACpB,IAAA,MAAM,YAAe,GAAA,SAAA,CAAU,OAAS,EAAA,EAAA,EAAI,KAAK,CAAA,CAAA;AACjD,IAAA,YAAA,CAAa,cAAiB,GAAA,IAAA,CAAA;AAC9B,IAAO,OAAA,YAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH,CAAA,CAAA;AAIA,MAAM,iBAAiB,EAAC,CAAA;AAUjB,MAAM,qBAEQ,CAAC;AAAA,EACpB,QAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAgB,EAAC;AAAA,EACjB,MAAA;AAAA,EACA,OAAU,GAAA,cAAA;AACZ,CAAM,KAAA;AACJ,EAAM,MAAA,eAAA,GACJ,gBAAiB,CAAA,QAAA,EAAU,MAAQ,EAAA,OAAO,CAC1C,IAAA,iBAAA,CAAkB,MAAQ,EAAA,MAAA,EAAQ,OAAO,CAAA,IACzC,EAAC,CAAA;AACH,EAAA,MAAM,eAAkB,GAAA,qBAAA;AAAA,IACtB,aAAA;AAAA,IACA,MAAA;AAAA,IACA,eAAgB,CAAA,MAAA;AAAA,GAClB,CAAA;AACA,EAAO,OAAA,eAAA,CAAgB,OAAO,eAAe,CAAA,CAAA;AAC/C,EAAA;AAEA,MAAM,iBAAiB,CACrB,KAAA,EACA,EAAE,YAAA,OAEF,KAAM,CAAA,GAAA;AAAA,EAAI,CAAC,IACT,KAAA,IAAA,KAAS,YACL,GAAA;AAAA,IACE,GAAG,IAAA;AAAA,IACH,UAAY,EAAA,IAAA;AAAA,GAEd,GAAA,IAAA;AACN,CAAA,CAAA;AAEF,MAAM,wBAAwB,CAC5B,KAAA,EACA,EAAE,YAAA,OAEF,KAAM,CAAA,GAAA;AAAA,EAAI,CAAC,IACT,KAAA,IAAA,KAAS,YACL,GAAA;AAAA,IACE,GAAG,IAAA;AAAA,IACH,SAAW,EAAA,KAAA;AAAA,IACX,UAAY,EAAA,IAAA;AAAA,IACZ,MAAM,IAAK,CAAA,QAAA;AAAA,IACX,QAAU,EAAA,IAAA;AAAA,GAEZ,GAAA,IAAA;AACN,CAAA,CAAA;AAEF,MAAM,sBAAsB,CAC1B,KAAA,EACA,EAAE,YAAA,OAEF,KAAM,CAAA,GAAA;AAAA,EAAI,CAAC,IACT,KAAA,IAAA,KAAS,YACL,GAAA;AAAA,IACE,GAAG,IAAA;AAAA,IACH,SAAW,EAAA,IAAA;AAAA,GAEb,GAAA,IAAA;AACN,CAAA,CAAA;AAEF,MAAM,cAAc,CAClB,KAAA,EACA,EAAE,YAAA,OAEF,KAAM,CAAA,GAAA;AAAA,EAAI,CAAC,IACT,KAAA,IAAA,CAAK,KAAU,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,SAAQ,YAAe,GAAA,IAAA;AACtD,CAAA,CAAA;AAEF,MAAM,cAAc,CAClB,KAAA,EACA,EAAE,aAAgB,GAAA,IACf,KAAA;AACH,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAM,MAAA,UAAA,GAAa,cAAc,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,EAAA,KAAO,KAAK,EAAE,CAAA,CAAA;AAC7D,IAAA,OAAO,aAAa,EAAE,GAAG,IAAM,EAAA,GAAG,YAAe,GAAA,IAAA,CAAA;AAAA,GAClD,CAAA,CAAA;AACH,CAAA,CAAA;AAEA,MAAM,qBAAA,GAAwB,CAAC,KAA0B,KAAA;AACvD,EAAA,MAAMC,kBAAiB,KAAM,CAAA,IAAA;AAAA,IAC3B,CAAC,EAAE,WAAA,EAAa,UAAW,EAAA,KAAM,gBAAgB,SAAa,IAAA,UAAA;AAAA,GAChE,CAAA;AACA,EAAA,MAAM,gBAAgB,KAAM,CAAA,IAAA;AAAA,IAC1B,CAAC,EAAE,WAAA,EAAa,SAAU,EAAA,KAAM,gBAAgB,SAAa,IAAA,SAAA;AAAA,GAC/D,CAAA;AACA,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAA,IAAI,SAASA,eAAgB,EAAA;AAC3B,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,UAAY,EAAA,KAAA;AAAA,OACd,CAAA;AAAA,KACF;AACA,IAAA,IAAI,SAAS,aAAe,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,SAAW,EAAA,KAAA;AAAA,QACX,UAAY,EAAA,IAAA;AAAA,OACd,CAAA;AAAA,KACF;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH,CAAA,CAAA;AAEA,MAAM,mBAAA,GAAsB,CAC1B,KACA,EAAA,EAAE,cAAc,aAAgB,GAAA,CAAA,EAAG,OAAU,GAAA,CAAA,EAC1C,KAAA;AACH,EAAA,MAAM,4BAA4B,KAAM,CAAA,MAAA;AAAA,IACtC,CAAC,MAAM,CAAE,CAAA,WAAA,KAAgB,aAAa,CAAC,CAAA,CAAE,aAAa,CAAM,KAAA,YAAA;AAAA,GAC9D,CAAA;AACA,EAAM,MAAA,mBAAA,GAAsB,0BAA0B,GAAI,EAAA,CAAA;AAE1D,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAA,IAAI,SAAS,YAAc,EAAA;AACzB,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,UAAY,EAAA,KAAA;AAAA,QACZ,SAAW,EAAA,IAAA;AAAA,QACX,UAAU,IAAK,CAAA,IAAA;AAAA,QACf,OAAA;AAAA,QACA,IAAM,EAAA,aAAA;AAAA,OACR,CAAA;AAAA,KACF;AACA,IAAA,IAAI,SAAS,mBAAqB,EAAA;AAChC,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,UAAY,EAAA,IAAA;AAAA,OACd,CAAA;AAAA,KACF;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH,CAAA,CAAA;AAEA,MAAM,gBAAgB,CACpB,KAAA,EACA,EAAE,MAAA,EAAQ,QACS,KAAA;AACnB,EAAA,MAAM,QAAQ,KAAM,CAAA,MAAA,CAAA;AACpB,EAAO,OAAA,KAAA,CAAM,OAAO,UAAW,CAAA,MAAA,EAAQ,GAAG,MAAU,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAS,KAAK,CAAC,CAAA,CAAA;AACrE,CAAA,CAAA;AAEA,MAAM,UAAa,GAAA,CACjB,KACA,EAAA,EAAE,eACiB,KAAA;AACnB,EAAO,OAAA,KAAA,CAAM,KAAM,CAAA,CAAA,EAAG,aAAa,CAAA,CAAE,OAAO,KAAM,CAAA,KAAA,CAAM,aAAgB,GAAA,CAAC,CAAC,CAAA,CAAA;AAC5E,CAAA,CAAA;AAEA,MAAM,oBAAuB,GAAA,CAC3B,KACA,EAAA,EAAE,cACC,KAAA;AAEH,EAAA,IAAI,CAAC,KAAM,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,mBAAmB,CAAG,EAAA;AAC7C,IAAA,IAAI,MAAM,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,KAAA,KAAU,SAAS,CAAG,EAAA;AAC5C,MAAA,MAAM,CAAC,MAAM,CAAI,GAAA,KAAA,CAAM,MAAM,CAAE,CAAA,CAAA,CAAA;AAC/B,MAAO,OAAA,KAAA,CACJ,MAAM,CAAG,EAAA,CAAA,CAAE,EACX,MAAO,CAAA,EAAE,GAAG,YAAc,EAAA,KAAA,EAAO,OAAO,KAAM,EAAC,EAC/C,MAAO,CAAA,EAAE,GAAG,MAAQ,EAAA,KAAA,EAAO,YAAa,CAAA,KAAA,EAAO,CAAA,CAAA;AAAA,KACpD;AACA,IAAO,OAAA,KAAA,CAAM,OAAO,YAAY,CAAA,CAAA;AAAA,GAClC;AACA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,eAAA,GAAmC,CAAC,KAAA,EAAO,MAAW,KAAA;AAjZnE,EAAA,IAAA,EAAA,CAAA;AAkZE,EAAA,QAAQ,MAAO,CAAA,IAAA;AAAA,IACR,KAAA,MAAA;AACH,MAAO,OAAA,CAAA,EAAA,GAAA,MAAA,CAAO,kBAAP,IAAwB,GAAA,EAAA,GAAA,KAAA,CAAA;AAAA,IAC5B,KAAA,wBAAA;AACH,MAAO,OAAA,oBAAA,CAAqB,OAAO,MAAM,CAAA,CAAA;AAAA,IAEtC,KAAA,cAAA;AACH,MAAO,OAAA,WAAA,CAAY,OAAO,MAAM,CAAA,CAAA;AAAA,IAE7B,KAAA,cAAA;AACH,MAAO,OAAA,WAAA,CAAY,OAAO,MAAM,CAAA,CAAA;AAAA,IAE7B,KAAA,qCAAA;AACH,MAAO,OAAA,oBAAA;AAAA,QACL,YAAY,KAAO,EAAA;AAAA,UACjB,IAAM,EAAA,cAAA;AAAA,UACN,eAAe,MAAO,CAAA,aAAA;AAAA,SACvB,CAAA;AAAA,QACD,EAAE,IAAA,EAAM,wBAA0B,EAAA,YAAA,EAAc,OAAO,YAAa,EAAA;AAAA,OACtE,CAAA;AAAA,IAEG,KAAA,wCAAA;AACH,MAAA,OAAO,YAAY,KAAO,EAAA;AAAA,QACxB,IAAM,EAAA,cAAA;AAAA,QACN,eAAe,MAAO,CAAA,aAAA;AAAA,OACvB,CAAE,CAAA,MAAA,CAAO,CAAC,IAAS,KAAA,CAAC,KAAK,mBAAmB,CAAA,CAAA;AAAA,IAE1C,KAAA,iBAAA;AACH,MAAO,OAAA,cAAA,CAAe,OAAO,MAAM,CAAA,CAAA;AAAA,IAEhC,KAAA,uBAAA;AACH,MAAO,OAAA,mBAAA,CAAoB,OAAO,MAAM,CAAA,CAAA;AAAA,IAErC,KAAA,yBAAA;AACH,MAAO,OAAA,qBAAA,CAAsB,OAAO,MAAM,CAAA,CAAA;AAAA,IAEvC,KAAA,yBAAA;AACH,MAAA,OAAO,sBAAsB,KAAK,CAAA,CAAA;AAAA,IAE/B,KAAA,uBAAA;AACH,MAAO,OAAA,mBAAA,CAAoB,OAAO,MAAM,CAAA,CAAA;AAAA,IAErC,KAAA,iBAAA;AACH,MAAO,OAAA,aAAA,CAAc,OAAO,MAAM,CAAA,CAAA;AAAA,IAE/B,KAAA,aAAA;AACH,MAAO,OAAA,UAAA,CAAW,OAAO,MAAM,CAAA,CAAA;AAAA,IAAA;AAG/B,MAAO,OAAA,KAAA,CAAA;AAAA,GAAA;AAEb;;;;;"}
|
|
1
|
+
{"version":3,"file":"OverflowReducer.js","sources":["../src/responsive/OverflowReducer.ts"],"sourcesContent":["/**\n * This reducer manages a collection of items that represent the content of an overflowable container.\n * The items are mostly content configured by the caller of the container, either data passed though\n * the source prop or as child elements. We also support 'injected' items. These allow for additional UI\n * controls to be inserted into the container, eg an 'Add Item' button.\n */\nimport {\n Children,\n type ReactElement,\n type ReactNode,\n type Reducer,\n isValidElement,\n} from \"react\";\n\nimport type {\n InjectedChildItem,\n InjectedSourceItem,\n OverflowCollectionOptions,\n OverflowItem,\n OverflowItems,\n OverflowSource,\n} from \"./overflowTypes\";\n\ninterface InitAction {\n type: \"init\";\n overflowItems?: OverflowItem[];\n}\n\ninterface SourceAction {\n type: \"add-source-item\";\n idRoot: string;\n source: any;\n}\ninterface AddChildAction {\n type: \"add-child-item\";\n idRoot: string;\n indexPosition?: number;\n element: ReactElement;\n}\ninterface RemoveItemAction {\n type: \"remove-item\";\n indexPosition: number;\n}\n\ninterface MultiItemAction {\n type: \"update-items\" | \"update-items-remove-overflow-indicator\";\n overflowItems: Partial<Omit<OverflowItem, \"id\">> & Pick<OverflowItem, \"id\">[];\n}\ninterface SingleItemAction {\n type:\n | \"add-overflow-indicator\"\n | \"replace-item\"\n | \"collapsing-item\"\n | \"uncollapse-dynamic-item\"\n | \"collapse-instant-item\";\n\n overflowItem: OverflowItem;\n}\n\ninterface CombinedItemAction {\n type: \"update-items-add-overflow-indicator\";\n overflowItem: OverflowItem<any>;\n overflowItems: OverflowItem[];\n}\n\ninterface EmptyPayloadAction {\n type: \"restore-collapsing-item\";\n}\ninterface DynamicCollapseAction extends Omit<SingleItemAction, \"type\"> {\n type: \"collapse-dynamic-item\";\n collapsedSize: number;\n minSize: number;\n}\n\nexport type OverflowAction =\n | AddChildAction\n | CombinedItemAction\n | DynamicCollapseAction\n | EmptyPayloadAction\n | InitAction\n | MultiItemAction\n | RemoveItemAction\n | SingleItemAction\n | SourceAction;\n\nconst DEFAULT_PRIORITY = 3;\n\nconst mapReactElementChildren = (\n children: ReactNode,\n fn: (el: ReactElement, index: number) => OverflowItem,\n): OverflowItem[] => {\n const childElements: OverflowItem[] = [];\n Children.forEach(children, (child, i) => {\n if (isValidElement(child)) {\n childElements.push(fn(child, i));\n }\n });\n return childElements;\n};\n\nconst sourceItem = (\n item: OverflowSource,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\"> => {\n const priority =\n options?.getPriority?.(item, index) ?? item.priority ?? DEFAULT_PRIORITY;\n\n return {\n //TODO editable closeable configurable via item\n closeable: item.closeable || options?.closeable,\n editable: options?.editable,\n element: null,\n fullSize: null,\n id: item.id ?? id,\n index,\n label: item.label,\n position: item.position,\n priority,\n size: 0,\n source: item,\n type: \"source\",\n };\n};\n\nconst createSourceItems = (\n source: any,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\">[] | undefined => {\n if (Array.isArray(source)) {\n return source.map((item, index) => {\n const priority = options?.getPriority?.(source, index);\n return sourceItem(item, `${idRoot}-${index}`, index, options);\n });\n }\n};\n\ntype OverflowChild = {\n closeable?: boolean;\n disabled?: boolean;\n id?: string;\n label?: string;\n \"data-collapsible\"?: boolean;\n \"data-editable\"?: boolean;\n \"data-position\"?: number;\n \"data-priority\"?: string;\n};\n\nconst childItem = (\n child: ReactElement,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\"> => {\n const {\n closeable,\n disabled,\n id: idProp,\n label,\n \"data-collapsible\": collapsible,\n \"data-editable\": editable,\n \"data-position\": dataPosition,\n \"data-priority\": dataPriority = \"2\",\n } = child.props as OverflowChild;\n\n const priority = options?.getPriority?.(child, index);\n\n return {\n closeable: closeable || options?.closeable,\n collapsible,\n editable: editable ? true : options?.editable,\n disabled,\n fullSize: null,\n id: idProp ?? id,\n index,\n element: child,\n label,\n position: dataPosition,\n priority: priority ?? Number.parseInt(dataPriority),\n size: 0,\n source: null,\n type: \"child\",\n } as OverflowItem;\n};\n\nconst createChildItems = (\n children: ReactNode,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\">[] | undefined => {\n if (children) {\n return mapReactElementChildren(children, (child, index) => {\n const id = `${idRoot}-${index}`;\n return childItem(child, id, index, options);\n });\n }\n};\n\nconst createInjectedContent = (\n items: Array<InjectedSourceItem | InjectedChildItem>,\n idRoot: string,\n startIndex: number,\n): OverflowItem<\"source\" | \"child\">[] => {\n return items.map((item, i) => {\n const index = startIndex + i;\n const id = `${idRoot}-${index}`;\n const { source } = item as InjectedSourceItem;\n if (source) {\n const injectedItem = sourceItem(source, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n }\n const { element } = item as InjectedChildItem;\n const injectedItem = childItem(element, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n });\n};\n\nexport type OverflowReducer = Reducer<OverflowItems, OverflowAction>;\n\nconst defaultOptions = {};\n\nexport type OverflowReducerInitialisationProps = {\n children?: ReactNode;\n source?: OverflowSource[];\n injectedItems?: any[];\n idRoot: string;\n options?: OverflowCollectionOptions;\n};\n\nexport const reducerInitialiser: (\n props: OverflowReducerInitialisationProps,\n) => OverflowItems = ({\n children,\n source,\n injectedItems = [],\n idRoot,\n options = defaultOptions,\n}) => {\n const providedContent: OverflowItems =\n createChildItems(children, idRoot, options) ||\n createSourceItems(source, idRoot, options) ||\n [];\n const injectedContent = createInjectedContent(\n injectedItems,\n idRoot,\n providedContent.length,\n );\n return providedContent.concat(injectedContent);\n};\n\nconst collapsingItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsing: true,\n }\n : item,\n );\n\nconst uncollapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: false,\n collapsing: true,\n size: item.fullSize as number,\n fullSize: null,\n }\n : item,\n );\n\nconst collapseInstantItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: true,\n }\n : item,\n );\n\nconst replaceItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item.index === overflowItem?.index ? overflowItem : item,\n );\n\nconst updateItems = (\n items: OverflowItem[],\n { overflowItems = [] }: MultiItemAction,\n) => {\n return items.map((item) => {\n const targetItem = overflowItems.find((i) => i.id === item.id);\n return targetItem ? { ...item, ...targetItem } : item;\n });\n};\n\nconst restoreCollapsingItem = (items: OverflowItem[]) => {\n const collapsingItem = items.find(\n ({ collapsible, collapsing }) => collapsible === \"dynamic\" && collapsing,\n );\n const collapsedItem = items.find(\n ({ collapsible, collapsed }) => collapsible === \"dynamic\" && collapsed,\n );\n return items.map((item) => {\n if (item === collapsingItem) {\n return {\n ...item,\n collapsing: false,\n };\n }\n if (item === collapsedItem) {\n return {\n ...item,\n collapsed: false,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst collapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem, collapsedSize = 0, minSize = 0 }: DynamicCollapseAction,\n) => {\n const remainingUncollpasedItems = items.filter(\n (i) => i.collapsible === \"dynamic\" && !i.collapsed && i !== overflowItem,\n );\n const lastUncollapsedItem = remainingUncollpasedItems.pop();\n\n return items.map((item) => {\n if (item === overflowItem) {\n return {\n ...item,\n collapsing: false,\n collapsed: true,\n fullSize: item.size,\n minSize,\n size: collapsedSize,\n };\n }\n if (item === lastUncollapsedItem) {\n return {\n ...item,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst addSourceItem = (\n items: OverflowItem<any>[],\n { idRoot, source }: SourceAction,\n): OverflowItem[] => {\n const index = items.length;\n return items.concat(sourceItem(source, `${idRoot}-${index}`, index));\n};\n\nconst removeItem = (\n items: OverflowItem<any>[],\n { indexPosition }: RemoveItemAction,\n): OverflowItem[] => {\n return items.slice(0, indexPosition).concat(items.slice(indexPosition + 1));\n};\n\nconst addOverflowIndicator = (\n items: OverflowItem<any>[],\n { overflowItem }: SingleItemAction,\n) => {\n // Guard against accidental duplicate overflowIndicator\n if (!items.find((i) => i.isOverflowIndicator)) {\n if (items.find((i) => i.label === \"Add Tab\")) {\n const [addTab] = items.slice(-1);\n return items\n .slice(0, -1)\n .concat({ ...overflowItem, index: addTab.index })\n .concat({ ...addTab, index: overflowItem.index });\n }\n return items.concat(overflowItem);\n }\n return items;\n};\n\nexport const overflowReducer: OverflowReducer = (state, action) => {\n switch (action.type) {\n case \"init\":\n return action.overflowItems ?? state;\n case \"add-overflow-indicator\":\n return addOverflowIndicator(state, action);\n\n case \"update-items\":\n return updateItems(state, action);\n\n case \"replace-item\":\n return replaceItem(state, action);\n\n case \"update-items-add-overflow-indicator\":\n return addOverflowIndicator(\n updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }),\n { type: \"add-overflow-indicator\", overflowItem: action.overflowItem },\n );\n\n case \"update-items-remove-overflow-indicator\":\n return updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }).filter((item) => !item.isOverflowIndicator);\n\n case \"collapsing-item\":\n return collapsingItem(state, action);\n\n case \"collapse-dynamic-item\":\n return collapseDynamicItem(state, action);\n\n case \"uncollapse-dynamic-item\":\n return uncollapseDynamicItem(state, action);\n\n case \"restore-collapsing-item\":\n return restoreCollapsingItem(state);\n\n case \"collapse-instant-item\":\n return collapseInstantItem(state, action);\n\n case \"add-source-item\":\n return addSourceItem(state, action);\n\n case \"remove-item\":\n return removeItem(state, action);\n\n default:\n return state;\n }\n};\n"],"names":["Children","isValidElement","injectedItem","collapsingItem"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
var overflowUtils = require('./overflowUtils.js');
|
|
8
8
|
|
|
9
9
|
const UNCOLLAPSED_DYNAMIC_ITEMS = '[data-collapsible="dynamic"]:not([data-collapsed="true"]):not([data-collapsing="true"])';
|
|
@@ -23,13 +23,13 @@ const useDynamicCollapse = ({
|
|
|
23
23
|
orientation
|
|
24
24
|
}) => {
|
|
25
25
|
const { dispatch } = collectionHook;
|
|
26
|
-
const [newCollapsingItem, setNewCollapsingItem] =
|
|
27
|
-
const restoreCollapsingItem =
|
|
26
|
+
const [newCollapsingItem, setNewCollapsingItem] = react.useState(null);
|
|
27
|
+
const restoreCollapsingItem = react.useCallback(() => {
|
|
28
28
|
dispatch({
|
|
29
29
|
type: "restore-collapsing-item"
|
|
30
30
|
});
|
|
31
31
|
}, [dispatch]);
|
|
32
|
-
const collapseCollapsingItem =
|
|
32
|
+
const collapseCollapsingItem = react.useCallback(
|
|
33
33
|
(item, target, minSize) => {
|
|
34
34
|
const styleDimension = orientation === "horizontal" ? "minWidth" : "minHeight";
|
|
35
35
|
target.style[styleDimension] = `${minSize}px`;
|
|
@@ -43,7 +43,7 @@ const useDynamicCollapse = ({
|
|
|
43
43
|
},
|
|
44
44
|
[dispatch, orientation]
|
|
45
45
|
);
|
|
46
|
-
const checkDynamicContent =
|
|
46
|
+
const checkDynamicContent = react.useCallback(
|
|
47
47
|
(containerHasGrown) => {
|
|
48
48
|
const { current: managedItems } = managedItemsRef;
|
|
49
49
|
const collapsingChild = managedItems.find(
|
|
@@ -103,7 +103,7 @@ const useDynamicCollapse = ({
|
|
|
103
103
|
restoreCollapsingItem
|
|
104
104
|
]
|
|
105
105
|
);
|
|
106
|
-
const handleResize =
|
|
106
|
+
const handleResize = react.useCallback(
|
|
107
107
|
(size, containerHasGrown) => {
|
|
108
108
|
const { current: managedItems } = managedItemsRef;
|
|
109
109
|
const { isOverflowing: willOverflow } = overflowUtils.measureContainerOverflow(
|
|
@@ -119,7 +119,7 @@ const useDynamicCollapse = ({
|
|
|
119
119
|
},
|
|
120
120
|
[checkDynamicContent, managedItemsRef, orientation, ref]
|
|
121
121
|
);
|
|
122
|
-
const resetMeasurements =
|
|
122
|
+
const resetMeasurements = react.useCallback(() => {
|
|
123
123
|
const { current: managedItems } = managedItemsRef;
|
|
124
124
|
const hasDynamicItems = hasUncollapsedDynamicItems(ref);
|
|
125
125
|
if (hasDynamicItems) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var core = require('@salt-ds/core');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
var overflowUtils = require('./overflowUtils.js');
|
|
8
8
|
|
|
9
9
|
const newlyCollapsed = (overflowItems) => overflowItems.some(
|
|
@@ -48,9 +48,9 @@ const useInstantCollapse = ({
|
|
|
48
48
|
overflowItemsRef,
|
|
49
49
|
orientation
|
|
50
50
|
}) => {
|
|
51
|
-
const minMaxSizes =
|
|
51
|
+
const minMaxSizes = react.useMemo(() => /* @__PURE__ */ new Map(), []);
|
|
52
52
|
const { dispatch } = collectionHook;
|
|
53
|
-
const updateCollapse =
|
|
53
|
+
const updateCollapse = react.useCallback(
|
|
54
54
|
(containerSize, renderedSize) => {
|
|
55
55
|
const { current: managedItems } = overflowItemsRef;
|
|
56
56
|
if (renderedSize && containerSize < renderedSize) {
|
|
@@ -73,7 +73,7 @@ const useInstantCollapse = ({
|
|
|
73
73
|
},
|
|
74
74
|
[dispatch, overflowItemsRef]
|
|
75
75
|
);
|
|
76
|
-
const handleResize =
|
|
76
|
+
const handleResize = react.useCallback(
|
|
77
77
|
(size, containerHasGrown) => {
|
|
78
78
|
const { current: managedItems } = overflowItemsRef;
|
|
79
79
|
const { isOverflowing: willOverflow } = overflowUtils.measureContainerOverflow(
|
|
@@ -105,7 +105,7 @@ const useInstantCollapse = ({
|
|
|
105
105
|
updateCollapse
|
|
106
106
|
]
|
|
107
107
|
);
|
|
108
|
-
const resetMeasurements =
|
|
108
|
+
const resetMeasurements = react.useCallback(
|
|
109
109
|
(isOverflowing) => {
|
|
110
110
|
const { current: managedItems } = overflowItemsRef;
|
|
111
111
|
if (isOverflowing) {
|
|
@@ -122,7 +122,7 @@ const useInstantCollapse = ({
|
|
|
122
122
|
},
|
|
123
123
|
[dispatch, overflowItemsRef]
|
|
124
124
|
);
|
|
125
|
-
const setMinSize =
|
|
125
|
+
const setMinSize = react.useCallback(
|
|
126
126
|
(item, size) => {
|
|
127
127
|
const minMaxSize = minMaxSizes.get(item.index);
|
|
128
128
|
if (minMaxSize) {
|
|
@@ -133,7 +133,7 @@ const useInstantCollapse = ({
|
|
|
133
133
|
},
|
|
134
134
|
[minMaxSizes]
|
|
135
135
|
);
|
|
136
|
-
const measureCollapsedItem =
|
|
136
|
+
const measureCollapsedItem = react.useCallback(() => {
|
|
137
137
|
const { current: managedItems } = overflowItemsRef;
|
|
138
138
|
const dimension = orientation === "horizontal" ? "width" : "height";
|
|
139
139
|
const [collapsedItem] = managedItems.filter(
|