@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/src/StepInput.js
CHANGED
|
@@ -187,9 +187,9 @@ const metadata = {
|
|
|
187
187
|
},
|
|
188
188
|
|
|
189
189
|
/**
|
|
190
|
-
*
|
|
190
|
+
* Defines the accessible aria name of the component.
|
|
191
191
|
*
|
|
192
|
-
* @type {
|
|
192
|
+
* @type {string}
|
|
193
193
|
* @public
|
|
194
194
|
* @since 1.0.0-rc.15
|
|
195
195
|
*/
|
|
@@ -200,7 +200,7 @@ const metadata = {
|
|
|
200
200
|
/**
|
|
201
201
|
* Receives id(or many ids) of the elements that label the component.
|
|
202
202
|
*
|
|
203
|
-
* @type {
|
|
203
|
+
* @type {string}
|
|
204
204
|
* @defaultvalue ""
|
|
205
205
|
* @public
|
|
206
206
|
* @since 1.0.0-rc.15
|
|
@@ -221,7 +221,7 @@ const metadata = {
|
|
|
221
221
|
},
|
|
222
222
|
|
|
223
223
|
/**
|
|
224
|
-
* @type {
|
|
224
|
+
* @type {boolean}
|
|
225
225
|
* @private
|
|
226
226
|
*/
|
|
227
227
|
focused: {
|
package/src/Switch.hbs
CHANGED
package/src/Switch.js
CHANGED
|
@@ -97,10 +97,22 @@ const metadata = {
|
|
|
97
97
|
type: String,
|
|
98
98
|
},
|
|
99
99
|
|
|
100
|
+
/**
|
|
101
|
+
* Sets the accessible aria name of the component.
|
|
102
|
+
*
|
|
103
|
+
* @type {string}
|
|
104
|
+
* @defaultvalue: ""
|
|
105
|
+
* @public
|
|
106
|
+
* @since 1.2.0
|
|
107
|
+
*/
|
|
108
|
+
accessibleName: {
|
|
109
|
+
type: String,
|
|
110
|
+
},
|
|
111
|
+
|
|
100
112
|
/**
|
|
101
113
|
* Receives id(or many ids) of the elements that label the component.
|
|
102
114
|
*
|
|
103
|
-
* @type {
|
|
115
|
+
* @type {string}
|
|
104
116
|
* @defaultvalue ""
|
|
105
117
|
* @public
|
|
106
118
|
* @since 1.1.0
|
package/src/TabContainer.hbs
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
icon="{{overflowMenuIcon}}"
|
|
20
20
|
data-ui5-stable="overflow-start"
|
|
21
21
|
tabindex="-1"
|
|
22
|
-
|
|
22
|
+
tooltip="{{overflowMenuTitle}}"
|
|
23
23
|
aria-haspopup="true"
|
|
24
24
|
icon-end>{{this._startOverflowText}}</ui5-button>
|
|
25
25
|
{{/if}}
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
icon="{{overflowMenuIcon}}"
|
|
52
52
|
data-ui5-stable="overflow-end"
|
|
53
53
|
tabindex="-1"
|
|
54
|
-
|
|
54
|
+
tooltip="{{overflowMenuTitle}}"
|
|
55
55
|
aria-haspopup="true"
|
|
56
56
|
icon-end>{{this._endOverflowText}}</ui5-button>
|
|
57
57
|
{{/if}}
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
</div>
|
|
66
66
|
|
|
67
67
|
{{#*inline "contentArea"}}
|
|
68
|
-
<div class="{{classes.content}}">
|
|
68
|
+
<div class="{{classes.content}}" part="content">
|
|
69
69
|
{{#each items}}
|
|
70
70
|
{{#unless this.isSeparator}}
|
|
71
71
|
<div
|
package/src/TabContainer.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
3
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
|
+
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
|
|
4
5
|
import slideDown from "@ui5/webcomponents-base/dist/animations/slideDown.js";
|
|
5
6
|
import slideUp from "@ui5/webcomponents-base/dist/animations/slideUp.js";
|
|
6
7
|
import AnimationMode from "@ui5/webcomponents-base/dist/types/AnimationMode.js";
|
|
@@ -22,6 +23,7 @@ import {
|
|
|
22
23
|
TABCONTAINER_NEXT_ICON_ACC_NAME,
|
|
23
24
|
TABCONTAINER_OVERFLOW_MENU_TITLE,
|
|
24
25
|
TABCONTAINER_END_OVERFLOW,
|
|
26
|
+
TABCONTAINER_POPOVER_CANCEL_BUTTON,
|
|
25
27
|
} from "./generated/i18n/i18n-defaults.js";
|
|
26
28
|
import Button from "./Button.js";
|
|
27
29
|
import Icon from "./Icon.js";
|
|
@@ -291,6 +293,15 @@ const metadata = {
|
|
|
291
293
|
* <li><code>ui5-tab-separator</code> - used to separate tabs with a vertical line</li>
|
|
292
294
|
* </ul>
|
|
293
295
|
*
|
|
296
|
+
* <h3>CSS Shadow Parts</h3>
|
|
297
|
+
*
|
|
298
|
+
* <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.
|
|
299
|
+
* <br>
|
|
300
|
+
* The <code>ui5-tabcontainer</code> exposes the following CSS Shadow Parts:
|
|
301
|
+
* <ul>
|
|
302
|
+
* <li>content - Used to style the content of the component</li>
|
|
303
|
+
* </ul>
|
|
304
|
+
*
|
|
294
305
|
* <h3>Keyboard Handling</h3>
|
|
295
306
|
*
|
|
296
307
|
* <h4>Fast Navigation</h4>
|
|
@@ -595,11 +606,13 @@ class TabContainer extends UI5Element {
|
|
|
595
606
|
}
|
|
596
607
|
}
|
|
597
608
|
|
|
598
|
-
_handleResize() {
|
|
609
|
+
async _handleResize() {
|
|
599
610
|
if (this.responsivePopover && this.responsivePopover.opened) {
|
|
600
611
|
this.responsivePopover.close();
|
|
601
612
|
}
|
|
602
613
|
this._updateMediaRange();
|
|
614
|
+
|
|
615
|
+
await renderFinished(); // await the tab container to have rendered its representation of tabs
|
|
603
616
|
this._setItemsForStrip();
|
|
604
617
|
}
|
|
605
618
|
|
|
@@ -893,7 +906,11 @@ class TabContainer extends UI5Element {
|
|
|
893
906
|
const focusableTabs = [];
|
|
894
907
|
|
|
895
908
|
if (!this._getStartOverflow().hasAttribute("hidden")) {
|
|
896
|
-
|
|
909
|
+
if (this._getCustomStartOverflowBtnDOM()) {
|
|
910
|
+
focusableTabs.push(this._getCustomStartOverflowBtnDOM());
|
|
911
|
+
} else {
|
|
912
|
+
focusableTabs.push(this._getStartOverflowBtnDOM());
|
|
913
|
+
}
|
|
897
914
|
}
|
|
898
915
|
|
|
899
916
|
this._getTabs().forEach(tab => {
|
|
@@ -903,7 +920,11 @@ class TabContainer extends UI5Element {
|
|
|
903
920
|
});
|
|
904
921
|
|
|
905
922
|
if (!this._getEndOverflow().hasAttribute("hidden")) {
|
|
906
|
-
|
|
923
|
+
if (this._getCustomEndOverflowBtnDOM()) {
|
|
924
|
+
focusableTabs.push(this._getCustomEndOverflowBtnDOM());
|
|
925
|
+
} else {
|
|
926
|
+
focusableTabs.push(this._getEndOverflowBtnDOM());
|
|
927
|
+
}
|
|
907
928
|
}
|
|
908
929
|
|
|
909
930
|
return focusableTabs;
|
|
@@ -933,6 +954,22 @@ class TabContainer extends UI5Element {
|
|
|
933
954
|
return this.shadowRoot.querySelector(".ui5-tc__overflow--end");
|
|
934
955
|
}
|
|
935
956
|
|
|
957
|
+
_getCustomStartOverflowBtnDOM() {
|
|
958
|
+
return this.shadowRoot.querySelector("slot[name=startOverflowButton]");
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
_getStartOverflowBtnDOM() {
|
|
962
|
+
return this._getStartOverflow().querySelector("[ui5-button]");
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
_getCustomEndOverflowBtnDOM() {
|
|
966
|
+
return this.shadowRoot.querySelector("slot[name=overflowButton]");
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
_getEndOverflowBtnDOM() {
|
|
970
|
+
return this._getEndOverflow().querySelector("[ui5-button]");
|
|
971
|
+
}
|
|
972
|
+
|
|
936
973
|
async _respPopover() {
|
|
937
974
|
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
938
975
|
return staticAreaItem.querySelector(`#${this._id}-overflowMenu`);
|
|
@@ -1002,6 +1039,10 @@ class TabContainer extends UI5Element {
|
|
|
1002
1039
|
return TabContainer.i18nBundle.getText(TABCONTAINER_END_OVERFLOW);
|
|
1003
1040
|
}
|
|
1004
1041
|
|
|
1042
|
+
get popoverCancelButtonText() {
|
|
1043
|
+
return TabContainer.i18nBundle.getText(TABCONTAINER_POPOVER_CANCEL_BUTTON);
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1005
1046
|
get animate() {
|
|
1006
1047
|
return getAnimationMode() !== AnimationMode.None;
|
|
1007
1048
|
}
|
package/src/Table.hbs
CHANGED
|
@@ -5,13 +5,22 @@
|
|
|
5
5
|
|
|
6
6
|
<table border="0" cellspacing="0" cellpadding="0" @keydown="{{_onkeydown}}" role="table">
|
|
7
7
|
<thead>
|
|
8
|
-
<tr
|
|
8
|
+
<tr
|
|
9
|
+
id="{{_columnHeader.id}}"
|
|
10
|
+
role="row"
|
|
11
|
+
class="ui5-table-header-row"
|
|
12
|
+
aria-label="{{ariaLabelText}}"
|
|
13
|
+
tabindex="{{_columnHeader._tabIndex}}"
|
|
14
|
+
@click="{{_onColumnHeaderClick}}"
|
|
15
|
+
@keydown="{{_onColumnHeaderKeydown}}"
|
|
16
|
+
>
|
|
9
17
|
{{#if isMultiSelect}}
|
|
10
18
|
<th class="ui5-table-select-all-column" role="presentation" aria-hidden="true">
|
|
11
19
|
<ui5-checkbox class="ui5-table-select-all-checkbox"
|
|
12
20
|
?checked="{{_allRowsSelected}}"
|
|
13
21
|
@ui5-change="{{_selectAll}}"
|
|
14
22
|
aria-label="{{ariaLabelSelectAllText}}"
|
|
23
|
+
tabindex="-1"
|
|
15
24
|
>
|
|
16
25
|
</ui5-checkbox>
|
|
17
26
|
</th>
|
|
@@ -57,6 +66,7 @@
|
|
|
57
66
|
<td colspan="{{visibleColumnsCount}}">
|
|
58
67
|
<div growing-button>
|
|
59
68
|
<div
|
|
69
|
+
id="{{_id}}-growingButton"
|
|
60
70
|
tabindex="0"
|
|
61
71
|
role="button"
|
|
62
72
|
aria-labelledby="{{loadMoreAriaLabelledBy}}"
|
package/src/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/src/TableColumn.js
CHANGED
package/src/TableGroupRow.hbs
CHANGED
package/src/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/src/TableRow.hbs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
class="ui5-table-row-root"
|
|
3
3
|
tabindex="{{_tabIndex}}"
|
|
4
4
|
@focusin="{{_onfocusin}}"
|
|
5
|
+
@focusout="{{_onfocusout}}"
|
|
5
6
|
@click="{{_onrowclick}}"
|
|
6
7
|
@keydown="{{_onkeydown}}"
|
|
7
8
|
@keyup="{{_onkeyup}}"
|
|
@@ -26,6 +27,7 @@
|
|
|
26
27
|
?checked="{{this.selected}}"
|
|
27
28
|
aria-label="{{ariaLabelRowSelection}}"
|
|
28
29
|
@ui5-change="{{_handleSelection}}"
|
|
30
|
+
tabindex="-1"
|
|
29
31
|
>
|
|
30
32
|
</ui5-checkbox>
|
|
31
33
|
</td>
|