@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/Table.js
CHANGED
|
@@ -5,7 +5,20 @@ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation
|
|
|
5
5
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
6
6
|
import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
|
|
7
7
|
import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
isSpace,
|
|
10
|
+
isEnter,
|
|
11
|
+
isCtrlA,
|
|
12
|
+
isUpAlt,
|
|
13
|
+
isDownAlt,
|
|
14
|
+
isUpShift,
|
|
15
|
+
isDownShift,
|
|
16
|
+
isHomeCtrl,
|
|
17
|
+
isEndCtrl,
|
|
18
|
+
isHomeShift,
|
|
19
|
+
isEndShift,
|
|
20
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
21
|
+
import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
9
22
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
23
|
import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
|
|
11
24
|
import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
|
|
@@ -268,7 +281,7 @@ const metadata = {
|
|
|
268
281
|
|
|
269
282
|
/**
|
|
270
283
|
* Defines whether all rows are selected or not when table is in MultiSelect mode.
|
|
271
|
-
* @type {
|
|
284
|
+
* @type {boolean}
|
|
272
285
|
* @defaultvalue false
|
|
273
286
|
* @since 1.0.0-rc.15
|
|
274
287
|
* @private
|
|
@@ -373,6 +386,18 @@ const metadata = {
|
|
|
373
386
|
* In order to use this functionality, you need to import the following module:
|
|
374
387
|
* <code>import "@ui5/webcomponents-base/dist/features/F6Navigation.js"</code>
|
|
375
388
|
* <br><br>
|
|
389
|
+
* Furthermore, you can interact with <code>ui5-table</code> via the following keys.
|
|
390
|
+
* <br>
|
|
391
|
+
*
|
|
392
|
+
* <ul>
|
|
393
|
+
* <li>[F7] - If focus is on an interactive control inside an item, moves focus to the corresponding item.</li>
|
|
394
|
+
* <li>[CTRL]+[A] - Selects all items, if MultiSelect mode is enabled.</li>
|
|
395
|
+
* <li>[HOME]/[END] - Focuses the first/last item.</li>
|
|
396
|
+
* <li>[PAGEUP]/[PAGEDOWN] - Moves focus up/down by page size (20 items by default).</li>
|
|
397
|
+
* <li>[ALT]+[DOWN]/[UP] - Switches focus between header, last focused item, and More button (if applies) in either direction.</li>
|
|
398
|
+
* <li>[SHIFT]+[DOWN]/[UP] - Selects the next/previous item in a MultiSelect table, if the current item is selected (Range selection). Otherwise, deselects them (Range deselection).</li>
|
|
399
|
+
* <li>[SHIFT]+[HOME]/[END] - Range selection to the first/last item of the List.</li>
|
|
400
|
+
* <li>[CTRL]+[HOME]/[END] - Same behavior as HOME & END.</li> * </ul>
|
|
376
401
|
*
|
|
377
402
|
* <h3>ES6 Module Import</h3>
|
|
378
403
|
*
|
|
@@ -430,6 +455,7 @@ class Table extends UI5Element {
|
|
|
430
455
|
navigationMode: NavigationMode.Vertical,
|
|
431
456
|
affectedPropertiesNames: ["_columnHeader"],
|
|
432
457
|
getItemsCallback: () => [this._columnHeader, ...this.rows],
|
|
458
|
+
skipItemsSize: 20,
|
|
433
459
|
});
|
|
434
460
|
|
|
435
461
|
this.fnOnRowFocused = this.onRowFocused.bind(this);
|
|
@@ -437,7 +463,10 @@ class Table extends UI5Element {
|
|
|
437
463
|
this._handleResize = this.popinContent.bind(this);
|
|
438
464
|
|
|
439
465
|
this.tableEndObserved = false;
|
|
466
|
+
|
|
440
467
|
this.addEventListener("ui5-selection-requested", this._handleSelect.bind(this));
|
|
468
|
+
|
|
469
|
+
this._prevNestedElementIndex = 0;
|
|
441
470
|
}
|
|
442
471
|
|
|
443
472
|
onBeforeRendering() {
|
|
@@ -460,7 +489,6 @@ class Table extends UI5Element {
|
|
|
460
489
|
});
|
|
461
490
|
|
|
462
491
|
this.visibleColumns = this.columns.filter((column, index) => {
|
|
463
|
-
column.sticky = this.stickyColumnHeader;
|
|
464
492
|
return !this._hiddenColumns[index];
|
|
465
493
|
});
|
|
466
494
|
|
|
@@ -468,6 +496,8 @@ class Table extends UI5Element {
|
|
|
468
496
|
this.visibleColumnsCount = this.visibleColumns.length;
|
|
469
497
|
|
|
470
498
|
this._allRowsSelected = selectedRows.length === this.rows.length;
|
|
499
|
+
|
|
500
|
+
this._previousFocusedRow = this._previousFocusedRow || this.rows[0] || null;
|
|
471
501
|
}
|
|
472
502
|
|
|
473
503
|
onAfterRendering() {
|
|
@@ -484,6 +514,16 @@ class Table extends UI5Element {
|
|
|
484
514
|
}
|
|
485
515
|
|
|
486
516
|
ResizeHandler.register(this.getDomRef(), this._handleResize);
|
|
517
|
+
|
|
518
|
+
this._itemNavigation.setCurrentItem(this.rows.length ? this.rows[0] : this._columnHeader);
|
|
519
|
+
|
|
520
|
+
this.rows.forEach((row, index) => {
|
|
521
|
+
row._tabbableElements = getTabbableElements(row);
|
|
522
|
+
|
|
523
|
+
if (index > 0) {
|
|
524
|
+
row._tabbableElements.forEach(el => el.setAttribute("tabindex", "-1"));
|
|
525
|
+
}
|
|
526
|
+
});
|
|
487
527
|
}
|
|
488
528
|
|
|
489
529
|
onExitDOM() {
|
|
@@ -496,6 +536,182 @@ class Table extends UI5Element {
|
|
|
496
536
|
}
|
|
497
537
|
}
|
|
498
538
|
|
|
539
|
+
_onkeydown(event) {
|
|
540
|
+
if (isCtrlA(event)) {
|
|
541
|
+
event.preventDefault();
|
|
542
|
+
this.isMultiSelect && this._selectAll(event);
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
const isAltUp = isUpAlt(event);
|
|
547
|
+
|
|
548
|
+
if (isAltUp || isDownAlt(event)) {
|
|
549
|
+
return this._handleArrowAlt(isAltUp, event.target);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
if ((isUpShift(event) || isDownShift(event)) && this.isMultiSelect) {
|
|
553
|
+
this._handleArrowNav(event);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
if (isHomeCtrl(event)) {
|
|
557
|
+
event.preventDefault();
|
|
558
|
+
|
|
559
|
+
this._itemNavigation._handleHome(event);
|
|
560
|
+
this._itemNavigation._applyTabIndex();
|
|
561
|
+
this._itemNavigation._focusCurrentItem();
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
if (isEndCtrl(event)) {
|
|
565
|
+
event.preventDefault();
|
|
566
|
+
|
|
567
|
+
this._itemNavigation._handleEnd(event);
|
|
568
|
+
this._itemNavigation._applyTabIndex();
|
|
569
|
+
this._itemNavigation._focusCurrentItem();
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
if ((isHomeShift(event) || isEndShift(event)) && this.isMultiSelect) {
|
|
573
|
+
this._handleHomeEndSelection(event);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
_handleArrowNav(event) {
|
|
578
|
+
const isRowFocused = this.currentElement.localName === "tr";
|
|
579
|
+
|
|
580
|
+
if (!isRowFocused) {
|
|
581
|
+
return;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
const previouslySelectedRows = this.selectedRows;
|
|
585
|
+
const currentItem = this.currentItem;
|
|
586
|
+
const currentItemIdx = this.currentItemIdx;
|
|
587
|
+
|
|
588
|
+
const prevItemIdx = currentItemIdx - 1;
|
|
589
|
+
const nextItemIdx = currentItemIdx + 1;
|
|
590
|
+
|
|
591
|
+
const prevItem = this.rows[prevItemIdx];
|
|
592
|
+
const nextItem = this.rows[nextItemIdx];
|
|
593
|
+
const wasSelected = currentItem.selected;
|
|
594
|
+
|
|
595
|
+
if ((isUpShift(event) && !prevItem) || (isDownShift(event) && !nextItem)) {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
if (isUpShift(event)) {
|
|
600
|
+
currentItem.selected = currentItem.selected && !prevItem.selected;
|
|
601
|
+
prevItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);
|
|
602
|
+
|
|
603
|
+
prevItem.focus();
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
if (isDownShift(event)) {
|
|
607
|
+
currentItem.selected = currentItem.selected && !nextItem.selected;
|
|
608
|
+
nextItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);
|
|
609
|
+
|
|
610
|
+
nextItem.focus();
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
const selectedRows = this.selectedRows;
|
|
614
|
+
|
|
615
|
+
this.fireEvent("selection-change", {
|
|
616
|
+
selectedRows,
|
|
617
|
+
previouslySelectedRows,
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
_handleHomeEndSelection(event) {
|
|
622
|
+
const isRowFocused = this.currentElement.localName === "tr";
|
|
623
|
+
|
|
624
|
+
if (!isRowFocused) {
|
|
625
|
+
return;
|
|
626
|
+
}
|
|
627
|
+
const rows = this.rows;
|
|
628
|
+
const previouslySelectedRows = this.selectedRows;
|
|
629
|
+
const currentItemIdx = this.currentItemIdx;
|
|
630
|
+
|
|
631
|
+
if (isHomeShift(event)) {
|
|
632
|
+
rows.slice(0, currentItemIdx + 1).forEach(item => {
|
|
633
|
+
item.selected = true;
|
|
634
|
+
});
|
|
635
|
+
rows[0].focus();
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
if (isEndShift(event)) {
|
|
639
|
+
rows.slice(currentItemIdx).forEach(item => {
|
|
640
|
+
item.selected = true;
|
|
641
|
+
});
|
|
642
|
+
rows[rows.length - 1].focus();
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
const selectedRows = this.selectedRows;
|
|
646
|
+
|
|
647
|
+
this.fireEvent("selection-change", {
|
|
648
|
+
selectedRows,
|
|
649
|
+
previouslySelectedRows,
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* Handles Alt + Up/Down.
|
|
655
|
+
* Switches focus between column header, last focused item, and "More" button (if applicable).
|
|
656
|
+
* @private
|
|
657
|
+
* @param {boolean} shouldMoveUp Whether to move focus upward
|
|
658
|
+
* @param {object} focusedElement The element currently in focus
|
|
659
|
+
*/
|
|
660
|
+
_handleArrowAlt(shouldMoveUp, focusedElement) {
|
|
661
|
+
const focusedElementType = this.getFocusedElementType(focusedElement);
|
|
662
|
+
const moreButton = this.getMoreButton();
|
|
663
|
+
|
|
664
|
+
if (shouldMoveUp) {
|
|
665
|
+
switch (focusedElementType) {
|
|
666
|
+
case "tableRow":
|
|
667
|
+
this._previousFocusedRow = focusedElement;
|
|
668
|
+
return this._onColumnHeaderClick();
|
|
669
|
+
case "columnHeader":
|
|
670
|
+
return moreButton ? moreButton.focus() : this._previousFocusedRow.focus();
|
|
671
|
+
case "moreButton":
|
|
672
|
+
return this._previousFocusedRow ? this._previousFocusedRow.focus() : this._onColumnHeaderClick();
|
|
673
|
+
}
|
|
674
|
+
} else {
|
|
675
|
+
switch (focusedElementType) {
|
|
676
|
+
case "tableRow":
|
|
677
|
+
this._previousFocusedRow = focusedElement;
|
|
678
|
+
return moreButton ? moreButton.focus() : this._onColumnHeaderClick();
|
|
679
|
+
case "columnHeader":
|
|
680
|
+
if (this._previousFocusedRow) {
|
|
681
|
+
return this._previousFocusedRow.focus();
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
if (moreButton) {
|
|
685
|
+
return moreButton.focus();
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
return;
|
|
689
|
+
case "moreButton":
|
|
690
|
+
return this._onColumnHeaderClick();
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
/**
|
|
696
|
+
* Determines the type of the currently focused element.
|
|
697
|
+
* @private
|
|
698
|
+
* @param {object} element The object representation of the DOM element
|
|
699
|
+
* @returns {("columnHeader"|"tableRow"|"moreButton")} A string identifier
|
|
700
|
+
*/
|
|
701
|
+
getFocusedElementType(element) {
|
|
702
|
+
if (element === this.getColumnHeader()) {
|
|
703
|
+
return "columnHeader";
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
if (element === this.getMoreButton()) {
|
|
707
|
+
return "moreButton";
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
if (this.rows.includes(element)) {
|
|
711
|
+
return "tableRow";
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
|
|
499
715
|
onRowFocused(event) {
|
|
500
716
|
this._itemNavigation.setCurrentItem(event.target);
|
|
501
717
|
}
|
|
@@ -505,6 +721,13 @@ class Table extends UI5Element {
|
|
|
505
721
|
this._itemNavigation.setCurrentItem(this._columnHeader);
|
|
506
722
|
}
|
|
507
723
|
|
|
724
|
+
_onColumnHeaderKeydown(event) {
|
|
725
|
+
if (isSpace(event)) {
|
|
726
|
+
event.preventDefault();
|
|
727
|
+
this.isMultiSelect && this._selectAll();
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
|
|
508
731
|
_onLoadMoreKeydown(event) {
|
|
509
732
|
if (isSpace(event)) {
|
|
510
733
|
event.preventDefault();
|
|
@@ -587,7 +810,7 @@ class Table extends UI5Element {
|
|
|
587
810
|
}
|
|
588
811
|
|
|
589
812
|
_selectAll(event) {
|
|
590
|
-
const bAllSelected =
|
|
813
|
+
const bAllSelected = !this._allRowsSelected;
|
|
591
814
|
const previouslySelectedRows = this.rows.filter(row => row.selected);
|
|
592
815
|
|
|
593
816
|
this._allRowsSelected = bAllSelected;
|
|
@@ -622,6 +845,10 @@ class Table extends UI5Element {
|
|
|
622
845
|
return this.getDomRef() && this.getDomRef().querySelector(`#${this._id}-columnHeader`);
|
|
623
846
|
}
|
|
624
847
|
|
|
848
|
+
getMoreButton() {
|
|
849
|
+
return this.growsWithButton && this.getDomRef() && this.getDomRef().querySelector(`#${this._id}-growingButton`);
|
|
850
|
+
}
|
|
851
|
+
|
|
625
852
|
handleResize(event) {
|
|
626
853
|
this.checkTableInViewport();
|
|
627
854
|
this.popinContent(event);
|
|
@@ -764,6 +991,18 @@ class Table extends UI5Element {
|
|
|
764
991
|
get selectedRows() {
|
|
765
992
|
return this.rows.filter(row => row.selected);
|
|
766
993
|
}
|
|
994
|
+
|
|
995
|
+
get currentItemIdx() {
|
|
996
|
+
return this.rows.indexOf(this.currentItem);
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
get currentItem() {
|
|
1000
|
+
return this.getRootNode().activeElement;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
get currentElement() {
|
|
1004
|
+
return this._itemNavigation._getCurrentItem();
|
|
1005
|
+
}
|
|
767
1006
|
}
|
|
768
1007
|
|
|
769
1008
|
Table.define();
|
package/dist/TableColumn.js
CHANGED
package/dist/TableGroupRow.js
CHANGED
|
@@ -150,6 +150,10 @@ class TableGroupRow extends UI5Element {
|
|
|
150
150
|
this._colSpan = this.visibleColCount();
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
_onfocusin(event) {
|
|
154
|
+
this.parentElement._itemNavigation.setCurrentItem(this);
|
|
155
|
+
}
|
|
156
|
+
|
|
153
157
|
static async onDefine() {
|
|
154
158
|
TableGroupRow.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
155
159
|
}
|
package/dist/TableRow.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
-
import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
3
2
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
3
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
4
|
+
import {
|
|
5
|
+
isSpace,
|
|
6
|
+
isEnter,
|
|
7
|
+
isF7,
|
|
8
|
+
isTabNext,
|
|
9
|
+
isTabPrevious,
|
|
10
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
11
|
+
import CheckBox from "./CheckBox.js";
|
|
5
12
|
import TableMode from "./types/TableMode.js";
|
|
6
13
|
import TableRowType from "./types/TableRowType.js";
|
|
7
14
|
import TableRowTemplate from "./generated/templates/TableRowTemplate.lit.js";
|
|
@@ -106,6 +113,13 @@ const metadata = {
|
|
|
106
113
|
defaultValue: "",
|
|
107
114
|
noAttribute: true,
|
|
108
115
|
},
|
|
116
|
+
_tabbableElements: {
|
|
117
|
+
type: Object,
|
|
118
|
+
multiple: true,
|
|
119
|
+
},
|
|
120
|
+
_tabMarked: {
|
|
121
|
+
type: Boolean,
|
|
122
|
+
},
|
|
109
123
|
},
|
|
110
124
|
events: /** @lends sap.ui.webcomponents.main.TableRow.prototype */ {
|
|
111
125
|
/**
|
|
@@ -170,6 +184,10 @@ class TableRow extends UI5Element {
|
|
|
170
184
|
return TableRowTemplate;
|
|
171
185
|
}
|
|
172
186
|
|
|
187
|
+
static get dependencies() {
|
|
188
|
+
return [CheckBox];
|
|
189
|
+
}
|
|
190
|
+
|
|
173
191
|
_onmouseup() {
|
|
174
192
|
this.deactivate();
|
|
175
193
|
}
|
|
@@ -178,9 +196,17 @@ class TableRow extends UI5Element {
|
|
|
178
196
|
const itemActive = this.type === TableRowType.Active;
|
|
179
197
|
const isSingleSelect = this.isSingleSelect;
|
|
180
198
|
const itemSelectable = isSingleSelect || this.isMultiSelect;
|
|
181
|
-
const isRowFocused = this.
|
|
199
|
+
const isRowFocused = this._activeElementHasAttribute("ui5-table-row");
|
|
182
200
|
const checkboxPressed = event.target.classList.contains("ui5-multi-select-checkbox");
|
|
183
201
|
|
|
202
|
+
if (isTabNext(event) || isTabPrevious(event)) {
|
|
203
|
+
this._tabMarked = true;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (isTabNext(event) || isTabPrevious(event)) {
|
|
207
|
+
this._tabMarked = true;
|
|
208
|
+
}
|
|
209
|
+
|
|
184
210
|
if (isSpace(event) && event.target.tagName.toLowerCase() === "tr") {
|
|
185
211
|
event.preventDefault();
|
|
186
212
|
}
|
|
@@ -197,6 +223,11 @@ class TableRow extends UI5Element {
|
|
|
197
223
|
}
|
|
198
224
|
}
|
|
199
225
|
}
|
|
226
|
+
|
|
227
|
+
if (isF7(event)) {
|
|
228
|
+
event.preventDefault();
|
|
229
|
+
this._handleF7(event.target);
|
|
230
|
+
}
|
|
200
231
|
}
|
|
201
232
|
|
|
202
233
|
_onkeyup(event) {
|
|
@@ -213,16 +244,26 @@ class TableRow extends UI5Element {
|
|
|
213
244
|
this.deactivate();
|
|
214
245
|
}
|
|
215
246
|
|
|
216
|
-
_onfocusout() {
|
|
247
|
+
_onfocusout(event) {
|
|
217
248
|
this.deactivate();
|
|
249
|
+
|
|
250
|
+
if (!this._tabMarked) {
|
|
251
|
+
this._tabbableElements.forEach(el => el.setAttribute("tabindex", -1));
|
|
252
|
+
} else {
|
|
253
|
+
this._tabMarked = false;
|
|
254
|
+
}
|
|
218
255
|
}
|
|
219
256
|
|
|
220
257
|
_onfocusin(event, forceSelfFocus = false) {
|
|
221
|
-
|
|
222
|
-
|
|
258
|
+
const tableRowRoot = this.shadowRoot.querySelector(".ui5-table-row-root");
|
|
259
|
+
|
|
260
|
+
if (forceSelfFocus || this._activeElementHasAttribute("ui5-table-cell")) {
|
|
261
|
+
tableRowRoot.focus();
|
|
223
262
|
this.activate();
|
|
224
263
|
}
|
|
225
264
|
|
|
265
|
+
this._tabbableElements.forEach(el => el.setAttribute("tabindex", 0));
|
|
266
|
+
|
|
226
267
|
this.fireEvent("_focused", event);
|
|
227
268
|
}
|
|
228
269
|
|
|
@@ -244,7 +285,7 @@ class TableRow extends UI5Element {
|
|
|
244
285
|
this.deactivate();
|
|
245
286
|
}
|
|
246
287
|
|
|
247
|
-
if (this.
|
|
288
|
+
if (this._activeElementHasAttribute("ui5-table-row")) {
|
|
248
289
|
if (this.isSingleSelect) {
|
|
249
290
|
this._handleSelection();
|
|
250
291
|
}
|
|
@@ -259,8 +300,46 @@ class TableRow extends UI5Element {
|
|
|
259
300
|
this.fireEvent("selection-requested", { row: this });
|
|
260
301
|
}
|
|
261
302
|
|
|
262
|
-
|
|
263
|
-
|
|
303
|
+
/**
|
|
304
|
+
* Toggles focus between the table row's root and the last focused nested element.
|
|
305
|
+
* @private
|
|
306
|
+
* @param {Object} activeElement The currently focused element
|
|
307
|
+
*/
|
|
308
|
+
_handleF7(activeElement) {
|
|
309
|
+
const elements = this._tabbableElements;
|
|
310
|
+
|
|
311
|
+
if (!elements.length) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
const table = this.parentElement;
|
|
316
|
+
const tableRowRoot = this.shadowRoot.querySelector(".ui5-table-row-root");
|
|
317
|
+
const prevFocusedIdx = table._prevNestedElementIndex;
|
|
318
|
+
|
|
319
|
+
if (activeElement === tableRowRoot) {
|
|
320
|
+
const lastFocusedElement = elements[prevFocusedIdx];
|
|
321
|
+
|
|
322
|
+
if (lastFocusedElement) {
|
|
323
|
+
lastFocusedElement.focus();
|
|
324
|
+
} else {
|
|
325
|
+
elements[0].focus();
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const shadowRoot = activeElement.shadowRoot;
|
|
332
|
+
const target = shadowRoot ? shadowRoot.activeElement : activeElement;
|
|
333
|
+
const targetIndex = elements.indexOf(target);
|
|
334
|
+
|
|
335
|
+
if (targetIndex > -1) {
|
|
336
|
+
table._prevNestedElementIndex = targetIndex;
|
|
337
|
+
tableRowRoot.focus();
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
_activeElementHasAttribute(attr) {
|
|
342
|
+
return this.getRootNode().activeElement.hasAttribute(attr);
|
|
264
343
|
}
|
|
265
344
|
|
|
266
345
|
activate() {
|
package/dist/TextArea.js
CHANGED
|
@@ -9,6 +9,11 @@ import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
|
|
|
9
9
|
import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
10
10
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
11
11
|
import Popover from "./Popover.js";
|
|
12
|
+
import Icon from "./Icon.js";
|
|
13
|
+
import "@ui5/webcomponents-icons/dist/error.js";
|
|
14
|
+
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
15
|
+
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
|
|
16
|
+
import "@ui5/webcomponents-icons/dist/information.js";
|
|
12
17
|
|
|
13
18
|
import TextAreaTemplate from "./generated/templates/TextAreaTemplate.lit.js";
|
|
14
19
|
import TextAreaPopoverTemplate from "./generated/templates/TextAreaPopoverTemplate.lit.js";
|
|
@@ -213,9 +218,9 @@ const metadata = {
|
|
|
213
218
|
},
|
|
214
219
|
|
|
215
220
|
/**
|
|
216
|
-
*
|
|
221
|
+
* Defines the accessible aria name of the component.
|
|
217
222
|
*
|
|
218
|
-
* @type {
|
|
223
|
+
* @type {string}
|
|
219
224
|
* @public
|
|
220
225
|
* @since 1.0.0-rc.15
|
|
221
226
|
*/
|
|
@@ -226,7 +231,7 @@ const metadata = {
|
|
|
226
231
|
/**
|
|
227
232
|
* Receives id(or many ids) of the elements that label the textarea.
|
|
228
233
|
*
|
|
229
|
-
* @type {
|
|
234
|
+
* @type {string}
|
|
230
235
|
* @defaultvalue ""
|
|
231
236
|
* @public
|
|
232
237
|
* @since 1.0.0-rc.15
|
|
@@ -684,7 +689,7 @@ class TextArea extends UI5Element {
|
|
|
684
689
|
}
|
|
685
690
|
|
|
686
691
|
static get dependencies() {
|
|
687
|
-
return [Popover];
|
|
692
|
+
return [Popover, Icon];
|
|
688
693
|
}
|
|
689
694
|
|
|
690
695
|
static async onDefine() {
|
package/dist/Tokenizer.js
CHANGED
|
@@ -20,6 +20,8 @@ import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
|
20
20
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
21
21
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
22
22
|
import List from "./List.js";
|
|
23
|
+
import Title from "./Title.js";
|
|
24
|
+
import Button from "./Button.js";
|
|
23
25
|
import StandardListItem from "./StandardListItem.js";
|
|
24
26
|
import TokenizerTemplate from "./generated/templates/TokenizerTemplate.lit.js";
|
|
25
27
|
import TokenizerPopoverTemplate from "./generated/templates/TokenizerPopoverTemplate.lit.js";
|
|
@@ -34,6 +36,7 @@ import {
|
|
|
34
36
|
|
|
35
37
|
// Styles
|
|
36
38
|
import styles from "./generated/themes/Tokenizer.css.js";
|
|
39
|
+
import TokenizerPopoverCss from "./generated/themes/TokenizerPopover.css.js";
|
|
37
40
|
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
|
|
38
41
|
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
39
42
|
|
|
@@ -138,7 +141,7 @@ class Tokenizer extends UI5Element {
|
|
|
138
141
|
}
|
|
139
142
|
|
|
140
143
|
static get staticAreaStyles() {
|
|
141
|
-
return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
|
|
144
|
+
return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss, TokenizerPopoverCss];
|
|
142
145
|
}
|
|
143
146
|
|
|
144
147
|
static get staticAreaTemplate() {
|
|
@@ -215,16 +218,36 @@ class Tokenizer extends UI5Element {
|
|
|
215
218
|
this._scrollEnablement.scrollContainer = this.expanded ? this.contentDom : this;
|
|
216
219
|
}
|
|
217
220
|
|
|
218
|
-
|
|
221
|
+
_delete(event) {
|
|
222
|
+
if (this._selectedTokens.length) {
|
|
223
|
+
this._selectedTokens.forEach(token => this._tokenDelete(event, token));
|
|
224
|
+
} else {
|
|
225
|
+
this._tokenDelete(event);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
_tokenDelete(event, token) {
|
|
219
230
|
let nextTokenIndex; // The index of the next token that needs to be focused next due to the deletion
|
|
220
|
-
|
|
231
|
+
|
|
232
|
+
const tokens = this._getVisibleTokens();
|
|
233
|
+
const deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(event.target); // The index of the token that just got deleted
|
|
234
|
+
const notSelectedTokens = tokens.filter(t => !t.selected);
|
|
221
235
|
|
|
222
236
|
if (event.detail && event.detail.backSpace) { // on backspace key select the previous item (unless deleting the first)
|
|
223
237
|
nextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;
|
|
224
238
|
} else { // on delete key or mouse click on the "x" select the next item (unless deleting the last)
|
|
225
|
-
nextTokenIndex = deletedTokenIndex ===
|
|
239
|
+
nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
let nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined
|
|
243
|
+
|
|
244
|
+
if (notSelectedTokens.length > 1) {
|
|
245
|
+
while (nextToken && nextToken.selected) {
|
|
246
|
+
nextToken = event.detail.backSpace ? tokens[--nextTokenIndex] : tokens[++nextTokenIndex];
|
|
247
|
+
}
|
|
248
|
+
} else {
|
|
249
|
+
nextToken = notSelectedTokens[0];
|
|
226
250
|
}
|
|
227
|
-
const nextToken = this._getVisibleTokens()[nextTokenIndex]; // if the last item was deleted this will be undefined
|
|
228
251
|
|
|
229
252
|
if (nextToken && !isPhone()) {
|
|
230
253
|
this._itemNav.setCurrentItem(nextToken); // update the item navigation with the new token or undefined, if the last was deleted
|
|
@@ -234,7 +257,7 @@ class Tokenizer extends UI5Element {
|
|
|
234
257
|
}, 0);
|
|
235
258
|
}
|
|
236
259
|
|
|
237
|
-
this.fireEvent("token-delete", { ref: event.target });
|
|
260
|
+
this.fireEvent("token-delete", { ref: token || event.target });
|
|
238
261
|
}
|
|
239
262
|
|
|
240
263
|
itemDelete(event) {
|
|
@@ -452,6 +475,10 @@ class Tokenizer extends UI5Element {
|
|
|
452
475
|
return isPhone();
|
|
453
476
|
}
|
|
454
477
|
|
|
478
|
+
get _selectedTokens() {
|
|
479
|
+
return this._getTokens().filter(token => token.selected);
|
|
480
|
+
}
|
|
481
|
+
|
|
455
482
|
get classes() {
|
|
456
483
|
return {
|
|
457
484
|
wrapper: {
|
|
@@ -524,6 +551,8 @@ class Tokenizer extends UI5Element {
|
|
|
524
551
|
ResponsivePopover,
|
|
525
552
|
List,
|
|
526
553
|
StandardListItem,
|
|
554
|
+
Title,
|
|
555
|
+
Button,
|
|
527
556
|
];
|
|
528
557
|
}
|
|
529
558
|
|
package/dist/Tree.js
CHANGED
|
@@ -188,6 +188,7 @@ const metadata = {
|
|
|
188
188
|
* Fired when a tree item is activated.
|
|
189
189
|
*
|
|
190
190
|
* @event sap.ui.webcomponents.main.Tree#item-click
|
|
191
|
+
* @allowPreventDefault
|
|
191
192
|
* @param {HTMLElement} item The clicked item.
|
|
192
193
|
* @public
|
|
193
194
|
*/
|
|
@@ -354,7 +355,10 @@ class Tree extends UI5Element {
|
|
|
354
355
|
_onListItemClick(event) {
|
|
355
356
|
const listItem = event.detail.item;
|
|
356
357
|
const treeItem = listItem.treeItem;
|
|
357
|
-
|
|
358
|
+
|
|
359
|
+
if (!this.fireEvent("item-click", { item: treeItem }, true)) {
|
|
360
|
+
event.preventDefault();
|
|
361
|
+
}
|
|
358
362
|
}
|
|
359
363
|
|
|
360
364
|
_onListItemDelete(event) {
|
package/dist/TreeItem.js
CHANGED
|
@@ -12,7 +12,7 @@ const metadata = {
|
|
|
12
12
|
* Defines the text of the tree item.
|
|
13
13
|
*
|
|
14
14
|
* @public
|
|
15
|
-
* @type {
|
|
15
|
+
* @type {string}
|
|
16
16
|
* @defaultValue ""
|
|
17
17
|
*/
|
|
18
18
|
text: {
|
|
@@ -82,7 +82,7 @@ const metadata = {
|
|
|
82
82
|
* If set, an icon will be displayed before the text, representing the tree item.
|
|
83
83
|
*
|
|
84
84
|
* @public
|
|
85
|
-
* @type {
|
|
85
|
+
* @type {string}
|
|
86
86
|
* @defaultValue ""
|
|
87
87
|
*/
|
|
88
88
|
icon: {
|