@ui5/webcomponents 1.0.1 → 1.1.2
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/CHANGELOG.md +118 -0
- package/dist/Breadcrumbs.js +8 -6
- package/dist/BreadcrumbsItem.js +1 -1
- package/dist/BusyIndicator.js +2 -3
- package/dist/Button.js +28 -1
- package/dist/Calendar.js +7 -0
- package/dist/Carousel.js +9 -0
- package/dist/CheckBox.js +34 -1
- package/dist/ColorPalette.js +5 -4
- package/dist/ColorPalettePopover.js +27 -2
- package/dist/ComboBox.js +91 -23
- package/dist/DateComponentBase.js +6 -8
- package/dist/DatePicker.js +10 -2
- package/dist/DateRangePicker.js +22 -0
- package/dist/Dialog.js +5 -22
- package/dist/Icon.js +11 -8
- package/dist/Input.js +107 -15
- package/dist/Link.js +32 -14
- package/dist/List.js +14 -4
- package/dist/MessageStrip.js +39 -2
- package/dist/MultiComboBox.js +7 -3
- package/dist/MultiComboBoxItem.js +1 -1
- package/dist/MultiInput.js +55 -8
- package/dist/Option.js +12 -1
- package/dist/Panel.js +9 -0
- package/dist/Popover.js +106 -57
- package/dist/Popup.js +16 -2
- package/dist/RadioButton.js +15 -3
- package/dist/RatingIndicator.js +37 -7
- package/dist/ResponsivePopover.js +1 -0
- package/dist/SegmentedButton.js +14 -1
- package/dist/Select.js +2 -1
- package/dist/SliderBase.js +4 -0
- package/dist/SplitButton.js +425 -0
- package/dist/Switch.js +18 -0
- package/dist/Tab.js +10 -6
- package/dist/TabContainer.js +480 -108
- package/dist/TabSeparator.js +42 -3
- package/dist/Table.js +15 -5
- package/dist/TextArea.js +9 -3
- package/dist/ToggleButton.js +5 -0
- package/dist/Tokenizer.js +134 -7
- package/dist/TreeItem.js +21 -0
- package/dist/TreeListItem.js +8 -0
- package/dist/api.json +299 -26
- package/dist/css/themes/Badge.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BrowserScrollbar.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/CustomListItem.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -0
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -0
- package/dist/css/themes/TabSeparatorInStrip.css +1 -0
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableColumn.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimeSelection.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/features/InputSuggestions.js +88 -15
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -2
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/CardHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/CarouselTemplate.lit.js +1 -1
- package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ComboBoxTemplate.lit.js +1 -1
- package/dist/generated/templates/CustomListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/DialogTemplate.lit.js +1 -1
- package/dist/generated/templates/InputPopoverTemplate.lit.js +3 -3
- package/dist/generated/templates/InputTemplate.lit.js +1 -1
- package/dist/generated/templates/LinkTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/MultiInputTemplate.lit.js +1 -1
- package/dist/generated/templates/PanelTemplate.lit.js +1 -1
- package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +1 -1
- package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/SliderBaseTemplate.lit.js +1 -1
- package/dist/generated/templates/SliderTemplate.lit.js +1 -1
- package/dist/generated/templates/SplitButtonTemplate.lit.js +7 -0
- package/dist/generated/templates/StandardListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
- package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +4 -2
- package/dist/generated/templates/TabContainerTemplate.lit.js +9 -10
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +1 -1
- package/dist/generated/templates/TabInStripTemplate.lit.js +1 -1
- package/dist/generated/templates/TabSeparatorInOverflowTemplate.lit.js +7 -0
- package/dist/generated/templates/TabSeparatorInStripTemplate.lit.js +7 -0
- package/dist/generated/templates/TableTemplate.lit.js +1 -1
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/TreeListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/TreeTemplate.lit.js +1 -1
- package/dist/generated/themes/Badge.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/BrowserScrollbar.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/CustomListItem.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js +8 -0
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +8 -0
- package/dist/generated/themes/TabSeparatorInStrip.css.js +8 -0
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/TableColumn.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TimeSelection.css.js +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/i18n/messagebundle.properties +26 -1
- package/dist/i18n/messagebundle_ar.properties +13 -1
- package/dist/i18n/messagebundle_bg.properties +13 -1
- package/dist/i18n/messagebundle_ca.properties +13 -1
- package/dist/i18n/messagebundle_cs.properties +13 -1
- package/dist/i18n/messagebundle_cy.properties +13 -1
- package/dist/i18n/messagebundle_da.properties +13 -1
- package/dist/i18n/messagebundle_de.properties +13 -1
- package/dist/i18n/messagebundle_el.properties +13 -1
- package/dist/i18n/messagebundle_en.properties +13 -1
- package/dist/i18n/messagebundle_en_GB.properties +13 -1
- package/dist/i18n/messagebundle_en_US_sappsd.properties +18 -1
- package/dist/i18n/messagebundle_en_US_saprigi.properties +18 -1
- package/dist/i18n/messagebundle_en_US_saptrc.properties +18 -1
- package/dist/i18n/messagebundle_es.properties +13 -1
- package/dist/i18n/messagebundle_es_MX.properties +13 -1
- package/dist/i18n/messagebundle_et.properties +13 -1
- package/dist/i18n/messagebundle_fi.properties +14 -2
- package/dist/i18n/messagebundle_fr.properties +13 -1
- package/dist/i18n/messagebundle_fr_CA.properties +13 -1
- package/dist/i18n/messagebundle_hi.properties +13 -1
- package/dist/i18n/messagebundle_hr.properties +13 -1
- package/dist/i18n/messagebundle_hu.properties +13 -1
- package/dist/i18n/messagebundle_id.properties +13 -1
- package/dist/i18n/messagebundle_it.properties +13 -1
- package/dist/i18n/messagebundle_iw.properties +13 -1
- package/dist/i18n/messagebundle_ja.properties +13 -1
- package/dist/i18n/messagebundle_kk.properties +13 -1
- package/dist/i18n/messagebundle_ko.properties +13 -1
- package/dist/i18n/messagebundle_lt.properties +13 -1
- package/dist/i18n/messagebundle_lv.properties +13 -1
- package/dist/i18n/messagebundle_ms.properties +13 -1
- package/dist/i18n/messagebundle_nl.properties +13 -1
- package/dist/i18n/messagebundle_no.properties +13 -1
- package/dist/i18n/messagebundle_pl.properties +13 -1
- package/dist/i18n/messagebundle_pt.properties +13 -1
- package/dist/i18n/messagebundle_pt_PT.properties +13 -1
- package/dist/i18n/messagebundle_ro.properties +13 -1
- package/dist/i18n/messagebundle_ru.properties +13 -1
- package/dist/i18n/messagebundle_sh.properties +13 -1
- package/dist/i18n/messagebundle_sk.properties +13 -1
- package/dist/i18n/messagebundle_sl.properties +13 -1
- package/dist/i18n/messagebundle_sv.properties +13 -1
- package/dist/i18n/messagebundle_th.properties +12 -0
- package/dist/i18n/messagebundle_tr.properties +13 -1
- package/dist/i18n/messagebundle_uk.properties +13 -1
- package/dist/i18n/messagebundle_vi.properties +13 -1
- package/dist/i18n/messagebundle_zh_CN.properties +13 -1
- package/dist/i18n/messagebundle_zh_TW.properties +12 -0
- package/dist/types/HasPopup.js +62 -0
- package/dist/types/TabsOverflowMode.js +40 -0
- package/package.json +9 -9
- package/src/Breadcrumbs.hbs +3 -2
- package/src/Breadcrumbs.js +8 -6
- package/src/BreadcrumbsItem.js +1 -1
- package/src/BreadcrumbsPopover.hbs +2 -2
- package/src/BusyIndicator.hbs +1 -1
- package/src/BusyIndicator.js +2 -3
- package/src/Button.hbs +1 -1
- package/src/Button.js +28 -1
- package/src/Calendar.js +7 -0
- package/src/CardHeader.hbs +12 -5
- package/src/Carousel.hbs +1 -0
- package/src/Carousel.js +9 -0
- package/src/CheckBox.hbs +1 -0
- package/src/CheckBox.js +34 -1
- package/src/ColorPalette.js +5 -4
- package/src/ColorPalettePopover.hbs +7 -5
- package/src/ColorPalettePopover.js +27 -2
- package/src/ComboBox.hbs +1 -0
- package/src/ComboBox.js +91 -23
- package/src/ComboBoxPopover.hbs +1 -0
- package/src/DateComponentBase.js +6 -8
- package/src/DatePicker.js +10 -2
- package/src/DateRangePicker.js +22 -0
- package/src/Dialog.hbs +1 -1
- package/src/Dialog.js +5 -22
- package/src/Icon.js +11 -8
- package/src/Input.hbs +1 -1
- package/src/Input.js +107 -15
- package/src/InputPopover.hbs +2 -3
- package/src/Link.hbs +2 -1
- package/src/Link.js +32 -14
- package/src/List.js +14 -4
- package/src/ListItem.hbs +1 -0
- package/src/MessageStrip.hbs +1 -1
- package/src/MessageStrip.js +39 -2
- package/src/MultiComboBox.js +7 -3
- package/src/MultiComboBoxItem.js +1 -1
- package/src/MultiComboBoxPopover.hbs +1 -1
- package/src/MultiInput.js +55 -8
- package/src/Option.js +12 -1
- package/src/Panel.hbs +1 -1
- package/src/Panel.js +9 -0
- package/src/Popover.js +106 -57
- package/src/Popup.js +16 -2
- package/src/PopupBlockLayer.hbs +1 -1
- package/src/RadioButton.js +15 -3
- package/src/RatingIndicator.js +37 -7
- package/src/ResponsivePopover.hbs +2 -0
- package/src/ResponsivePopover.js +1 -0
- package/src/SegmentedButton.hbs +1 -0
- package/src/SegmentedButton.js +14 -1
- package/src/Select.js +2 -1
- package/src/SelectPopover.hbs +2 -1
- package/src/SliderBase.hbs +1 -1
- package/src/SliderBase.js +4 -0
- package/src/SplitButton.hbs +53 -0
- package/src/SplitButton.js +425 -0
- package/src/Switch.hbs +1 -0
- package/src/Switch.js +18 -0
- package/src/Tab.js +10 -6
- package/src/TabContainer.hbs +48 -58
- package/src/TabContainer.js +480 -108
- package/src/TabContainerPopover.hbs +9 -6
- package/src/TabInOverflow.hbs +0 -1
- package/src/TabInStrip.hbs +3 -8
- package/src/TabSeparator.js +42 -3
- package/src/TabSeparatorInOverflow.hbs +8 -0
- package/src/TabSeparatorInStrip.hbs +6 -0
- package/src/Table.hbs +1 -1
- package/src/Table.js +15 -5
- package/src/TextArea.js +9 -3
- package/src/TextAreaPopover.hbs +1 -1
- package/src/ToggleButton.js +5 -0
- package/src/Tokenizer.js +134 -7
- package/src/Tree.hbs +1 -0
- package/src/TreeItem.js +21 -0
- package/src/TreeListItem.js +8 -0
- package/src/features/InputSuggestions.js +88 -15
- package/src/i18n/messagebundle.properties +26 -1
- package/src/i18n/messagebundle_ar.properties +13 -1
- package/src/i18n/messagebundle_bg.properties +13 -1
- package/src/i18n/messagebundle_ca.properties +13 -1
- package/src/i18n/messagebundle_cs.properties +13 -1
- package/src/i18n/messagebundle_cy.properties +13 -1
- package/src/i18n/messagebundle_da.properties +13 -1
- package/src/i18n/messagebundle_de.properties +13 -1
- package/src/i18n/messagebundle_el.properties +13 -1
- package/src/i18n/messagebundle_en.properties +13 -1
- package/src/i18n/messagebundle_en_GB.properties +13 -1
- package/src/i18n/messagebundle_en_US_sappsd.properties +18 -1
- package/src/i18n/messagebundle_en_US_saprigi.properties +18 -1
- package/src/i18n/messagebundle_en_US_saptrc.properties +18 -1
- package/src/i18n/messagebundle_es.properties +13 -1
- package/src/i18n/messagebundle_es_MX.properties +13 -1
- package/src/i18n/messagebundle_et.properties +13 -1
- package/src/i18n/messagebundle_fi.properties +14 -2
- package/src/i18n/messagebundle_fr.properties +13 -1
- package/src/i18n/messagebundle_fr_CA.properties +13 -1
- package/src/i18n/messagebundle_hi.properties +13 -1
- package/src/i18n/messagebundle_hr.properties +13 -1
- package/src/i18n/messagebundle_hu.properties +13 -1
- package/src/i18n/messagebundle_id.properties +13 -1
- package/src/i18n/messagebundle_it.properties +13 -1
- package/src/i18n/messagebundle_iw.properties +13 -1
- package/src/i18n/messagebundle_ja.properties +13 -1
- package/src/i18n/messagebundle_kk.properties +13 -1
- package/src/i18n/messagebundle_ko.properties +13 -1
- package/src/i18n/messagebundle_lt.properties +13 -1
- package/src/i18n/messagebundle_lv.properties +13 -1
- package/src/i18n/messagebundle_ms.properties +13 -1
- package/src/i18n/messagebundle_nl.properties +13 -1
- package/src/i18n/messagebundle_no.properties +13 -1
- package/src/i18n/messagebundle_pl.properties +13 -1
- package/src/i18n/messagebundle_pt.properties +13 -1
- package/src/i18n/messagebundle_pt_PT.properties +13 -1
- package/src/i18n/messagebundle_ro.properties +13 -1
- package/src/i18n/messagebundle_ru.properties +13 -1
- package/src/i18n/messagebundle_sh.properties +13 -1
- package/src/i18n/messagebundle_sk.properties +13 -1
- package/src/i18n/messagebundle_sl.properties +13 -1
- package/src/i18n/messagebundle_sv.properties +13 -1
- package/src/i18n/messagebundle_th.properties +12 -0
- package/src/i18n/messagebundle_tr.properties +13 -1
- package/src/i18n/messagebundle_uk.properties +13 -1
- package/src/i18n/messagebundle_vi.properties +13 -1
- package/src/i18n/messagebundle_zh_CN.properties +13 -1
- package/src/i18n/messagebundle_zh_TW.properties +12 -0
- package/src/themes/Badge.css +3 -1
- package/src/themes/Breadcrumbs.css +100 -99
- package/src/themes/BrowserScrollbar.css +2 -0
- package/src/themes/BusyIndicator.css +3 -3
- package/src/themes/CardHeader.css +7 -3
- package/src/themes/CheckBox.css +15 -7
- package/src/themes/CustomListItem.css +2 -1
- package/src/themes/Dialog.css +1 -0
- package/src/themes/Input.css +14 -0
- package/src/themes/List.css +1 -0
- package/src/themes/Panel.css +4 -0
- package/src/themes/Popover.css +4 -0
- package/src/themes/PopupsCommon.css +0 -1
- package/src/themes/RadioButton.css +4 -3
- package/src/themes/RatingIndicator.css +0 -1
- package/src/themes/SliderBase.css +3 -2
- package/src/themes/SplitButton.css +98 -0
- package/src/themes/TabContainer.css +17 -53
- package/src/themes/TabInOverflow.css +25 -21
- package/src/themes/TabInStrip.css +124 -100
- package/src/themes/TabSeparatorInOverflow.css +8 -0
- package/src/themes/TabSeparatorInStrip.css +5 -0
- package/src/themes/Table.css +1 -1
- package/src/themes/TableColumn.css +0 -1
- package/src/themes/TextArea.css +9 -1
- package/src/themes/TimeSelection.css +4 -0
- package/src/themes/Token.css +2 -1
- package/src/themes/Tokenizer.css +1 -1
- package/src/themes/ValueStateMessage.css +3 -3
- package/src/themes/base/BrowserScrollbar-parameters.css +4 -0
- package/src/themes/base/Card-parameters.css +1 -1
- package/src/themes/base/Input-parameters.css +5 -0
- package/src/themes/base/TabContainer-parameters.css +1 -1
- package/src/themes/base/TextArea-parameters.css +1 -0
- package/src/themes/base/Title-parameters.css +6 -6
- package/src/themes/base/Token-parameters.css +1 -0
- package/src/themes/base/sizes-parameters.css +2 -2
- package/src/themes/sap_belize/BrowserScrollbar-parameters.css +4 -0
- package/src/themes/sap_belize/Table-parameters.css +3 -0
- package/src/themes/sap_belize/parameters-bundle.css +1 -0
- package/src/themes/sap_belize_hcb/BrowserScrollbar-parameters.css +4 -0
- package/src/themes/sap_belize_hcb/Input-parameters.css +1 -0
- package/src/themes/sap_belize_hcb/Table-parameters.css +1 -0
- package/src/themes/sap_belize_hcb/Token-parameters.css +1 -0
- package/src/themes/sap_belize_hcb/parameters-bundle.css +1 -0
- package/src/themes/sap_belize_hcw/BrowserScrollbar-parameters.css +4 -0
- package/src/themes/sap_belize_hcw/Input-parameters.css +1 -0
- package/src/themes/sap_belize_hcw/Table-parameters.css +1 -0
- package/src/themes/sap_belize_hcw/Token-parameters.css +1 -0
- package/src/themes/sap_belize_hcw/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3/TabContainer-parameters.css +1 -1
- package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3_hcb/Input-parameters.css +7 -0
- package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +2 -0
- package/src/themes/sap_fiori_3_hcb/Token-parameters.css +2 -1
- package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
- package/src/themes/sap_fiori_3_hcw/Input-parameters.css +7 -0
- package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +2 -0
- package/src/themes/sap_fiori_3_hcw/Token-parameters.css +2 -1
- package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon/Card-parameters.css +0 -1
- package/src/themes/sap_horizon/Table-parameters.css +1 -0
- package/src/themes/sap_horizon/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -0
- package/src/types/HasPopup.js +62 -0
- package/src/types/TabsOverflowMode.js +40 -0
- package/csp.js +0 -7
- package/dist/generated/templates/TabSeparatorTemplate.lit.js +0 -7
- package/src/TabSeparator.hbs +0 -1
package/src/RatingIndicator.js
CHANGED
|
@@ -7,6 +7,8 @@ import {
|
|
|
7
7
|
isRight,
|
|
8
8
|
isSpace,
|
|
9
9
|
isEnter,
|
|
10
|
+
isHome,
|
|
11
|
+
isEnd,
|
|
10
12
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
11
13
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
12
14
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
@@ -143,6 +145,20 @@ const metadata = {
|
|
|
143
145
|
* <br>
|
|
144
146
|
* Example: <code><ui5-rating-indicator style="font-size: 3rem;"></ui5-rating-indicator></code>
|
|
145
147
|
*
|
|
148
|
+
* <h3>Keyboard Handling</h3>
|
|
149
|
+
* When the <code>ui5-rating-indicator</code> is focused, the user can change the rating
|
|
150
|
+
* with the following keyboard shortcuts:
|
|
151
|
+
* <br>
|
|
152
|
+
*
|
|
153
|
+
* <ul>
|
|
154
|
+
* <li>[RIGHT/UP] - Increases the value of the rating by one step. If the highest value is reached, does nothing</li>
|
|
155
|
+
* <li>[LEFT/DOWN] - Decreases the value of the rating by one step. If the lowest value is reached, does nothing.</li>
|
|
156
|
+
* <li>[HOME] - Sets the lowest value.</li>
|
|
157
|
+
* <li>[END] - Sets the highest value.</li>
|
|
158
|
+
* <li>[SPACE/ENTER/RETURN] - Increases the value of the rating by one step. If the highest value is reached, sets the rating to the lowest value.</li>
|
|
159
|
+
* <li>Any number - Changes value to the corresponding number. If typed number is larger than the number of values, sets the highest value.</li>
|
|
160
|
+
* </ul>
|
|
161
|
+
*
|
|
146
162
|
* <h3>ES6 Module Import</h3>
|
|
147
163
|
*
|
|
148
164
|
* <code>import "@ui5/webcomponents/dist/RatingIndicator.js";</code>
|
|
@@ -232,19 +248,33 @@ class RatingIndicator extends UI5Element {
|
|
|
232
248
|
return;
|
|
233
249
|
}
|
|
234
250
|
|
|
235
|
-
const
|
|
236
|
-
const
|
|
251
|
+
const isDecrease = isDown(event) || isLeft(event);
|
|
252
|
+
const isIncrease = isRight(event) || isUp(event);
|
|
253
|
+
const isIncreaseWithReset = isSpace(event) || isEnter(event);
|
|
254
|
+
const isMin = isHome(event);
|
|
255
|
+
const isMax = isEnd(event);
|
|
256
|
+
const isNumber = (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105);
|
|
237
257
|
|
|
238
|
-
if (
|
|
258
|
+
if (isDecrease || isIncrease || isIncreaseWithReset || isMin || isMax || isNumber) {
|
|
239
259
|
event.preventDefault();
|
|
240
260
|
|
|
241
|
-
if (
|
|
261
|
+
if (isDecrease && this.value > 0) {
|
|
242
262
|
this.value = Math.round(this.value - 1);
|
|
243
|
-
|
|
244
|
-
} else if (up && this.value < this.max) {
|
|
263
|
+
} else if (isIncrease && this.value < this.max) {
|
|
245
264
|
this.value = Math.round(this.value + 1);
|
|
246
|
-
|
|
265
|
+
} else if (isIncreaseWithReset) {
|
|
266
|
+
const proposedValue = Math.round(this.value + 1);
|
|
267
|
+
this.value = proposedValue > this.max ? 0 : proposedValue;
|
|
268
|
+
} else if (isMin) {
|
|
269
|
+
this.value = 0;
|
|
270
|
+
} else if (isMax) {
|
|
271
|
+
this.value = this.max;
|
|
272
|
+
} else if (isNumber) {
|
|
273
|
+
const pressedNumber = parseInt(event.key);
|
|
274
|
+
this.value = pressedNumber > this.max ? this.max : pressedNumber;
|
|
247
275
|
}
|
|
276
|
+
|
|
277
|
+
this.fireEvent("change");
|
|
248
278
|
}
|
|
249
279
|
}
|
|
250
280
|
|
package/src/ResponsivePopover.js
CHANGED
package/src/SegmentedButton.hbs
CHANGED
package/src/SegmentedButton.js
CHANGED
|
@@ -25,7 +25,20 @@ const metadata = {
|
|
|
25
25
|
tag: "ui5-segmented-button",
|
|
26
26
|
altTag: "ui5-segmentedbutton",
|
|
27
27
|
languageAware: true,
|
|
28
|
-
properties: /** @lends sap.ui.webcomponents.main.SegmentedButton.prototype */ {
|
|
28
|
+
properties: /** @lends sap.ui.webcomponents.main.SegmentedButton.prototype */ {
|
|
29
|
+
/**
|
|
30
|
+
* Sets the accessible aria name of the component.
|
|
31
|
+
*
|
|
32
|
+
* @type {String}
|
|
33
|
+
* @defaultvalue: ""
|
|
34
|
+
* @public
|
|
35
|
+
* @since 1.0.3
|
|
36
|
+
*/
|
|
37
|
+
accessibleName: {
|
|
38
|
+
type: String,
|
|
39
|
+
defaultValue: undefined,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
29
42
|
managedSlots: true,
|
|
30
43
|
slots: /** @lends sap.ui.webcomponents.main.SegmentedButton.prototype */ {
|
|
31
44
|
|
package/src/Select.js
CHANGED
|
@@ -402,6 +402,7 @@ class Select extends UI5Element {
|
|
|
402
402
|
icon: opt.icon,
|
|
403
403
|
value: opt.value,
|
|
404
404
|
textContent: opt.textContent,
|
|
405
|
+
title: opt.title,
|
|
405
406
|
id: opt._id,
|
|
406
407
|
stableDomRef: opt.stableDomRef,
|
|
407
408
|
};
|
|
@@ -554,7 +555,7 @@ class Select extends UI5Element {
|
|
|
554
555
|
* @private
|
|
555
556
|
*/
|
|
556
557
|
_handleItemPress(event) {
|
|
557
|
-
const item = event.detail.
|
|
558
|
+
const item = event.detail.selectedItems[0];
|
|
558
559
|
const selectedItemIndex = this._getSelectedItemIndex(item);
|
|
559
560
|
|
|
560
561
|
this._handleSelectionChange(selectedItemIndex);
|
package/src/SelectPopover.hbs
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
mode="SingleSelectAuto"
|
|
43
43
|
separators="None"
|
|
44
44
|
@mousedown="{{_itemMousedown}}"
|
|
45
|
-
@ui5-
|
|
45
|
+
@ui5-selection-change="{{_handleItemPress}}"
|
|
46
46
|
>
|
|
47
47
|
{{#each _syncedOptions}}
|
|
48
48
|
<ui5-li
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
icon="{{this.icon}}"
|
|
51
51
|
?selected="{{this.selected}}"
|
|
52
52
|
?focused="{{this._focused}}"
|
|
53
|
+
title="{{this.title}}"
|
|
53
54
|
?aria-selected="{{this.selected}}"
|
|
54
55
|
data-ui5-stable="{{this.stableDomRef}}"
|
|
55
56
|
>
|
package/src/SliderBase.hbs
CHANGED
package/src/SliderBase.js
CHANGED
|
@@ -3,6 +3,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
|
3
3
|
import Float from "@ui5/webcomponents-base/dist/types/Float.js";
|
|
4
4
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
5
5
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
6
|
+
import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
6
7
|
import "@ui5/webcomponents-icons/dist/source-code.js";
|
|
7
8
|
import {
|
|
8
9
|
isEscape, isHome, isEnd, isUp, isDown, isRight, isLeft, isUpCtrl, isDownCtrl, isRightCtrl, isLeftCtrl, isPlus, isMinus, isPageUp, isPageDown,
|
|
@@ -229,6 +230,9 @@ class SliderBase extends UI5Element {
|
|
|
229
230
|
|
|
230
231
|
get classes() {
|
|
231
232
|
return {
|
|
233
|
+
root: {
|
|
234
|
+
"ui5-slider-root-phone": isPhone(),
|
|
235
|
+
},
|
|
232
236
|
labelContainer: {
|
|
233
237
|
"ui5-slider-hidden-labels": this._labelsOverlapping,
|
|
234
238
|
},
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<div
|
|
2
|
+
class="ui5-split-button-root"
|
|
3
|
+
role="group"
|
|
4
|
+
tabindex={{_tabIndex}}
|
|
5
|
+
aria-labelledby="{{_id}}-invisibleTextDefault {{_id}}-invisibleText"
|
|
6
|
+
@focusout={{_onFocusOut}}
|
|
7
|
+
@focusin={{_onFocusIn}}
|
|
8
|
+
@keydown={{_onKeyDown}}
|
|
9
|
+
@keyup={{_onKeyUp}}
|
|
10
|
+
>
|
|
11
|
+
|
|
12
|
+
<ui5-button
|
|
13
|
+
class="ui5-split-text-button"
|
|
14
|
+
design="{{design}}"
|
|
15
|
+
dir={{effectiveDir}}
|
|
16
|
+
icon="{{_textButtonIcon}}"
|
|
17
|
+
tabindex="-1"
|
|
18
|
+
?disabled="{{disabled}}"
|
|
19
|
+
?active="{{_textButtonActive}}"
|
|
20
|
+
@click="{{_fireClick}}"
|
|
21
|
+
@touchstart={{_textButtonPress}}
|
|
22
|
+
@mousedown={{_textButtonPress}}
|
|
23
|
+
@mouseup={{_textButtonRelease}}
|
|
24
|
+
@focusin={{_setTabIndexValue}}
|
|
25
|
+
@focusout={{_onFocusOut}}
|
|
26
|
+
>
|
|
27
|
+
<slot></slot>
|
|
28
|
+
</ui5-button>
|
|
29
|
+
|
|
30
|
+
<div
|
|
31
|
+
class="ui5-split-arrow-button-wrapper"
|
|
32
|
+
dir={{effectiveDir}}
|
|
33
|
+
>
|
|
34
|
+
<ui5-button
|
|
35
|
+
class="ui5-split-arrow-button"
|
|
36
|
+
design="{{design}}"
|
|
37
|
+
icon="slim-arrow-down"
|
|
38
|
+
tabindex="-1"
|
|
39
|
+
?disabled="{{disabled}}"
|
|
40
|
+
?active="{{_arrowButtonActive}}"
|
|
41
|
+
aria-expanded="{{accessibilityInfo.ariaExpanded}}"
|
|
42
|
+
aria-haspopup="{{accessibilityInfo.ariaHaspopup}}"
|
|
43
|
+
@click="{{_fireArrowClick}}"
|
|
44
|
+
@focusin={{_setTabIndexValue}}
|
|
45
|
+
@focusout={{_onFocusOut}}
|
|
46
|
+
>
|
|
47
|
+
</ui5-button>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<span id="{{_id}}-invisibleText" class="ui5-hidden-text">{{accessibilityInfo.description}} {{accessibilityInfo.keyboardHint}} {{accessibleName}}</span>
|
|
51
|
+
<span id="{{_id}}-invisibleTextDefault" class="ui5-hidden-text">{{textButtonAccText}}</span>
|
|
52
|
+
|
|
53
|
+
</div>
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import {
|
|
3
|
+
isEscape,
|
|
4
|
+
isSpace,
|
|
5
|
+
isEnter,
|
|
6
|
+
isDown,
|
|
7
|
+
isUp,
|
|
8
|
+
isDownAlt,
|
|
9
|
+
isUpAlt,
|
|
10
|
+
isF4,
|
|
11
|
+
isShift,
|
|
12
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
13
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
14
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
15
|
+
import SplitButtonTemplate from "./generated/templates/SplitButtonTemplate.lit.js";
|
|
16
|
+
import ButtonDesign from "./types/ButtonDesign.js";
|
|
17
|
+
|
|
18
|
+
import {
|
|
19
|
+
SPLIT_BUTTON_DESCRIPTION,
|
|
20
|
+
SPLIT_BUTTON_KEYBOARD_HINT,
|
|
21
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
22
|
+
|
|
23
|
+
// Styles
|
|
24
|
+
import SplitButtonCss from "./generated/themes/SplitButton.css.js";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
const metadata = {
|
|
30
|
+
tag: "ui5-split-button",
|
|
31
|
+
managedSlots: true,
|
|
32
|
+
properties: /** @lends sap.ui.webcomponents.main.SplitButton.prototype */ {
|
|
33
|
+
/**
|
|
34
|
+
* Defines the icon to be displayed as graphical element within the component.
|
|
35
|
+
* The SAP-icons font provides numerous options.
|
|
36
|
+
* <br><br>
|
|
37
|
+
* Example:
|
|
38
|
+
*
|
|
39
|
+
* See all the available icons in the <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
|
|
40
|
+
*
|
|
41
|
+
* @type {string}
|
|
42
|
+
* @defaultvalue ""
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
icon: {
|
|
46
|
+
type: String,
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Defines the icon to be displayed in active state as graphical element within the component.
|
|
51
|
+
*
|
|
52
|
+
* @type {string}
|
|
53
|
+
* @defaultvalue ""
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
activeIcon: {
|
|
57
|
+
type: String,
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Defines the component design.
|
|
62
|
+
*
|
|
63
|
+
* <br><br>
|
|
64
|
+
* <b>The available values are:</b>
|
|
65
|
+
*
|
|
66
|
+
* <ul>
|
|
67
|
+
* <li><code>Default</code></li>
|
|
68
|
+
* <li><code>Emphasized</code></li>
|
|
69
|
+
* <li><code>Positive</code></li>
|
|
70
|
+
* <li><code>Negative</code></li>
|
|
71
|
+
* <li><code>Transparent</code></li>
|
|
72
|
+
* <li><code>Attention</code></li>
|
|
73
|
+
* </ul>
|
|
74
|
+
*
|
|
75
|
+
* @type {ButtonDesign}
|
|
76
|
+
* @defaultvalue "Default"
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
design: {
|
|
80
|
+
type: ButtonDesign,
|
|
81
|
+
defaultValue: ButtonDesign.Default,
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Defines whether the component is disabled.
|
|
86
|
+
* A disabled component can't be pressed or
|
|
87
|
+
* focused, and it is not in the tab chain.
|
|
88
|
+
*
|
|
89
|
+
* @type {boolean}
|
|
90
|
+
* @defaultvalue false
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
disabled: {
|
|
94
|
+
type: Boolean,
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Sets the accessible aria name of the component.
|
|
99
|
+
*
|
|
100
|
+
* @type {String}
|
|
101
|
+
* @defaultvalue: ""
|
|
102
|
+
* @public
|
|
103
|
+
*/
|
|
104
|
+
accessibleName: {
|
|
105
|
+
type: String,
|
|
106
|
+
defaultValue: undefined,
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Indicates if the elements is on focus
|
|
111
|
+
* @type {boolean}
|
|
112
|
+
* @defaultvalue false
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
focused: {
|
|
116
|
+
type: Boolean,
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Accessibility-related properties for inner elements of the Split Button
|
|
121
|
+
*
|
|
122
|
+
* @type {Object}
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
125
|
+
_splitButtonAccInfo: {
|
|
126
|
+
type: Object,
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Defines the tabIndex of the component.
|
|
131
|
+
* @type {string}
|
|
132
|
+
* @defaultvalue ""
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
_tabIndex: {
|
|
136
|
+
type: String,
|
|
137
|
+
defaultValue: "0",
|
|
138
|
+
noAttribute: true,
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Indicates if there is Space key pressed
|
|
143
|
+
* @type {boolean}
|
|
144
|
+
* @defaultvalue false
|
|
145
|
+
* @private
|
|
146
|
+
*/
|
|
147
|
+
_spacePressed: {
|
|
148
|
+
type: Boolean,
|
|
149
|
+
noAttribute: true,
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Indicates if there is SHIFT or ESCAPE key pressed
|
|
154
|
+
* @type {boolean}
|
|
155
|
+
* @defaultvalue false
|
|
156
|
+
* @private
|
|
157
|
+
*/
|
|
158
|
+
_shiftOrEscapePressed: {
|
|
159
|
+
type: Boolean,
|
|
160
|
+
noAttribute: true,
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Defines the active state of the text button
|
|
165
|
+
* @type {boolean}
|
|
166
|
+
* @defaultvalue false
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
169
|
+
_textButtonActive: {
|
|
170
|
+
type: Boolean,
|
|
171
|
+
noAttribute: true,
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Defines the icon of the text button
|
|
176
|
+
* @type {string}
|
|
177
|
+
* @defaultvalue ""
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
_textButtonIcon: {
|
|
181
|
+
type: String,
|
|
182
|
+
noAttribute: true,
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Defines the active state of the arrow button
|
|
187
|
+
* @type {boolean}
|
|
188
|
+
* @defaultvalue false
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
_arrowButtonActive: {
|
|
192
|
+
type: Boolean,
|
|
193
|
+
noAttribute: true,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
slots: /** @lends sap.ui.webcomponents.main.SplitButton.prototype */ {
|
|
197
|
+
/**
|
|
198
|
+
* Defines the text of the component.
|
|
199
|
+
* <br><br>
|
|
200
|
+
* <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
|
|
201
|
+
*
|
|
202
|
+
* @type {Node[]}
|
|
203
|
+
* @slot
|
|
204
|
+
* @public
|
|
205
|
+
*/
|
|
206
|
+
"default": {
|
|
207
|
+
type: Node,
|
|
208
|
+
propertyName: "text",
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
events: /** @lends sap.ui.webcomponents.main.SplitButton.prototype */ {
|
|
212
|
+
/**
|
|
213
|
+
* Fired when the user clicks on the default action.
|
|
214
|
+
* @event
|
|
215
|
+
* @public
|
|
216
|
+
*/
|
|
217
|
+
"click": {},
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Fired when the user clicks on the arrow action.
|
|
221
|
+
* @event sap.ui.webcomponents.main.SplitButton#arrow-click
|
|
222
|
+
* @public
|
|
223
|
+
*/
|
|
224
|
+
"arrow-click": {},
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* @class
|
|
230
|
+
*
|
|
231
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
232
|
+
*
|
|
233
|
+
* <code>ui5-split-button</code> enables users to trigger actions. It is constructed of two separate actions -
|
|
234
|
+
* default action and arrow action that can be activated by clicking or tapping, or by
|
|
235
|
+
* pressing certain keyboard keys - <code>Space</code> or <code>Enter</code> for default action,
|
|
236
|
+
* and <code>Arrow Down</code> or <code>Arrow Up</code> for arrow action.
|
|
237
|
+
*
|
|
238
|
+
* <h3>Usage</h3>
|
|
239
|
+
*
|
|
240
|
+
* <code>ui5-split-button</code> consists two separate buttons:
|
|
241
|
+
* <ul>
|
|
242
|
+
* <li>for the first one (default action) you can define some <code>text</code> or an <code>icon</code>, or both.
|
|
243
|
+
* Also, it is possible to define different icon for active state of this button - <code>activeIcon</code>.</li>
|
|
244
|
+
* <li>the second one (arrow action) contains only <code>slim-arrow-down</code> icon.</li>
|
|
245
|
+
* </ul>
|
|
246
|
+
* You can choose a <code>design</code> from a set of predefined types (the same as for ui5-button) that offer
|
|
247
|
+
* different styling to correspond to the triggered action. Both text and arrow actions have the same design.
|
|
248
|
+
* <br><br>
|
|
249
|
+
* You can set the <code>ui5-split-button</code> as enabled or disabled. Both parts of an enabled
|
|
250
|
+
* <code>ui5-split-button</code> can be pressed by clicking or tapping it, or by certain keys, which changes
|
|
251
|
+
* the style to provide visual feedback to the user that it is pressed or hovered over with
|
|
252
|
+
* the mouse cursor. A disabled <code>ui5-split-button</code> appears inactive and any of the two buttons
|
|
253
|
+
* cannot be pressed.
|
|
254
|
+
* <br><br>
|
|
255
|
+
* <b>Keyboard handing</b>
|
|
256
|
+
* <ul>
|
|
257
|
+
* <li><code>Space</code> or <code>Enter</code> - triggers the default action</li>
|
|
258
|
+
* <li><code>Shift</code> or <code>Escape</code> - if <code>Space</code> is pressed, releases the default action button without triggering the click event.</li>
|
|
259
|
+
* <li><code>Arrow Down</code>, <code>Arrow Up</code>, <code>Alt</code>+<code>Arrow Down</code>, <code>Alt</code>+<code>Arrow Up</code>, or <code>F4</code> - triggers the arrow action
|
|
260
|
+
* There are separate events that are fired on activating of <code>ui5-split-button</code> parts:
|
|
261
|
+
* <ul>
|
|
262
|
+
* <li><code>click</code> for the first button (default action)</li>
|
|
263
|
+
* <li><code>arrow-click</code> for the second button (arrow action)</li>
|
|
264
|
+
* </ul>
|
|
265
|
+
*
|
|
266
|
+
* <h3>ES6 Module Import</h3>
|
|
267
|
+
*
|
|
268
|
+
* <code>import @ui5/webcomponents/dist/SplitButton.js";</code>
|
|
269
|
+
*
|
|
270
|
+
* @constructor
|
|
271
|
+
* @author SAP SE
|
|
272
|
+
* @alias sap.ui.webcomponents.main.SplitButton
|
|
273
|
+
* @extends UI5Element
|
|
274
|
+
* @tagname ui5-split-button
|
|
275
|
+
* @public
|
|
276
|
+
* @since 1.1.0
|
|
277
|
+
*/
|
|
278
|
+
class SplitButton extends UI5Element {
|
|
279
|
+
static get metadata() {
|
|
280
|
+
return metadata;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
static get render() {
|
|
284
|
+
return litRender;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
static get styles() {
|
|
288
|
+
return SplitButtonCss;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
static get template() {
|
|
292
|
+
return SplitButtonTemplate;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
static async onDefine() {
|
|
296
|
+
SplitButton.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
onBeforeRendering() {
|
|
300
|
+
this._textButtonIcon = this.textButton && this.activeIcon !== "" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;
|
|
301
|
+
if (this.disabled) {
|
|
302
|
+
this._tabIndex = "-1";
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
_onFocusOut(event) {
|
|
307
|
+
if (this.disabled || event.isMarked) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
this._shiftOrEscapePressed = false;
|
|
311
|
+
this.focused = false;
|
|
312
|
+
this._setTabIndexValue();
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
_onFocusIn(event) {
|
|
316
|
+
if (this.disabled || event.isMarked) {
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
this._shiftOrEscapePressed = false;
|
|
320
|
+
this.focused = true;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
_onKeyDown(event) {
|
|
324
|
+
if (isDown(event) || isUp(event) || isDownAlt(event) || isUpAlt(event) || isF4(event)) {
|
|
325
|
+
event.preventDefault();
|
|
326
|
+
this._arrowButtonActive = true;
|
|
327
|
+
this._fireArrowClick();
|
|
328
|
+
} else if (isSpace(event) || isEnter(event)) {
|
|
329
|
+
event.preventDefault();
|
|
330
|
+
this._textButtonActive = true;
|
|
331
|
+
if (isEnter(event)) {
|
|
332
|
+
this._fireClick();
|
|
333
|
+
} else {
|
|
334
|
+
this._spacePressed = true;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (this._spacePressed && (isEscape(event) || isShift(event))) {
|
|
338
|
+
this._shiftOrEscapePressed = true;
|
|
339
|
+
this._textButtonActive = false;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
this._setTabIndexValue();
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
_onKeyUp(event) {
|
|
346
|
+
if (isDown(event) || isUp(event) || isDownAlt(event) || isUpAlt(event) || isF4(event)) {
|
|
347
|
+
this._arrowButtonActive = false;
|
|
348
|
+
} else if (isSpace(event) || isEnter(event)) {
|
|
349
|
+
this._textButtonActive = false;
|
|
350
|
+
if (isSpace(event)) {
|
|
351
|
+
event.preventDefault();
|
|
352
|
+
event.stopPropagation();
|
|
353
|
+
this._fireClick();
|
|
354
|
+
this._spacePressed = false;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
this._setTabIndexValue();
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
_fireClick(event) {
|
|
362
|
+
event && event.stopPropagation();
|
|
363
|
+
if (!this._shiftOrEscapePressed) {
|
|
364
|
+
this.fireEvent("click");
|
|
365
|
+
}
|
|
366
|
+
this._shiftOrEscapePressed = false;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
_fireArrowClick(event) {
|
|
370
|
+
event && event.stopPropagation();
|
|
371
|
+
this.fireEvent("arrow-click");
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
_textButtonRelease() {
|
|
375
|
+
this._textButtonActive = false;
|
|
376
|
+
this._textButtonIcon = this.textButton && this.activeIcon !== "" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;
|
|
377
|
+
this._setTabIndexValue();
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
_textButtonPress() {
|
|
381
|
+
this._textButtonActive = true;
|
|
382
|
+
this.focused = false;
|
|
383
|
+
this._setTabIndexValue();
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
_setTabIndexValue() {
|
|
387
|
+
const textButton = this.textButton,
|
|
388
|
+
arrowButton = this.arrowButton,
|
|
389
|
+
buttonsAction = (textButton && (textButton.focused || textButton.active))
|
|
390
|
+
|| (arrowButton && (arrowButton.focused || arrowButton.active));
|
|
391
|
+
|
|
392
|
+
this._tabIndex = this.disabled || buttonsAction ? "-1" : "0";
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
get textButtonAccText() {
|
|
396
|
+
return this.textContent;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
get textButton() {
|
|
400
|
+
return this.getDomRef() && this.getDomRef().querySelector(".ui5-split-text-button");
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
get arrowButton() {
|
|
404
|
+
return this.getDomRef() && this.getDomRef().querySelector(".ui5-split-arrow-button");
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
get accessibilityInfo() {
|
|
408
|
+
return {
|
|
409
|
+
// affects arrow button
|
|
410
|
+
ariaExpanded: this._splitButtonAccInfo && this._splitButtonAccInfo.ariaExpanded,
|
|
411
|
+
ariaHaspopup: this._splitButtonAccInfo && this._splitButtonAccInfo.ariaHaspopup,
|
|
412
|
+
// affects root element
|
|
413
|
+
description: SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),
|
|
414
|
+
keyboardHint: SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
get ariaLabelText() {
|
|
419
|
+
return [SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION), SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT)].join(" ");
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
SplitButton.define();
|
|
424
|
+
|
|
425
|
+
export default SplitButton;
|