@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,66 +1,58 @@
|
|
1
|
-
// (C) 2007-
|
2
|
-
import React, {
|
1
|
+
// (C) 2007-2025 GoodData Corporation
|
2
|
+
import React, { useRef, useState, useEffect, useCallback, useMemo } from "react";
|
3
3
|
import identity from "lodash/identity.js";
|
4
4
|
/**
|
5
5
|
* @internal
|
6
6
|
*/
|
7
|
-
export
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
constructor(props) {
|
24
|
-
super(props);
|
25
|
-
this.state = {
|
26
|
-
value: props.defaultValue,
|
27
|
-
isEditing: false,
|
28
|
-
};
|
29
|
-
this.root = React.createRef();
|
30
|
-
this.textarea = React.createRef();
|
31
|
-
}
|
32
|
-
componentDidMount() {
|
33
|
-
const rootNode = this.root.current;
|
34
|
-
rootNode.addEventListener("dragstart", this.onSelectStart);
|
35
|
-
rootNode.addEventListener("selectstart", this.onSelectStart);
|
36
|
-
if (this.props.autofocus) {
|
37
|
-
this.edit();
|
7
|
+
export function TextAreaWithSubmit({ className = "", maxLength = 100000, rows = 1, onCancel = identity, onEditingStart = identity, onChange = identity, placeholder = "", scrollToEndOnEditingStart = true, autofocus = false, disabled = false, defaultValue, onSubmit: onSubmitProp, }) {
|
8
|
+
const [value, setValue] = useState(defaultValue);
|
9
|
+
const [isEditing, setIsEditing] = useState(false);
|
10
|
+
const root = useRef();
|
11
|
+
const textarea = useRef();
|
12
|
+
const focusTimeoutRef = useRef(0);
|
13
|
+
const onSelectStart = useCallback((e) => {
|
14
|
+
e.stopPropagation();
|
15
|
+
}, []);
|
16
|
+
const isClickOutsideTextarea = useCallback((clickedTarget) => {
|
17
|
+
return textarea.current && !textarea.current.contains(clickedTarget);
|
18
|
+
}, []);
|
19
|
+
const onDocumentClick = useCallback((e) => {
|
20
|
+
if (isClickOutsideTextarea(e.target)) {
|
21
|
+
const textAreaNode = textarea.current;
|
22
|
+
textAreaNode.blur();
|
38
23
|
}
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
24
|
+
}, [isClickOutsideTextarea]);
|
25
|
+
const removeListeners = useCallback(() => {
|
26
|
+
document.removeEventListener("mousedown", onDocumentClick);
|
27
|
+
}, [onDocumentClick]);
|
28
|
+
const onSubmit = useCallback(() => {
|
29
|
+
const oldValue = defaultValue;
|
30
|
+
const newTrimmedValue = value.trim();
|
31
|
+
if (newTrimmedValue === "") {
|
32
|
+
setValue("");
|
45
33
|
}
|
46
|
-
|
47
|
-
|
48
|
-
const rootNode = this.root.current;
|
49
|
-
rootNode.removeEventListener("dragstart", this.onSelectStart);
|
50
|
-
rootNode.removeEventListener("selectstart", this.onSelectStart);
|
51
|
-
this.removeListeners();
|
52
|
-
clearTimeout(this.focusTimeout);
|
53
|
-
}
|
54
|
-
onDocumentClick = (e) => {
|
55
|
-
if (this.isClickOutsideTextarea(e.target)) {
|
56
|
-
const textAreaNode = this.textarea.current;
|
57
|
-
textAreaNode.blur();
|
34
|
+
if (oldValue !== newTrimmedValue) {
|
35
|
+
onSubmitProp(newTrimmedValue);
|
58
36
|
}
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
37
|
+
else {
|
38
|
+
onCancel(oldValue);
|
39
|
+
}
|
40
|
+
setValue(newTrimmedValue);
|
41
|
+
setIsEditing(false);
|
42
|
+
removeListeners();
|
43
|
+
}, [defaultValue, value, onSubmitProp, onCancel, removeListeners]);
|
44
|
+
const onCancelHandler = useCallback(() => {
|
45
|
+
onCancel(defaultValue);
|
46
|
+
setValue(defaultValue);
|
47
|
+
setIsEditing(false);
|
48
|
+
removeListeners();
|
49
|
+
}, [defaultValue, onCancel, removeListeners]);
|
50
|
+
const onChangeHandler = useCallback((e) => {
|
51
|
+
const { value } = e.target;
|
52
|
+
setValue(value);
|
53
|
+
onChange(value);
|
54
|
+
}, [onChange]);
|
55
|
+
const onKeyDown = useCallback((e) => {
|
64
56
|
const isSubmit = e.key === "Enter" && !e.shiftKey;
|
65
57
|
const isCancel = e.key === "Escape";
|
66
58
|
if (isSubmit || isCancel) {
|
@@ -68,93 +60,68 @@ export class TextAreaWithSubmit extends Component {
|
|
68
60
|
e.stopPropagation();
|
69
61
|
}
|
70
62
|
if (isSubmit) {
|
71
|
-
|
63
|
+
onSubmit();
|
72
64
|
}
|
73
65
|
if (isCancel) {
|
74
|
-
|
75
|
-
}
|
76
|
-
};
|
77
|
-
onSubmit = () => {
|
78
|
-
const oldValue = this.props.defaultValue;
|
79
|
-
const newTrimmedValue = this.state.value.trim();
|
80
|
-
if (newTrimmedValue === "") {
|
81
|
-
this.setState({
|
82
|
-
value: "",
|
83
|
-
});
|
84
|
-
}
|
85
|
-
if (oldValue !== newTrimmedValue) {
|
86
|
-
this.props.onSubmit(newTrimmedValue);
|
66
|
+
onCancelHandler();
|
87
67
|
}
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
});
|
95
|
-
this.removeListeners();
|
96
|
-
};
|
97
|
-
onCancel = () => {
|
98
|
-
const { defaultValue } = this.props;
|
99
|
-
this.props.onCancel(defaultValue);
|
100
|
-
this.setState({
|
101
|
-
value: defaultValue,
|
102
|
-
isEditing: false,
|
103
|
-
});
|
104
|
-
this.removeListeners();
|
105
|
-
};
|
106
|
-
onChange = (e) => {
|
107
|
-
const { value } = e.target;
|
108
|
-
this.setState({ value }, () => {
|
109
|
-
this.props.onChange(value);
|
110
|
-
});
|
111
|
-
};
|
112
|
-
edit = (_e) => {
|
113
|
-
if (!this.state.isEditing) {
|
114
|
-
this.setState({
|
115
|
-
isEditing: true,
|
116
|
-
}, () => {
|
117
|
-
this.selectAndFocus();
|
118
|
-
document.addEventListener("mousedown", this.onDocumentClick);
|
119
|
-
});
|
120
|
-
this.props.onEditingStart();
|
121
|
-
}
|
122
|
-
};
|
123
|
-
isClickOutsideTextarea(clickedTarget) {
|
124
|
-
return this.textarea.current && !this.textarea.current.contains(clickedTarget);
|
125
|
-
}
|
126
|
-
isMultiLine() {
|
127
|
-
return this.props.rows > 1;
|
128
|
-
}
|
129
|
-
removeListeners() {
|
130
|
-
document.removeEventListener("mousedown", this.onDocumentClick);
|
131
|
-
}
|
132
|
-
selectAndFocus = () => {
|
133
|
-
const componentElement = this.textarea.current;
|
134
|
-
const { scrollToEndOnEditingStart } = this.props;
|
68
|
+
}, [onSubmit, onCancelHandler]);
|
69
|
+
const isMultiLine = useCallback(() => {
|
70
|
+
return rows > 1;
|
71
|
+
}, [rows]);
|
72
|
+
const selectAndFocus = useCallback(() => {
|
73
|
+
const componentElement = textarea.current;
|
135
74
|
if (componentElement) {
|
136
|
-
window.clearTimeout(
|
75
|
+
window.clearTimeout(focusTimeoutRef.current);
|
137
76
|
// without the timeout the focus sometimes got stolen by the previously active item for some reason
|
138
|
-
|
77
|
+
focusTimeoutRef.current = window.setTimeout(() => {
|
139
78
|
componentElement.focus();
|
140
|
-
if (scrollToEndOnEditingStart &&
|
79
|
+
if (scrollToEndOnEditingStart && isMultiLine()) {
|
141
80
|
componentElement.scrollTop = componentElement.scrollHeight;
|
142
81
|
}
|
143
82
|
componentElement.select();
|
144
83
|
}, 1);
|
145
84
|
}
|
146
|
-
};
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
}
|
85
|
+
}, [scrollToEndOnEditingStart, isMultiLine]);
|
86
|
+
const edit = useCallback((_e) => {
|
87
|
+
if (!isEditing) {
|
88
|
+
setIsEditing(true);
|
89
|
+
// Use setTimeout to ensure state update is processed before side effects
|
90
|
+
setTimeout(() => {
|
91
|
+
selectAndFocus();
|
92
|
+
document.addEventListener("mousedown", onDocumentClick);
|
93
|
+
}, 0);
|
94
|
+
onEditingStart();
|
95
|
+
}
|
96
|
+
}, [isEditing, selectAndFocus, onDocumentClick, onEditingStart]);
|
97
|
+
const renderTextarea = useCallback((style = {}) => {
|
98
|
+
return (React.createElement("textarea", { className: className, style: style, rows: rows, maxLength: maxLength, onKeyDown: onKeyDown, onBlur: onSubmit, onChange: onChangeHandler, value: value, placeholder: placeholder, ref: textarea, disabled: disabled }));
|
99
|
+
}, [className, rows, maxLength, onKeyDown, onSubmit, onChangeHandler, value, placeholder, disabled]);
|
100
|
+
const renderTextAreaWithSubmitEdit = useMemo(() => {
|
101
|
+
return renderTextarea({});
|
102
|
+
}, [renderTextarea]);
|
103
|
+
useEffect(() => {
|
104
|
+
const rootNode = root.current;
|
105
|
+
if (rootNode) {
|
106
|
+
rootNode.addEventListener("dragstart", onSelectStart);
|
107
|
+
rootNode.addEventListener("selectstart", onSelectStart);
|
108
|
+
}
|
109
|
+
if (autofocus) {
|
110
|
+
edit();
|
111
|
+
}
|
112
|
+
return () => {
|
113
|
+
if (rootNode) {
|
114
|
+
rootNode.removeEventListener("dragstart", onSelectStart);
|
115
|
+
rootNode.removeEventListener("selectstart", onSelectStart);
|
116
|
+
}
|
117
|
+
removeListeners();
|
118
|
+
clearTimeout(focusTimeoutRef.current);
|
119
|
+
};
|
120
|
+
}, [autofocus, edit, onSelectStart, removeListeners]);
|
121
|
+
useEffect(() => {
|
122
|
+
setValue(defaultValue);
|
123
|
+
}, [defaultValue]);
|
124
|
+
return (React.createElement("div", { role: "editable-label", onClick: edit },
|
125
|
+
React.createElement("div", { ref: root }, renderTextAreaWithSubmitEdit)));
|
159
126
|
}
|
160
127
|
//# sourceMappingURL=TextAreaWithSubmit.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextAreaWithSubmit.js","sourceRoot":"","sources":["../../src/TextAreaWithSubmit/TextAreaWithSubmit.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,SAAS,
|
1
|
+
{"version":3,"file":"TextAreaWithSubmit.js","sourceRoot":"","sources":["../../src/TextAreaWithSubmit/TextAreaWithSubmit.tsx"],"names":[],"mappings":"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"}
|
@@ -10,6 +10,7 @@ export interface ITimepickerOwnProps {
|
|
10
10
|
time: Date | null;
|
11
11
|
className?: string;
|
12
12
|
ariaLabelledBy?: string;
|
13
|
+
ariaDescribedBy?: string;
|
13
14
|
maxVisibleItemsCount?: number;
|
14
15
|
onChange?: (selectedTime: Date) => void;
|
15
16
|
overlayPositionType?: OverlayPositionType;
|
@@ -21,36 +22,9 @@ export interface ITimepickerOwnProps {
|
|
21
22
|
closeOnParentScroll?: boolean;
|
22
23
|
}
|
23
24
|
export type TimePickerProps = ITimepickerOwnProps & WrappedComponentProps;
|
24
|
-
|
25
|
-
dropdownWidth: number;
|
26
|
-
selectedTime: Date;
|
27
|
-
}
|
28
|
-
export declare class WrappedTimepicker extends React.PureComponent<TimePickerProps, ITimePickerState> {
|
29
|
-
dropdownRef: React.RefObject<HTMLDivElement>;
|
30
|
-
static defaultProps: {
|
31
|
-
className: string;
|
32
|
-
maxVisibleItemsCount: number;
|
33
|
-
time: Date;
|
34
|
-
onChange: (...args: any[]) => void;
|
35
|
-
overlayZIndex: number;
|
36
|
-
skipNormalizeTime: boolean;
|
37
|
-
timeAnchor: number;
|
38
|
-
timeFormat: any;
|
39
|
-
};
|
40
|
-
constructor(props: TimePickerProps);
|
41
|
-
UNSAFE_componentWillReceiveProps(newProps: TimePickerProps): void;
|
42
|
-
componentDidMount(): void;
|
43
|
-
private getComponentClasses;
|
44
|
-
private getTimeItems;
|
45
|
-
private updateDropdownWidth;
|
46
|
-
private updateLocaleForMoment;
|
47
|
-
private handleTimeChanged;
|
48
|
-
render(): React.JSX.Element;
|
49
|
-
}
|
25
|
+
export declare const WrappedTimepicker: React.NamedExoticComponent<TimePickerProps>;
|
50
26
|
/**
|
51
27
|
* @internal
|
52
28
|
*/
|
53
|
-
export declare
|
54
|
-
render(): React.JSX.Element;
|
55
|
-
}
|
29
|
+
export declare const Timepicker: React.NamedExoticComponent<ITimepickerOwnProps>;
|
56
30
|
//# sourceMappingURL=Timepicker.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Timepicker.d.ts","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"Timepicker.d.ts","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkE,MAAM,OAAO,CAAC;AACvF,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAM/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAyC,MAAM,0BAA0B,CAAC;AAQ5G,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE1E,eAAO,MAAM,iBAAiB,6CAwL5B,CAAC;AAIH;;GAEG;AACH,eAAO,MAAM,UAAU,iDAMrB,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// (C) 2019-2025 GoodData Corporation
|
2
|
-
import React from "react";
|
2
|
+
import React, { memo, useState, useRef, useEffect, useCallback, useMemo } from "react";
|
3
3
|
import { injectIntl } from "react-intl";
|
4
4
|
import moment from "moment";
|
5
5
|
import { translationUtils } from "@gooddata/util";
|
@@ -11,58 +11,46 @@ import { formatTime, normalizeTime, updateTime, HOURS_IN_DAY, TIME_ANCHOR } from
|
|
11
11
|
import { SingleSelectListItem } from "../List/index.js";
|
12
12
|
const DEFAULT_WIDTH = 199;
|
13
13
|
const MINUTES_IN_HOUR = 60;
|
14
|
-
const MAX_VISIBLE_ITEMS_COUNT = 10;
|
15
14
|
const MAX_HEIGHT = 140;
|
16
15
|
export { normalizeTime, formatTime };
|
17
|
-
export
|
18
|
-
dropdownRef =
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
this.state = {
|
34
|
-
dropdownWidth: DEFAULT_WIDTH,
|
35
|
-
selectedTime: props.skipNormalizeTime
|
36
|
-
? time
|
37
|
-
: normalizeTime(time, undefined, this.props.timeAnchor),
|
38
|
-
};
|
39
|
-
}
|
40
|
-
UNSAFE_componentWillReceiveProps(newProps) {
|
41
|
-
if (newProps.time !== this.props.time) {
|
42
|
-
const updatedTime = newProps.time || new Date();
|
43
|
-
this.setState({
|
44
|
-
selectedTime: this.props.skipNormalizeTime
|
45
|
-
? updatedTime
|
46
|
-
: normalizeTime(updatedTime, undefined, this.props.timeAnchor),
|
47
|
-
});
|
16
|
+
export const WrappedTimepicker = memo(function WrappedTimepicker({ time = new Date(), className = "", ariaLabelledBy, ariaDescribedBy, onChange = noop, overlayPositionType, overlayZIndex = 0, skipNormalizeTime = false, timeAnchor = TIME_ANCHOR, timeFormat = undefined, closeOnParentScroll, intl, }) {
|
17
|
+
const dropdownRef = useRef();
|
18
|
+
const updateLocaleForMoment = useCallback(() => {
|
19
|
+
moment.locale(translationUtils.sanitizeLocaleForMoment(intl.locale));
|
20
|
+
}, [intl.locale]);
|
21
|
+
updateLocaleForMoment();
|
22
|
+
const initialTime = time || new Date();
|
23
|
+
const [dropdownWidth, setDropdownWidth] = useState(DEFAULT_WIDTH);
|
24
|
+
const [selectedTime, setSelectedTime] = useState(skipNormalizeTime ? initialTime : normalizeTime(initialTime, undefined, timeAnchor));
|
25
|
+
useEffect(() => {
|
26
|
+
const updatedTime = time || new Date();
|
27
|
+
const newSelectedTime = skipNormalizeTime
|
28
|
+
? updatedTime
|
29
|
+
: normalizeTime(updatedTime, undefined, timeAnchor);
|
30
|
+
if (newSelectedTime.getTime() !== selectedTime.getTime()) {
|
31
|
+
setSelectedTime(newSelectedTime);
|
48
32
|
}
|
49
|
-
}
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
33
|
+
}, [time, skipNormalizeTime, timeAnchor, selectedTime]);
|
34
|
+
const updateDropdownWidth = useCallback(() => {
|
35
|
+
const { width } = dropdownRef.current.getBoundingClientRect();
|
36
|
+
setDropdownWidth(width);
|
37
|
+
}, []);
|
38
|
+
useEffect(() => {
|
39
|
+
updateDropdownWidth();
|
40
|
+
}, [updateDropdownWidth]);
|
41
|
+
const getComponentClasses = useCallback(() => {
|
42
|
+
return `gd-datepicker ${className} gd-datepicker-input gd-timepicker`;
|
43
|
+
}, [className]);
|
44
|
+
const getTimeItems = useCallback((selectedTime) => {
|
57
45
|
let currentItem;
|
58
46
|
const items = [];
|
59
47
|
const { h: hours, m: minutes } = selectedTime;
|
60
48
|
for (let h = 0; h < HOURS_IN_DAY; h += 1) {
|
61
|
-
for (let m = 0; m < MINUTES_IN_HOUR; m +=
|
49
|
+
for (let m = 0; m < MINUTES_IN_HOUR; m += timeAnchor) {
|
62
50
|
const item = {
|
63
51
|
h,
|
64
52
|
m,
|
65
|
-
title: formatTime(h, m,
|
53
|
+
title: formatTime(h, m, timeFormat),
|
66
54
|
};
|
67
55
|
items.push(item);
|
68
56
|
if (h === hours && m === minutes) {
|
@@ -71,71 +59,60 @@ export class WrappedTimepicker extends React.PureComponent {
|
|
71
59
|
}
|
72
60
|
}
|
73
61
|
return { items, currentItem };
|
74
|
-
};
|
75
|
-
|
76
|
-
const { width } = this.dropdownRef.current.getBoundingClientRect();
|
77
|
-
this.setState({ dropdownWidth: width });
|
78
|
-
};
|
79
|
-
updateLocaleForMoment() {
|
80
|
-
moment.locale(translationUtils.sanitizeLocaleForMoment(this.props.intl.locale));
|
81
|
-
}
|
82
|
-
handleTimeChanged = (newlySelectedTime) => {
|
62
|
+
}, [timeAnchor, timeFormat]);
|
63
|
+
const handleTimeChanged = useCallback((newlySelectedTime) => {
|
83
64
|
if (!newlySelectedTime) {
|
84
65
|
return;
|
85
66
|
}
|
86
67
|
const { h, m } = newlySelectedTime;
|
87
|
-
const
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
}
|
130
|
-
}
|
68
|
+
const newSelectedTime = updateTime(h, m);
|
69
|
+
setSelectedTime(newSelectedTime);
|
70
|
+
onChange(newSelectedTime);
|
71
|
+
}, [onChange]);
|
72
|
+
const timeObj = useMemo(() => ({
|
73
|
+
h: selectedTime.getHours(),
|
74
|
+
m: selectedTime.getMinutes(),
|
75
|
+
}), [selectedTime]);
|
76
|
+
const { items, currentItem } = useMemo(() => getTimeItems(timeObj), [getTimeItems, timeObj]);
|
77
|
+
const accessibilityDropdownButtonLabel = intl.formatMessage({ id: "timePicker.accessibility.label" });
|
78
|
+
return (React.createElement("div", { className: getComponentClasses(), ref: dropdownRef },
|
79
|
+
React.createElement(Dropdown, { closeOnParentScroll: closeOnParentScroll, overlayPositionType: overlayPositionType, alignPoints: [
|
80
|
+
{
|
81
|
+
align: "bl tl",
|
82
|
+
},
|
83
|
+
{
|
84
|
+
align: "tl bl",
|
85
|
+
},
|
86
|
+
], autofocusOnOpen: true, renderButton: ({ openDropdown, isOpen, dropdownId, buttonRef }) => (React.createElement(DropdownButton, { accessibilityConfig: {
|
87
|
+
ariaLabelledBy,
|
88
|
+
ariaDescribedBy,
|
89
|
+
ariaLabel: accessibilityDropdownButtonLabel,
|
90
|
+
}, value: formatTime(timeObj.h, timeObj.m, timeFormat), isOpen: isOpen, dropdownId: dropdownId, onClick: openDropdown, iconLeft: "gd-icon-timer", buttonRef: buttonRef })), renderBody: useCallback(({ closeDropdown, ariaAttributes }) => {
|
91
|
+
const listboxItems = items.map((item) => ({
|
92
|
+
type: "interactive",
|
93
|
+
id: `${item.h}-${item.m}`,
|
94
|
+
stringTitle: item.title,
|
95
|
+
data: item,
|
96
|
+
}));
|
97
|
+
const handleKeyDown = (e) => {
|
98
|
+
if (e.key !== "Tab") {
|
99
|
+
return;
|
100
|
+
}
|
101
|
+
closeDropdown();
|
102
|
+
};
|
103
|
+
return (React.createElement(UiListbox, { shouldKeyboardActionStopPropagation: true, shouldKeyboardActionPreventDefault: true, dataTestId: "s-timepicker-list", items: listboxItems, maxWidth: dropdownWidth, maxHeight: MAX_HEIGHT, selectedItemId: currentItem ? `${currentItem.h}-${currentItem.m}` : undefined, onSelect: (item) => {
|
104
|
+
handleTimeChanged(item.data);
|
105
|
+
}, onClose: closeDropdown, onUnhandledKeyDown: handleKeyDown, ariaAttributes: ariaAttributes, InteractiveItemComponent: ({ item, isSelected, onSelect, isFocused }) => {
|
106
|
+
return (React.createElement(SingleSelectListItem, { title: item.stringTitle, isSelected: isSelected, isFocused: isFocused, onClick: onSelect, className: "gd-timepicker-list-item" }));
|
107
|
+
} }));
|
108
|
+
}, [items, handleTimeChanged, currentItem, dropdownWidth]), overlayZIndex: overlayZIndex })));
|
109
|
+
});
|
131
110
|
const TimePickerWithIntl = injectIntl(WrappedTimepicker);
|
132
111
|
/**
|
133
112
|
* @internal
|
134
113
|
*/
|
135
|
-
export
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
}
|
140
|
-
}
|
114
|
+
export const Timepicker = React.memo(function Timepicker(props) {
|
115
|
+
return (React.createElement(IntlWrapper, { locale: props.locale },
|
116
|
+
React.createElement(TimePickerWithIntl, { ...props })));
|
117
|
+
});
|
141
118
|
//# sourceMappingURL=Timepicker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Timepicker.js","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"Timepicker.js","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"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"}
|