@ui5/webcomponents 1.1.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -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 +44 -30
- 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 +186 -27
- package/dist/MultiInput.js +55 -8
- 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 +15 -11
- 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 +196 -10
- 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_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/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_sappsd.properties +5 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/dist/i18n/messagebundle_en_US_saptrc.properties +5 -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 +10 -8
- 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 +44 -30
- 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 +186 -27
- package/src/MultiComboBoxPopover.hbs +0 -1
- package/src/MultiInput.js +55 -8
- 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 +5 -5
- package/src/ResponsivePopover.js +15 -11
- 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 +196 -10
- 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_sappsd.properties +5 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +5 -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,14 @@ 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
|
+
isHomeCtrl,
|
|
15
|
+
isEndCtrl,
|
|
16
|
+
isCtrlA,
|
|
15
17
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
18
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
17
19
|
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
@@ -20,6 +22,10 @@ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
20
22
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
21
23
|
import "@ui5/webcomponents-icons/dist/multiselect-all.js";
|
|
22
24
|
import "@ui5/webcomponents-icons/dist/not-editable.js";
|
|
25
|
+
import "@ui5/webcomponents-icons/dist/error.js";
|
|
26
|
+
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
27
|
+
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
|
|
28
|
+
import "@ui5/webcomponents-icons/dist/information.js";
|
|
23
29
|
import MultiComboBoxItem from "./MultiComboBoxItem.js";
|
|
24
30
|
import Tokenizer from "./Tokenizer.js";
|
|
25
31
|
import Token from "./Token.js";
|
|
@@ -413,6 +419,7 @@ class MultiComboBox extends UI5Element {
|
|
|
413
419
|
this._deleting = false;
|
|
414
420
|
this._validationTimeout = null;
|
|
415
421
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
422
|
+
this.currentItemIdx = -1;
|
|
416
423
|
}
|
|
417
424
|
|
|
418
425
|
onEnterDOM() {
|
|
@@ -524,7 +531,7 @@ class MultiComboBox extends UI5Element {
|
|
|
524
531
|
return this.placeholder;
|
|
525
532
|
}
|
|
526
533
|
|
|
527
|
-
|
|
534
|
+
_handleArrowLeft() {
|
|
528
535
|
const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
|
|
529
536
|
|
|
530
537
|
if (cursorPosition === 0) {
|
|
@@ -535,14 +542,17 @@ class MultiComboBox extends UI5Element {
|
|
|
535
542
|
_tokenizerFocusOut(event) {
|
|
536
543
|
this._tokenizerFocused = false;
|
|
537
544
|
|
|
538
|
-
const tokensCount = this._tokenizer.tokens.length
|
|
545
|
+
const tokensCount = this._tokenizer.tokens.length;
|
|
546
|
+
const selectedTokens = this._selectedTokensCount;
|
|
547
|
+
const lastTokenBeingDeleted = tokensCount - 1 === 0 && this._deleting;
|
|
548
|
+
const allTokensAreBeingDeleted = selectedTokens === tokensCount && this._deleting;
|
|
539
549
|
|
|
540
550
|
if (!event.relatedTarget || !event.relatedTarget.hasAttribute("ui5-token")) {
|
|
541
551
|
this._tokenizer.tokens.forEach(token => { token.selected = false; });
|
|
542
552
|
this._tokenizer.scrollToStart();
|
|
543
553
|
}
|
|
544
554
|
|
|
545
|
-
if (
|
|
555
|
+
if (allTokensAreBeingDeleted || lastTokenBeingDeleted) {
|
|
546
556
|
setTimeout(() => {
|
|
547
557
|
if (!isPhone()) {
|
|
548
558
|
this.shadowRoot.querySelector("input").focus();
|
|
@@ -563,41 +573,85 @@ class MultiComboBox extends UI5Element {
|
|
|
563
573
|
}
|
|
564
574
|
|
|
565
575
|
async _onkeydown(event) {
|
|
566
|
-
if (isLeft(event)) {
|
|
567
|
-
this._handleLeft(event);
|
|
568
|
-
}
|
|
569
|
-
|
|
570
576
|
if (isShow(event) && !this.readonly && !this.disabled) {
|
|
571
577
|
event.preventDefault();
|
|
572
578
|
this.togglePopover();
|
|
573
579
|
}
|
|
574
580
|
|
|
575
|
-
if (
|
|
581
|
+
if (isUp(event) || isDown(event)) {
|
|
576
582
|
this._handleArrowNavigation(event);
|
|
583
|
+
return;
|
|
577
584
|
}
|
|
578
585
|
|
|
579
|
-
|
|
580
|
-
|
|
586
|
+
this._keyDown = true;
|
|
587
|
+
this[`_handle${event.key}`] && this[`_handle${event.key}`](event);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
_handlePageUp(event) {
|
|
591
|
+
event.preventDefault();
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
_handlePageDown(event) {
|
|
595
|
+
event.preventDefault();
|
|
596
|
+
}
|
|
581
597
|
|
|
598
|
+
_handleBackspace(event) {
|
|
599
|
+
if (event.target.value === "") {
|
|
600
|
+
event.preventDefault();
|
|
582
601
|
this._tokenizer._focusLastToken();
|
|
583
602
|
}
|
|
603
|
+
}
|
|
584
604
|
|
|
585
|
-
|
|
586
|
-
if (
|
|
605
|
+
_handleEscape(event) {
|
|
606
|
+
if (!this.allowCustomValues || (!this.open && this.allowCustomValues)) {
|
|
587
607
|
this.value = this._lastValue;
|
|
588
608
|
}
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
_handleHome(event) {
|
|
612
|
+
const shouldFocusToken = this._isFocusInside && event.target.selectionStart === 0 && this._tokenizer.tokens.length > 0;
|
|
589
613
|
|
|
590
|
-
if (
|
|
591
|
-
|
|
614
|
+
if (shouldFocusToken) {
|
|
615
|
+
event.preventDefault();
|
|
616
|
+
this._tokenizer.tokens[0].focus();
|
|
592
617
|
}
|
|
618
|
+
}
|
|
593
619
|
|
|
594
|
-
|
|
620
|
+
_handleEnd(event) {
|
|
621
|
+
const tokens = this._tokenizer.tokens;
|
|
622
|
+
const lastTokenIdx = tokens.length - 1;
|
|
623
|
+
const shouldFocusInput = event.target === tokens[lastTokenIdx] && tokens[lastTokenIdx] === this.shadowRoot.activeElement;
|
|
624
|
+
|
|
625
|
+
if (shouldFocusInput) {
|
|
626
|
+
event.preventDefault();
|
|
627
|
+
this._inputDom.focus();
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
_handleTab(event) {
|
|
632
|
+
this.allItemsPopover.close();
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
_handleSelectAll(event) {
|
|
636
|
+
const filteredItems = this._filteredItems;
|
|
637
|
+
const allItemsSelected = filteredItems.every(item => item.selected);
|
|
638
|
+
|
|
639
|
+
filteredItems.forEach(item => {
|
|
640
|
+
item.selected = !allItemsSelected;
|
|
641
|
+
});
|
|
642
|
+
|
|
643
|
+
this.fireSelectionChange();
|
|
595
644
|
}
|
|
596
645
|
|
|
597
646
|
_onValueStateKeydown(event) {
|
|
598
647
|
const isArrowDown = isDown(event);
|
|
599
648
|
const isArrowUp = isUp(event);
|
|
600
649
|
|
|
650
|
+
if (isTabNext(event) || isTabPrevious(event)) {
|
|
651
|
+
this._onItemTab(event);
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
|
|
601
655
|
event.preventDefault();
|
|
602
656
|
|
|
603
657
|
if (isArrowDown) {
|
|
@@ -612,23 +666,46 @@ class MultiComboBox extends UI5Element {
|
|
|
612
666
|
_onItemKeydown(event) {
|
|
613
667
|
const isFirstItem = this.list.items[0] === event.target;
|
|
614
668
|
|
|
669
|
+
if (isTabNext(event) || isTabPrevious(event)) {
|
|
670
|
+
this._onItemTab(event);
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
if (isHomeCtrl(event)) {
|
|
675
|
+
this.list._itemNavigation._handleHome(event);
|
|
676
|
+
this.list.items[this.list._itemNavigation._currentIndex].focus();
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
if (isEndCtrl(event)) {
|
|
680
|
+
this.list._itemNavigation._handleEnd(event);
|
|
681
|
+
this.list.items[this.list._itemNavigation._currentIndex].focus();
|
|
682
|
+
}
|
|
683
|
+
|
|
615
684
|
event.preventDefault();
|
|
616
685
|
|
|
617
|
-
if (
|
|
686
|
+
if (isCtrlA(event)) {
|
|
687
|
+
this._handleSelectAll(event);
|
|
618
688
|
return;
|
|
619
689
|
}
|
|
620
690
|
|
|
621
|
-
if (this.valueStateHeader) {
|
|
691
|
+
if (((isUp(event) && isFirstItem) || isHome(event)) && this.valueStateHeader) {
|
|
622
692
|
this.valueStateHeader.focus();
|
|
623
|
-
return;
|
|
624
693
|
}
|
|
625
694
|
|
|
695
|
+
if (!this.valueStateHeader && isUp(event) && isFirstItem) {
|
|
696
|
+
this._inputDom.focus();
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
_onItemTab(event) {
|
|
626
701
|
this._inputDom.focus();
|
|
702
|
+
this.allItemsPopover.close();
|
|
627
703
|
}
|
|
628
704
|
|
|
629
705
|
async _handleArrowNavigation(event) {
|
|
630
706
|
const isArrowDown = isDown(event);
|
|
631
|
-
const hasSuggestions = this.
|
|
707
|
+
const hasSuggestions = this.items.length;
|
|
708
|
+
const isOpen = this.allItemsPopover.opened;
|
|
632
709
|
|
|
633
710
|
event.preventDefault();
|
|
634
711
|
|
|
@@ -636,7 +713,7 @@ class MultiComboBox extends UI5Element {
|
|
|
636
713
|
await this._setValueStateHeader();
|
|
637
714
|
}
|
|
638
715
|
|
|
639
|
-
if (isArrowDown && this.focused && this.valueStateHeader) {
|
|
716
|
+
if (isArrowDown && isOpen && this.focused && this.valueStateHeader) {
|
|
640
717
|
this.valueStateHeader.focus();
|
|
641
718
|
return;
|
|
642
719
|
}
|
|
@@ -644,16 +721,91 @@ class MultiComboBox extends UI5Element {
|
|
|
644
721
|
if (isArrowDown && this.focused && hasSuggestions) {
|
|
645
722
|
this._handleArrowDown(event);
|
|
646
723
|
}
|
|
724
|
+
|
|
725
|
+
if (!isArrowDown && !isOpen && !this.readonly) {
|
|
726
|
+
this._navigateToPrevItem();
|
|
727
|
+
}
|
|
647
728
|
}
|
|
648
729
|
|
|
649
730
|
_handleArrowDown(event) {
|
|
731
|
+
const isOpen = this.allItemsPopover.opened;
|
|
650
732
|
const firstListItem = this.list.items[0];
|
|
651
733
|
|
|
652
|
-
|
|
653
|
-
|
|
734
|
+
if (isOpen) {
|
|
735
|
+
this.list._itemNavigation.setCurrentItem(firstListItem);
|
|
736
|
+
firstListItem.focus();
|
|
737
|
+
} else if (!this.readonly) {
|
|
738
|
+
this._navigateToNextItem();
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
_navigateToNextItem() {
|
|
743
|
+
const items = this.items;
|
|
744
|
+
const itemsCount = items.length;
|
|
745
|
+
const previousItemIdx = this.currentItemIdx;
|
|
746
|
+
|
|
747
|
+
if (previousItemIdx > -1 && items[previousItemIdx].text !== this.value) {
|
|
748
|
+
this.currentItemIdx = -1;
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
if (previousItemIdx >= itemsCount - 1) {
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
let currentItem = this.items[++this.currentItemIdx];
|
|
756
|
+
|
|
757
|
+
while (this.currentItemIdx < itemsCount - 1 && currentItem.selected) {
|
|
758
|
+
currentItem = this.items[++this.currentItemIdx];
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
if (currentItem.selected === true) {
|
|
762
|
+
this.currentItemIdx = previousItemIdx;
|
|
763
|
+
return;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
this.value = currentItem.text;
|
|
767
|
+
this._innerInput.value = currentItem.text;
|
|
768
|
+
this._innerInput.setSelectionRange(0, currentItem.text.length);
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
_navigateToPrevItem() {
|
|
772
|
+
const items = this.items;
|
|
773
|
+
let previousItemIdx = this.currentItemIdx;
|
|
774
|
+
|
|
775
|
+
if ((!this.value && previousItemIdx !== -1) || (previousItemIdx !== -1 && this.value && this.value !== items[previousItemIdx].text)) {
|
|
776
|
+
previousItemIdx = -1;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
if (previousItemIdx === -1) {
|
|
780
|
+
this.currentItemIdx = items.length;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
if (previousItemIdx === 0) {
|
|
784
|
+
this.currentItemIdx = 0;
|
|
785
|
+
return;
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
let currentItem = this.items[--this.currentItemIdx];
|
|
789
|
+
|
|
790
|
+
while (currentItem && currentItem.selected && this.currentItemIdx > 0) {
|
|
791
|
+
currentItem = this.items[--this.currentItemIdx];
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
if (!currentItem) {
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
if (currentItem.selected) {
|
|
799
|
+
this.currentItemIdx = previousItemIdx;
|
|
800
|
+
return;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
this.value = currentItem.text;
|
|
804
|
+
this._innerInput.value = currentItem.text;
|
|
805
|
+
this._innerInput.setSelectionRange(0, currentItem.text.length);
|
|
654
806
|
}
|
|
655
807
|
|
|
656
|
-
|
|
808
|
+
_handleEnter() {
|
|
657
809
|
const lowerCaseValue = this.value.toLowerCase();
|
|
658
810
|
const matchingItem = this.items.find(item => item.text.toLowerCase() === lowerCaseValue);
|
|
659
811
|
const oldValueState = this.valueState;
|
|
@@ -698,6 +850,8 @@ class MultiComboBox extends UI5Element {
|
|
|
698
850
|
}, 0);
|
|
699
851
|
}
|
|
700
852
|
}
|
|
853
|
+
|
|
854
|
+
this[`_handle${event.key}`] && this[`_handle${event.key}`](event);
|
|
701
855
|
}
|
|
702
856
|
|
|
703
857
|
_filterItems(str) {
|
|
@@ -918,6 +1072,7 @@ class MultiComboBox extends UI5Element {
|
|
|
918
1072
|
this._innerInput.blur();
|
|
919
1073
|
}
|
|
920
1074
|
|
|
1075
|
+
!isPhone() && this._innerInput.setSelectionRange(0, this.value.length);
|
|
921
1076
|
this._lastValue = this.value;
|
|
922
1077
|
}
|
|
923
1078
|
|
|
@@ -1003,6 +1158,10 @@ class MultiComboBox extends UI5Element {
|
|
|
1003
1158
|
return `${this._id}-hiddenText-nMore`;
|
|
1004
1159
|
}
|
|
1005
1160
|
|
|
1161
|
+
get _selectedTokensCount() {
|
|
1162
|
+
return this._tokenizer.tokens.filter(token => token.selected).length;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1006
1165
|
get ariaDescribedByText() {
|
|
1007
1166
|
return this.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;
|
|
1008
1167
|
}
|
package/dist/MultiInput.js
CHANGED
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
isBackSpace,
|
|
5
5
|
isLeft,
|
|
6
6
|
isRight,
|
|
7
|
+
isRightCtrl,
|
|
8
|
+
isHome,
|
|
9
|
+
isEnd,
|
|
7
10
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
8
11
|
import { MULTIINPUT_ROLEDESCRIPTION_TEXT } from "./generated/i18n/i18n-defaults.js";
|
|
9
12
|
import Input from "./Input.js";
|
|
@@ -136,8 +139,15 @@ class MultiInput extends Input {
|
|
|
136
139
|
}
|
|
137
140
|
|
|
138
141
|
tokenDelete(event) {
|
|
139
|
-
|
|
140
|
-
|
|
142
|
+
const focusedToken = event.detail.ref;
|
|
143
|
+
const selectedTokens = this.tokens.filter(token => token.selected);
|
|
144
|
+
|
|
145
|
+
if (selectedTokens.indexOf(focusedToken) === -1) {
|
|
146
|
+
selectedTokens.push(focusedToken);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
selectedTokens.forEach(token => {
|
|
150
|
+
this.fireEvent("token-delete", { token });
|
|
141
151
|
});
|
|
142
152
|
|
|
143
153
|
this.focus();
|
|
@@ -170,7 +180,9 @@ class MultiInput extends Input {
|
|
|
170
180
|
_onkeydown(event) {
|
|
171
181
|
super._onkeydown(event);
|
|
172
182
|
|
|
173
|
-
|
|
183
|
+
const isHomeInBeginning = isHome(event) && event.target.selectionStart === 0;
|
|
184
|
+
|
|
185
|
+
if (isLeft(event) || isHomeInBeginning) {
|
|
174
186
|
this._skipOpenSuggestions = true; // Prevent input focus when navigating through the tokens.
|
|
175
187
|
|
|
176
188
|
return this._handleLeft(event);
|
|
@@ -189,22 +201,57 @@ class MultiInput extends Input {
|
|
|
189
201
|
}
|
|
190
202
|
|
|
191
203
|
_onTokenizerKeydown(event) {
|
|
192
|
-
|
|
193
|
-
|
|
204
|
+
const rightCtrl = isRightCtrl(event);
|
|
205
|
+
const isCtrl = !!(event.metaKey || event.ctrlKey);
|
|
206
|
+
const tokens = this.tokens;
|
|
194
207
|
|
|
195
|
-
|
|
208
|
+
if (isRight(event) || isEnd(event) || rightCtrl) {
|
|
209
|
+
event.preventDefault();
|
|
210
|
+
const lastTokenIndex = this.tokens.length - 1;
|
|
211
|
+
|
|
212
|
+
if (event.target === this.tokens[lastTokenIndex] && this.tokens[lastTokenIndex] === document.activeElement) {
|
|
196
213
|
setTimeout(() => {
|
|
197
214
|
this.focus();
|
|
198
215
|
}, 0);
|
|
216
|
+
} else if (rightCtrl) {
|
|
217
|
+
event.preventDefault();
|
|
218
|
+
return this.tokenizer._handleArrowCtrl(event.target, this.tokens, true);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
this.tokenizer._handleItemNavigation(event, tokens);
|
|
223
|
+
|
|
224
|
+
if (isCtrl && ["c", "x"].includes(event.key.toLowerCase())) {
|
|
225
|
+
event.preventDefault();
|
|
226
|
+
|
|
227
|
+
const isCut = event.key.toLowerCase() === "x";
|
|
228
|
+
const selectedTokens = tokens.filter(token => token.selected);
|
|
229
|
+
|
|
230
|
+
if (isCut) {
|
|
231
|
+
const cutResult = this.tokenizer._fillClipboard("cut", selectedTokens);
|
|
232
|
+
|
|
233
|
+
selectedTokens.forEach(token => {
|
|
234
|
+
this.fireEvent("token-delete", { token });
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
this.focus();
|
|
238
|
+
|
|
239
|
+
return cutResult;
|
|
199
240
|
}
|
|
241
|
+
|
|
242
|
+
return this.tokenizer._fillClipboard("copy", selectedTokens);
|
|
200
243
|
}
|
|
201
244
|
}
|
|
202
245
|
|
|
203
246
|
_handleLeft() {
|
|
204
247
|
const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
|
|
248
|
+
const tokens = this.tokens;
|
|
249
|
+
const lastToken = tokens.length && tokens[tokens.length - 1];
|
|
205
250
|
|
|
206
|
-
if (cursorPosition === 0) {
|
|
207
|
-
this.tokenizer._focusLastToken();
|
|
251
|
+
if (cursorPosition === 0 && lastToken) {
|
|
252
|
+
// this.tokenizer._focusLastToken(); won't work as the tokens in the MultiInput use different slot and are not resolved properly
|
|
253
|
+
lastToken.focus();
|
|
254
|
+
this.tokenizer._itemNav.setCurrentItem(lastToken);
|
|
208
255
|
}
|
|
209
256
|
}
|
|
210
257
|
|
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
|
}
|