@ui5/webcomponents 0.0.0-323968e1b → 0.0.0-4180fe799
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 +717 -1
- package/README.md +144 -41
- package/csp.js +7 -0
- package/customI18n.js +50 -0
- package/dist/Assets-static.js +6 -0
- package/dist/Assets.js +3 -2
- package/dist/Avatar.js +224 -40
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +48 -28
- package/dist/Breadcrumbs.js +563 -0
- package/dist/BreadcrumbsItem.js +109 -0
- package/dist/BusyIndicator.js +172 -19
- package/dist/Button.js +180 -49
- package/dist/Calendar.js +345 -554
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +133 -64
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +47 -161
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +681 -0
- package/dist/CheckBox.js +154 -54
- package/dist/ColorPalette.js +493 -0
- package/dist/ColorPaletteItem.js +137 -0
- package/dist/ColorPalettePopover.js +219 -0
- package/dist/ColorPicker.js +524 -0
- package/dist/ComboBox.js +664 -107
- package/dist/ComboBoxFilters.js +8 -1
- package/dist/ComboBoxGroupItem.js +70 -0
- package/dist/ComboBoxItem.js +33 -30
- package/dist/CustomListItem.js +38 -9
- package/dist/DateComponentBase.js +170 -0
- package/dist/DatePicker.js +468 -384
- package/dist/DateRangePicker.js +328 -0
- package/dist/DateTimePicker.js +430 -0
- package/dist/DayPicker.js +513 -438
- package/dist/Dialog.js +501 -47
- package/dist/DurationPicker.js +312 -0
- package/dist/FileUploader.js +532 -0
- package/dist/GroupHeaderListItem.js +36 -8
- package/dist/Icon.js +221 -43
- package/dist/Input.js +796 -127
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -12
- package/dist/Link.js +143 -35
- package/dist/List.js +560 -73
- package/dist/ListItem.js +139 -30
- package/dist/ListItemBase.js +53 -9
- package/dist/MessageStrip.js +82 -93
- package/dist/MonthPicker.js +181 -184
- package/dist/MultiComboBox.js +625 -200
- package/dist/MultiComboBoxItem.js +43 -0
- package/dist/MultiInput.js +301 -0
- package/dist/Option.js +48 -5
- package/dist/Panel.js +123 -41
- package/dist/Popover.js +314 -234
- package/dist/Popup.js +382 -287
- package/dist/ProgressIndicator.js +235 -0
- package/dist/RadioButton.js +153 -66
- package/dist/RadioButtonGroup.js +53 -29
- package/dist/RangeSlider.js +769 -0
- package/dist/RatingIndicator.js +291 -0
- package/dist/ResponsivePopover.js +117 -61
- package/dist/SegmentedButton.js +290 -0
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +500 -110
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +46 -24
- package/dist/StepInput.js +684 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +146 -0
- package/dist/SuggestionListItem.js +76 -0
- package/dist/Switch.js +62 -48
- package/dist/Tab.js +184 -18
- package/dist/TabContainer.js +337 -235
- package/dist/TabSeparator.js +2 -1
- package/dist/Table.js +492 -39
- package/dist/TableCell.js +13 -15
- package/dist/TableColumn.js +18 -7
- package/dist/TableGroupRow.js +160 -0
- package/dist/TableRow.js +254 -31
- package/dist/TextArea.js +314 -38
- package/dist/TimePicker.js +166 -0
- package/dist/TimePickerBase.js +463 -0
- package/dist/TimeSelection.js +493 -0
- package/dist/Title.js +18 -10
- package/dist/Toast.js +63 -37
- package/dist/ToggleButton.js +21 -13
- package/dist/Token.js +87 -49
- package/dist/Tokenizer.js +250 -65
- package/dist/Tree.js +443 -0
- package/dist/TreeItem.js +168 -0
- package/dist/TreeListItem.js +332 -0
- package/dist/WheelSlider.js +435 -0
- package/dist/YearPicker.js +201 -258
- package/dist/api.json +6877 -0
- package/dist/features/ColorPaletteMoreColors.js +42 -0
- package/dist/features/InputElementsFormSupport.js +35 -1
- package/dist/features/InputSuggestions.js +294 -52
- 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 -0
- 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 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
- 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 -0
- 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_in.json +1 -0
- 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 -0
- 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 -0
- 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 -0
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
- package/dist/generated/i18n/i18n-defaults.js +2 -2
- package/dist/generated/json-imports/Themes-static.js +35 -0
- package/dist/generated/json-imports/Themes.js +23 -13
- package/dist/generated/json-imports/i18n-static.js +162 -0
- package/dist/generated/json-imports/i18n.js +113 -89
- package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
- package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
- package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -5
- package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
- package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
- package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
- package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
- package/dist/generated/templates/CardTemplate.lit.js +5 -8
- package/dist/generated/templates/CarouselTemplate.lit.js +16 -0
- package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
- package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
- package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
- package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
- package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -5
- package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
- package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
- package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
- package/dist/generated/templates/DialogTemplate.lit.js +9 -8
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
- package/dist/generated/templates/FileUploaderTemplate.lit.js +10 -0
- package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
- package/dist/generated/templates/IconTemplate.lit.js +6 -6
- package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -6
- package/dist/generated/templates/InputTemplate.lit.js +9 -8
- package/dist/generated/templates/LabelTemplate.lit.js +4 -4
- package/dist/generated/templates/LinkTemplate.lit.js +5 -5
- package/dist/generated/templates/ListItemTemplate.lit.js +13 -12
- package/dist/generated/templates/ListTemplate.lit.js +12 -8
- package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
- package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
- package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
- package/dist/generated/templates/PanelTemplate.lit.js +9 -6
- package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
- package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
- package/dist/generated/templates/PopupTemplate.lit.js +4 -4
- package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
- package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
- package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -11
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
- package/dist/generated/templates/SelectTemplate.lit.js +6 -4
- package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
- package/dist/generated/templates/SliderTemplate.lit.js +12 -0
- package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -18
- package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
- package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
- package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -8
- package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
- package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
- package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
- package/dist/generated/templates/TabTemplate.lit.js +4 -4
- package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
- package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
- package/dist/generated/templates/TableRowTemplate.lit.js +12 -6
- package/dist/generated/templates/TableTemplate.lit.js +13 -8
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
- package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
- package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
- package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
- package/dist/generated/templates/TitleTemplate.lit.js +10 -10
- package/dist/generated/templates/ToastTemplate.lit.js +5 -4
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
- package/dist/generated/templates/TokenTemplate.lit.js +7 -5
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
- package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
- package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
- package/dist/generated/templates/TreeTemplate.lit.js +8 -0
- package/dist/generated/templates/WheelSliderTemplate.lit.js +10 -0
- package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
- package/dist/generated/themes/Avatar.css.js +6 -7
- package/dist/generated/themes/AvatarGroup.css.js +8 -0
- package/dist/generated/themes/Badge.css.js +6 -7
- package/dist/generated/themes/Breadcrumbs.css.js +8 -0
- package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
- package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
- package/dist/generated/themes/BusyIndicator.css.js +6 -7
- package/dist/generated/themes/Button.css.js +6 -7
- package/dist/generated/themes/Button.ie11.css.js +8 -0
- package/dist/generated/themes/Calendar.css.js +6 -7
- package/dist/generated/themes/CalendarHeader.css.js +6 -7
- package/dist/generated/themes/Card.css.js +6 -7
- package/dist/generated/themes/CardHeader.css.js +8 -0
- package/dist/generated/themes/Carousel.css.js +8 -0
- package/dist/generated/themes/CheckBox.css.js +6 -7
- package/dist/generated/themes/ColorPalette.css.js +8 -0
- package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
- package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
- package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
- package/dist/generated/themes/ColorPicker.css.js +8 -0
- package/dist/generated/themes/ComboBox.css.js +6 -7
- package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
- package/dist/generated/themes/CustomListItem.css.js +6 -7
- package/dist/generated/themes/DatePicker.css.js +6 -7
- package/dist/generated/themes/DatePickerPopover.css.js +6 -7
- package/dist/generated/themes/DateRangePicker.css.js +8 -0
- package/dist/generated/themes/DateTimePicker.css.js +8 -0
- package/dist/generated/themes/DateTimePickerPopover.css.js +8 -0
- package/dist/generated/themes/DayPicker.css.js +6 -7
- package/dist/generated/themes/Dialog.css.js +6 -7
- package/dist/generated/themes/FileUploader.css.js +8 -0
- package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
- package/dist/generated/themes/GrowingButton.css.js +8 -0
- package/dist/generated/themes/Icon.css.js +6 -7
- package/dist/generated/themes/Input.css.js +6 -7
- package/dist/generated/themes/InputIcon.css.js +6 -7
- package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
- package/dist/generated/themes/Label.css.js +6 -7
- package/dist/generated/themes/Link.css.js +6 -7
- package/dist/generated/themes/List.css.js +6 -7
- package/dist/generated/themes/ListItem.css.js +6 -7
- package/dist/generated/themes/ListItemBase.css.js +6 -7
- package/dist/generated/themes/MessageStrip.css.js +6 -7
- package/dist/generated/themes/MonthPicker.css.js +6 -7
- package/dist/generated/themes/MultiComboBox.css.js +6 -7
- package/dist/generated/themes/MultiInput.css.js +8 -0
- package/dist/generated/themes/Panel.css.js +6 -7
- package/dist/generated/themes/Popover.css.js +6 -7
- package/dist/generated/themes/Popup.css.js +6 -7
- package/dist/generated/themes/PopupGlobal.css.js +8 -0
- package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
- package/dist/generated/themes/PopupsCommon.css.js +8 -0
- package/dist/generated/themes/ProgressIndicator.css.js +8 -0
- package/dist/generated/themes/RadioButton.css.js +6 -7
- package/dist/generated/themes/RatingIndicator.css.js +8 -0
- package/dist/generated/themes/ResponsivePopover.css.js +6 -7
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
- package/dist/generated/themes/SegmentedButton.css.js +8 -0
- package/dist/generated/themes/Select.css.js +6 -7
- package/dist/generated/themes/SelectPopover.css.js +8 -0
- package/dist/generated/themes/SliderBase.css.js +8 -0
- package/dist/generated/themes/StepInput.css.js +8 -0
- package/dist/generated/themes/Suggestions.css.js +8 -0
- package/dist/generated/themes/Switch.css.js +6 -7
- package/dist/generated/themes/Tab.css.js +6 -7
- package/dist/generated/themes/TabContainer.css.js +6 -7
- package/dist/generated/themes/TabInOverflow.css.js +8 -0
- package/dist/generated/themes/TabInStrip.css.js +8 -0
- package/dist/generated/themes/Table.css.js +6 -7
- package/dist/generated/themes/TableCell.css.js +6 -7
- package/dist/generated/themes/TableColumn.css.js +6 -7
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableRow.css.js +6 -7
- package/dist/generated/themes/TapHighlightColor.css.js +8 -0
- package/dist/generated/themes/TextArea.css.js +6 -7
- package/dist/generated/themes/TimePicker.css.js +8 -0
- package/dist/generated/themes/TimePickerPopover.css.js +8 -0
- package/dist/generated/themes/TimeSelection.css.js +8 -0
- package/dist/generated/themes/Title.css.js +6 -7
- package/dist/generated/themes/Toast.css.js +6 -7
- package/dist/generated/themes/ToggleButton.css.js +6 -7
- package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
- package/dist/generated/themes/Token.css.js +6 -7
- package/dist/generated/themes/Tokenizer.css.js +6 -7
- package/dist/generated/themes/Tree.css.js +8 -0
- package/dist/generated/themes/TreeListItem.css.js +8 -0
- package/dist/generated/themes/ValueStateMessage.css.js +8 -0
- package/dist/generated/themes/WheelSlider.css.js +8 -0
- package/dist/generated/themes/YearPicker.css.js +6 -7
- 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 -0
- 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 -0
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
- package/dist/i18n/messagebundle.properties +335 -0
- package/dist/i18n/messagebundle_ar.properties +224 -0
- package/dist/i18n/messagebundle_bg.properties +224 -0
- package/dist/i18n/messagebundle_ca.properties +224 -0
- package/dist/i18n/messagebundle_cs.properties +224 -0
- package/dist/i18n/messagebundle_cy.properties +224 -0
- package/dist/i18n/messagebundle_da.properties +224 -0
- package/dist/i18n/messagebundle_de.properties +224 -0
- package/dist/i18n/messagebundle_el.properties +224 -0
- package/dist/i18n/messagebundle_en.properties +224 -0
- package/dist/i18n/messagebundle_en_GB.properties +224 -0
- package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
- package/dist/i18n/messagebundle_es.properties +224 -0
- package/dist/i18n/messagebundle_es_MX.properties +224 -0
- package/dist/i18n/messagebundle_et.properties +224 -0
- package/dist/i18n/messagebundle_fi.properties +224 -0
- package/dist/i18n/messagebundle_fr.properties +224 -0
- package/dist/i18n/messagebundle_fr_CA.properties +224 -0
- package/dist/i18n/messagebundle_hi.properties +224 -0
- package/dist/i18n/messagebundle_hr.properties +224 -0
- package/dist/i18n/messagebundle_hu.properties +224 -0
- package/dist/i18n/messagebundle_id.properties +224 -0
- package/dist/i18n/messagebundle_in.properties +172 -0
- package/dist/i18n/messagebundle_it.properties +224 -0
- package/dist/i18n/messagebundle_iw.properties +224 -0
- package/dist/i18n/messagebundle_ja.properties +224 -0
- package/dist/i18n/messagebundle_kk.properties +224 -0
- package/dist/i18n/messagebundle_ko.properties +224 -0
- package/dist/i18n/messagebundle_lt.properties +224 -0
- package/dist/i18n/messagebundle_lv.properties +224 -0
- package/dist/i18n/messagebundle_ms.properties +224 -0
- package/dist/i18n/messagebundle_nl.properties +224 -0
- package/dist/i18n/messagebundle_no.properties +224 -0
- package/dist/i18n/messagebundle_pl.properties +224 -0
- package/dist/i18n/messagebundle_pt.properties +224 -0
- package/dist/i18n/messagebundle_pt_PT.properties +224 -0
- package/dist/i18n/messagebundle_ro.properties +224 -0
- package/dist/i18n/messagebundle_ru.properties +224 -0
- package/dist/i18n/messagebundle_sh.properties +224 -0
- package/dist/i18n/messagebundle_sk.properties +224 -0
- package/dist/i18n/messagebundle_sl.properties +224 -0
- package/dist/i18n/messagebundle_sv.properties +224 -0
- package/dist/i18n/messagebundle_th.properties +224 -0
- package/dist/i18n/messagebundle_tr.properties +224 -0
- package/dist/i18n/messagebundle_uk.properties +224 -0
- package/dist/i18n/messagebundle_vi.properties +224 -0
- package/dist/i18n/messagebundle_zh_CN.properties +224 -0
- package/dist/i18n/messagebundle_zh_TW.properties +224 -0
- package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
- package/dist/popup-utils/PopoverRegistry.js +55 -21
- package/dist/timepicker-utils/TimeSlider.js +103 -0
- package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
- package/dist/types/AvatarGroupType.js +43 -0
- package/dist/types/AvatarShape.js +1 -1
- package/dist/types/AvatarSize.js +1 -1
- package/dist/types/BreadcrumbsDesign.js +42 -0
- package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/dist/types/BusyIndicatorSize.js +1 -1
- package/dist/types/ButtonDesign.js +8 -1
- package/dist/types/CalendarSelectionMode.js +47 -0
- package/dist/types/CarouselArrowsPlacement.js +40 -0
- package/dist/types/GrowingMode.js +48 -0
- package/dist/types/InputType.js +7 -7
- package/dist/types/LinkDesign.js +1 -1
- package/dist/types/ListGrowingMode.js +15 -0
- package/dist/types/ListItemType.js +8 -1
- package/dist/types/ListMode.js +9 -1
- package/dist/types/ListSeparators.js +1 -1
- package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
- package/dist/types/PanelAccessibleRole.js +1 -1
- package/dist/types/PopoverHorizontalAlign.js +1 -1
- package/dist/types/PopoverPlacementType.js +2 -2
- package/dist/types/PopoverVerticalAlign.js +1 -2
- package/dist/types/Priority.js +55 -0
- package/dist/types/SemanticColor.js +1 -1
- package/dist/types/SwitchDesign.js +40 -0
- package/dist/types/TabContainerTabsPlacement.js +40 -0
- package/dist/types/TabLayout.js +40 -0
- package/dist/types/TableGrowingMode.js +15 -0
- package/dist/types/TableMode.js +47 -0
- package/dist/types/TableRowType.js +40 -0
- package/dist/types/TitleLevel.js +1 -1
- package/dist/types/ToastPlacement.js +1 -2
- package/dist/types/WrappingType.js +41 -0
- package/dist/webcomponentsjs/CHANGELOG.md +61 -0
- package/dist/webcomponentsjs/README.md +64 -47
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
- package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
- package/package-scripts.js +1 -0
- package/package.json +23 -8
- package/src/Assets-static.js +6 -0
- package/src/Assets.js +7 -0
- package/src/Avatar.hbs +20 -0
- package/src/Avatar.js +392 -0
- package/src/AvatarGroup.hbs +30 -0
- package/src/AvatarGroup.js +603 -0
- package/src/Badge.hbs +14 -0
- package/src/Badge.js +165 -0
- package/src/Breadcrumbs.hbs +42 -0
- package/src/Breadcrumbs.js +563 -0
- package/src/BreadcrumbsItem.js +109 -0
- package/src/BreadcrumbsPopover.hbs +28 -0
- package/src/BusyIndicator.hbs +32 -0
- package/src/BusyIndicator.js +269 -0
- package/src/Button.hbs +45 -0
- package/src/Button.js +463 -0
- package/src/Calendar.hbs +69 -0
- package/src/Calendar.js +489 -0
- package/src/CalendarDate.js +45 -0
- package/src/CalendarHeader.hbs +54 -0
- package/src/CalendarHeader.js +209 -0
- package/src/CalendarPart.js +111 -0
- package/src/Card.hbs +14 -0
- package/src/Card.js +160 -0
- package/src/CardHeader.hbs +35 -0
- package/src/CardHeader.js +288 -0
- package/src/Carousel.hbs +85 -0
- package/src/Carousel.js +681 -0
- package/src/CheckBox.hbs +44 -0
- package/src/CheckBox.js +424 -0
- package/src/ColorPalette.hbs +52 -0
- package/src/ColorPalette.js +493 -0
- package/src/ColorPaletteDialog.hbs +18 -0
- package/src/ColorPaletteItem.hbs +11 -0
- package/src/ColorPaletteItem.js +137 -0
- package/src/ColorPalettePopover.hbs +29 -0
- package/src/ColorPalettePopover.js +219 -0
- package/src/ColorPicker.hbs +98 -0
- package/src/ColorPicker.js +524 -0
- package/src/ComboBox.hbs +49 -0
- package/src/ComboBox.js +1041 -0
- package/src/ComboBoxFilters.js +40 -0
- package/src/ComboBoxGroupItem.js +70 -0
- package/src/ComboBoxItem.js +49 -0
- package/src/ComboBoxPopover.hbs +125 -0
- package/src/CustomListItem.hbs +5 -0
- package/src/CustomListItem.js +99 -0
- package/src/DateComponentBase.js +170 -0
- package/src/DatePicker.hbs +44 -0
- package/src/DatePicker.js +823 -0
- package/src/DatePickerPopover.hbs +63 -0
- package/src/DateRangePicker.js +328 -0
- package/src/DateTimePicker.js +430 -0
- package/src/DateTimePickerPopover.hbs +74 -0
- package/src/DayPicker.hbs +66 -0
- package/src/DayPicker.js +754 -0
- package/src/Dialog.hbs +35 -0
- package/src/Dialog.js +601 -0
- package/src/DurationPicker.js +312 -0
- package/src/FileUploader.hbs +40 -0
- package/src/FileUploader.js +532 -0
- package/src/FileUploaderPopover.hbs +25 -0
- package/src/GroupHeaderListItem.hbs +15 -0
- package/src/GroupHeaderListItem.js +94 -0
- package/src/Icon.hbs +25 -0
- package/src/Icon.js +373 -0
- package/src/Input.hbs +78 -0
- package/src/Input.js +1381 -0
- package/src/InputPopover.hbs +118 -0
- package/src/Interfaces.js +192 -0
- package/src/Label.hbs +13 -0
- package/src/Label.js +152 -0
- package/src/Link.hbs +20 -0
- package/src/Link.js +349 -0
- package/src/List.hbs +89 -0
- package/src/List.js +1056 -0
- package/src/ListItem.hbs +102 -0
- package/src/ListItem.js +371 -0
- package/src/ListItemBase.js +179 -0
- package/src/MessageStrip.hbs +34 -0
- package/src/MessageStrip.js +227 -0
- package/src/MonthPicker.hbs +29 -0
- package/src/MonthPicker.js +299 -0
- package/src/MultiComboBox.hbs +78 -0
- package/src/MultiComboBox.js +1091 -0
- package/src/MultiComboBoxItem.js +43 -0
- package/src/MultiComboBoxPopover.hbs +133 -0
- package/src/MultiInput.hbs +41 -0
- package/src/MultiInput.js +301 -0
- package/src/Option.js +115 -0
- package/src/Panel.hbs +63 -0
- package/src/Panel.js +462 -0
- package/src/Popover.hbs +25 -0
- package/src/Popover.js +786 -0
- package/src/Popup.hbs +34 -0
- package/src/Popup.js +567 -0
- package/src/PopupBlockLayer.hbs +7 -0
- package/src/ProgressIndicator.hbs +35 -0
- package/src/ProgressIndicator.js +235 -0
- package/src/RadioButton.hbs +33 -0
- package/src/RadioButton.js +494 -0
- package/src/RadioButtonGroup.js +205 -0
- package/src/RangeSlider.hbs +70 -0
- package/src/RangeSlider.js +769 -0
- package/src/RatingIndicator.hbs +33 -0
- package/src/RatingIndicator.js +291 -0
- package/src/ResponsivePopover.hbs +39 -0
- package/src/ResponsivePopover.js +206 -0
- package/src/SegmentedButton.hbs +17 -0
- package/src/SegmentedButton.js +290 -0
- package/src/SegmentedButtonItem.hbs +42 -0
- package/src/SegmentedButtonItem.js +109 -0
- package/src/Select.hbs +45 -0
- package/src/Select.js +834 -0
- package/src/SelectPopover.hbs +89 -0
- package/src/Slider.hbs +42 -0
- package/src/Slider.js +320 -0
- package/src/SliderBase.hbs +38 -0
- package/src/SliderBase.js +842 -0
- package/src/StandardListItem.hbs +44 -0
- package/src/StandardListItem.js +191 -0
- package/src/StepInput.hbs +80 -0
- package/src/StepInput.js +684 -0
- package/src/SuggestionGroupItem.js +64 -0
- package/src/SuggestionItem.js +146 -0
- package/src/SuggestionListItem.hbs +33 -0
- package/src/SuggestionListItem.js +76 -0
- package/src/Switch.hbs +50 -0
- package/src/Switch.js +262 -0
- package/src/Tab.hbs +3 -0
- package/src/Tab.js +334 -0
- package/src/TabContainer.hbs +93 -0
- package/src/TabContainer.js +679 -0
- package/src/TabContainerPopover.hbs +24 -0
- package/src/TabInOverflow.hbs +22 -0
- package/src/TabInStrip.hbs +43 -0
- package/src/TabSeparator.hbs +1 -0
- package/src/TabSeparator.js +44 -0
- package/src/Table.hbs +99 -0
- package/src/Table.js +761 -0
- package/src/TableCell.hbs +7 -0
- package/src/TableCell.js +88 -0
- package/src/TableColumn.hbs +8 -0
- package/src/TableColumn.js +136 -0
- package/src/TableGroupRow.hbs +12 -0
- package/src/TableGroupRow.js +160 -0
- package/src/TableRow.hbs +61 -0
- package/src/TableRow.js +388 -0
- package/src/TextArea.hbs +50 -0
- package/src/TextArea.js +691 -0
- package/src/TextAreaPopover.hbs +28 -0
- package/src/TimePicker.hbs +35 -0
- package/src/TimePicker.js +166 -0
- package/src/TimePickerBase.js +463 -0
- package/src/TimePickerPopover.hbs +34 -0
- package/src/TimeSelection.hbs +60 -0
- package/src/TimeSelection.js +493 -0
- package/src/Title.hbs +47 -0
- package/src/Title.js +132 -0
- package/src/Toast.hbs +13 -0
- package/src/Toast.js +243 -0
- package/src/ToggleButton.hbs +5 -0
- package/src/ToggleButton.js +84 -0
- package/src/Token.hbs +30 -0
- package/src/Token.js +219 -0
- package/src/Tokenizer.hbs +27 -0
- package/src/Tokenizer.js +414 -0
- package/src/TokenizerPopover.hbs +50 -0
- package/src/Tree.hbs +42 -0
- package/src/Tree.js +443 -0
- package/src/TreeItem.js +168 -0
- package/src/TreeListItem.hbs +48 -0
- package/src/TreeListItem.js +332 -0
- package/src/WheelSlider.hbs +48 -0
- package/src/WheelSlider.js +435 -0
- package/src/YearPicker.hbs +27 -0
- package/src/YearPicker.js +324 -0
- package/src/features/ColorPaletteMoreColors.js +42 -0
- package/src/features/InputElementsFormSupport.js +88 -0
- package/src/features/InputSuggestions.js +530 -0
- package/src/i18n/messagebundle.properties +335 -0
- package/src/i18n/messagebundle_ar.properties +224 -0
- package/src/i18n/messagebundle_bg.properties +224 -0
- package/src/i18n/messagebundle_ca.properties +224 -0
- package/src/i18n/messagebundle_cs.properties +224 -0
- package/src/i18n/messagebundle_cy.properties +224 -0
- package/src/i18n/messagebundle_da.properties +224 -0
- package/src/i18n/messagebundle_de.properties +224 -0
- package/src/i18n/messagebundle_el.properties +224 -0
- package/src/i18n/messagebundle_en.properties +224 -0
- package/src/i18n/messagebundle_en_GB.properties +224 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
- package/src/i18n/messagebundle_es.properties +224 -0
- package/src/i18n/messagebundle_es_MX.properties +224 -0
- package/src/i18n/messagebundle_et.properties +224 -0
- package/src/i18n/messagebundle_fi.properties +224 -0
- package/src/i18n/messagebundle_fr.properties +224 -0
- package/src/i18n/messagebundle_fr_CA.properties +224 -0
- package/src/i18n/messagebundle_hi.properties +224 -0
- package/src/i18n/messagebundle_hr.properties +224 -0
- package/src/i18n/messagebundle_hu.properties +224 -0
- package/src/i18n/messagebundle_id.properties +224 -0
- package/src/i18n/messagebundle_in.properties +172 -0
- package/src/i18n/messagebundle_it.properties +224 -0
- package/src/i18n/messagebundle_iw.properties +224 -0
- package/src/i18n/messagebundle_ja.properties +224 -0
- package/src/i18n/messagebundle_kk.properties +224 -0
- package/src/i18n/messagebundle_ko.properties +224 -0
- package/src/i18n/messagebundle_lt.properties +224 -0
- package/src/i18n/messagebundle_lv.properties +224 -0
- package/src/i18n/messagebundle_ms.properties +224 -0
- package/src/i18n/messagebundle_nl.properties +224 -0
- package/src/i18n/messagebundle_no.properties +224 -0
- package/src/i18n/messagebundle_pl.properties +224 -0
- package/src/i18n/messagebundle_pt.properties +224 -0
- package/src/i18n/messagebundle_pt_PT.properties +224 -0
- package/src/i18n/messagebundle_ro.properties +224 -0
- package/src/i18n/messagebundle_ru.properties +224 -0
- package/src/i18n/messagebundle_sh.properties +224 -0
- package/src/i18n/messagebundle_sk.properties +224 -0
- package/src/i18n/messagebundle_sl.properties +224 -0
- package/src/i18n/messagebundle_sv.properties +224 -0
- package/src/i18n/messagebundle_th.properties +224 -0
- package/src/i18n/messagebundle_tr.properties +224 -0
- package/src/i18n/messagebundle_uk.properties +224 -0
- package/src/i18n/messagebundle_vi.properties +224 -0
- package/src/i18n/messagebundle_zh_CN.properties +224 -0
- package/src/i18n/messagebundle_zh_TW.properties +224 -0
- package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
- package/src/popup-utils/PopoverRegistry.js +145 -0
- package/src/timepicker-utils/TimeSlider.js +103 -0
- package/src/types/AvatarColorScheme.js +104 -0
- package/src/types/AvatarGroupType.js +43 -0
- package/src/types/AvatarShape.js +41 -0
- package/src/types/AvatarSize.js +67 -0
- package/src/types/BreadcrumbsDesign.js +42 -0
- package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/src/types/BusyIndicatorSize.js +47 -0
- package/src/types/ButtonDesign.js +68 -0
- package/src/types/CalendarSelectionMode.js +47 -0
- package/src/types/CarouselArrowsPlacement.js +40 -0
- package/src/types/GrowingMode.js +48 -0
- package/src/types/InputType.js +68 -0
- package/src/types/LinkDesign.js +47 -0
- package/src/types/ListGrowingMode.js +15 -0
- package/src/types/ListItemType.js +47 -0
- package/src/types/ListMode.js +77 -0
- package/src/types/ListSeparators.js +46 -0
- package/src/types/MessageStripDesign.js +54 -0
- package/src/types/PanelAccessibleRole.js +48 -0
- package/src/types/PopoverHorizontalAlign.js +54 -0
- package/src/types/PopoverPlacementType.js +54 -0
- package/src/types/PopoverVerticalAlign.js +54 -0
- package/src/types/Priority.js +55 -0
- package/src/types/SemanticColor.js +61 -0
- package/src/types/SwitchDesign.js +40 -0
- package/src/types/TabContainerTabsPlacement.js +40 -0
- package/src/types/TabLayout.js +40 -0
- package/src/types/TableGrowingMode.js +15 -0
- package/src/types/TableMode.js +47 -0
- package/src/types/TableRowType.js +40 -0
- package/src/types/TitleLevel.js +68 -0
- package/src/types/ToastPlacement.js +91 -0
- package/src/types/WrappingType.js +41 -0
- package/dist/Timeline.js +0 -81
- package/dist/TimelineItem.js +0 -163
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
- package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
- package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
- package/dist/generated/themes/ComboBoxItem.css.js +0 -9
- package/dist/generated/themes/TabContainerPopup.css.js +0 -9
- package/dist/generated/themes/Timeline.css.js +0 -9
- package/dist/generated/themes/TimelineItem.css.js +0 -9
- package/dist/popup-utils/PopupUtils.js +0 -42
- package/dist/types/AvatarFitType.js +0 -40
- package/dist/webcomponentsjs/package.json +0 -46
- package/index.js +0 -2
package/dist/Select.js
CHANGED
|
@@ -6,21 +6,37 @@ import {
|
|
|
6
6
|
isDown,
|
|
7
7
|
isEnter,
|
|
8
8
|
isEscape,
|
|
9
|
+
isHome,
|
|
10
|
+
isEnd,
|
|
9
11
|
isShow,
|
|
10
|
-
|
|
12
|
+
isTabNext,
|
|
13
|
+
isTabPrevious,
|
|
14
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
15
|
+
import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
|
|
16
|
+
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
11
17
|
import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
|
|
12
|
-
import {
|
|
18
|
+
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
13
19
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
14
|
-
import "@ui5/webcomponents-icons/dist/
|
|
20
|
+
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
21
|
+
import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
15
22
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
23
|
+
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
16
24
|
import {
|
|
25
|
+
VALUE_STATE_SUCCESS,
|
|
26
|
+
VALUE_STATE_INFORMATION,
|
|
27
|
+
VALUE_STATE_ERROR,
|
|
28
|
+
VALUE_STATE_WARNING,
|
|
17
29
|
INPUT_SUGGESTIONS_TITLE,
|
|
30
|
+
LIST_ITEM_POSITION,
|
|
18
31
|
} from "./generated/i18n/i18n-defaults.js";
|
|
32
|
+
import Option from "./Option.js";
|
|
19
33
|
import Label from "./Label.js";
|
|
20
34
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
35
|
+
import Popover from "./Popover.js";
|
|
21
36
|
import List from "./List.js";
|
|
22
37
|
import StandardListItem from "./StandardListItem.js";
|
|
23
38
|
import Icon from "./Icon.js";
|
|
39
|
+
import Button from "./Button.js";
|
|
24
40
|
|
|
25
41
|
// Templates
|
|
26
42
|
import SelectTemplate from "./generated/templates/SelectTemplate.lit.js";
|
|
@@ -29,37 +45,71 @@ import SelectPopoverTemplate from "./generated/templates/SelectPopoverTemplate.l
|
|
|
29
45
|
// Styles
|
|
30
46
|
import selectCss from "./generated/themes/Select.css.js";
|
|
31
47
|
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
|
|
48
|
+
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
49
|
+
import SelectPopoverCss from "./generated/themes/SelectPopover.css.js";
|
|
32
50
|
|
|
33
51
|
/**
|
|
34
52
|
* @public
|
|
35
53
|
*/
|
|
36
54
|
const metadata = {
|
|
37
55
|
tag: "ui5-select",
|
|
56
|
+
languageAware: true,
|
|
57
|
+
managedSlots: true,
|
|
38
58
|
slots: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
|
|
39
59
|
|
|
40
60
|
/**
|
|
41
|
-
* Defines the
|
|
61
|
+
* Defines the component options.
|
|
62
|
+
*
|
|
42
63
|
* <br><br>
|
|
43
64
|
* <b>Note:</b> Only one selected option is allowed.
|
|
44
65
|
* If more than one option is defined as selected, the last one would be considered as the selected one.
|
|
66
|
+
*
|
|
45
67
|
* <br><br>
|
|
46
68
|
* <b>Note:</b> Use the <code>ui5-option</code> component to define the desired options.
|
|
47
|
-
* @type {
|
|
48
|
-
* @slot
|
|
69
|
+
* @type {sap.ui.webcomponents.main.ISelectOption[]}
|
|
70
|
+
* @slot options
|
|
49
71
|
* @public
|
|
50
72
|
*/
|
|
51
73
|
"default": {
|
|
52
74
|
propertyName: "options",
|
|
53
75
|
type: HTMLElement,
|
|
54
|
-
|
|
76
|
+
invalidateOnChildChange: true,
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
81
|
+
* <br><br>
|
|
82
|
+
*
|
|
83
|
+
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
84
|
+
* <br>
|
|
85
|
+
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
86
|
+
* when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
87
|
+
* @type {HTMLElement[]}
|
|
88
|
+
* @since 1.0.0-rc.9
|
|
89
|
+
* @slot
|
|
90
|
+
* @public
|
|
91
|
+
*/
|
|
92
|
+
valueStateMessage: {
|
|
93
|
+
type: HTMLElement,
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,
|
|
98
|
+
* when <code>name</code> property is set.
|
|
99
|
+
* @type {HTMLElement[]}
|
|
100
|
+
* @slot
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
formSupport: {
|
|
104
|
+
type: HTMLElement,
|
|
55
105
|
},
|
|
56
106
|
},
|
|
57
107
|
properties: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
|
|
58
108
|
|
|
59
109
|
/**
|
|
60
|
-
* Defines whether
|
|
110
|
+
* Defines whether the component is in disabled state.
|
|
61
111
|
* <br><br>
|
|
62
|
-
* <b>Note:</b> A disabled
|
|
112
|
+
* <b>Note:</b> A disabled component is noninteractive.
|
|
63
113
|
*
|
|
64
114
|
* @type {boolean}
|
|
65
115
|
* @defaultvalue false
|
|
@@ -70,12 +120,14 @@ const metadata = {
|
|
|
70
120
|
},
|
|
71
121
|
|
|
72
122
|
/**
|
|
73
|
-
* Determines the name with which the
|
|
74
|
-
* The value of the
|
|
123
|
+
* Determines the name with which the component will be submitted in an HTML form.
|
|
124
|
+
* The value of the component will be the value of the currently selected <code>ui5-option</code>.
|
|
75
125
|
*
|
|
126
|
+
* <br><br>
|
|
76
127
|
* <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
|
|
77
128
|
* <code>import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";</code>
|
|
78
129
|
*
|
|
130
|
+
* <br><br>
|
|
79
131
|
* <b>Note:</b> When set, a native <code>input</code> HTML element
|
|
80
132
|
* will be created inside the <code>ui5-select</code> so that it can be submitted as
|
|
81
133
|
* part of an HTML form. Do not use this property unless you need to submit a form.
|
|
@@ -89,10 +141,18 @@ const metadata = {
|
|
|
89
141
|
},
|
|
90
142
|
|
|
91
143
|
/**
|
|
92
|
-
* Defines the value state of
|
|
93
|
-
*
|
|
144
|
+
* Defines the value state of the component.
|
|
145
|
+
* <br><br>
|
|
146
|
+
* Available options are:
|
|
147
|
+
* <ul>
|
|
148
|
+
* <li><code>None</code></li>
|
|
149
|
+
* <li><code>Error</code></li>
|
|
150
|
+
* <li><code>Warning</code></li>
|
|
151
|
+
* <li><code>Success</code></li>
|
|
152
|
+
* <li><code>Information</code></li>
|
|
153
|
+
* </ul>
|
|
94
154
|
*
|
|
95
|
-
* @type {
|
|
155
|
+
* @type {ValueState}
|
|
96
156
|
* @defaultvalue "None"
|
|
97
157
|
* @public
|
|
98
158
|
*/
|
|
@@ -101,6 +161,43 @@ const metadata = {
|
|
|
101
161
|
defaultValue: ValueState.None,
|
|
102
162
|
},
|
|
103
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Defines whether the component is required.
|
|
166
|
+
*
|
|
167
|
+
* @since 1.0.0-rc.9
|
|
168
|
+
* @type {boolean}
|
|
169
|
+
* @defaultvalue false
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
required: {
|
|
173
|
+
type: Boolean,
|
|
174
|
+
},
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Sets the accessible aria name of the component.
|
|
178
|
+
*
|
|
179
|
+
* @type {String}
|
|
180
|
+
* @since 1.0.0-rc.9
|
|
181
|
+
* @public
|
|
182
|
+
* @since 1.0.0-rc.15
|
|
183
|
+
*/
|
|
184
|
+
accessibleName: {
|
|
185
|
+
type: String,
|
|
186
|
+
},
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Receives id(or many ids) of the elements that label the select.
|
|
190
|
+
*
|
|
191
|
+
* @type {String}
|
|
192
|
+
* @defaultvalue ""
|
|
193
|
+
* @public
|
|
194
|
+
* @since 1.0.0-rc.15
|
|
195
|
+
*/
|
|
196
|
+
accessibleNameRef: {
|
|
197
|
+
type: String,
|
|
198
|
+
defaultValue: "",
|
|
199
|
+
},
|
|
200
|
+
|
|
104
201
|
_text: {
|
|
105
202
|
type: String,
|
|
106
203
|
noAttribute: true,
|
|
@@ -118,6 +215,12 @@ const metadata = {
|
|
|
118
215
|
type: Boolean,
|
|
119
216
|
},
|
|
120
217
|
|
|
218
|
+
_listWidth: {
|
|
219
|
+
type: Integer,
|
|
220
|
+
defaultValue: 0,
|
|
221
|
+
noAttribute: true,
|
|
222
|
+
},
|
|
223
|
+
|
|
121
224
|
/**
|
|
122
225
|
* @private
|
|
123
226
|
*/
|
|
@@ -127,10 +230,10 @@ const metadata = {
|
|
|
127
230
|
},
|
|
128
231
|
events: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
|
|
129
232
|
/**
|
|
130
|
-
* Fired when the selected
|
|
233
|
+
* Fired when the selected option changes.
|
|
131
234
|
*
|
|
132
235
|
* @event
|
|
133
|
-
* @param {HTMLElement}
|
|
236
|
+
* @param {HTMLElement} selectedOption the selected option.
|
|
134
237
|
* @public
|
|
135
238
|
*/
|
|
136
239
|
change: {
|
|
@@ -144,16 +247,23 @@ const metadata = {
|
|
|
144
247
|
/**
|
|
145
248
|
* @class
|
|
146
249
|
*
|
|
250
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
147
251
|
* The <code>ui5-select</code> component is used to create a drop-down list.
|
|
148
252
|
* The items inside the <code>ui5-select</code> define the available options by using the <code>ui5-option</code> component.
|
|
149
253
|
*
|
|
150
254
|
* <h3>Keyboard Handling</h3>
|
|
151
255
|
* The <code>ui5-select</code> provides advanced keyboard handling.
|
|
152
|
-
* If the <code>ui5-select</code> is focused,
|
|
153
|
-
* you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.
|
|
154
|
-
* Once the drop-down is opened, you can use the <code>UP</code> and <code>DOWN</code> arrow keys
|
|
155
|
-
* to navigate through the available options and select one by pressing the <code>Space</code> or <code>Enter</code> keys.
|
|
156
256
|
* <br>
|
|
257
|
+
* <ul>
|
|
258
|
+
* <li>[F4, ALT+UP, ALT+DOWN, SPACE, ENTER] - Opens/closes the drop-down.</li>
|
|
259
|
+
* <li>[UP, DOWN] - If the drop-down is closed - changes selection to the next or the previous option. If the drop-down is opened - moves focus to the next or the previous option.</li>
|
|
260
|
+
* <li>[SPACE, ENTER] - If the drop-down is opened - selects the focused option.</li>
|
|
261
|
+
* <li>[ESC] - Closes the drop-down without changing the selection.</li>
|
|
262
|
+
* <li>[HOME] - Navigates to first option</li>
|
|
263
|
+
* <li>[END] - Navigates to the last option</li>
|
|
264
|
+
* </ul>
|
|
265
|
+
* <br>
|
|
266
|
+
*
|
|
157
267
|
* <h3>ES6 Module Import</h3>
|
|
158
268
|
* <code>import "@ui5/webcomponents/dist/Select";</code>
|
|
159
269
|
* <br>
|
|
@@ -189,7 +299,7 @@ class Select extends UI5Element {
|
|
|
189
299
|
}
|
|
190
300
|
|
|
191
301
|
static get staticAreaStyles() {
|
|
192
|
-
return ResponsivePopoverCommonCss;
|
|
302
|
+
return [ResponsivePopoverCommonCss, ValueStateMessageCss, SelectPopoverCss];
|
|
193
303
|
}
|
|
194
304
|
|
|
195
305
|
constructor() {
|
|
@@ -200,7 +310,8 @@ class Select extends UI5Element {
|
|
|
200
310
|
this._selectedIndexBeforeOpen = -1;
|
|
201
311
|
this._escapePressed = false;
|
|
202
312
|
this._lastSelectedOption = null;
|
|
203
|
-
this.
|
|
313
|
+
this._typedChars = "";
|
|
314
|
+
this._typingTimeoutID = -1;
|
|
204
315
|
}
|
|
205
316
|
|
|
206
317
|
onBeforeRendering() {
|
|
@@ -208,6 +319,18 @@ class Select extends UI5Element {
|
|
|
208
319
|
this._enableFormSupport();
|
|
209
320
|
}
|
|
210
321
|
|
|
322
|
+
onAfterRendering() {
|
|
323
|
+
this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
|
|
324
|
+
|
|
325
|
+
if (this._isPickerOpen) {
|
|
326
|
+
if (!this._listWidth) {
|
|
327
|
+
this._listWidth = this.responsivePopover.offsetWidth;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
this._attachRealDomRefs();
|
|
332
|
+
}
|
|
333
|
+
|
|
211
334
|
_onfocusin() {
|
|
212
335
|
this.focused = true;
|
|
213
336
|
}
|
|
@@ -217,71 +340,94 @@ class Select extends UI5Element {
|
|
|
217
340
|
}
|
|
218
341
|
|
|
219
342
|
get _isPickerOpen() {
|
|
220
|
-
return this.
|
|
343
|
+
return !!this.responsivePopover && this.responsivePopover.opened;
|
|
221
344
|
}
|
|
222
345
|
|
|
223
|
-
|
|
224
|
-
|
|
346
|
+
async _respPopover() {
|
|
347
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
348
|
+
return staticAreaItem.querySelector("[ui5-responsive-popover]");
|
|
225
349
|
}
|
|
226
350
|
|
|
227
351
|
/**
|
|
228
|
-
* Currently selected option
|
|
352
|
+
* Currently selected option.
|
|
229
353
|
* @readonly
|
|
230
354
|
* @type { ui5-option }
|
|
231
355
|
* @public
|
|
232
356
|
*/
|
|
233
357
|
get selectedOption() {
|
|
234
|
-
return this.
|
|
358
|
+
return this._filteredItems.find(option => option.selected);
|
|
235
359
|
}
|
|
236
360
|
|
|
237
|
-
_toggleRespPopover() {
|
|
361
|
+
async _toggleRespPopover() {
|
|
362
|
+
this._iconPressed = true;
|
|
363
|
+
this.responsivePopover = await this._respPopover();
|
|
238
364
|
if (this.disabled) {
|
|
239
365
|
return;
|
|
240
366
|
}
|
|
241
367
|
|
|
242
368
|
if (this._isPickerOpen) {
|
|
243
|
-
this.
|
|
369
|
+
this.responsivePopover.close();
|
|
244
370
|
} else {
|
|
245
|
-
this.
|
|
371
|
+
this.responsivePopover.showAt(this);
|
|
246
372
|
}
|
|
247
373
|
}
|
|
248
374
|
|
|
375
|
+
async _attachRealDomRefs() {
|
|
376
|
+
this.responsivePopover = await this._respPopover();
|
|
377
|
+
|
|
378
|
+
this.options.forEach(option => {
|
|
379
|
+
option._getRealDomRef = () => this.responsivePopover.querySelector(`*[data-ui5-stable=${option.stableDomRef}]`);
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
|
|
249
383
|
_syncSelection() {
|
|
250
|
-
let lastSelectedOptionIndex = -1
|
|
251
|
-
|
|
252
|
-
|
|
384
|
+
let lastSelectedOptionIndex = -1,
|
|
385
|
+
firstEnabledOptionIndex = -1;
|
|
386
|
+
const options = this._filteredItems;
|
|
387
|
+
const syncOpts = options.map((opt, index) => {
|
|
388
|
+
if (opt.selected || opt.textContent === this.value) {
|
|
389
|
+
// The second condition in the IF statement is added because of Angular Reactive Forms Support(Two way data binding)
|
|
253
390
|
lastSelectedOptionIndex = index;
|
|
254
391
|
}
|
|
392
|
+
if (firstEnabledOptionIndex === -1) {
|
|
393
|
+
firstEnabledOptionIndex = index;
|
|
394
|
+
}
|
|
255
395
|
|
|
256
396
|
opt.selected = false;
|
|
397
|
+
opt._focused = false;
|
|
257
398
|
|
|
258
399
|
return {
|
|
259
400
|
selected: false,
|
|
401
|
+
_focused: false,
|
|
260
402
|
icon: opt.icon,
|
|
261
403
|
value: opt.value,
|
|
262
404
|
textContent: opt.textContent,
|
|
263
405
|
id: opt._id,
|
|
406
|
+
stableDomRef: opt.stableDomRef,
|
|
264
407
|
};
|
|
265
408
|
});
|
|
266
409
|
|
|
267
|
-
if (lastSelectedOptionIndex > -1) {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
410
|
+
if (lastSelectedOptionIndex > -1 && !syncOpts[lastSelectedOptionIndex].disabled) {
|
|
411
|
+
syncOpts[lastSelectedOptionIndex].selected = true;
|
|
412
|
+
syncOpts[lastSelectedOptionIndex]._focused = true;
|
|
413
|
+
options[lastSelectedOptionIndex].selected = true;
|
|
414
|
+
options[lastSelectedOptionIndex]._focused = true;
|
|
415
|
+
this._text = syncOpts[lastSelectedOptionIndex].textContent;
|
|
271
416
|
this._selectedIndex = lastSelectedOptionIndex;
|
|
272
417
|
} else {
|
|
273
418
|
this._text = "";
|
|
274
419
|
this._selectedIndex = -1;
|
|
420
|
+
if (syncOpts[firstEnabledOptionIndex]) {
|
|
421
|
+
syncOpts[firstEnabledOptionIndex].selected = true;
|
|
422
|
+
syncOpts[firstEnabledOptionIndex]._focused = true;
|
|
423
|
+
options[firstEnabledOptionIndex].selected = true;
|
|
424
|
+
options[firstEnabledOptionIndex]._focused = true;
|
|
425
|
+
this._selectedIndex = firstEnabledOptionIndex;
|
|
426
|
+
this._text = options[firstEnabledOptionIndex].textContent;
|
|
427
|
+
}
|
|
275
428
|
}
|
|
276
429
|
|
|
277
|
-
|
|
278
|
-
opts[0].selected = true;
|
|
279
|
-
this.options[0].selected = true;
|
|
280
|
-
this._selectedIndex = 0;
|
|
281
|
-
this._text = this.options[0].textContent;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
this._syncedOptions = opts;
|
|
430
|
+
this._syncedOptions = syncOpts;
|
|
285
431
|
}
|
|
286
432
|
|
|
287
433
|
_enableFormSupport() {
|
|
@@ -289,7 +435,7 @@ class Select extends UI5Element {
|
|
|
289
435
|
if (FormSupport) {
|
|
290
436
|
FormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {
|
|
291
437
|
nativeInput.disabled = element.disabled;
|
|
292
|
-
nativeInput.value = element._currentlySelectedOption.value;
|
|
438
|
+
nativeInput.value = element._currentlySelectedOption ? element._currentlySelectedOption.value : "";
|
|
293
439
|
});
|
|
294
440
|
} else if (this.name) {
|
|
295
441
|
console.warn(`In order for the "name" property to have effect, you should also: import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`); // eslint-disable-line
|
|
@@ -297,18 +443,99 @@ class Select extends UI5Element {
|
|
|
297
443
|
}
|
|
298
444
|
|
|
299
445
|
_onkeydown(event) {
|
|
446
|
+
const isTab = (isTabNext(event) || isTabPrevious(event));
|
|
447
|
+
|
|
448
|
+
if (isTab && this.responsivePopover && this.responsivePopover.opened) {
|
|
449
|
+
this.responsivePopover.close();
|
|
450
|
+
}
|
|
451
|
+
|
|
300
452
|
if (isShow(event)) {
|
|
453
|
+
event.preventDefault();
|
|
301
454
|
this._toggleRespPopover();
|
|
455
|
+
} else if (isSpace(event)) {
|
|
456
|
+
event.preventDefault();
|
|
457
|
+
} else if (isEscape(event) && this._isPickerOpen) {
|
|
458
|
+
this._escapePressed = true;
|
|
459
|
+
} else if (isHome(event)) {
|
|
460
|
+
this._handleHomeKey(event);
|
|
461
|
+
} else if (isEnd(event)) {
|
|
462
|
+
this._handleEndKey(event);
|
|
463
|
+
} else if (isEnter(event)) {
|
|
464
|
+
this._handleSelectionChange();
|
|
465
|
+
} else if (isUp(event) || isDown(event)) {
|
|
466
|
+
this._handleArrowNavigation(event);
|
|
302
467
|
}
|
|
468
|
+
}
|
|
303
469
|
|
|
304
|
-
|
|
305
|
-
|
|
470
|
+
_handleKeyboardNavigation(event) {
|
|
471
|
+
if (isEnter(event)) {
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
const typedCharacter = event.key.toLowerCase();
|
|
476
|
+
|
|
477
|
+
this._typedChars += typedCharacter;
|
|
478
|
+
|
|
479
|
+
// We check if we have more than one characters and they are all duplicate, we set the
|
|
480
|
+
// text to be the last input character (typedCharacter). If not, we set the text to be
|
|
481
|
+
// the whole input string.
|
|
482
|
+
|
|
483
|
+
const text = (/^(.)\1+$/i).test(this._typedChars) ? typedCharacter : this._typedChars;
|
|
484
|
+
|
|
485
|
+
clearTimeout(this._typingTimeoutID);
|
|
486
|
+
|
|
487
|
+
this._typingTimeoutID = setTimeout(() => {
|
|
488
|
+
this._typedChars = "";
|
|
489
|
+
this._typingTimeoutID = -1;
|
|
490
|
+
}, 1000);
|
|
491
|
+
|
|
492
|
+
this._selectTypedItem(text);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
_selectTypedItem(text) {
|
|
496
|
+
const currentIndex = this._selectedIndex;
|
|
497
|
+
const itemToSelect = this._searchNextItemByText(text);
|
|
498
|
+
|
|
499
|
+
if (itemToSelect) {
|
|
500
|
+
const nextIndex = this._getSelectedItemIndex(itemToSelect);
|
|
501
|
+
|
|
502
|
+
this._changeSelectedItem(this._selectedIndex, nextIndex);
|
|
503
|
+
|
|
504
|
+
if (currentIndex !== this._selectedIndex) {
|
|
505
|
+
this.itemSelectionAnnounce();
|
|
506
|
+
}
|
|
306
507
|
}
|
|
307
508
|
}
|
|
308
509
|
|
|
510
|
+
_searchNextItemByText(text) {
|
|
511
|
+
let orderedOptions = this._filteredItems.slice(0);
|
|
512
|
+
const optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);
|
|
513
|
+
const optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);
|
|
514
|
+
|
|
515
|
+
orderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);
|
|
516
|
+
|
|
517
|
+
return orderedOptions.find(option => option.textContent.toLowerCase().startsWith(text));
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
_handleHomeKey(event) {
|
|
521
|
+
event.preventDefault();
|
|
522
|
+
this._changeSelectedItem(this._selectedIndex, 0);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
_handleEndKey(event) {
|
|
526
|
+
const lastIndex = this._filteredItems.length - 1;
|
|
527
|
+
|
|
528
|
+
event.preventDefault();
|
|
529
|
+
this._changeSelectedItem(this._selectedIndex, lastIndex);
|
|
530
|
+
}
|
|
531
|
+
|
|
309
532
|
_onkeyup(event) {
|
|
310
|
-
if (isSpace(event)
|
|
311
|
-
this.
|
|
533
|
+
if (isSpace(event)) {
|
|
534
|
+
if (this._isPickerOpen) {
|
|
535
|
+
this._handleSelectionChange();
|
|
536
|
+
} else {
|
|
537
|
+
this._toggleRespPopover();
|
|
538
|
+
}
|
|
312
539
|
}
|
|
313
540
|
}
|
|
314
541
|
|
|
@@ -317,63 +544,78 @@ class Select extends UI5Element {
|
|
|
317
544
|
}
|
|
318
545
|
|
|
319
546
|
_select(index) {
|
|
320
|
-
this.
|
|
547
|
+
this._filteredItems[this._selectedIndex].selected = false;
|
|
321
548
|
this._selectedIndex = index;
|
|
322
|
-
this.
|
|
549
|
+
this._filteredItems[index].selected = true;
|
|
323
550
|
}
|
|
324
551
|
|
|
325
|
-
|
|
326
|
-
|
|
552
|
+
/**
|
|
553
|
+
* The user clicked on an item from the list
|
|
554
|
+
* @private
|
|
555
|
+
*/
|
|
556
|
+
_handleItemPress(event) {
|
|
557
|
+
const item = event.detail.item;
|
|
558
|
+
const selectedItemIndex = this._getSelectedItemIndex(item);
|
|
327
559
|
|
|
328
|
-
this.
|
|
329
|
-
this._toggleRespPopover();
|
|
560
|
+
this._handleSelectionChange(selectedItemIndex);
|
|
330
561
|
}
|
|
331
562
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
const li = this._respPopover.querySelector(`#${this._currentlySelectedOption._id}-li`);
|
|
563
|
+
_itemMousedown(event) {
|
|
564
|
+
// prevent actual focus of items
|
|
565
|
+
event.preventDefault();
|
|
566
|
+
}
|
|
340
567
|
|
|
341
|
-
|
|
342
|
-
|
|
568
|
+
_onclick(event) {
|
|
569
|
+
this.getFocusDomRef().focus();
|
|
570
|
+
this._toggleRespPopover();
|
|
343
571
|
}
|
|
344
572
|
|
|
345
|
-
|
|
346
|
-
|
|
573
|
+
/**
|
|
574
|
+
* The user selected an item with Enter or Space
|
|
575
|
+
* @private
|
|
576
|
+
*/
|
|
577
|
+
_handleSelectionChange(index = this._selectedIndex) {
|
|
578
|
+
this._select(index);
|
|
579
|
+
|
|
580
|
+
this._toggleRespPopover();
|
|
347
581
|
}
|
|
348
582
|
|
|
349
|
-
_handleArrowNavigation(event
|
|
583
|
+
_handleArrowNavigation(event) {
|
|
350
584
|
let nextIndex = -1;
|
|
585
|
+
const currentIndex = this._selectedIndex;
|
|
351
586
|
const isDownKey = isDown(event);
|
|
352
|
-
const isUpKey = isUp(event);
|
|
353
587
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
}
|
|
588
|
+
event.preventDefault();
|
|
589
|
+
if (isDownKey) {
|
|
590
|
+
nextIndex = this._getNextOptionIndex();
|
|
591
|
+
} else {
|
|
592
|
+
nextIndex = this._getPreviousOptionIndex();
|
|
593
|
+
}
|
|
361
594
|
|
|
362
|
-
|
|
363
|
-
this.options[nextIndex].selected = true;
|
|
364
|
-
this._selectedIndex = nextIndex === -1 ? this._selectedIndex : nextIndex;
|
|
595
|
+
this._changeSelectedItem(this._selectedIndex, nextIndex);
|
|
365
596
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
597
|
+
if (currentIndex !== this._selectedIndex) {
|
|
598
|
+
// Announce new item even if picker is opened.
|
|
599
|
+
// The aria-activedescendents attribute can't be used,
|
|
600
|
+
// because listitem elements are in different shadow dom
|
|
601
|
+
this.itemSelectionAnnounce();
|
|
369
602
|
}
|
|
603
|
+
}
|
|
370
604
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
}
|
|
605
|
+
_changeSelectedItem(oldIndex, newIndex) {
|
|
606
|
+
const options = this._filteredItems;
|
|
374
607
|
|
|
375
|
-
|
|
376
|
-
|
|
608
|
+
options[oldIndex].selected = false;
|
|
609
|
+
options[oldIndex]._focused = false;
|
|
610
|
+
|
|
611
|
+
options[newIndex].selected = true;
|
|
612
|
+
options[newIndex]._focused = true;
|
|
613
|
+
|
|
614
|
+
this._selectedIndex = newIndex;
|
|
615
|
+
|
|
616
|
+
if (!this._isPickerOpen) {
|
|
617
|
+
// arrow pressed on closed picker - do selection change
|
|
618
|
+
this._fireChangeEvent(options[newIndex]);
|
|
377
619
|
}
|
|
378
620
|
}
|
|
379
621
|
|
|
@@ -387,55 +629,203 @@ class Select extends UI5Element {
|
|
|
387
629
|
|
|
388
630
|
_beforeOpen() {
|
|
389
631
|
this._selectedIndexBeforeOpen = this._selectedIndex;
|
|
390
|
-
this._lastSelectedOption = this.
|
|
632
|
+
this._lastSelectedOption = this._filteredItems[this._selectedIndex];
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
_afterOpen() {
|
|
636
|
+
this.opened = true;
|
|
391
637
|
}
|
|
392
638
|
|
|
393
639
|
_afterClose() {
|
|
394
|
-
this.
|
|
640
|
+
this.opened = false;
|
|
641
|
+
this._iconPressed = false;
|
|
642
|
+
this._listWidth = 0;
|
|
395
643
|
|
|
396
644
|
if (this._escapePressed) {
|
|
397
645
|
this._select(this._selectedIndexBeforeOpen);
|
|
398
646
|
this._escapePressed = false;
|
|
399
|
-
} else if (this._lastSelectedOption !== this.
|
|
400
|
-
this.
|
|
401
|
-
this._lastSelectedOption = this.
|
|
647
|
+
} else if (this._lastSelectedOption !== this._filteredItems[this._selectedIndex]) {
|
|
648
|
+
this._fireChangeEvent(this._filteredItems[this._selectedIndex]);
|
|
649
|
+
this._lastSelectedOption = this._filteredItems[this._selectedIndex];
|
|
402
650
|
}
|
|
403
651
|
}
|
|
404
652
|
|
|
405
|
-
|
|
406
|
-
this.
|
|
653
|
+
_fireChangeEvent(selectedOption) {
|
|
654
|
+
this.fireEvent("change", { selectedOption });
|
|
655
|
+
|
|
656
|
+
// Angular two way data binding
|
|
657
|
+
this.selectedItem = selectedOption.textContent;
|
|
658
|
+
this.fireEvent("selected-item-changed");
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
get valueStateTextMappings() {
|
|
662
|
+
return {
|
|
663
|
+
"Success": Select.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
664
|
+
"Information": Select.i18nBundle.getText(VALUE_STATE_INFORMATION),
|
|
665
|
+
"Error": Select.i18nBundle.getText(VALUE_STATE_ERROR),
|
|
666
|
+
"Warning": Select.i18nBundle.getText(VALUE_STATE_WARNING),
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
get valueStateText() {
|
|
671
|
+
return this.valueStateTextMappings[this.valueState];
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
get hasValueState() {
|
|
675
|
+
return this.valueState !== ValueState.None;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
get valueStateTextId() {
|
|
679
|
+
return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
get isDisabled() {
|
|
683
|
+
return this.disabled || undefined;
|
|
407
684
|
}
|
|
408
685
|
|
|
409
686
|
get _headerTitleText() {
|
|
410
|
-
return
|
|
687
|
+
return Select.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
411
688
|
}
|
|
412
689
|
|
|
413
690
|
get _currentSelectedItem() {
|
|
414
|
-
return this.shadowRoot.querySelector(`#${this.
|
|
691
|
+
return this.shadowRoot.querySelector(`#${this._filteredItems[this._selectedIndex]._id}-li`);
|
|
415
692
|
}
|
|
416
693
|
|
|
417
694
|
get _currentlySelectedOption() {
|
|
418
|
-
return this.
|
|
695
|
+
return this._filteredItems[this._selectedIndex];
|
|
419
696
|
}
|
|
420
697
|
|
|
421
698
|
get tabIndex() {
|
|
422
|
-
return this.disabled
|
|
699
|
+
return this.disabled
|
|
700
|
+
|| (this.responsivePopover // Handles focus on Tab/Shift + Tab when the popover is opened
|
|
701
|
+
&& this.responsivePopover.opened) ? "-1" : "0";
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* This method is relevant for sap_horizon theme only
|
|
706
|
+
*/
|
|
707
|
+
get _valueStateMessageInputIcon() {
|
|
708
|
+
const iconPerValueState = {
|
|
709
|
+
Error: "error",
|
|
710
|
+
Warning: "alert",
|
|
711
|
+
Success: "sys-enter-2",
|
|
712
|
+
Information: "information",
|
|
713
|
+
};
|
|
714
|
+
|
|
715
|
+
return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
get classes() {
|
|
719
|
+
return {
|
|
720
|
+
popoverValueState: {
|
|
721
|
+
"ui5-valuestatemessage-root": true,
|
|
722
|
+
"ui5-valuestatemessage--success": this.valueState === ValueState.Success,
|
|
723
|
+
"ui5-valuestatemessage--error": this.valueState === ValueState.Error,
|
|
724
|
+
"ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
|
|
725
|
+
"ui5-valuestatemessage--information": this.valueState === ValueState.Information,
|
|
726
|
+
},
|
|
727
|
+
popover: {
|
|
728
|
+
"ui5-valuestatemessage-popover": this.hasValueState,
|
|
729
|
+
},
|
|
730
|
+
};
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
get styles() {
|
|
734
|
+
return {
|
|
735
|
+
popoverHeader: {
|
|
736
|
+
"max-width": `${this.offsetWidth}px`,
|
|
737
|
+
},
|
|
738
|
+
responsivePopoverHeader: {
|
|
739
|
+
"display": this._filteredItems.length && this._listWidth === 0 ? "none" : "inline-block",
|
|
740
|
+
"width": `${this._filteredItems.length ? this._listWidth : this.offsetWidth}px`,
|
|
741
|
+
},
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
get ariaLabelText() {
|
|
746
|
+
return getEffectiveAriaLabelText(this);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
get valueStateMessageText() {
|
|
750
|
+
return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
get shouldDisplayDefaultValueStateMessage() {
|
|
754
|
+
return !this.valueStateMessage.length && this.hasValueStateText;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
get hasValueStateText() {
|
|
758
|
+
return this.hasValueState && this.valueState !== ValueState.Success;
|
|
423
759
|
}
|
|
424
760
|
|
|
425
|
-
get
|
|
426
|
-
return
|
|
761
|
+
get shouldOpenValueStateMessagePopover() {
|
|
762
|
+
return this.focused && this.hasValueStateText && !this._iconPressed
|
|
763
|
+
&& !this._isPickerOpen && !this._isPhone;
|
|
427
764
|
}
|
|
428
765
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
766
|
+
get _isPhone() {
|
|
767
|
+
return isPhone();
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
get _filteredItems() {
|
|
771
|
+
return this.options.filter(option => !option.disabled);
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
itemSelectionAnnounce() {
|
|
775
|
+
let text;
|
|
776
|
+
const optionsCount = this._filteredItems.length;
|
|
777
|
+
const itemPositionText = Select.i18nBundle.getText(LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);
|
|
778
|
+
|
|
779
|
+
if (this.focused && this._currentlySelectedOption) {
|
|
780
|
+
text = `${this._currentlySelectedOption.textContent} ${this._isPickerOpen ? itemPositionText : ""}`;
|
|
781
|
+
|
|
782
|
+
announce(text, "Polite");
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
async openValueStatePopover() {
|
|
787
|
+
this.popover = await this._getPopover();
|
|
788
|
+
if (this.popover) {
|
|
789
|
+
this.popover.showAt(this);
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
closeValueStatePopover() {
|
|
794
|
+
this.popover && this.popover.close();
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
toggleValueStatePopover(open) {
|
|
798
|
+
if (open) {
|
|
799
|
+
this.openValueStatePopover();
|
|
800
|
+
} else {
|
|
801
|
+
this.closeValueStatePopover();
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
get selectedOptionIcon() {
|
|
806
|
+
return this.selectedOption && this.selectedOption.icon;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
async _getPopover() {
|
|
810
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
811
|
+
return staticAreaItem.querySelector("[ui5-popover]");
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
static get dependencies() {
|
|
815
|
+
return [
|
|
816
|
+
Option,
|
|
817
|
+
Label,
|
|
818
|
+
ResponsivePopover,
|
|
819
|
+
Popover,
|
|
820
|
+
List,
|
|
821
|
+
StandardListItem,
|
|
822
|
+
Icon,
|
|
823
|
+
Button,
|
|
824
|
+
];
|
|
825
|
+
}
|
|
437
826
|
|
|
438
|
-
|
|
827
|
+
static async onDefine() {
|
|
828
|
+
Select.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
439
829
|
}
|
|
440
830
|
}
|
|
441
831
|
|