@gooddata/sdk-ui-kit 10.38.0-alpha.2 → 10.39.0-alpha.1
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/esm/@ui/@types/icon.d.ts +1 -1
- package/esm/@ui/@types/icon.d.ts.map +1 -1
- package/esm/@ui/@types/themeColors.d.ts +1 -1
- package/esm/@ui/@types/themeColors.d.ts.map +1 -1
- package/esm/@ui/@types/themeColors.js +1 -1
- package/esm/@ui/@types/themeColors.js.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTable.d.ts.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTable.js +6 -18
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTable.js.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.d.ts +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.d.ts.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js +3 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.d.ts +2 -2
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.d.ts.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.js +3 -4
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.js.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.js +4 -2
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.js.map +1 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableToolbar.js +3 -3
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableToolbar.js.map +1 -1
- package/esm/@ui/UiAsyncTable/types.d.ts +3 -4
- package/esm/@ui/UiAsyncTable/types.d.ts.map +1 -1
- package/esm/@ui/UiFocusManager/UiAutofocus.d.ts.map +1 -1
- package/esm/@ui/UiFocusManager/UiAutofocus.js +4 -4
- package/esm/@ui/UiFocusManager/UiAutofocus.js.map +1 -1
- package/esm/@ui/UiFocusManager/UiFocusManager.d.ts +2 -1
- package/esm/@ui/UiFocusManager/UiFocusManager.d.ts.map +1 -1
- package/esm/@ui/UiFocusManager/UiFocusManager.js +2 -2
- package/esm/@ui/UiFocusManager/UiFocusManager.js.map +1 -1
- package/esm/@ui/UiFocusManager/UiFocusTrap.d.ts +2 -1
- package/esm/@ui/UiFocusManager/UiFocusTrap.d.ts.map +1 -1
- package/esm/@ui/UiFocusManager/UiFocusTrap.js +5 -5
- package/esm/@ui/UiFocusManager/UiFocusTrap.js.map +1 -1
- package/esm/@ui/UiFocusManager/utils.d.ts +9 -1
- package/esm/@ui/UiFocusManager/utils.d.ts.map +1 -1
- package/esm/@ui/UiFocusManager/utils.js +14 -2
- package/esm/@ui/UiFocusManager/utils.js.map +1 -1
- package/esm/@ui/UiIcon/icons.d.ts.map +1 -1
- package/esm/@ui/UiIcon/icons.js +8 -0
- package/esm/@ui/UiIcon/icons.js.map +1 -1
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts +1 -0
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts.map +1 -1
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.js +2 -2
- package/esm/@ui/UiIconButton/UiIconButtonRenderer.js.map +1 -1
- package/esm/@ui/UiTooltip/UiTooltip.d.ts.map +1 -1
- package/esm/@ui/UiTooltip/UiTooltip.js +6 -1
- package/esm/@ui/UiTooltip/UiTooltip.js.map +1 -1
- package/esm/@ui/UiTooltip/types.d.ts +2 -0
- package/esm/@ui/UiTooltip/types.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/UITreeviewItem.d.ts +4 -1
- package/esm/@ui/UiTreeview/UITreeviewItem.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/UITreeviewItem.js +22 -21
- package/esm/@ui/UiTreeview/UITreeviewItem.js.map +1 -1
- package/esm/@ui/UiTreeview/UiTreeview.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/UiTreeview.js +21 -20
- package/esm/@ui/UiTreeview/UiTreeview.js.map +1 -1
- package/esm/@ui/UiTreeview/UiTreeviewRoot.d.ts +3 -3
- package/esm/@ui/UiTreeview/UiTreeviewRoot.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/UiTreeviewRoot.js +2 -2
- package/esm/@ui/UiTreeview/UiTreeviewRoot.js.map +1 -1
- package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.d.ts +1 -1
- package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.js +11 -2
- package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.js.map +1 -1
- package/esm/@ui/UiTreeview/types.d.ts +18 -11
- package/esm/@ui/UiTreeview/types.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/utils.d.ts +14 -4
- package/esm/@ui/UiTreeview/utils.d.ts.map +1 -1
- package/esm/@ui/UiTreeview/utils.js +58 -22
- package/esm/@ui/UiTreeview/utils.js.map +1 -1
- package/esm/AutoSize/AutoSize.d.ts +2 -13
- package/esm/AutoSize/AutoSize.d.ts.map +1 -1
- package/esm/AutoSize/AutoSize.js +21 -24
- package/esm/AutoSize/AutoSize.js.map +1 -1
- package/esm/Bubble/Bubble.d.ts +1 -30
- package/esm/Bubble/Bubble.d.ts.map +1 -1
- package/esm/Bubble/Bubble.js +79 -82
- package/esm/Bubble/Bubble.js.map +1 -1
- package/esm/Button/Button.d.ts.map +1 -1
- package/esm/Button/Button.js +10 -2
- package/esm/Button/Button.js.map +1 -1
- package/esm/Button/typings.d.ts +1 -0
- package/esm/Button/typings.d.ts.map +1 -1
- package/esm/ColorPicker/ColorPicker.d.ts.map +1 -1
- package/esm/ColorPicker/ColorPicker.js +29 -39
- package/esm/ColorPicker/ColorPicker.js.map +1 -1
- package/esm/ColorPicker/components/ColorPickerMatrix.d.ts +2 -4
- package/esm/ColorPicker/components/ColorPickerMatrix.d.ts.map +1 -1
- package/esm/ColorPicker/components/ColorPickerMatrix.js +23 -21
- package/esm/ColorPicker/components/ColorPickerMatrix.js.map +1 -1
- package/esm/ColorPicker/components/ColorsPreview.d.ts +2 -5
- package/esm/ColorPicker/components/ColorsPreview.d.ts.map +1 -1
- package/esm/ColorPicker/components/ColorsPreview.js +12 -20
- package/esm/ColorPicker/components/ColorsPreview.js.map +1 -1
- package/esm/ColorPicker/components/HexColorInput.d.ts +2 -6
- package/esm/ColorPicker/components/HexColorInput.d.ts.map +1 -1
- package/esm/ColorPicker/components/HexColorInput.js +12 -17
- package/esm/ColorPicker/components/HexColorInput.js.map +1 -1
- package/esm/ColorPicker/components/HueColorPicker.d.ts +2 -14
- package/esm/ColorPicker/components/HueColorPicker.d.ts.map +1 -1
- package/esm/ColorPicker/components/HueColorPicker.js +38 -46
- package/esm/ColorPicker/components/HueColorPicker.js.map +1 -1
- package/esm/Dialog/ConfirmDialog.d.ts +2 -4
- package/esm/Dialog/ConfirmDialog.d.ts.map +1 -1
- package/esm/Dialog/ConfirmDialog.js +9 -12
- package/esm/Dialog/ConfirmDialog.js.map +1 -1
- package/esm/Dialog/ConfirmDialogBase.d.ts.map +1 -1
- package/esm/Dialog/ConfirmDialogBase.js +1 -1
- package/esm/Dialog/ConfirmDialogBase.js.map +1 -1
- package/esm/Dialog/DialogBase.d.ts.map +1 -1
- package/esm/Dialog/DialogBase.js +3 -2
- package/esm/Dialog/DialogBase.js.map +1 -1
- package/esm/Dialog/ShareDialog/ShareDialogBase/AddGranteeButton.d.ts.map +1 -1
- package/esm/Dialog/ShareDialog/ShareDialogBase/AddGranteeButton.js +5 -6
- package/esm/Dialog/ShareDialog/ShareDialogBase/AddGranteeButton.js.map +1 -1
- package/esm/Dialog/typings.d.ts +5 -0
- package/esm/Dialog/typings.d.ts.map +1 -1
- package/esm/Dropdown/Dropdown.d.ts +1 -1
- package/esm/Dropdown/Dropdown.d.ts.map +1 -1
- package/esm/Dropdown/Dropdown.js.map +1 -1
- package/esm/FilterLabel/FilterLabel.d.ts.map +1 -1
- package/esm/FilterLabel/FilterLabel.js +41 -60
- package/esm/FilterLabel/FilterLabel.js.map +1 -1
- package/esm/FlexDimensions/FlexDimensions.js +1 -1
- package/esm/Form/Checkbox.d.ts +8 -20
- package/esm/Form/Checkbox.d.ts.map +1 -1
- package/esm/Form/Checkbox.js +15 -27
- package/esm/Form/Checkbox.js.map +1 -1
- package/esm/Form/InputPure.d.ts +20 -20
- package/esm/Form/InputPure.d.ts.map +1 -1
- package/esm/Form/InputPure.js +1 -1
- package/esm/Form/InputPure.js.map +1 -1
- package/esm/Header/Header.d.ts.map +1 -1
- package/esm/Header/Header.js +262 -219
- package/esm/Header/Header.js.map +1 -1
- package/esm/Header/HeaderMenu.d.ts +1 -3
- package/esm/Header/HeaderMenu.d.ts.map +1 -1
- package/esm/Header/HeaderMenu.js +19 -25
- package/esm/Header/HeaderMenu.js.map +1 -1
- package/esm/List/InsightListItem.d.ts +1 -14
- package/esm/List/InsightListItem.d.ts.map +1 -1
- package/esm/List/InsightListItem.js +34 -41
- package/esm/List/InsightListItem.js.map +1 -1
- package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.d.ts.map +1 -1
- package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.js +5 -4
- package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.js.map +1 -1
- package/esm/List/InvertableSelect/InvertableSelectVirtualised.d.ts.map +1 -1
- package/esm/List/InvertableSelect/InvertableSelectVirtualised.js +11 -6
- package/esm/List/InvertableSelect/InvertableSelectVirtualised.js.map +1 -1
- package/esm/List/LegacyInvertableList.d.ts +3 -74
- package/esm/List/LegacyInvertableList.d.ts.map +1 -1
- package/esm/List/LegacyInvertableList.js +189 -169
- package/esm/List/LegacyInvertableList.js.map +1 -1
- package/esm/List/LegacyList.d.ts +2 -16
- package/esm/List/LegacyList.d.ts.map +1 -1
- package/esm/List/LegacyList.js +40 -65
- package/esm/List/LegacyList.js.map +1 -1
- package/esm/List/LegacyListItem.d.ts +2 -7
- package/esm/List/LegacyListItem.d.ts.map +1 -1
- package/esm/List/LegacyListItem.js +11 -17
- package/esm/List/LegacyListItem.js.map +1 -1
- package/esm/List/LegacyMultiSelectList.d.ts +1 -47
- package/esm/List/LegacyMultiSelectList.d.ts.map +1 -1
- package/esm/List/LegacyMultiSelectList.js +78 -108
- package/esm/List/LegacyMultiSelectList.js.map +1 -1
- package/esm/List/LegacyMultiSelectListItem.d.ts +2 -20
- package/esm/List/LegacyMultiSelectListItem.d.ts.map +1 -1
- package/esm/List/LegacyMultiSelectListItem.js +29 -49
- package/esm/List/LegacyMultiSelectListItem.js.map +1 -1
- package/esm/List/LegacySingleSelectList.d.ts +2 -27
- package/esm/List/LegacySingleSelectList.d.ts.map +1 -1
- package/esm/List/LegacySingleSelectList.js +32 -45
- package/esm/List/LegacySingleSelectList.js.map +1 -1
- package/esm/List/LegacySingleSelectListItem.d.ts +2 -21
- package/esm/List/LegacySingleSelectListItem.d.ts.map +1 -1
- package/esm/List/LegacySingleSelectListItem.js +37 -52
- package/esm/List/LegacySingleSelectListItem.js.map +1 -1
- package/esm/List/MultiSelectList.d.ts.map +1 -1
- package/esm/List/MultiSelectList.js +51 -53
- package/esm/List/MultiSelectList.js.map +1 -1
- package/esm/List/MultiSelectListItem.d.ts +2 -6
- package/esm/List/MultiSelectListItem.d.ts.map +1 -1
- package/esm/List/MultiSelectListItem.js +19 -23
- package/esm/List/MultiSelectListItem.js.map +1 -1
- package/esm/Menu/ControlledMenu.d.ts +1 -9
- package/esm/Menu/ControlledMenu.d.ts.map +1 -1
- package/esm/Menu/ControlledMenu.js +21 -33
- package/esm/Menu/ControlledMenu.js.map +1 -1
- package/esm/Menu/MenuState.d.ts +1 -9
- package/esm/Menu/MenuState.d.ts.map +1 -1
- package/esm/Menu/MenuState.js +19 -28
- package/esm/Menu/MenuState.js.map +1 -1
- package/esm/Menu/menuOpener/MenuOpenedByClick.d.ts.map +1 -1
- package/esm/Menu/menuOpener/MenuOpenedByClick.js +6 -5
- package/esm/Menu/menuOpener/MenuOpenedByClick.js.map +1 -1
- package/esm/Menu/menuOpener/MenuOpenedByHover.d.ts +1 -9
- package/esm/Menu/menuOpener/MenuOpenedByHover.d.ts.map +1 -1
- package/esm/Menu/menuOpener/MenuOpenedByHover.js +28 -28
- package/esm/Menu/menuOpener/MenuOpenedByHover.js.map +1 -1
- package/esm/Menu/menuOpener/MenuOpener.d.ts +1 -5
- package/esm/Menu/menuOpener/MenuOpener.d.ts.map +1 -1
- package/esm/Menu/menuOpener/MenuOpener.js +26 -17
- package/esm/Menu/menuOpener/MenuOpener.js.map +1 -1
- package/esm/Menu/positioning/MenuPosition.d.ts +1 -13
- package/esm/Menu/positioning/MenuPosition.d.ts.map +1 -1
- package/esm/Menu/positioning/MenuPosition.js +17 -26
- package/esm/Menu/positioning/MenuPosition.js.map +1 -1
- package/esm/Menu/positioning/PositionedMenuContent.d.ts +1 -11
- package/esm/Menu/positioning/PositionedMenuContent.d.ts.map +1 -1
- package/esm/Menu/positioning/PositionedMenuContent.js +47 -48
- package/esm/Menu/positioning/PositionedMenuContent.js.map +1 -1
- package/esm/Menu/utils/OutsideClickHandler.d.ts +1 -13
- package/esm/Menu/utils/OutsideClickHandler.d.ts.map +1 -1
- package/esm/Menu/utils/OutsideClickHandler.js +23 -37
- package/esm/Menu/utils/OutsideClickHandler.js.map +1 -1
- package/esm/Menu/utils/RenderChildrenInPortal.d.ts +1 -7
- package/esm/Menu/utils/RenderChildrenInPortal.d.ts.map +1 -1
- package/esm/Menu/utils/RenderChildrenInPortal.js +20 -19
- package/esm/Menu/utils/RenderChildrenInPortal.js.map +1 -1
- package/esm/Messages/Messages.d.ts +7 -1
- package/esm/Messages/Messages.d.ts.map +1 -1
- package/esm/Messages/Messages.js +31 -3
- package/esm/Messages/Messages.js.map +1 -1
- package/esm/Messages/ToastMessages.d.ts.map +1 -1
- package/esm/Messages/ToastMessages.js +7 -6
- package/esm/Messages/ToastMessages.js.map +1 -1
- package/esm/Messages/typings.d.ts +5 -0
- package/esm/Messages/typings.d.ts.map +1 -1
- package/esm/Messages/typings.js +1 -1
- package/esm/Overlay/ErrorOverlay.d.ts +1 -3
- package/esm/Overlay/ErrorOverlay.d.ts.map +1 -1
- package/esm/Overlay/ErrorOverlay.js +9 -11
- package/esm/Overlay/ErrorOverlay.js.map +1 -1
- package/esm/RecurrenceForm/DateTime.d.ts.map +1 -1
- package/esm/RecurrenceForm/DateTime.js +37 -23
- package/esm/RecurrenceForm/DateTime.js.map +1 -1
- package/esm/ResponsiveText/ResponsiveText.d.ts +1 -0
- package/esm/ResponsiveText/ResponsiveText.d.ts.map +1 -1
- package/esm/ResponsiveText/ResponsiveText.js +3 -3
- package/esm/ResponsiveText/ResponsiveText.js.map +1 -1
- package/esm/ShortenedText/ShortenedText.js +1 -1
- package/esm/Spinner/Spinner.d.ts +2 -8
- package/esm/Spinner/Spinner.d.ts.map +1 -1
- package/esm/Spinner/Spinner.js +13 -19
- package/esm/Spinner/Spinner.js.map +1 -1
- package/esm/Tabs/Tabs.d.ts +2 -14
- package/esm/Tabs/Tabs.d.ts.map +1 -1
- package/esm/Tabs/Tabs.js +31 -43
- package/esm/Tabs/Tabs.js.map +1 -1
- package/esm/TextAreaWithSubmit/TextAreaWithSubmit.d.ts +3 -46
- package/esm/TextAreaWithSubmit/TextAreaWithSubmit.d.ts.map +1 -1
- package/esm/TextAreaWithSubmit/TextAreaWithSubmit.js +100 -133
- package/esm/TextAreaWithSubmit/TextAreaWithSubmit.js.map +1 -1
- package/esm/Timepicker/Timepicker.d.ts +3 -29
- package/esm/Timepicker/Timepicker.d.ts.map +1 -1
- package/esm/Timepicker/Timepicker.js +79 -102
- package/esm/Timepicker/Timepicker.js.map +1 -1
- package/esm/index.d.ts +2 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.d.ts +1 -11
- package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.d.ts.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.js +28 -37
- package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.js.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/FormatInput.d.ts.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/FormatInput.js +12 -14
- package/esm/measureNumberFormat/customFormatDialog/FormatInput.js.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.d.ts +2 -12
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.d.ts.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.js +21 -28
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.js.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.d.ts +1 -13
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.d.ts.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.js +20 -26
- package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.js.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.d.ts +1 -8
- package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.d.ts.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.js +16 -22
- package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.js.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.d.ts +1 -8
- package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.d.ts.map +1 -1
- package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.js +15 -19
- package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.js.map +1 -1
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.d.ts +1 -6
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.d.ts.map +1 -1
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.js +19 -25
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.js.map +1 -1
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.d.ts +1 -5
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.d.ts.map +1 -1
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.js +13 -20
- package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.js.map +1 -1
- package/esm/sdk-ui-kit.d.ts +102 -264
- package/esm/typings/accessibility.d.ts +2 -1
- package/esm/typings/accessibility.d.ts.map +1 -1
- package/esm/utils/domUtilities.d.ts +2 -2
- package/esm/utils/domUtilities.d.ts.map +1 -1
- package/esm/utils/domUtilities.js +28 -4
- package/esm/utils/domUtilities.js.map +1 -1
- package/package.json +8 -8
- package/src/@ui/UiAsyncTable/asyncTable.scss +19 -2
- package/src/@ui/themeColorsMap.scss +1 -0
- package/styles/css/invertableSelect.css +13 -0
- package/styles/css/invertableSelect.css.map +1 -1
- package/styles/css/main.css +33 -1
- package/styles/css/main.css.map +1 -1
- package/styles/scss/invertableSelect.scss +15 -0
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.d.ts +0 -7
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.d.ts.map +0 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.js +0 -32
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.js.map +0 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.d.ts +0 -6
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.d.ts.map +0 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.js +0 -86
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.js.map +0 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.d.ts +0 -6
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.d.ts.map +0 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.js +0 -72
- package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.js.map +0 -1
@@ -1,38 +1,34 @@
|
|
1
1
|
// (C) 2007-2025 GoodData Corporation
|
2
|
-
import React, {
|
2
|
+
import React, { memo, useCallback, useMemo } from "react";
|
3
3
|
import { FormattedMessage } from "react-intl";
|
4
4
|
import cx from "classnames";
|
5
5
|
import { stringUtils } from "@gooddata/util";
|
6
6
|
/**
|
7
7
|
* @internal
|
8
8
|
*/
|
9
|
-
export
|
10
|
-
|
11
|
-
const { title, onClick, onMouseOver, onMouseOut, isSelected } = this.props;
|
12
|
-
return (React.createElement("div", { className: this.getClassNames(), onClick: onClick, onMouseOver: onMouseOver, onMouseOut: onMouseOut },
|
13
|
-
React.createElement("label", { className: "input-checkbox-label" },
|
14
|
-
React.createElement("input", { type: "checkbox", className: "input-checkbox", readOnly: true, checked: isSelected }),
|
15
|
-
React.createElement("span", { className: "input-label-text" }, title)),
|
16
|
-
this.renderOnly()));
|
17
|
-
}
|
18
|
-
getClassNames = () => {
|
19
|
-
const { title, isSelected } = this.props;
|
9
|
+
export const MultiSelectListItem = memo(function MultiSelectListItem({ title, onClick, onMouseOver, onMouseOut, isSelected, onOnly, }) {
|
10
|
+
const classNames = useMemo(() => {
|
20
11
|
return cx({
|
21
12
|
"gd-list-item": true,
|
22
13
|
[`s-${stringUtils.simplifyText(title)}`]: true,
|
23
14
|
"has-only-visible": true,
|
24
15
|
"is-selected": isSelected,
|
25
16
|
});
|
26
|
-
};
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
17
|
+
}, [title, isSelected]);
|
18
|
+
const handleOnlyClick = useCallback((e) => {
|
19
|
+
e.stopPropagation();
|
20
|
+
if (onOnly) {
|
21
|
+
onOnly();
|
22
|
+
}
|
23
|
+
}, [onOnly]);
|
24
|
+
const renderOnly = useCallback(() => {
|
25
|
+
return (React.createElement("span", { className: "gd-list-item-only", onClick: handleOnlyClick },
|
35
26
|
React.createElement(FormattedMessage, { id: "gs.list.only" })));
|
36
|
-
};
|
37
|
-
}
|
27
|
+
}, [handleOnlyClick]);
|
28
|
+
return (React.createElement("div", { className: classNames, onClick: onClick, onMouseOver: onMouseOver, onMouseOut: onMouseOut },
|
29
|
+
React.createElement("label", { className: "input-checkbox-label" },
|
30
|
+
React.createElement("input", { type: "checkbox", className: "input-checkbox", readOnly: true, checked: isSelected }),
|
31
|
+
React.createElement("span", { className: "input-label-text" }, title)),
|
32
|
+
renderOnly()));
|
33
|
+
});
|
38
34
|
//# sourceMappingURL=MultiSelectListItem.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MultiSelectListItem.js","sourceRoot":"","sources":["../../src/List/MultiSelectListItem.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,
|
1
|
+
{"version":3,"file":"MultiSelectListItem.js","sourceRoot":"","sources":["../../src/List/MultiSelectListItem.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAc7C;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,mBAAmB,CAAC,EACjE,KAAK,EACL,OAAO,EACP,WAAW,EACX,UAAU,EACV,UAAU,EACV,MAAM,GACkB;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,EAAE,CAAC;YACN,cAAc,EAAE,IAAI;YACpB,CAAC,KAAK,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI;YAC9C,kBAAkB,EAAE,IAAI;YACxB,aAAa,EAAE,UAAU;SAC5B,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAExB,MAAM,eAAe,GAAG,WAAW,CAC/B,CAAC,CAAmB,EAAE,EAAE;QACpB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;QACb,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,CACX,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,OAAO,CACH,8BAAM,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,eAAe;YACxD,oBAAC,gBAAgB,IAAC,EAAE,EAAC,cAAc,GAAG,CACnC,CACV,CAAC;IACN,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU;QAC1F,+BAAO,SAAS,EAAC,sBAAsB;YACnC,+BAAO,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,gBAAgB,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,GAAI;YACzF,8BAAM,SAAS,EAAC,kBAAkB,IAAE,KAAK,CAAQ,CAC7C;QACP,UAAU,EAAE,CACX,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
|
@@ -10,13 +10,5 @@ export interface IControlledMenuProps extends Partial<IMenuPositionConfig> {
|
|
10
10
|
togglerWrapperClassName?: string;
|
11
11
|
children: React.ReactNode;
|
12
12
|
}
|
13
|
-
export declare
|
14
|
-
componentDidMount(): void;
|
15
|
-
componentWillUnmount(): void;
|
16
|
-
componentDidUpdate(prevProps: IControlledMenuProps): void;
|
17
|
-
render(): React.JSX.Element;
|
18
|
-
private closeMenu;
|
19
|
-
private addScrollListeners;
|
20
|
-
private removeScrollListeners;
|
21
|
-
}
|
13
|
+
export declare function ControlledMenu({ opened, openAction, closeOnScroll, portalTarget, onOpenedChange, toggler, togglerWrapperClassName, children, alignment, spacing, offset, }: IControlledMenuProps): React.JSX.Element;
|
22
14
|
//# sourceMappingURL=ControlledMenu.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ControlledMenu.d.ts","sourceRoot":"","sources":["../../src/Menu/ControlledMenu.tsx"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"ControlledMenu.d.ts","sourceRoot":"","sources":["../../src/Menu/ControlledMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGvF,MAAM,WAAW,oBAAqB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,OAAO,EACP,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,GACT,EAAE,oBAAoB,qBAyCtB"}
|
@@ -1,38 +1,26 @@
|
|
1
|
-
// (C) 2007-
|
2
|
-
import React from "react";
|
1
|
+
// (C) 2007-2025 GoodData Corporation
|
2
|
+
import React, { useEffect, useCallback } from "react";
|
3
3
|
import { MenuOpener } from "./menuOpener/MenuOpener.js";
|
4
|
-
export
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
export function ControlledMenu({ opened, openAction, closeOnScroll, portalTarget, onOpenedChange, toggler, togglerWrapperClassName, children, alignment, spacing, offset, }) {
|
5
|
+
const closeMenu = useCallback(() => {
|
6
|
+
onOpenedChange({ opened: false, source: "SCROLL" });
|
7
|
+
}, [onOpenedChange]);
|
8
|
+
const addScrollListeners = useCallback(() => {
|
9
|
+
window.addEventListener("scroll", closeMenu, true);
|
10
|
+
}, [closeMenu]);
|
11
|
+
const removeScrollListeners = useCallback(() => {
|
12
|
+
window.removeEventListener("scroll", closeMenu, true);
|
13
|
+
}, [closeMenu]);
|
14
|
+
useEffect(() => {
|
15
|
+
if (closeOnScroll) {
|
16
|
+
addScrollListeners();
|
8
17
|
}
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
this.removeScrollListeners();
|
13
|
-
}
|
14
|
-
}
|
15
|
-
componentDidUpdate(prevProps) {
|
16
|
-
if (prevProps.closeOnScroll !== this.props.closeOnScroll) {
|
17
|
-
if (this.props.closeOnScroll) {
|
18
|
-
this.addScrollListeners();
|
19
|
-
}
|
20
|
-
else {
|
21
|
-
this.removeScrollListeners();
|
18
|
+
return () => {
|
19
|
+
if (closeOnScroll) {
|
20
|
+
removeScrollListeners();
|
22
21
|
}
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
return (React.createElement(MenuOpener, { opened: this.props.opened, onOpenedChange: this.props.onOpenedChange, openAction: this.props.openAction, alignment: this.props.alignment, spacing: this.props.spacing, offset: this.props.offset, portalTarget: this.props.portalTarget, toggler: this.props.toggler, togglerWrapperClassName: this.props.togglerWrapperClassName, topLevelMenu: true }, this.props.children));
|
27
|
-
}
|
28
|
-
closeMenu = () => {
|
29
|
-
this.props.onOpenedChange({ opened: false, source: "SCROLL" });
|
30
|
-
};
|
31
|
-
addScrollListeners = () => {
|
32
|
-
window.addEventListener("scroll", this.closeMenu, true);
|
33
|
-
};
|
34
|
-
removeScrollListeners = () => {
|
35
|
-
window.removeEventListener("scroll", this.closeMenu, true);
|
36
|
-
};
|
22
|
+
};
|
23
|
+
}, [closeOnScroll, addScrollListeners, removeScrollListeners]);
|
24
|
+
return (React.createElement(MenuOpener, { opened: opened, onOpenedChange: onOpenedChange, openAction: openAction, alignment: alignment, spacing: spacing, offset: offset, portalTarget: portalTarget, toggler: toggler, togglerWrapperClassName: togglerWrapperClassName, topLevelMenu: true }, children));
|
37
25
|
}
|
38
26
|
//# sourceMappingURL=ControlledMenu.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ControlledMenu.js","sourceRoot":"","sources":["../../src/Menu/ControlledMenu.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"ControlledMenu.js","sourceRoot":"","sources":["../../src/Menu/ControlledMenu.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAaxD,MAAM,UAAU,cAAc,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,OAAO,EACP,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,GACa;IACnB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,GAAG,EAAE;YACR,IAAI,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE/D,OAAO,CACH,oBAAC,UAAU,IACP,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,uBAAuB,EAAE,uBAAuB,EAChD,YAAY,EAAE,IAAI,IAEjB,QAAQ,CACA,CAChB,CAAC;AACN,CAAC"}
|
package/esm/Menu/MenuState.d.ts
CHANGED
@@ -20,13 +20,5 @@ export interface IMenuStateProps extends IMenuStateConfig {
|
|
20
20
|
export interface IMenuStateState {
|
21
21
|
opened?: boolean;
|
22
22
|
}
|
23
|
-
export declare
|
24
|
-
static defaultProps: {
|
25
|
-
defaultOpened: boolean;
|
26
|
-
};
|
27
|
-
constructor(props: IMenuStateProps);
|
28
|
-
render(): React.ReactNode;
|
29
|
-
private isControlled;
|
30
|
-
private onOpenedChange;
|
31
|
-
}
|
23
|
+
export declare function MenuState({ opened, defaultOpened, onOpenedChange, children }: IMenuStateProps): React.ReactNode;
|
32
24
|
//# sourceMappingURL=MenuState.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuState.d.ts","sourceRoot":"","sources":["../../src/Menu/MenuState.tsx"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"MenuState.d.ts","sourceRoot":"","sources":["../../src/Menu/MenuState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAyB,MAAM,sBAAsB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACrD,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,cAAc,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;CAC7F;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,aAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,eAAe,mBAuBrG"}
|
package/esm/Menu/MenuState.js
CHANGED
@@ -1,30 +1,21 @@
|
|
1
|
-
// (C) 2007-
|
2
|
-
import
|
3
|
-
export
|
4
|
-
|
5
|
-
|
6
|
-
};
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
return typeof this.props.opened === "boolean";
|
21
|
-
};
|
22
|
-
onOpenedChange = (openedChangeParams) => {
|
23
|
-
this.setState({ opened: openedChangeParams.opened }, () => {
|
24
|
-
if (this.props.onOpenedChange) {
|
25
|
-
this.props.onOpenedChange(openedChangeParams);
|
26
|
-
}
|
27
|
-
});
|
28
|
-
};
|
1
|
+
// (C) 2007-2025 GoodData Corporation
|
2
|
+
import { useState, useCallback, useMemo } from "react";
|
3
|
+
export function MenuState({ opened, defaultOpened = false, onOpenedChange, children }) {
|
4
|
+
const isControlled = useMemo(() => {
|
5
|
+
return typeof opened === "boolean";
|
6
|
+
}, [opened]);
|
7
|
+
const [internalOpened, setInternalOpened] = useState(() => {
|
8
|
+
return typeof opened === "boolean" ? opened : defaultOpened;
|
9
|
+
});
|
10
|
+
const handleOpenedChange = useCallback((openedChangeParams) => {
|
11
|
+
setInternalOpened(openedChangeParams.opened);
|
12
|
+
if (onOpenedChange) {
|
13
|
+
onOpenedChange(openedChangeParams);
|
14
|
+
}
|
15
|
+
}, [onOpenedChange]);
|
16
|
+
return children({
|
17
|
+
opened: (isControlled ? opened : internalOpened) ?? false,
|
18
|
+
onOpenedChange: handleOpenedChange,
|
19
|
+
});
|
29
20
|
}
|
30
21
|
//# sourceMappingURL=MenuState.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuState.js","sourceRoot":"","sources":["../../src/Menu/MenuState.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,
|
1
|
+
{"version":3,"file":"MenuState.js","sourceRoot":"","sources":["../../src/Menu/MenuState.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAwB9D,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAmB;IAClG,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC;IACvC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE;QAC3E,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,WAAW,CAClC,CAAC,kBAAyC,EAAE,EAAE;QAC1C,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,cAAc,EAAE,CAAC;YACjB,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACvC,CAAC;IACL,CAAC,EACD,CAAC,cAAc,CAAC,CACnB,CAAC;IAEF,OAAO,QAAQ,CAAC;QACZ,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,KAAK;QACzD,cAAc,EAAE,kBAAkB;KACrC,CAAC,CAAC;AACP,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuOpenedByClick.d.ts","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByClick.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,YAAY,
|
1
|
+
{"version":3,"file":"MenuOpenedByClick.d.ts","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByClick.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,YAAY,EAAuB,MAAM,OAAO,CAAC;AAKjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,eAAO,MAAM,iBAAiB,GAAI,OAAO,wBAAwB,KAAG,YAiDnE,CAAC"}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
// (C) 2007-2025 GoodData Corporation
|
2
|
-
import React, { useRef } from "react";
|
2
|
+
import React, { useRef, useCallback } from "react";
|
3
3
|
import { OutsideClickHandler } from "../utils/OutsideClickHandler.js";
|
4
4
|
import { MenuPosition } from "../positioning/MenuPosition.js";
|
5
5
|
export const MenuOpenedByClick = (props) => {
|
6
|
-
const
|
7
|
-
const
|
6
|
+
const { onOpenedChange, opened } = props;
|
7
|
+
const outsideClick = useCallback(() => onOpenedChange({ opened: false, source: "OUTSIDE_CLICK" }), [onOpenedChange]);
|
8
|
+
const togglerWrapperClick = useCallback(() => onOpenedChange({ opened: !opened, source: "TOGGLER_BUTTON_CLICK" }), [onOpenedChange, opened]);
|
8
9
|
const togglerRef = useRef(null);
|
9
|
-
const OutsideClickHandlerWrapped = (
|
10
|
+
const OutsideClickHandlerWrapped = useCallback((wrapperProps) => (
|
10
11
|
// If UseCapture is set to false (default event bubbling), the disadvantage is that we will not
|
11
12
|
// get notified of click events with preventDefault or stopPropagation methods called on them. On the
|
12
13
|
// other hand it greatly simplifies event handling with toggler elements, for example if we have
|
@@ -14,7 +15,7 @@ export const MenuOpenedByClick = (props) => {
|
|
14
15
|
// would get notified, he would set opened state from true to false, and then toggler element click
|
15
16
|
// handler would get notified, that would toggle it back to true, so menu would stay opened. This
|
16
17
|
// is be solved by OutsideClickHandler ignoring clicks that are inside of togglerWrapped.
|
17
|
-
React.createElement(OutsideClickHandler, { onOutsideClick: outsideClick, useCapture: true, toggler: togglerRef.current },
|
18
|
+
React.createElement(OutsideClickHandler, { onOutsideClick: outsideClick, useCapture: true, toggler: togglerRef.current }, wrapperProps.children)), [outsideClick, togglerRef]);
|
18
19
|
const togglerWrapped = (React.createElement("div", { onClick: togglerWrapperClick, className: "gd-menuOpenedByClick-togglerWrapped", ref: togglerRef }, props.toggler));
|
19
20
|
return (React.createElement(MenuPosition, { opened: props.opened, toggler: togglerWrapped, togglerWrapperClassName: props.togglerWrapperClassName, contentWrapper: OutsideClickHandlerWrapped, topLevelMenu: props.topLevelMenu, portalTarget: props.portalTarget, alignment: props.alignment, spacing: props.spacing, offset: props.offset }, props.children));
|
20
21
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuOpenedByClick.js","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByClick.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAgB,MAAM,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"MenuOpenedByClick.js","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByClick.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA+B,EAAgB,EAAE;IAC/E,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzC,MAAM,YAAY,GAAG,WAAW,CAC5B,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAChE,CAAC,cAAc,CAAC,CACnB,CAAC;IACF,MAAM,mBAAmB,GAAG,WAAW,CACnC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,EACzE,CAAC,cAAc,EAAE,MAAM,CAAC,CAC3B,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,MAAM,0BAA0B,GAAG,WAAW,CAC1C,CAAC,YAA2C,EAAE,EAAE,CAAC;IAC7C,+FAA+F;IAC/F,qGAAqG;IACrG,gGAAgG;IAChG,qGAAqG;IACrG,mGAAmG;IACnG,iGAAiG;IACjG,yFAAyF;IACzF,oBAAC,mBAAmB,IAAC,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,IAC3F,YAAY,CAAC,QAAQ,CACJ,CACzB,EACD,CAAC,YAAY,EAAE,UAAU,CAAC,CAC7B,CAAC;IAEF,MAAM,cAAc,GAAG,CACnB,6BAAK,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAC,qCAAqC,EAAC,GAAG,EAAE,UAAU,IAC7F,KAAK,CAAC,OAAO,CACZ,CACT,CAAC;IAEF,OAAO,CACH,oBAAC,YAAY,IACT,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,cAAc,EACvB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EACtD,cAAc,EAAE,0BAA0B,EAC1C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAEnB,KAAK,CAAC,QAAQ,CACJ,CAClB,CAAC;AACN,CAAC,CAAC"}
|
@@ -1,12 +1,4 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { IMenuOpenedBySharedProps } from "./MenuOpenedBySharedProps.js";
|
3
|
-
export declare
|
4
|
-
private static openCloseDelayMs;
|
5
|
-
private timerCloseDelay;
|
6
|
-
componentWillUnmount(): void;
|
7
|
-
render(): React.JSX.Element;
|
8
|
-
private clearCloseDelayTimer;
|
9
|
-
private hoverStart;
|
10
|
-
private hoverEnd;
|
11
|
-
}
|
3
|
+
export declare function MenuOpenedByHover({ onOpenedChange, toggler, togglerWrapperClassName, opened, topLevelMenu, alignment, spacing, offset, portalTarget, children, }: IMenuOpenedBySharedProps): React.JSX.Element;
|
12
4
|
//# sourceMappingURL=MenuOpenedByHover.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuOpenedByHover.d.ts","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByHover.tsx"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"MenuOpenedByHover.d.ts","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByHover.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,wBAAgB,iBAAiB,CAAC,EAC9B,cAAc,EACd,OAAO,EACP,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,YAAY,EACZ,QAAQ,GACX,EAAE,wBAAwB,qBAmD1B"}
|
@@ -1,32 +1,32 @@
|
|
1
|
-
// (C) 2007-
|
2
|
-
import React from "react";
|
1
|
+
// (C) 2007-2025 GoodData Corporation
|
2
|
+
import React, { useEffect, useRef, useCallback } from "react";
|
3
3
|
import { MenuPosition } from "../positioning/MenuPosition.js";
|
4
|
-
export
|
5
|
-
|
6
|
-
timerCloseDelay = null;
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
render() {
|
11
|
-
return (React.createElement(MenuPosition, { toggler: React.createElement("div", { onMouseEnter: this.hoverStart, onMouseLeave: this.hoverEnd }, this.props.toggler), togglerWrapperClassName: this.props.togglerWrapperClassName, opened: this.props.opened, topLevelMenu: this.props.topLevelMenu, alignment: this.props.alignment, spacing: this.props.spacing, offset: this.props.offset, portalTarget: this.props.portalTarget },
|
12
|
-
React.createElement("div", { onMouseEnter: this.hoverStart, onMouseLeave: this.hoverEnd }, this.props.children)));
|
13
|
-
}
|
14
|
-
clearCloseDelayTimer = () => {
|
15
|
-
if (this.timerCloseDelay) {
|
16
|
-
window.clearTimeout(this.timerCloseDelay);
|
4
|
+
export function MenuOpenedByHover({ onOpenedChange, toggler, togglerWrapperClassName, opened, topLevelMenu, alignment, spacing, offset, portalTarget, children, }) {
|
5
|
+
const openCloseDelayMs = 200;
|
6
|
+
const timerCloseDelay = useRef(null);
|
7
|
+
const clearCloseDelayTimer = useCallback(() => {
|
8
|
+
if (timerCloseDelay.current) {
|
9
|
+
window.clearTimeout(timerCloseDelay.current);
|
17
10
|
}
|
18
|
-
};
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
11
|
+
}, []);
|
12
|
+
useEffect(() => {
|
13
|
+
return () => {
|
14
|
+
clearCloseDelayTimer();
|
15
|
+
};
|
16
|
+
}, [clearCloseDelayTimer]);
|
17
|
+
const hoverStart = useCallback(() => {
|
18
|
+
clearCloseDelayTimer();
|
19
|
+
timerCloseDelay.current = window.setTimeout(() => {
|
20
|
+
onOpenedChange({ opened: true, source: "HOVER_TIMEOUT" });
|
21
|
+
}, openCloseDelayMs);
|
22
|
+
}, [clearCloseDelayTimer, onOpenedChange]);
|
23
|
+
const hoverEnd = useCallback(() => {
|
24
|
+
clearCloseDelayTimer();
|
25
|
+
timerCloseDelay.current = window.setTimeout(() => {
|
26
|
+
onOpenedChange({ opened: false, source: "HOVER_TIMEOUT" });
|
27
|
+
}, openCloseDelayMs);
|
28
|
+
}, [clearCloseDelayTimer, onOpenedChange]);
|
29
|
+
return (React.createElement(MenuPosition, { toggler: React.createElement("div", { onMouseEnter: hoverStart, onMouseLeave: hoverEnd }, toggler), togglerWrapperClassName: togglerWrapperClassName, opened: opened, topLevelMenu: topLevelMenu, alignment: alignment, spacing: spacing, offset: offset, portalTarget: portalTarget },
|
30
|
+
React.createElement("div", { onMouseEnter: hoverStart, onMouseLeave: hoverEnd }, children)));
|
31
31
|
}
|
32
32
|
//# sourceMappingURL=MenuOpenedByHover.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuOpenedByHover.js","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByHover.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"MenuOpenedByHover.js","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpenedByHover.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,MAAM,UAAU,iBAAiB,CAAC,EAC9B,cAAc,EACd,OAAO,EACP,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,YAAY,EACZ,QAAQ,GACe;IACvB,MAAM,gBAAgB,GAAG,GAAG,CAAC;IAE7B,MAAM,eAAe,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAEpD,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAS,EAAE;QAChD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,EAAE;YACR,oBAAoB,EAAE,CAAC;QAC3B,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAS,EAAE;QACtC,oBAAoB,EAAE,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAC9D,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAS,EAAE;QACpC,oBAAoB,EAAE,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAC/D,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3C,OAAO,CACH,oBAAC,YAAY,IACT,OAAO,EACH,6BAAK,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,IAChD,OAAO,CACN,EAEV,uBAAuB,EAAE,uBAAuB,EAChD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;QAE1B,6BAAK,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,IAChD,QAAQ,CACP,CACK,CAClB,CAAC;AACN,CAAC"}
|
@@ -10,9 +10,5 @@ export interface IMenuOpenerProps extends Partial<IMenuPositionConfig> {
|
|
10
10
|
togglerWrapperClassName?: string;
|
11
11
|
children: React.ReactNode;
|
12
12
|
}
|
13
|
-
export declare
|
14
|
-
static defaultProps: Pick<IMenuOpenerProps, "openAction" | "alignment" | "spacing" | "offset" | "portalTarget">;
|
15
|
-
render(): React.JSX.Element;
|
16
|
-
private getComponentByOpenAction;
|
17
|
-
}
|
13
|
+
export declare function MenuOpener(props: IMenuOpenerProps): React.JSX.Element;
|
18
14
|
//# sourceMappingURL=MenuOpener.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuOpener.d.ts","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpener.tsx"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"MenuOpener.d.ts","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpener.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKxF,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAeD,wBAAgB,UAAU,CAAC,KAAK,EAAE,gBAAgB,qBAuCjD"}
|
@@ -1,27 +1,36 @@
|
|
1
1
|
// (C) 2007-2025 GoodData Corporation
|
2
|
-
import React from "react";
|
2
|
+
import React, { useMemo } from "react";
|
3
3
|
import { MenuOpenedByClick } from "./MenuOpenedByClick.js";
|
4
4
|
import { MenuOpenedByHover } from "./MenuOpenedByHover.js";
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
return
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
5
|
+
const defaultProps = {
|
6
|
+
openAction: "hover",
|
7
|
+
alignment: ["right", "bottom"],
|
8
|
+
spacing: 0,
|
9
|
+
offset: 0,
|
10
|
+
portalTarget: typeof document !== "undefined" ? document.querySelector("body") : null,
|
11
|
+
};
|
12
|
+
export function MenuOpener(props) {
|
13
|
+
// Filter out undefined values from props to avoid overriding defaults
|
14
|
+
const definedProps = useMemo(() => {
|
15
|
+
return Object.entries(props).reduce((acc, [key, value]) => {
|
16
|
+
if (value !== undefined) {
|
17
|
+
acc[key] = value;
|
18
|
+
}
|
19
|
+
return acc;
|
20
|
+
}, {});
|
21
|
+
}, [props]);
|
22
|
+
const propsWithDefaults = useMemo(() => {
|
23
|
+
return { ...defaultProps, ...definedProps };
|
24
|
+
}, [definedProps]);
|
25
|
+
const Component = useMemo(() => {
|
26
|
+
switch (propsWithDefaults.openAction) {
|
20
27
|
case "click":
|
21
28
|
return MenuOpenedByClick;
|
22
29
|
case "hover":
|
23
30
|
return MenuOpenedByHover;
|
24
31
|
}
|
25
|
-
};
|
32
|
+
}, [propsWithDefaults.openAction]);
|
33
|
+
return (React.createElement(Component, { opened: propsWithDefaults.opened, onOpenedChange: propsWithDefaults.onOpenedChange, topLevelMenu: propsWithDefaults.topLevelMenu, alignment: propsWithDefaults.alignment, spacing: propsWithDefaults.spacing, offset: propsWithDefaults.offset, toggler: propsWithDefaults.toggler, togglerWrapperClassName: propsWithDefaults.togglerWrapperClassName, portalTarget: propsWithDefaults.portalTarget },
|
34
|
+
React.createElement("div", { className: "gd-menuOpener" }, propsWithDefaults.children)));
|
26
35
|
}
|
27
36
|
//# sourceMappingURL=MenuOpener.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuOpener.js","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpener.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"MenuOpener.js","sourceRoot":"","sources":["../../../src/Menu/menuOpener/MenuOpener.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAa3D,MAAM,YAAY,GAGd;IACA,UAAU,EAAE,OAAO;IAEnB,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC9B,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IAET,YAAY,EAAE,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;CACxF,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAuB;IAC9C,sEAAsE;IACtE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACrB,GAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAA+B,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,EAA4C,CAAC;IAC1F,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,QAAQ,iBAAiB,CAAC,UAAU,EAAE,CAAC;YACnC,KAAK,OAAO;gBACR,OAAO,iBAAiB,CAAC;YAC7B,KAAK,OAAO;gBACR,OAAO,iBAAiB,CAAC;QACjC,CAAC;IACL,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAsB,CAAC;IAExD,OAAO,CACH,oBAAC,SAAS,IACN,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAChC,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,YAAY,EAAE,iBAAiB,CAAC,YAAY,EAC5C,SAAS,EAAE,iBAAiB,CAAC,SAAS,EACtC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAClC,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAChC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAClC,uBAAuB,EAAE,iBAAiB,CAAC,uBAAuB,EAClE,YAAY,EAAE,iBAAiB,CAAC,YAAY;QAE5C,6BAAK,SAAS,EAAC,eAAe,IAAE,iBAAiB,CAAC,QAAQ,CAAO,CACzD,CACf,CAAC;AACN,CAAC"}
|
@@ -15,17 +15,5 @@ export interface IMenuPositionProps extends IMenuPositionConfig {
|
|
15
15
|
export interface IMenuPositionState {
|
16
16
|
togglerElInitialized: boolean;
|
17
17
|
}
|
18
|
-
export declare
|
19
|
-
static defaultProps: {
|
20
|
-
contentWrapper: React.ExoticComponent<{
|
21
|
-
children?: React.ReactNode | undefined;
|
22
|
-
}>;
|
23
|
-
};
|
24
|
-
state: {
|
25
|
-
togglerElInitialized: boolean;
|
26
|
-
};
|
27
|
-
private togglerEl;
|
28
|
-
render(): React.JSX.Element;
|
29
|
-
private setTogglerEl;
|
30
|
-
}
|
18
|
+
export declare function MenuPosition(props: IMenuPositionProps): React.JSX.Element;
|
31
19
|
//# sourceMappingURL=MenuPosition.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuPosition.d.ts","sourceRoot":"","sources":["../../../src/Menu/positioning/MenuPosition.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,YAAY,
|
1
|
+
{"version":3,"file":"MenuPosition.d.ts","sourceRoot":"","sources":["../../../src/Menu/positioning/MenuPosition.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,YAAY,EAA0C,MAAM,OAAO,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,KAAK,YAAY,CAAC;IACxE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAqBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB,qBAwDrD"}
|
@@ -1,37 +1,28 @@
|
|
1
1
|
// (C) 2007-2025 GoodData Corporation
|
2
|
-
import React from "react";
|
2
|
+
import React, { useState, useRef, useCallback, useMemo } from "react";
|
3
3
|
import { PositionedMenuContent } from "./PositionedMenuContent.js";
|
4
4
|
import { RenderChildrenInPortal } from "../utils/RenderChildrenInPortal.js";
|
5
5
|
const Wrapper = ({ children }) => (React.createElement("div", { className: "gd-menuPosition-wrapper" }, children));
|
6
6
|
const PortalIfTopLevelMenu = ({ topLevelMenu, children, portalTarget, }) => topLevelMenu ? (React.createElement(RenderChildrenInPortal, { targetElement: portalTarget }, children)) : (React.createElement(React.Fragment, null, children));
|
7
|
-
export
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
state = {
|
12
|
-
togglerElInitialized: false,
|
13
|
-
};
|
14
|
-
togglerEl = null;
|
7
|
+
export function MenuPosition(props) {
|
8
|
+
const { portalTarget, topLevelMenu, contentWrapper: ContentWrapper = React.Fragment, toggler, opened, alignment, spacing, offset, togglerWrapperClassName, children, } = props;
|
9
|
+
const [togglerElInitialized, setTogglerElInitialized] = useState(false);
|
10
|
+
const togglerEl = useRef(null);
|
15
11
|
// React Measure is not used because it cannot detect the left/top coordinate
|
16
12
|
// changes of absolute positioned blocks. This caused problems where left/top
|
17
13
|
// positions from React Measure were outdated. To solve this we do the
|
18
14
|
// measurements manually in PositionedMenuContent at the correct time.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
this.togglerEl = el;
|
32
|
-
this.setState({
|
33
|
-
togglerElInitialized: true,
|
34
|
-
});
|
35
|
-
};
|
15
|
+
const setTogglerEl = useCallback((el) => {
|
16
|
+
togglerEl.current = el;
|
17
|
+
setTogglerElInitialized(true);
|
18
|
+
}, []);
|
19
|
+
// Top level menu uses React portals to be rendered in body element (or
|
20
|
+
// any element specified in targetElement prop). Any submenus are rendered
|
21
|
+
// inside of previous menu, so they do not need any portals.
|
22
|
+
const MaybeWrapper = useMemo(() => (topLevelMenu ? React.Fragment : Wrapper), [topLevelMenu]);
|
23
|
+
return (React.createElement(MaybeWrapper, null,
|
24
|
+
React.createElement("div", { className: topLevelMenu ? togglerWrapperClassName : undefined, ref: setTogglerEl }, toggler),
|
25
|
+
React.createElement(PortalIfTopLevelMenu, { portalTarget: portalTarget, topLevelMenu: topLevelMenu }, opened && togglerElInitialized ? (React.createElement(ContentWrapper, null,
|
26
|
+
React.createElement(PositionedMenuContent, { alignment: alignment, spacing: spacing, offset: offset, topLevelMenu: topLevelMenu, togglerEl: togglerEl.current }, children))) : null)));
|
36
27
|
}
|
37
28
|
//# sourceMappingURL=MenuPosition.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuPosition.js","sourceRoot":"","sources":["../../../src/Menu/positioning/MenuPosition.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,
|
1
|
+
{"version":3,"file":"MenuPosition.js","sourceRoot":"","sources":["../../../src/Menu/positioning/MenuPosition.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAgB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAiB5E,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC7D,6BAAK,SAAS,EAAC,yBAAyB,IAAE,QAAQ,CAAO,CAC5D,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,EAC1B,YAAY,EACZ,QAAQ,EACR,YAAY,GAKf,EAAE,EAAE,CACD,YAAY,CAAC,CAAC,CAAC,CACX,oBAAC,sBAAsB,IAAC,aAAa,EAAE,YAAY,IAAG,QAAQ,CAA0B,CAC3F,CAAC,CAAC,CAAC,CACA,oBAAC,KAAK,CAAC,QAAQ,QAAE,QAAQ,CAAkB,CAC9C,CAAC;AAEN,MAAM,UAAU,YAAY,CAAC,KAAyB;IAClD,MAAM,EACF,YAAY,EACZ,YAAY,EACZ,cAAc,EAAE,cAAc,GAAG,KAAK,CAAC,QAAQ,EAC/C,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,EACN,uBAAuB,EACvB,QAAQ,GACX,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAEnD,6EAA6E;IAC7E,6EAA6E;IAC7E,sEAAsE;IACtE,sEAAsE;IAEtE,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,EAAsB,EAAE,EAAE;QACxD,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;QACvB,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uEAAuE;IACvE,0EAA0E;IAC1E,4DAA4D;IAE5D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9F,OAAO,CACH,oBAAC,YAAY;QACT,6BAAK,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,IAChF,OAAO,CACN;QAEN,oBAAC,oBAAoB,IAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,IACvE,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAC9B,oBAAC,cAAc;YACX,oBAAC,qBAAqB,IAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,CAAC,OAAO,IAE3B,QAAQ,CACW,CACX,CACpB,CAAC,CAAC,CAAC,IAAI,CACW,CACZ,CAClB,CAAC;AACN,CAAC"}
|