@ui5/webcomponents 1.1.2 → 1.2.0
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 +66 -0
- package/README.md +1 -0
- package/dist/Avatar.js +1 -1
- package/dist/AvatarGroup.js +2 -2
- package/dist/Breadcrumbs.js +11 -4
- package/dist/BusyIndicator.js +1 -1
- package/dist/Button.js +42 -28
- package/dist/Calendar.js +1 -1
- package/dist/Card.js +2 -2
- package/dist/CheckBox.js +3 -3
- package/dist/ColorPalette.js +1 -1
- package/dist/ColorPaletteItem.js +2 -2
- package/dist/ColorPalettePopover.js +3 -3
- package/dist/ColorPicker.js +42 -4
- package/dist/ComboBox.js +10 -4
- package/dist/DatePicker.js +10 -8
- package/dist/DateRangePicker.js +7 -1
- package/dist/Dialog.js +35 -5
- package/dist/FileUploader.js +2 -1
- package/dist/Input.js +87 -19
- package/dist/Interfaces.js +1 -1
- package/dist/Label.js +7 -1
- package/dist/Link.js +16 -5
- package/dist/List.js +6 -16
- package/dist/ListItem.js +1 -1
- package/dist/MessageStrip.js +0 -8
- package/dist/MultiComboBox.js +166 -27
- package/dist/Panel.js +7 -8
- package/dist/Popover.js +39 -9
- package/dist/Popup.js +61 -26
- package/dist/ProgressIndicator.js +5 -0
- package/dist/RadioButton.js +1 -1
- package/dist/RangeSlider.js +6 -1
- package/dist/RatingIndicator.js +2 -2
- package/dist/ResponsivePopover.js +14 -10
- package/dist/SegmentedButton.js +2 -2
- package/dist/SegmentedButtonItem.js +7 -2
- package/dist/Select.js +9 -5
- package/dist/Slider.js +5 -0
- package/dist/SliderBase.js +4 -3
- package/dist/SplitButton.js +11 -5
- package/dist/StepInput.js +4 -4
- package/dist/Switch.js +13 -1
- package/dist/TabContainer.js +44 -3
- package/dist/Table.js +243 -4
- package/dist/TableColumn.js +0 -7
- package/dist/TableGroupRow.js +4 -0
- package/dist/TableRow.js +87 -8
- package/dist/TextArea.js +9 -4
- package/dist/Tokenizer.js +35 -6
- package/dist/Tree.js +5 -1
- package/dist/TreeItem.js +2 -2
- package/dist/TreeListItem.js +5 -2
- package/dist/api.json +129 -68
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/DatePickerPopover.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/PopupGlobal.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/SelectPopover.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/Suggestions.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TimePickerPopover.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -0
- 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 +4 -0
- 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_saprigi.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/AvatarGroupTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
- package/dist/generated/templates/CarouselTemplate.lit.js +3 -3
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/CustomListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DialogTemplate.lit.js +3 -3
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +5 -4
- package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/InputTemplate.lit.js +6 -5
- package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/ListTemplate.lit.js +1 -1
- 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 +7 -6
- package/dist/generated/templates/PanelTemplate.lit.js +2 -2
- package/dist/generated/templates/PopoverTemplate.lit.js +3 -3
- package/dist/generated/templates/PopupTemplate.lit.js +1 -1
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +5 -5
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/StandardListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
- 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 +1 -1
- package/dist/generated/templates/TabContainerTemplate.lit.js +4 -4
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +1 -1
- package/dist/generated/templates/TableRowTemplate.lit.js +2 -2
- package/dist/generated/templates/TableTemplate.lit.js +3 -3
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/TokenizerTemplate.lit.js +1 -1
- package/dist/generated/templates/TreeListItemTemplate.lit.js +2 -2
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/DatePickerPopover.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/ListItemBase.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/PopupGlobal.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/SelectPopover.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/Suggestions.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TimePickerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +8 -0
- 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 +3 -0
- package/dist/i18n/messagebundle_ar.properties +5 -0
- package/dist/i18n/messagebundle_bg.properties +5 -0
- package/dist/i18n/messagebundle_ca.properties +5 -0
- package/dist/i18n/messagebundle_cs.properties +5 -0
- package/dist/i18n/messagebundle_cy.properties +5 -0
- package/dist/i18n/messagebundle_da.properties +5 -0
- package/dist/i18n/messagebundle_de.properties +5 -0
- package/dist/i18n/messagebundle_el.properties +5 -0
- package/dist/i18n/messagebundle_en.properties +5 -0
- package/dist/i18n/messagebundle_en_GB.properties +5 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/dist/i18n/messagebundle_es.properties +5 -0
- package/dist/i18n/messagebundle_es_MX.properties +5 -0
- package/dist/i18n/messagebundle_et.properties +5 -0
- package/dist/i18n/messagebundle_fi.properties +5 -0
- package/dist/i18n/messagebundle_fr.properties +5 -0
- package/dist/i18n/messagebundle_fr_CA.properties +5 -0
- package/dist/i18n/messagebundle_hi.properties +5 -0
- package/dist/i18n/messagebundle_hr.properties +5 -0
- package/dist/i18n/messagebundle_hu.properties +5 -0
- package/dist/i18n/messagebundle_id.properties +5 -0
- package/dist/i18n/messagebundle_it.properties +5 -0
- package/dist/i18n/messagebundle_iw.properties +5 -0
- package/dist/i18n/messagebundle_ja.properties +7 -2
- package/dist/i18n/messagebundle_kk.properties +5 -0
- package/dist/i18n/messagebundle_ko.properties +5 -0
- package/dist/i18n/messagebundle_lt.properties +5 -0
- package/dist/i18n/messagebundle_lv.properties +5 -0
- package/dist/i18n/messagebundle_ms.properties +5 -0
- package/dist/i18n/messagebundle_nl.properties +5 -0
- package/dist/i18n/messagebundle_no.properties +5 -0
- package/dist/i18n/messagebundle_pl.properties +5 -0
- package/dist/i18n/messagebundle_pt.properties +5 -0
- package/dist/i18n/messagebundle_pt_PT.properties +5 -0
- package/dist/i18n/messagebundle_ro.properties +5 -0
- package/dist/i18n/messagebundle_ru.properties +5 -0
- package/dist/i18n/messagebundle_sh.properties +5 -0
- package/dist/i18n/messagebundle_sk.properties +5 -0
- package/dist/i18n/messagebundle_sl.properties +5 -0
- package/dist/i18n/messagebundle_sv.properties +5 -0
- package/dist/i18n/messagebundle_th.properties +5 -0
- package/dist/i18n/messagebundle_tr.properties +5 -0
- package/dist/i18n/messagebundle_uk.properties +5 -0
- package/dist/i18n/messagebundle_vi.properties +5 -0
- package/dist/i18n/messagebundle_zh_CN.properties +5 -0
- package/dist/i18n/messagebundle_zh_TW.properties +5 -0
- package/package.json +11 -9
- package/src/Avatar.js +1 -1
- package/src/AvatarGroup.hbs +1 -1
- package/src/AvatarGroup.js +2 -2
- package/src/Breadcrumbs.hbs +2 -2
- package/src/Breadcrumbs.js +11 -4
- package/src/BreadcrumbsPopover.hbs +0 -1
- package/src/BusyIndicator.js +1 -1
- package/src/Button.hbs +4 -4
- package/src/Button.js +42 -28
- package/src/Calendar.hbs +1 -1
- package/src/Calendar.js +1 -1
- package/src/Card.js +2 -2
- package/src/Carousel.hbs +2 -2
- package/src/CheckBox.js +3 -3
- package/src/ColorPalette.js +1 -1
- package/src/ColorPaletteItem.js +2 -2
- package/src/ColorPalettePopover.hbs +1 -1
- package/src/ColorPalettePopover.js +3 -3
- package/src/ColorPicker.hbs +1 -0
- package/src/ColorPicker.js +42 -4
- package/src/ComboBox.js +10 -4
- package/src/ComboBoxPopover.hbs +0 -1
- package/src/DatePicker.hbs +1 -1
- package/src/DatePicker.js +10 -8
- package/src/DatePickerPopover.hbs +0 -2
- package/src/DateRangePicker.js +7 -1
- package/src/Dialog.hbs +3 -2
- package/src/Dialog.js +35 -5
- package/src/FileUploader.js +2 -1
- package/src/FileUploaderPopover.hbs +3 -2
- package/src/Input.hbs +5 -1
- package/src/Input.js +87 -19
- package/src/InputPopover.hbs +3 -4
- package/src/Interfaces.js +1 -1
- package/src/Label.js +7 -1
- package/src/Link.js +16 -5
- package/src/List.hbs +1 -1
- package/src/List.js +6 -16
- package/src/ListItem.hbs +1 -1
- package/src/ListItem.js +1 -1
- package/src/MessageStrip.hbs +1 -1
- package/src/MessageStrip.js +0 -8
- package/src/MultiComboBox.js +166 -27
- package/src/MultiComboBoxPopover.hbs +0 -1
- package/src/Panel.hbs +4 -3
- package/src/Panel.js +7 -8
- package/src/Popover.hbs +2 -2
- package/src/Popover.js +39 -9
- package/src/Popup.hbs +1 -1
- package/src/Popup.js +61 -26
- package/src/ProgressIndicator.js +5 -0
- package/src/RadioButton.js +1 -1
- package/src/RangeSlider.js +6 -1
- package/src/RatingIndicator.hbs +2 -0
- package/src/RatingIndicator.js +2 -2
- package/src/ResponsivePopover.hbs +3 -3
- package/src/ResponsivePopover.js +14 -10
- package/src/SegmentedButton.js +2 -2
- package/src/SegmentedButtonItem.hbs +1 -1
- package/src/SegmentedButtonItem.js +7 -2
- package/src/Select.js +9 -5
- package/src/SelectPopover.hbs +0 -1
- package/src/Slider.js +5 -0
- package/src/SliderBase.js +4 -3
- package/src/SplitButton.js +11 -5
- package/src/StepInput.hbs +4 -3
- package/src/StepInput.js +4 -4
- package/src/Switch.hbs +1 -1
- package/src/Switch.js +13 -1
- package/src/TabContainer.hbs +3 -3
- package/src/TabContainer.js +44 -3
- package/src/TabContainerPopover.hbs +1 -1
- package/src/Table.hbs +11 -1
- package/src/Table.js +243 -4
- package/src/TableColumn.js +0 -7
- package/src/TableGroupRow.hbs +1 -0
- package/src/TableGroupRow.js +4 -0
- package/src/TableRow.hbs +2 -0
- package/src/TableRow.js +87 -8
- package/src/TextArea.hbs +1 -1
- package/src/TextArea.js +9 -4
- package/src/TextAreaPopover.hbs +0 -1
- package/src/TimePickerPopover.hbs +0 -1
- package/src/Tokenizer.hbs +2 -1
- package/src/Tokenizer.js +35 -6
- package/src/Tree.js +5 -1
- package/src/TreeItem.js +2 -2
- package/src/TreeListItem.js +5 -2
- package/src/features/InputSuggestions.js +4 -0
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +5 -0
- package/src/i18n/messagebundle_bg.properties +5 -0
- package/src/i18n/messagebundle_ca.properties +5 -0
- package/src/i18n/messagebundle_cs.properties +5 -0
- package/src/i18n/messagebundle_cy.properties +5 -0
- package/src/i18n/messagebundle_da.properties +5 -0
- package/src/i18n/messagebundle_de.properties +5 -0
- package/src/i18n/messagebundle_el.properties +5 -0
- package/src/i18n/messagebundle_en.properties +5 -0
- package/src/i18n/messagebundle_en_GB.properties +5 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/i18n/messagebundle_es.properties +5 -0
- package/src/i18n/messagebundle_es_MX.properties +5 -0
- package/src/i18n/messagebundle_et.properties +5 -0
- package/src/i18n/messagebundle_fi.properties +5 -0
- package/src/i18n/messagebundle_fr.properties +5 -0
- package/src/i18n/messagebundle_fr_CA.properties +5 -0
- package/src/i18n/messagebundle_hi.properties +5 -0
- package/src/i18n/messagebundle_hr.properties +5 -0
- package/src/i18n/messagebundle_hu.properties +5 -0
- package/src/i18n/messagebundle_id.properties +5 -0
- package/src/i18n/messagebundle_it.properties +5 -0
- package/src/i18n/messagebundle_iw.properties +5 -0
- package/src/i18n/messagebundle_ja.properties +7 -2
- package/src/i18n/messagebundle_kk.properties +5 -0
- package/src/i18n/messagebundle_ko.properties +5 -0
- package/src/i18n/messagebundle_lt.properties +5 -0
- package/src/i18n/messagebundle_lv.properties +5 -0
- package/src/i18n/messagebundle_ms.properties +5 -0
- package/src/i18n/messagebundle_nl.properties +5 -0
- package/src/i18n/messagebundle_no.properties +5 -0
- package/src/i18n/messagebundle_pl.properties +5 -0
- package/src/i18n/messagebundle_pt.properties +5 -0
- package/src/i18n/messagebundle_pt_PT.properties +5 -0
- package/src/i18n/messagebundle_ro.properties +5 -0
- package/src/i18n/messagebundle_ru.properties +5 -0
- package/src/i18n/messagebundle_sh.properties +5 -0
- package/src/i18n/messagebundle_sk.properties +5 -0
- package/src/i18n/messagebundle_sl.properties +5 -0
- package/src/i18n/messagebundle_sv.properties +5 -0
- package/src/i18n/messagebundle_th.properties +5 -0
- package/src/i18n/messagebundle_tr.properties +5 -0
- package/src/i18n/messagebundle_uk.properties +5 -0
- package/src/i18n/messagebundle_vi.properties +5 -0
- package/src/i18n/messagebundle_zh_CN.properties +5 -0
- package/src/i18n/messagebundle_zh_TW.properties +5 -0
- package/src/themes/Avatar.css +1 -0
- package/src/themes/Button.css +1 -1
- package/src/themes/Calendar.css +6 -1
- package/src/themes/ColorPalettePopover.css +6 -5
- package/src/themes/DatePickerPopover.css +4 -0
- package/src/themes/Dialog.css +1 -5
- package/src/themes/Input.css +1 -0
- package/src/themes/ListItemBase.css +11 -5
- package/src/themes/MultiComboBox.css +0 -1
- package/src/themes/Popover.css +1 -1
- package/src/themes/PopupGlobal.css +1 -4
- package/src/themes/PopupsCommon.css +44 -4
- package/src/themes/ResponsivePopover.css +2 -7
- package/src/themes/ResponsivePopoverCommon.css +1 -0
- package/src/themes/SelectPopover.css +11 -2
- package/src/themes/SplitButton.css +1 -1
- package/src/themes/Suggestions.css +15 -1
- package/src/themes/TabInOverflow.css +5 -1
- package/src/themes/TableRow.css +1 -0
- package/src/themes/TimePickerPopover.css +4 -0
- package/src/themes/Tokenizer.css +1 -0
- package/src/themes/TokenizerPopover.css +4 -0
- package/src/themes/ValueStateMessage.css +10 -0
- package/src/themes/base/Badge-parameters.css +10 -10
- package/src/themes/base/DayPicker-parameters.css +2 -2
- package/src/themes/base/Dialog-parameters.css +1 -1
- package/src/themes/base/ListItemBase-parameters.css +1 -0
- package/src/themes/base/PopupsCommon-parameters.css +6 -1
- package/src/themes/base/SliderBase-parameters.css +7 -0
- package/src/themes/base/Switch-parameters.css +2 -13
- package/src/themes/base/sizes-parameters.css +7 -7
- package/src/themes/sap_belize_hcb/Switch-parameters.css +2 -4
- package/src/themes/sap_belize_hcw/Switch-parameters.css +2 -4
- package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +0 -2
- package/src/themes/sap_fiori_3_hcb/Switch-parameters.css +2 -4
- package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +0 -2
- package/src/themes/sap_fiori_3_hcw/Switch-parameters.css +2 -4
- package/src/themes/sap_horizon/Dialog-parameters.css +1 -1
- package/src/themes/sap_horizon/ListItemBase-parameters.css +1 -2
- package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -1
- package/src/themes/sap_horizon/Switch-parameters.css +7 -7
- package/src/themes/sap_horizon_exp/Switch-parameters.css +1 -1
package/dist/MultiComboBox.js
CHANGED
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
isShow,
|
|
7
7
|
isDown,
|
|
8
8
|
isUp,
|
|
9
|
-
isBackSpace,
|
|
10
9
|
isSpace,
|
|
11
|
-
isLeft,
|
|
12
10
|
isRight,
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
isHome,
|
|
12
|
+
isTabNext,
|
|
13
|
+
isTabPrevious,
|
|
14
|
+
isCtrlA,
|
|
15
15
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
16
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
17
17
|
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
@@ -20,6 +20,10 @@ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
20
20
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
21
21
|
import "@ui5/webcomponents-icons/dist/multiselect-all.js";
|
|
22
22
|
import "@ui5/webcomponents-icons/dist/not-editable.js";
|
|
23
|
+
import "@ui5/webcomponents-icons/dist/error.js";
|
|
24
|
+
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
25
|
+
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
|
|
26
|
+
import "@ui5/webcomponents-icons/dist/information.js";
|
|
23
27
|
import MultiComboBoxItem from "./MultiComboBoxItem.js";
|
|
24
28
|
import Tokenizer from "./Tokenizer.js";
|
|
25
29
|
import Token from "./Token.js";
|
|
@@ -413,6 +417,7 @@ class MultiComboBox extends UI5Element {
|
|
|
413
417
|
this._deleting = false;
|
|
414
418
|
this._validationTimeout = null;
|
|
415
419
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
420
|
+
this.currentItemIdx = -1;
|
|
416
421
|
}
|
|
417
422
|
|
|
418
423
|
onEnterDOM() {
|
|
@@ -524,7 +529,7 @@ class MultiComboBox extends UI5Element {
|
|
|
524
529
|
return this.placeholder;
|
|
525
530
|
}
|
|
526
531
|
|
|
527
|
-
|
|
532
|
+
_handleArrowLeft() {
|
|
528
533
|
const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
|
|
529
534
|
|
|
530
535
|
if (cursorPosition === 0) {
|
|
@@ -535,14 +540,17 @@ class MultiComboBox extends UI5Element {
|
|
|
535
540
|
_tokenizerFocusOut(event) {
|
|
536
541
|
this._tokenizerFocused = false;
|
|
537
542
|
|
|
538
|
-
const tokensCount = this._tokenizer.tokens.length
|
|
543
|
+
const tokensCount = this._tokenizer.tokens.length;
|
|
544
|
+
const selectedTokens = this._selectedTokensCount;
|
|
545
|
+
const lastTokenBeingDeleted = tokensCount - 1 === 0 && this._deleting;
|
|
546
|
+
const allTokensAreBeingDeleted = selectedTokens === tokensCount && this._deleting;
|
|
539
547
|
|
|
540
548
|
if (!event.relatedTarget || !event.relatedTarget.hasAttribute("ui5-token")) {
|
|
541
549
|
this._tokenizer.tokens.forEach(token => { token.selected = false; });
|
|
542
550
|
this._tokenizer.scrollToStart();
|
|
543
551
|
}
|
|
544
552
|
|
|
545
|
-
if (
|
|
553
|
+
if (allTokensAreBeingDeleted || lastTokenBeingDeleted) {
|
|
546
554
|
setTimeout(() => {
|
|
547
555
|
if (!isPhone()) {
|
|
548
556
|
this.shadowRoot.querySelector("input").focus();
|
|
@@ -563,41 +571,77 @@ class MultiComboBox extends UI5Element {
|
|
|
563
571
|
}
|
|
564
572
|
|
|
565
573
|
async _onkeydown(event) {
|
|
566
|
-
if (isLeft(event)) {
|
|
567
|
-
this._handleLeft(event);
|
|
568
|
-
}
|
|
569
|
-
|
|
570
574
|
if (isShow(event) && !this.readonly && !this.disabled) {
|
|
571
575
|
event.preventDefault();
|
|
572
576
|
this.togglePopover();
|
|
573
577
|
}
|
|
574
578
|
|
|
575
|
-
if (
|
|
579
|
+
if (isUp(event) || isDown(event)) {
|
|
576
580
|
this._handleArrowNavigation(event);
|
|
581
|
+
return;
|
|
577
582
|
}
|
|
578
583
|
|
|
579
|
-
|
|
580
|
-
|
|
584
|
+
this._keyDown = true;
|
|
585
|
+
this[`_handle${event.key}`] && this[`_handle${event.key}`](event);
|
|
586
|
+
}
|
|
581
587
|
|
|
588
|
+
_handleBackspace(event) {
|
|
589
|
+
if (event.target.value === "") {
|
|
590
|
+
event.preventDefault();
|
|
582
591
|
this._tokenizer._focusLastToken();
|
|
583
592
|
}
|
|
593
|
+
}
|
|
584
594
|
|
|
585
|
-
|
|
586
|
-
if (
|
|
595
|
+
_handleEscape(event) {
|
|
596
|
+
if (!this.allowCustomValues || (!this.open && this.allowCustomValues)) {
|
|
587
597
|
this.value = this._lastValue;
|
|
588
598
|
}
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
_handleHome(event) {
|
|
602
|
+
const shouldFocusToken = this._isFocusInside && event.target.selectionStart === 0 && this._tokenizer.tokens.length > 0;
|
|
589
603
|
|
|
590
|
-
if (
|
|
591
|
-
|
|
604
|
+
if (shouldFocusToken) {
|
|
605
|
+
event.preventDefault();
|
|
606
|
+
this._tokenizer.tokens[0].focus();
|
|
592
607
|
}
|
|
608
|
+
}
|
|
593
609
|
|
|
594
|
-
|
|
610
|
+
_handleEnd(event) {
|
|
611
|
+
const tokens = this._tokenizer.tokens;
|
|
612
|
+
const lastTokenIdx = tokens.length - 1;
|
|
613
|
+
const shouldFocusInput = event.target === tokens[lastTokenIdx] && tokens[lastTokenIdx] === this.shadowRoot.activeElement;
|
|
614
|
+
|
|
615
|
+
if (shouldFocusInput) {
|
|
616
|
+
event.preventDefault();
|
|
617
|
+
this._inputDom.focus();
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
_handleTab(event) {
|
|
622
|
+
this.allItemsPopover.close();
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
_handleSelectAll(event) {
|
|
626
|
+
const filteredItems = this._filteredItems;
|
|
627
|
+
const allItemsSelected = filteredItems.every(item => item.selected);
|
|
628
|
+
|
|
629
|
+
filteredItems.forEach(item => {
|
|
630
|
+
item.selected = !allItemsSelected;
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
this.fireSelectionChange();
|
|
595
634
|
}
|
|
596
635
|
|
|
597
636
|
_onValueStateKeydown(event) {
|
|
598
637
|
const isArrowDown = isDown(event);
|
|
599
638
|
const isArrowUp = isUp(event);
|
|
600
639
|
|
|
640
|
+
if (isTabNext(event) || isTabPrevious(event)) {
|
|
641
|
+
this._onItemTab(event);
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
644
|
+
|
|
601
645
|
event.preventDefault();
|
|
602
646
|
|
|
603
647
|
if (isArrowDown) {
|
|
@@ -612,23 +656,36 @@ class MultiComboBox extends UI5Element {
|
|
|
612
656
|
_onItemKeydown(event) {
|
|
613
657
|
const isFirstItem = this.list.items[0] === event.target;
|
|
614
658
|
|
|
659
|
+
if (isTabNext(event) || isTabPrevious(event)) {
|
|
660
|
+
this._onItemTab(event);
|
|
661
|
+
return;
|
|
662
|
+
}
|
|
663
|
+
|
|
615
664
|
event.preventDefault();
|
|
616
665
|
|
|
617
|
-
if (
|
|
666
|
+
if (isCtrlA(event)) {
|
|
667
|
+
this._handleSelectAll(event);
|
|
618
668
|
return;
|
|
619
669
|
}
|
|
620
670
|
|
|
621
|
-
if (this.valueStateHeader) {
|
|
671
|
+
if (((isUp(event) && isFirstItem) || isHome(event)) && this.valueStateHeader) {
|
|
622
672
|
this.valueStateHeader.focus();
|
|
623
|
-
return;
|
|
624
673
|
}
|
|
625
674
|
|
|
675
|
+
if (!this.valueStateHeader && isUp(event) && isFirstItem) {
|
|
676
|
+
this._inputDom.focus();
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
_onItemTab(event) {
|
|
626
681
|
this._inputDom.focus();
|
|
682
|
+
this.allItemsPopover.close();
|
|
627
683
|
}
|
|
628
684
|
|
|
629
685
|
async _handleArrowNavigation(event) {
|
|
630
686
|
const isArrowDown = isDown(event);
|
|
631
|
-
const hasSuggestions = this.
|
|
687
|
+
const hasSuggestions = this.items.length;
|
|
688
|
+
const isOpen = this.allItemsPopover.opened;
|
|
632
689
|
|
|
633
690
|
event.preventDefault();
|
|
634
691
|
|
|
@@ -636,7 +693,7 @@ class MultiComboBox extends UI5Element {
|
|
|
636
693
|
await this._setValueStateHeader();
|
|
637
694
|
}
|
|
638
695
|
|
|
639
|
-
if (isArrowDown && this.focused && this.valueStateHeader) {
|
|
696
|
+
if (isArrowDown && isOpen && this.focused && this.valueStateHeader) {
|
|
640
697
|
this.valueStateHeader.focus();
|
|
641
698
|
return;
|
|
642
699
|
}
|
|
@@ -644,16 +701,91 @@ class MultiComboBox extends UI5Element {
|
|
|
644
701
|
if (isArrowDown && this.focused && hasSuggestions) {
|
|
645
702
|
this._handleArrowDown(event);
|
|
646
703
|
}
|
|
704
|
+
|
|
705
|
+
if (!isArrowDown && !isOpen && !this.readonly) {
|
|
706
|
+
this._navigateToPrevItem();
|
|
707
|
+
}
|
|
647
708
|
}
|
|
648
709
|
|
|
649
710
|
_handleArrowDown(event) {
|
|
711
|
+
const isOpen = this.allItemsPopover.opened;
|
|
650
712
|
const firstListItem = this.list.items[0];
|
|
651
713
|
|
|
652
|
-
|
|
653
|
-
|
|
714
|
+
if (isOpen) {
|
|
715
|
+
this.list._itemNavigation.setCurrentItem(firstListItem);
|
|
716
|
+
firstListItem.focus();
|
|
717
|
+
} else if (!this.readonly) {
|
|
718
|
+
this._navigateToNextItem();
|
|
719
|
+
}
|
|
654
720
|
}
|
|
655
721
|
|
|
656
|
-
|
|
722
|
+
_navigateToNextItem() {
|
|
723
|
+
const items = this.items;
|
|
724
|
+
const itemsCount = items.length;
|
|
725
|
+
const previousItemIdx = this.currentItemIdx;
|
|
726
|
+
|
|
727
|
+
if (previousItemIdx > -1 && items[previousItemIdx].text !== this.value) {
|
|
728
|
+
this.currentItemIdx = -1;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
if (previousItemIdx >= itemsCount - 1) {
|
|
732
|
+
return;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
let currentItem = this.items[++this.currentItemIdx];
|
|
736
|
+
|
|
737
|
+
while (this.currentItemIdx < itemsCount - 1 && currentItem.selected) {
|
|
738
|
+
currentItem = this.items[++this.currentItemIdx];
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
if (currentItem.selected === true) {
|
|
742
|
+
this.currentItemIdx = previousItemIdx;
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
this.value = currentItem.text;
|
|
747
|
+
this._innerInput.value = currentItem.text;
|
|
748
|
+
this._innerInput.setSelectionRange(0, currentItem.text.length);
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
_navigateToPrevItem() {
|
|
752
|
+
const items = this.items;
|
|
753
|
+
let previousItemIdx = this.currentItemIdx;
|
|
754
|
+
|
|
755
|
+
if ((!this.value && previousItemIdx !== -1) || (previousItemIdx !== -1 && this.value && this.value !== items[previousItemIdx].text)) {
|
|
756
|
+
previousItemIdx = -1;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
if (previousItemIdx === -1) {
|
|
760
|
+
this.currentItemIdx = items.length;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
if (previousItemIdx === 0) {
|
|
764
|
+
this.currentItemIdx = 0;
|
|
765
|
+
return;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
let currentItem = this.items[--this.currentItemIdx];
|
|
769
|
+
|
|
770
|
+
while (currentItem && currentItem.selected && this.currentItemIdx > 0) {
|
|
771
|
+
currentItem = this.items[--this.currentItemIdx];
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
if (!currentItem) {
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
if (currentItem.selected) {
|
|
779
|
+
this.currentItemIdx = previousItemIdx;
|
|
780
|
+
return;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
this.value = currentItem.text;
|
|
784
|
+
this._innerInput.value = currentItem.text;
|
|
785
|
+
this._innerInput.setSelectionRange(0, currentItem.text.length);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
_handleEnter() {
|
|
657
789
|
const lowerCaseValue = this.value.toLowerCase();
|
|
658
790
|
const matchingItem = this.items.find(item => item.text.toLowerCase() === lowerCaseValue);
|
|
659
791
|
const oldValueState = this.valueState;
|
|
@@ -698,6 +830,8 @@ class MultiComboBox extends UI5Element {
|
|
|
698
830
|
}, 0);
|
|
699
831
|
}
|
|
700
832
|
}
|
|
833
|
+
|
|
834
|
+
this[`_handle${event.key}`] && this[`_handle${event.key}`](event);
|
|
701
835
|
}
|
|
702
836
|
|
|
703
837
|
_filterItems(str) {
|
|
@@ -918,6 +1052,7 @@ class MultiComboBox extends UI5Element {
|
|
|
918
1052
|
this._innerInput.blur();
|
|
919
1053
|
}
|
|
920
1054
|
|
|
1055
|
+
!isPhone() && this._innerInput.setSelectionRange(0, this.value.length);
|
|
921
1056
|
this._lastValue = this.value;
|
|
922
1057
|
}
|
|
923
1058
|
|
|
@@ -1003,6 +1138,10 @@ class MultiComboBox extends UI5Element {
|
|
|
1003
1138
|
return `${this._id}-hiddenText-nMore`;
|
|
1004
1139
|
}
|
|
1005
1140
|
|
|
1141
|
+
get _selectedTokensCount() {
|
|
1142
|
+
return this._tokenizer.tokens.filter(token => token.selected).length;
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1006
1145
|
get ariaDescribedByText() {
|
|
1007
1146
|
return this.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;
|
|
1008
1147
|
}
|
package/dist/Panel.js
CHANGED
|
@@ -8,6 +8,7 @@ import { getAnimationMode } from "@ui5/webcomponents-base/dist/config/AnimationM
|
|
|
8
8
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
9
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
10
10
|
import Button from "./Button.js";
|
|
11
|
+
import Icon from "./Icon.js";
|
|
11
12
|
import TitleLevel from "./types/TitleLevel.js";
|
|
12
13
|
import PanelAccessibleRole from "./types/PanelAccessibleRole.js";
|
|
13
14
|
import PanelTemplate from "./generated/templates/PanelTemplate.lit.js";
|
|
@@ -132,7 +133,7 @@ const metadata = {
|
|
|
132
133
|
},
|
|
133
134
|
|
|
134
135
|
/**
|
|
135
|
-
*
|
|
136
|
+
* Defines the accessible aria name of the component.
|
|
136
137
|
*
|
|
137
138
|
* @type {string}
|
|
138
139
|
* @defaultvalue ""
|
|
@@ -175,10 +176,6 @@ const metadata = {
|
|
|
175
176
|
type: Boolean,
|
|
176
177
|
noAttribute: true,
|
|
177
178
|
},
|
|
178
|
-
|
|
179
|
-
_buttonAccInfo: {
|
|
180
|
-
type: Object,
|
|
181
|
-
},
|
|
182
179
|
},
|
|
183
180
|
events: /** @lends sap.ui.webcomponents.main.Panel.prototype */ {
|
|
184
181
|
|
|
@@ -409,8 +406,10 @@ class Panel extends UI5Element {
|
|
|
409
406
|
get accInfo() {
|
|
410
407
|
return {
|
|
411
408
|
"button": {
|
|
412
|
-
"
|
|
413
|
-
|
|
409
|
+
"accessibilityAttributes": {
|
|
410
|
+
"expanded": this.expanded,
|
|
411
|
+
"controls": `${this._id}-content`,
|
|
412
|
+
},
|
|
414
413
|
"title": this.toggleButtonTitle,
|
|
415
414
|
"ariaLabelButton": !this.nonFocusableButton && this.useAccessibleNameForToggleButton ? this.effectiveAccessibleName : undefined,
|
|
416
415
|
},
|
|
@@ -458,7 +457,7 @@ class Panel extends UI5Element {
|
|
|
458
457
|
}
|
|
459
458
|
|
|
460
459
|
static get dependencies() {
|
|
461
|
-
return [Button];
|
|
460
|
+
return [Button, Icon];
|
|
462
461
|
}
|
|
463
462
|
|
|
464
463
|
static async onDefine() {
|
package/dist/Popover.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
2
2
|
import { isIOS } from "@ui5/webcomponents-base/dist/Device.js";
|
|
3
|
-
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
3
|
import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
|
|
5
4
|
import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
|
|
6
5
|
import Popup from "./Popup.js";
|
|
@@ -145,6 +144,17 @@ const metadata = {
|
|
|
145
144
|
type: Boolean,
|
|
146
145
|
},
|
|
147
146
|
|
|
147
|
+
/**
|
|
148
|
+
* Defines the opener id of the element that the popover is shown at
|
|
149
|
+
* @public
|
|
150
|
+
* @type {String}
|
|
151
|
+
* @defaultvalue ""
|
|
152
|
+
* @since 1.2.0
|
|
153
|
+
*/
|
|
154
|
+
opener: {
|
|
155
|
+
type: String,
|
|
156
|
+
},
|
|
157
|
+
|
|
148
158
|
/**
|
|
149
159
|
* Defines whether the content is scrollable.
|
|
150
160
|
*
|
|
@@ -249,6 +259,17 @@ const metadata = {
|
|
|
249
259
|
* or selects an action within the popover. You can prevent this with the
|
|
250
260
|
* <code>modal</code> property.
|
|
251
261
|
*
|
|
262
|
+
* <h3>CSS Shadow Parts</h3>
|
|
263
|
+
*
|
|
264
|
+
* <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
|
|
265
|
+
* <br>
|
|
266
|
+
* The <code>ui5-popover</code> exposes the following CSS Shadow Parts:
|
|
267
|
+
* <ul>
|
|
268
|
+
* <li>header - Used to style the header of the component</li>
|
|
269
|
+
* <li>content - Used to style the content of the component</li>
|
|
270
|
+
* <li>footer - Used to style the footer of the component</li>
|
|
271
|
+
* </ul>
|
|
272
|
+
*
|
|
252
273
|
* <h3>ES6 Module Import</h3>
|
|
253
274
|
*
|
|
254
275
|
* <code>import "@ui5/webcomponents/dist/Popover.js";</code>
|
|
@@ -264,8 +285,6 @@ const metadata = {
|
|
|
264
285
|
class Popover extends Popup {
|
|
265
286
|
constructor() {
|
|
266
287
|
super();
|
|
267
|
-
|
|
268
|
-
this._handleResize = this.handleResize.bind(this);
|
|
269
288
|
}
|
|
270
289
|
|
|
271
290
|
static get metadata() {
|
|
@@ -288,12 +307,18 @@ class Popover extends Popup {
|
|
|
288
307
|
return 6; // px
|
|
289
308
|
}
|
|
290
309
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
310
|
+
onAfterRendering() {
|
|
311
|
+
if (!this.isOpen() && this.open) {
|
|
312
|
+
const opener = document.getElementById(this.opener);
|
|
313
|
+
if (!opener) {
|
|
314
|
+
console.warn("Valid opener id is required."); // eslint-disable-line
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
294
317
|
|
|
295
|
-
|
|
296
|
-
|
|
318
|
+
this.showAt(opener);
|
|
319
|
+
} else if (this.isOpen() && !this.open) {
|
|
320
|
+
this.close();
|
|
321
|
+
}
|
|
297
322
|
}
|
|
298
323
|
|
|
299
324
|
isOpenerClicked(event) {
|
|
@@ -365,7 +390,12 @@ class Popover extends Popup {
|
|
|
365
390
|
&& openerRect.right === 0;
|
|
366
391
|
}
|
|
367
392
|
|
|
368
|
-
|
|
393
|
+
/**
|
|
394
|
+
* @override
|
|
395
|
+
*/
|
|
396
|
+
_resize() {
|
|
397
|
+
super._resize();
|
|
398
|
+
|
|
369
399
|
if (this.opened) {
|
|
370
400
|
this.reposition();
|
|
371
401
|
}
|
package/dist/Popup.js
CHANGED
|
@@ -7,6 +7,8 @@ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/Ari
|
|
|
7
7
|
import { hasStyle, createStyle } from "@ui5/webcomponents-base/dist/ManagedStyles.js";
|
|
8
8
|
import { isTabPrevious } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
9
9
|
import { getNextZIndex, getFocusedElement, isFocusedElementWithinNode } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
|
|
10
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
11
|
+
import MediaRange from "@ui5/webcomponents-base/dist/MediaRange.js";
|
|
10
12
|
import PopupTemplate from "./generated/templates/PopupTemplate.lit.js";
|
|
11
13
|
import PopupBlockLayer from "./generated/templates/PopupBlockLayerTemplate.lit.js";
|
|
12
14
|
import { addOpenedPopup, removeOpenedPopup } from "./popup-utils/OpenedPopupsRegistry.js";
|
|
@@ -26,7 +28,7 @@ const metadata = {
|
|
|
26
28
|
/**
|
|
27
29
|
* Defines the content of the Popup.
|
|
28
30
|
* @type {HTMLElement[]}
|
|
29
|
-
* @slot
|
|
31
|
+
* @slot content
|
|
30
32
|
* @public
|
|
31
33
|
*/
|
|
32
34
|
"default": {
|
|
@@ -60,18 +62,30 @@ const metadata = {
|
|
|
60
62
|
|
|
61
63
|
/**
|
|
62
64
|
* Indicates if the element is open
|
|
65
|
+
* @public
|
|
66
|
+
* @type {boolean}
|
|
67
|
+
* @defaultvalue false
|
|
68
|
+
* @since 1.2.0
|
|
69
|
+
*/
|
|
70
|
+
open: {
|
|
71
|
+
type: Boolean,
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Indicates if the element is already open
|
|
63
76
|
* @private
|
|
64
77
|
* @type {boolean}
|
|
65
78
|
* @defaultvalue false
|
|
66
79
|
*/
|
|
67
80
|
opened: {
|
|
68
81
|
type: Boolean,
|
|
82
|
+
noAttribute: true,
|
|
69
83
|
},
|
|
70
84
|
|
|
71
85
|
/**
|
|
72
86
|
* Defines the accessible name of the component.
|
|
73
87
|
*
|
|
74
|
-
* @type {
|
|
88
|
+
* @type {string}
|
|
75
89
|
* @defaultvalue ""
|
|
76
90
|
* @public
|
|
77
91
|
* @since 1.0.0-rc.15
|
|
@@ -84,7 +98,7 @@ const metadata = {
|
|
|
84
98
|
/**
|
|
85
99
|
* Defines the IDs of the elements that label the component.
|
|
86
100
|
*
|
|
87
|
-
* @type {
|
|
101
|
+
* @type {string}
|
|
88
102
|
* @defaultvalue ""
|
|
89
103
|
* @public
|
|
90
104
|
* @since 1.1.0
|
|
@@ -94,6 +108,16 @@ const metadata = {
|
|
|
94
108
|
defaultValue: "",
|
|
95
109
|
},
|
|
96
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Defines the current media query size.
|
|
113
|
+
*
|
|
114
|
+
* @type {string}
|
|
115
|
+
* @private
|
|
116
|
+
*/
|
|
117
|
+
mediaRange: {
|
|
118
|
+
type: String,
|
|
119
|
+
},
|
|
120
|
+
|
|
97
121
|
/**
|
|
98
122
|
* @private
|
|
99
123
|
*/
|
|
@@ -164,7 +188,7 @@ const createBlockingStyle = () => {
|
|
|
164
188
|
|
|
165
189
|
createBlockingStyle();
|
|
166
190
|
|
|
167
|
-
const
|
|
191
|
+
const pageScrollingBlockers = new Set();
|
|
168
192
|
|
|
169
193
|
/**
|
|
170
194
|
* @class
|
|
@@ -176,7 +200,7 @@ const bodyScrollingBlockers = new Set();
|
|
|
176
200
|
*
|
|
177
201
|
* 1. The Popup class handles modality:
|
|
178
202
|
* - The "isModal" getter can be overridden by derivatives to provide their own conditions when they are modal or not
|
|
179
|
-
* - Derivatives may call the "
|
|
203
|
+
* - Derivatives may call the "blockPageScrolling" and "unblockPageScrolling" static methods to temporarily remove scrollbars on the html element
|
|
180
204
|
* - Derivatives may call the "open" and "close" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer
|
|
181
205
|
*
|
|
182
206
|
* 2. Provides blocking layer (relevant for modal popups only):
|
|
@@ -200,6 +224,12 @@ const bodyScrollingBlockers = new Set();
|
|
|
200
224
|
* @public
|
|
201
225
|
*/
|
|
202
226
|
class Popup extends UI5Element {
|
|
227
|
+
constructor() {
|
|
228
|
+
super();
|
|
229
|
+
|
|
230
|
+
this._resizeHandler = this._resize.bind(this);
|
|
231
|
+
}
|
|
232
|
+
|
|
203
233
|
static get metadata() {
|
|
204
234
|
return metadata;
|
|
205
235
|
}
|
|
@@ -228,19 +258,27 @@ class Popup extends UI5Element {
|
|
|
228
258
|
if (!this.isOpen()) {
|
|
229
259
|
this._blockLayerHidden = true;
|
|
230
260
|
}
|
|
261
|
+
|
|
262
|
+
ResizeHandler.register(this, this._resizeHandler);
|
|
231
263
|
}
|
|
232
264
|
|
|
233
265
|
onExitDOM() {
|
|
234
266
|
if (this.isOpen()) {
|
|
235
|
-
Popup.
|
|
267
|
+
Popup.unblockPageScrolling(this);
|
|
236
268
|
this._removeOpenedPopup();
|
|
237
269
|
}
|
|
270
|
+
|
|
271
|
+
ResizeHandler.deregister(this, this._resizeHandler);
|
|
238
272
|
}
|
|
239
273
|
|
|
240
274
|
get _displayProp() {
|
|
241
275
|
return "block";
|
|
242
276
|
}
|
|
243
277
|
|
|
278
|
+
_resize() {
|
|
279
|
+
this.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef().offsetWidth);
|
|
280
|
+
}
|
|
281
|
+
|
|
244
282
|
/**
|
|
245
283
|
* Prevents the user from interacting with the content under the block layer
|
|
246
284
|
*/
|
|
@@ -249,36 +287,31 @@ class Popup extends UI5Element {
|
|
|
249
287
|
}
|
|
250
288
|
|
|
251
289
|
/**
|
|
252
|
-
* Temporarily removes scrollbars from the
|
|
290
|
+
* Temporarily removes scrollbars from the html element
|
|
253
291
|
* @protected
|
|
254
292
|
*/
|
|
255
|
-
static
|
|
256
|
-
|
|
293
|
+
static blockPageScrolling(popup) {
|
|
294
|
+
pageScrollingBlockers.add(popup);
|
|
257
295
|
|
|
258
|
-
if (
|
|
296
|
+
if (pageScrollingBlockers.size !== 1) {
|
|
259
297
|
return;
|
|
260
298
|
}
|
|
261
299
|
|
|
262
|
-
|
|
263
|
-
document.body.style.top = `-${window.pageYOffset}px`;
|
|
264
|
-
}
|
|
265
|
-
document.body.classList.add("ui5-popup-scroll-blocker");
|
|
300
|
+
document.documentElement.classList.add("ui5-popup-scroll-blocker");
|
|
266
301
|
}
|
|
267
302
|
|
|
268
303
|
/**
|
|
269
|
-
* Restores scrollbars on the
|
|
304
|
+
* Restores scrollbars on the html element, if needed
|
|
270
305
|
* @protected
|
|
271
306
|
*/
|
|
272
|
-
static
|
|
273
|
-
|
|
307
|
+
static unblockPageScrolling(popup) {
|
|
308
|
+
pageScrollingBlockers.delete(popup);
|
|
274
309
|
|
|
275
|
-
if (
|
|
310
|
+
if (pageScrollingBlockers.size !== 0) {
|
|
276
311
|
return;
|
|
277
312
|
}
|
|
278
313
|
|
|
279
|
-
document.
|
|
280
|
-
window.scrollTo(0, -parseFloat(document.body.style.top));
|
|
281
|
-
document.body.style.top = "";
|
|
314
|
+
document.documentElement.classList.remove("ui5-popup-scroll-blocker");
|
|
282
315
|
}
|
|
283
316
|
|
|
284
317
|
_scroll(e) {
|
|
@@ -408,7 +441,7 @@ class Popup extends UI5Element {
|
|
|
408
441
|
// create static area item ref for block layer
|
|
409
442
|
this.getStaticAreaItemDomRef();
|
|
410
443
|
this._blockLayerHidden = false;
|
|
411
|
-
Popup.
|
|
444
|
+
Popup.blockPageScrolling(this);
|
|
412
445
|
}
|
|
413
446
|
|
|
414
447
|
this._zIndex = getNextZIndex();
|
|
@@ -424,6 +457,7 @@ class Popup extends UI5Element {
|
|
|
424
457
|
this._addOpenedPopup();
|
|
425
458
|
|
|
426
459
|
this.opened = true;
|
|
460
|
+
this.open = true;
|
|
427
461
|
|
|
428
462
|
await renderFinished();
|
|
429
463
|
this.fireEvent("after-open", {}, false, false);
|
|
@@ -453,11 +487,12 @@ class Popup extends UI5Element {
|
|
|
453
487
|
|
|
454
488
|
if (this.isModal) {
|
|
455
489
|
this._blockLayerHidden = true;
|
|
456
|
-
Popup.
|
|
490
|
+
Popup.unblockPageScrolling(this);
|
|
457
491
|
}
|
|
458
492
|
|
|
459
493
|
this.hide();
|
|
460
494
|
this.opened = false;
|
|
495
|
+
this.open = false;
|
|
461
496
|
|
|
462
497
|
if (!preventRegistryUpdate) {
|
|
463
498
|
this._removeOpenedPopup();
|
|
@@ -530,7 +565,7 @@ class Popup extends UI5Element {
|
|
|
530
565
|
*
|
|
531
566
|
* @protected
|
|
532
567
|
* @abstract
|
|
533
|
-
* @returns {
|
|
568
|
+
* @returns {string}
|
|
534
569
|
*/
|
|
535
570
|
get _ariaLabelledBy() {} // eslint-disable-line
|
|
536
571
|
|
|
@@ -539,13 +574,13 @@ class Popup extends UI5Element {
|
|
|
539
574
|
*
|
|
540
575
|
* @protected
|
|
541
576
|
* @abstract
|
|
542
|
-
* @returns {
|
|
577
|
+
* @returns {string}
|
|
543
578
|
*/
|
|
544
579
|
get _ariaModal() {} // eslint-disable-line
|
|
545
580
|
|
|
546
581
|
/**
|
|
547
582
|
* Ensures ariaLabel is never null or empty string
|
|
548
|
-
* @returns {
|
|
583
|
+
* @returns {string|undefined}
|
|
549
584
|
* @protected
|
|
550
585
|
*/
|
|
551
586
|
get _ariaLabel() {
|