@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
|
@@ -3,17 +3,20 @@
|
|
|
3
3
|
horizontal-align="Right"
|
|
4
4
|
placement-type="Bottom"
|
|
5
5
|
content-only-on-desktop
|
|
6
|
-
with-padding
|
|
7
6
|
hide-arrow
|
|
8
7
|
_hide-header
|
|
9
8
|
class="ui5-tab-container-responsive-popover"
|
|
10
9
|
>
|
|
11
|
-
<ui5-list @ui5-item-
|
|
12
|
-
{{#
|
|
13
|
-
{{#
|
|
10
|
+
<ui5-list mode="SingleSelect" separators="None" @ui5-item-click="{{_onOverflowListItemClick}}">
|
|
11
|
+
{{#if _endOverflowItems.length}}
|
|
12
|
+
{{#each _endOverflowItems}}
|
|
14
13
|
{{this.overflowPresentation}}
|
|
15
|
-
{{/
|
|
16
|
-
{{
|
|
14
|
+
{{/each}}
|
|
15
|
+
{{else}}
|
|
16
|
+
{{#each _startOverflowItems}}
|
|
17
|
+
{{this.overflowPresentation}}
|
|
18
|
+
{{/each}}
|
|
19
|
+
{{/if}}
|
|
17
20
|
</ui5-list>
|
|
18
21
|
<div slot="footer" class="ui5-responsive-popover-footer">
|
|
19
22
|
<ui5-button
|
package/src/TabInOverflow.hbs
CHANGED
package/src/TabInStrip.hbs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<
|
|
2
|
-
class="{{this.
|
|
1
|
+
<div id="{{this._id}}"
|
|
2
|
+
class="{{this.stripClasses}}"
|
|
3
3
|
tabindex="{{this._tabIndex}}"
|
|
4
4
|
role="tab"
|
|
5
5
|
aria-posinset="{{this._posinset}}"
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
aria-labelledby="{{this.ariaLabelledBy}}"
|
|
12
12
|
data-ui5-stable="{{this.stableDomRef}}"
|
|
13
13
|
>
|
|
14
|
-
|
|
15
14
|
{{#if this.icon}}
|
|
16
15
|
<div class="ui5-tab-strip-item-icon-outer">
|
|
17
16
|
<ui5-icon name="{{this.icon}}" class="ui5-tab-strip-item-icon"></ui5-icon>
|
|
@@ -19,7 +18,6 @@
|
|
|
19
18
|
{{/if}}
|
|
20
19
|
|
|
21
20
|
<div class="ui5-tab-strip-itemContent">
|
|
22
|
-
|
|
23
21
|
{{#unless this._isInline}}
|
|
24
22
|
{{> additionalText}}
|
|
25
23
|
{{/unless}}
|
|
@@ -30,12 +28,9 @@
|
|
|
30
28
|
{{this.displayText}}
|
|
31
29
|
</span>
|
|
32
30
|
{{/if}}
|
|
33
|
-
|
|
34
31
|
</div>
|
|
32
|
+
</div>
|
|
35
33
|
|
|
36
|
-
</li>
|
|
37
|
-
|
|
38
|
-
<!-- Additional text -->
|
|
39
34
|
{{#*inline additionalText}}
|
|
40
35
|
{{#if this.additionalText}}
|
|
41
36
|
<span class="ui5-tab-strip-itemAdditionalText" id="{{this._id}}-additionalText">{{this.additionalText}}</span>
|
package/src/TabSeparator.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
|
-
import
|
|
3
|
+
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
4
|
+
|
|
5
|
+
import TabContainer from "./TabContainer.js";
|
|
6
|
+
|
|
7
|
+
// Templates
|
|
8
|
+
import TabSeparatorInStripTemplate from "./generated/templates/TabSeparatorInStripTemplate.lit.js";
|
|
9
|
+
import TabSeparatorInOverflowTemplate from "./generated/templates/TabSeparatorInOverflowTemplate.lit.js";
|
|
10
|
+
|
|
11
|
+
// Styles
|
|
12
|
+
import stripCss from "./generated/themes/TabSeparatorInStrip.css.js";
|
|
13
|
+
import overflowCss from "./generated/themes/TabSeparatorInOverflow.css.js";
|
|
4
14
|
|
|
5
15
|
/**
|
|
6
16
|
* @public
|
|
@@ -30,15 +40,44 @@ class TabSeparator extends UI5Element {
|
|
|
30
40
|
return litRender;
|
|
31
41
|
}
|
|
32
42
|
|
|
33
|
-
static get
|
|
34
|
-
return
|
|
43
|
+
static get stripTemplate() {
|
|
44
|
+
return TabSeparatorInStripTemplate;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
static get overflowTemplate() {
|
|
48
|
+
return TabSeparatorInOverflowTemplate;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
get classes() {
|
|
52
|
+
return {
|
|
53
|
+
"ui5-tc__separator": true,
|
|
54
|
+
};
|
|
35
55
|
}
|
|
36
56
|
|
|
37
57
|
get isSeparator() {
|
|
38
58
|
return true;
|
|
39
59
|
}
|
|
60
|
+
|
|
61
|
+
getTabInStripDomRef() {
|
|
62
|
+
return this._getTabInStripDomRef;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
get stableDomRef() {
|
|
66
|
+
return this.getAttribute("stable-dom-ref") || `${this._id}-stable-dom-ref`;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
get stripPresentation() {
|
|
70
|
+
return executeTemplate(this.constructor.stripTemplate, this);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
get overflowPresentation() {
|
|
74
|
+
return executeTemplate(this.constructor.overflowTemplate, this);
|
|
75
|
+
}
|
|
40
76
|
}
|
|
41
77
|
|
|
42
78
|
TabSeparator.define();
|
|
43
79
|
|
|
80
|
+
TabContainer.registerTabStyles(stripCss);
|
|
81
|
+
TabContainer.registerStaticAreaTabStyles(overflowCss);
|
|
82
|
+
|
|
44
83
|
export default TabSeparator;
|
package/src/Table.hbs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
<table border="0" cellspacing="0" cellpadding="0" @keydown="{{_onkeydown}}" role="table">
|
|
7
7
|
<thead>
|
|
8
|
-
<tr id="{{_columnHeader.id}}" role="row" class="ui5-table-header-row" aria-label="{{ariaLabelText}}" tabindex="{{_columnHeader._tabIndex}}"
|
|
8
|
+
<tr id="{{_columnHeader.id}}" role="row" class="ui5-table-header-row" aria-label="{{ariaLabelText}}" tabindex="{{_columnHeader._tabIndex}}" @click="{{_onColumnHeaderClick}}">
|
|
9
9
|
{{#if isMultiSelect}}
|
|
10
10
|
<th class="ui5-table-select-all-column" role="presentation" aria-hidden="true">
|
|
11
11
|
<ui5-checkbox class="ui5-table-select-all-checkbox"
|
package/src/Table.js
CHANGED
|
@@ -36,6 +36,7 @@ const GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms
|
|
|
36
36
|
const metadata = {
|
|
37
37
|
tag: "ui5-table",
|
|
38
38
|
managedSlots: true,
|
|
39
|
+
fastNavigation: true,
|
|
39
40
|
slots: /** @lends sap.ui.webcomponents.main.Table.prototype */ {
|
|
40
41
|
|
|
41
42
|
/**
|
|
@@ -51,6 +52,7 @@ const metadata = {
|
|
|
51
52
|
propertyName: "rows",
|
|
52
53
|
type: HTMLElement,
|
|
53
54
|
individualSlots: true,
|
|
55
|
+
invalidateOnChildChange: true,
|
|
54
56
|
},
|
|
55
57
|
|
|
56
58
|
/**
|
|
@@ -143,7 +145,7 @@ const metadata = {
|
|
|
143
145
|
* <code>None</code> (default) - The growing is off.
|
|
144
146
|
* <br><br>
|
|
145
147
|
*
|
|
146
|
-
* <b>
|
|
148
|
+
* <b>Restrictions:</b> <code>growing="Scroll"</code> is not supported for Internet Explorer,
|
|
147
149
|
* and the component will fallback to <code>growing="Button"</code>.
|
|
148
150
|
* @type {TableGrowingMode}
|
|
149
151
|
* @defaultvalue "None"
|
|
@@ -186,7 +188,7 @@ const metadata = {
|
|
|
186
188
|
* Determines whether the column headers remain fixed at the top of the page during
|
|
187
189
|
* vertical scrolling as long as the Web Component is in the viewport.
|
|
188
190
|
* <br><br>
|
|
189
|
-
* <b>
|
|
191
|
+
* <b>Restrictions:</b>
|
|
190
192
|
* <ul>
|
|
191
193
|
* <li>Browsers that do not support this feature:
|
|
192
194
|
* <ul>
|
|
@@ -364,6 +366,14 @@ const metadata = {
|
|
|
364
366
|
* <br><br>
|
|
365
367
|
* <b>Note:</b> Currently, when a column is shown as a pop-in, the visual indication for selection is not presented over it.
|
|
366
368
|
*
|
|
369
|
+
* <h3>Keyboard Handling</h3>
|
|
370
|
+
*
|
|
371
|
+
* <h4>Fast Navigation</h4>
|
|
372
|
+
* This component provides a build in fast navigation group which can be used via <code>F6 / Shift + F6</code> or <code> Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up</code>.
|
|
373
|
+
* In order to use this functionality, you need to import the following module:
|
|
374
|
+
* <code>import "@ui5/webcomponents-base/dist/features/F6Navigation.js"</code>
|
|
375
|
+
* <br><br>
|
|
376
|
+
*
|
|
367
377
|
* <h3>ES6 Module Import</h3>
|
|
368
378
|
*
|
|
369
379
|
* <code>import "@ui5/webcomponents/dist/Table.js";</code>
|
|
@@ -434,6 +444,7 @@ class Table extends UI5Element {
|
|
|
434
444
|
const columnSettings = this.getColumnPropagationSettings();
|
|
435
445
|
const columnSettingsString = JSON.stringify(columnSettings);
|
|
436
446
|
const rowsCount = this.rows.length;
|
|
447
|
+
const selectedRows = this.selectedRows;
|
|
437
448
|
|
|
438
449
|
this.rows.forEach((row, index) => {
|
|
439
450
|
if (row._columnsInfoString !== columnSettingsString) {
|
|
@@ -455,6 +466,8 @@ class Table extends UI5Element {
|
|
|
455
466
|
|
|
456
467
|
this._noDataDisplayed = !this.rows.length && !this.hideNoData;
|
|
457
468
|
this.visibleColumnsCount = this.visibleColumns.length;
|
|
469
|
+
|
|
470
|
+
this._allRowsSelected = selectedRows.length === this.rows.length;
|
|
458
471
|
}
|
|
459
472
|
|
|
460
473
|
onAfterRendering() {
|
|
@@ -688,9 +701,6 @@ class Table extends UI5Element {
|
|
|
688
701
|
|
|
689
702
|
get styles() {
|
|
690
703
|
return {
|
|
691
|
-
table: {
|
|
692
|
-
height: "48px",
|
|
693
|
-
},
|
|
694
704
|
busy: {
|
|
695
705
|
position: this.busyIndPosition,
|
|
696
706
|
},
|
package/src/TextArea.js
CHANGED
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
// Styles
|
|
25
25
|
import styles from "./generated/themes/TextArea.css.js";
|
|
26
26
|
import valueStateMessageStyles from "./generated/themes/ValueStateMessage.css.js";
|
|
27
|
+
import browserScrollbarCSS from "./generated/themes/BrowserScrollbar.css.js";
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* @public
|
|
@@ -360,7 +361,7 @@ class TextArea extends UI5Element {
|
|
|
360
361
|
}
|
|
361
362
|
|
|
362
363
|
static get styles() {
|
|
363
|
-
return styles;
|
|
364
|
+
return [browserScrollbarCSS, styles];
|
|
364
365
|
}
|
|
365
366
|
|
|
366
367
|
static get render() {
|
|
@@ -570,6 +571,7 @@ class TextArea extends UI5Element {
|
|
|
570
571
|
|
|
571
572
|
get styles() {
|
|
572
573
|
const lineHeight = 1.4 * 16;
|
|
574
|
+
const mainHeight = (this.rows * lineHeight) + (this.showExceededText ? 32 : 0);
|
|
573
575
|
|
|
574
576
|
return {
|
|
575
577
|
mirror: {
|
|
@@ -577,7 +579,7 @@ class TextArea extends UI5Element {
|
|
|
577
579
|
},
|
|
578
580
|
main: {
|
|
579
581
|
width: "100%",
|
|
580
|
-
height: (this.rows && !this.growing) ? `${
|
|
582
|
+
height: (this.rows && !this.growing) ? `${mainHeight}px` : "100%",
|
|
581
583
|
},
|
|
582
584
|
focusDiv: {
|
|
583
585
|
"height": (this.showExceededText ? "calc(100% - 26px)" : "100%"),
|
|
@@ -632,7 +634,7 @@ class TextArea extends UI5Element {
|
|
|
632
634
|
}
|
|
633
635
|
|
|
634
636
|
get displayValueStateMessagePopover() {
|
|
635
|
-
return this.hasCustomValueState || this.hasValueState || this.exceeding;
|
|
637
|
+
return !this.readonly && (this.hasCustomValueState || this.hasValueState || this.exceeding);
|
|
636
638
|
}
|
|
637
639
|
|
|
638
640
|
get hasCustomValueState() {
|
|
@@ -655,6 +657,10 @@ class TextArea extends UI5Element {
|
|
|
655
657
|
return this.valueStateTextMappings()[this.valueState];
|
|
656
658
|
}
|
|
657
659
|
|
|
660
|
+
get _valueStatePopoverHorizontalAlign() {
|
|
661
|
+
return this.effectiveDir !== "rtl" ? "Left" : "Right";
|
|
662
|
+
}
|
|
663
|
+
|
|
658
664
|
/**
|
|
659
665
|
* This method is relevant for sap_horizon theme only
|
|
660
666
|
*/
|
package/src/TextAreaPopover.hbs
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
class="ui5-valuestatemessage-popover"
|
|
9
9
|
style="{{styles.valueStateMsgPopover}}"
|
|
10
10
|
placement-type="Bottom"
|
|
11
|
-
horizontal-align="
|
|
11
|
+
horizontal-align="{{_valueStatePopoverHorizontalAlign}}"
|
|
12
12
|
>
|
|
13
13
|
<div slot="header" class="ui5-valuestatemessage-root {{classes.valueStateMsg}}">
|
|
14
14
|
<ui5-icon class="ui5-input-value-state-message-icon" name="{{_valueStateMessageIcon}}"></ui5-icon>
|
package/src/ToggleButton.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import isLegacyBrowser from "@ui5/webcomponents-base/dist/isLegacyBrowser.js";
|
|
2
2
|
import { isSpaceShift } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
3
|
+
import { isSafari } from "@ui5/webcomponents-base/dist/Device.js";
|
|
3
4
|
import Button from "./Button.js";
|
|
4
5
|
import ToggleButtonTemplate from "./generated/templates/ToggleButtonTemplate.lit.js";
|
|
5
6
|
|
|
@@ -67,6 +68,10 @@ class ToggleButton extends Button {
|
|
|
67
68
|
|
|
68
69
|
_onclick() {
|
|
69
70
|
this.pressed = !this.pressed;
|
|
71
|
+
|
|
72
|
+
if (isSafari()) {
|
|
73
|
+
this.getDomRef().focus();
|
|
74
|
+
}
|
|
70
75
|
}
|
|
71
76
|
|
|
72
77
|
_onkeyup(event) {
|
package/src/Tokenizer.js
CHANGED
|
@@ -5,7 +5,17 @@ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation
|
|
|
5
5
|
import ScrollEnablement from "@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js";
|
|
6
6
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
7
7
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
isSpace,
|
|
10
|
+
isLeftCtrl,
|
|
11
|
+
isRightCtrl,
|
|
12
|
+
isLeftShift,
|
|
13
|
+
isRightShift,
|
|
14
|
+
isLeftShiftCtrl,
|
|
15
|
+
isRightShiftCtrl,
|
|
16
|
+
isEnd,
|
|
17
|
+
isHome,
|
|
18
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
9
19
|
import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
10
20
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
11
21
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
@@ -237,8 +247,88 @@ class Tokenizer extends UI5Element {
|
|
|
237
247
|
if (isSpace(event)) {
|
|
238
248
|
event.preventDefault();
|
|
239
249
|
|
|
240
|
-
this._handleTokenSelection(event);
|
|
250
|
+
return this._handleTokenSelection(event, false);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
this._handleItemNavigation(event, this.tokens);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
_handleItemNavigation(event, tokens) {
|
|
257
|
+
const isCtrl = !!(event.metaKey || event.ctrlKey);
|
|
258
|
+
if (isLeftCtrl(event) || isRightCtrl(event)) {
|
|
259
|
+
event.preventDefault();
|
|
260
|
+
return this._handleArrowCtrl(event.target, tokens, isRightCtrl(event));
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
if (isLeftCtrl(event)) {
|
|
264
|
+
event.preventDefault();
|
|
265
|
+
return this._handleArrowCtrl(event.target, tokens, false);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if (isLeftShift(event) || isRightShift(event) || isLeftShiftCtrl(event) || isRightShiftCtrl(event)) {
|
|
269
|
+
event.preventDefault();
|
|
270
|
+
return this._handleArrowShift(event.target, tokens, (isRightShift(event) || isRightShiftCtrl(event)));
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (isHome(event) || isEnd(event)) {
|
|
274
|
+
return this._handleHome(tokens, isEnd(event));
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (isCtrl && event.key.toLowerCase() === "a") {
|
|
278
|
+
event.preventDefault();
|
|
279
|
+
|
|
280
|
+
return this._toggleTokenSelection(tokens);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
_handleHome(tokens, endKeyPressed) {
|
|
285
|
+
if (!tokens || !tokens.length) {
|
|
286
|
+
return -1;
|
|
241
287
|
}
|
|
288
|
+
|
|
289
|
+
const index = endKeyPressed ? tokens.length - 1 : 0;
|
|
290
|
+
|
|
291
|
+
tokens[index].focus();
|
|
292
|
+
this._itemNav.setCurrentItem(tokens[index]);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
_calcNextTokenIndex(focusedToken, tokens, backwards) {
|
|
296
|
+
if (!tokens.length) {
|
|
297
|
+
return -1;
|
|
298
|
+
}
|
|
299
|
+
const focusedTokenIndex = tokens.indexOf(focusedToken);
|
|
300
|
+
let nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);
|
|
301
|
+
|
|
302
|
+
if (nextIndex >= tokens.length) {
|
|
303
|
+
nextIndex = tokens.length - 1;
|
|
304
|
+
}
|
|
305
|
+
if (nextIndex < 0) {
|
|
306
|
+
nextIndex = 0;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return nextIndex;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
_handleArrowCtrl(focusedToken, tokens, backwards) {
|
|
313
|
+
const nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);
|
|
314
|
+
if (nextIndex === -1) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
tokens[nextIndex].focus();
|
|
319
|
+
this._itemNav.setCurrentItem(tokens[nextIndex]);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
_handleArrowShift(focusedToken, tokens, backwards) {
|
|
323
|
+
const nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);
|
|
324
|
+
if (nextIndex === -1) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
focusedToken.selected = true;
|
|
329
|
+
tokens[nextIndex].selected = true;
|
|
330
|
+
tokens[nextIndex].focus();
|
|
331
|
+
this._itemNav.setCurrentItem(tokens[nextIndex]);
|
|
242
332
|
}
|
|
243
333
|
|
|
244
334
|
_click(event) {
|
|
@@ -249,9 +339,20 @@ class Tokenizer extends UI5Element {
|
|
|
249
339
|
this._itemNav.setCurrentItem(event.target);
|
|
250
340
|
}
|
|
251
341
|
|
|
252
|
-
|
|
253
|
-
if (
|
|
254
|
-
|
|
342
|
+
_toggleTokenSelection(tokens) {
|
|
343
|
+
if (!tokens || !tokens.length) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
const tokensAreSelected = tokens.every(token => token.selected);
|
|
348
|
+
tokens.forEach(token => { token.selected = !tokensAreSelected; });
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
_handleTokenSelection(event, deselectAll = true) {
|
|
352
|
+
if (event.target.hasAttribute("ui5-token")) {
|
|
353
|
+
const deselectTokens = deselectAll ? this._tokens : [event.target];
|
|
354
|
+
|
|
355
|
+
deselectTokens.forEach(token => {
|
|
255
356
|
if (token !== event.target) {
|
|
256
357
|
token.selected = false;
|
|
257
358
|
}
|
|
@@ -259,6 +360,25 @@ class Tokenizer extends UI5Element {
|
|
|
259
360
|
}
|
|
260
361
|
}
|
|
261
362
|
|
|
363
|
+
_fillClipboard(shortcutName, tokens) {
|
|
364
|
+
const tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join("\r\n");
|
|
365
|
+
|
|
366
|
+
/* fill clipboard with tokens' texts so parent can handle creation */
|
|
367
|
+
const cutToClipboard = event => {
|
|
368
|
+
if (event.clipboardData) {
|
|
369
|
+
event.clipboardData.setData("text/plain", tokensTexts);
|
|
370
|
+
} else {
|
|
371
|
+
event.originalEvent.clipboardData.setData("text/plain", tokensTexts);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
event.preventDefault();
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
document.addEventListener(shortcutName, cutToClipboard);
|
|
378
|
+
document.execCommand(shortcutName);
|
|
379
|
+
document.removeEventListener(shortcutName, cutToClipboard);
|
|
380
|
+
}
|
|
381
|
+
|
|
262
382
|
/**
|
|
263
383
|
* Scrolls the container of the tokens to its beginning.
|
|
264
384
|
* This method is used by MultiInput and MultiComboBox.
|
|
@@ -299,13 +419,20 @@ class Tokenizer extends UI5Element {
|
|
|
299
419
|
return [];
|
|
300
420
|
}
|
|
301
421
|
|
|
422
|
+
// Reset the overflow prop of the tokens first in order
|
|
423
|
+
// to use their dimensions for calculation because already
|
|
424
|
+
// hidden tokens are set to 'display: none'
|
|
425
|
+
this._getTokens().forEach(token => {
|
|
426
|
+
token.overflows = false;
|
|
427
|
+
});
|
|
428
|
+
|
|
302
429
|
return this._getTokens().filter(token => {
|
|
303
430
|
const isRTL = this.effectiveDir === "rtl";
|
|
304
431
|
const elementEnd = isRTL ? "left" : "right";
|
|
305
432
|
const parentRect = this.contentDom.getBoundingClientRect();
|
|
306
433
|
const tokenRect = token.getBoundingClientRect();
|
|
307
|
-
const tokenEnd = tokenRect[elementEnd];
|
|
308
|
-
const parentEnd = parentRect[elementEnd];
|
|
434
|
+
const tokenEnd = parseInt(tokenRect[elementEnd]);
|
|
435
|
+
const parentEnd = parseInt(parentRect[elementEnd]);
|
|
309
436
|
|
|
310
437
|
token.overflows = isRTL ? ((tokenEnd < parentEnd) && !this.expanded) : ((tokenEnd > parentEnd) && !this.expanded);
|
|
311
438
|
|
package/src/Tree.hbs
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
type="Active"
|
|
16
16
|
level="{{this.level}}"
|
|
17
17
|
icon="{{this.treeItem.icon}}"
|
|
18
|
+
?indeterminate="{{this.treeItem.indeterminate}}"
|
|
18
19
|
additional-text="{{this.treeItem.additionalText}}"
|
|
19
20
|
additional-text-state="{{this.treeItem.additionalTextState}}"
|
|
20
21
|
title="{{this.treeItem.title}}"
|
package/src/TreeItem.js
CHANGED
|
@@ -29,6 +29,27 @@ const metadata = {
|
|
|
29
29
|
expanded: {
|
|
30
30
|
type: Boolean,
|
|
31
31
|
},
|
|
32
|
+
/**
|
|
33
|
+
* Defines whether the selection of a tree node is displayed as partially selected.
|
|
34
|
+
* <br><br>
|
|
35
|
+
* <b>Note:</b> The indeterminate state can be set only programatically and can’t be achieved by user
|
|
36
|
+
* interaction, meaning that the resulting visual state depends on the values of the <code>indeterminate</code>
|
|
37
|
+
* and <code>selected</code> properties:
|
|
38
|
+
* <ul>
|
|
39
|
+
* <li> If a tree node has both <code>selected</code> and <code>indeterminate</code> set to <code>true</code>, it is displayed as partially selected.
|
|
40
|
+
* <li> If a tree node has <code>selected</code> set to <code>true</code> and <code>indeterminate</code> set to <code>false</code>, it is displayed as selected.
|
|
41
|
+
* <li> If a tree node has <code>selected</code> set to <code>false</code>, it is displayed as not selected regardless of the value of the <code>indeterminate</code> property.
|
|
42
|
+
* </ul>
|
|
43
|
+
* <br>
|
|
44
|
+
* <b>Note:</b> This property takes effect only when the <code>ui5-tree</code> is in <code>MultiSelect</code> mode.
|
|
45
|
+
* @type {boolean}
|
|
46
|
+
* @defaultvalue false
|
|
47
|
+
* @public
|
|
48
|
+
* @since 1.1.0
|
|
49
|
+
*/
|
|
50
|
+
indeterminate: {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
},
|
|
32
53
|
|
|
33
54
|
/**
|
|
34
55
|
* Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.
|
package/src/TreeListItem.js
CHANGED
|
@@ -72,6 +72,14 @@ const metadata = {
|
|
|
72
72
|
type: Boolean,
|
|
73
73
|
},
|
|
74
74
|
|
|
75
|
+
/**
|
|
76
|
+
* @private
|
|
77
|
+
* @since 1.1.0
|
|
78
|
+
*/
|
|
79
|
+
indeterminate: {
|
|
80
|
+
type: Boolean,
|
|
81
|
+
},
|
|
82
|
+
|
|
75
83
|
/**
|
|
76
84
|
* Defines the <code>additionalText</code>, displayed in the end of the tree item.
|
|
77
85
|
* @type {string}
|