@ui5/webcomponents 1.0.0-rc.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +550 -1
- package/README.md +144 -52
- package/csp.js +7 -0
- package/customI18n.js +50 -0
- package/dist/Assets-static.js +6 -0
- package/dist/Assets.js +2 -1
- package/dist/Avatar.js +190 -50
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +45 -19
- package/dist/Breadcrumbs.js +573 -0
- package/dist/BreadcrumbsItem.js +103 -0
- package/dist/BusyIndicator.js +121 -34
- package/dist/Button.js +110 -66
- package/dist/Calendar.js +324 -622
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +113 -59
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +38 -198
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +255 -96
- package/dist/CheckBox.js +140 -51
- 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 +356 -147
- package/dist/ComboBoxFilters.js +8 -1
- package/dist/ComboBoxGroupItem.js +70 -0
- package/dist/ComboBoxItem.js +11 -24
- package/dist/CustomListItem.js +36 -2
- package/dist/DateComponentBase.js +170 -0
- package/dist/DatePicker.js +265 -494
- package/dist/DateRangePicker.js +189 -305
- package/dist/DateTimePicker.js +96 -414
- package/dist/DayPicker.js +450 -647
- package/dist/Dialog.js +369 -43
- package/dist/DurationPicker.js +110 -512
- package/dist/FileUploader.js +74 -35
- package/dist/GroupHeaderListItem.js +22 -13
- package/dist/Icon.js +128 -43
- package/dist/Input.js +349 -158
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -12
- package/dist/Link.js +122 -29
- package/dist/List.js +377 -104
- package/dist/ListItem.js +62 -15
- package/dist/ListItemBase.js +29 -2
- package/dist/MessageStrip.js +48 -47
- package/dist/MonthPicker.js +173 -227
- package/dist/MultiComboBox.js +384 -148
- package/dist/MultiComboBoxItem.js +7 -2
- package/dist/MultiInput.js +55 -24
- package/dist/Option.js +48 -5
- package/dist/Panel.js +64 -74
- package/dist/Popover.js +195 -80
- package/dist/Popup.js +158 -64
- package/dist/ProgressIndicator.js +28 -20
- package/dist/RadioButton.js +126 -43
- package/dist/RadioButtonGroup.js +53 -29
- package/dist/RangeSlider.js +769 -0
- package/dist/RatingIndicator.js +27 -37
- package/dist/ResponsivePopover.js +57 -43
- package/dist/SegmentedButton.js +102 -68
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +278 -119
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +35 -9
- package/dist/StepInput.js +684 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +13 -26
- package/dist/SuggestionListItem.js +17 -6
- package/dist/Switch.js +55 -34
- package/dist/Tab.js +47 -26
- package/dist/TabContainer.js +98 -38
- package/dist/TabSeparator.js +1 -0
- package/dist/Table.js +474 -22
- package/dist/TableCell.js +11 -9
- package/dist/TableColumn.js +13 -3
- package/dist/TableGroupRow.js +160 -0
- package/dist/TableRow.js +210 -11
- package/dist/TextArea.js +86 -46
- package/dist/TimePicker.js +28 -743
- package/dist/TimePickerBase.js +463 -0
- package/dist/TimeSelection.js +493 -0
- package/dist/Title.js +16 -9
- package/dist/Toast.js +19 -8
- package/dist/ToggleButton.js +21 -8
- package/dist/Token.js +34 -18
- package/dist/Tokenizer.js +75 -42
- package/dist/Tree.js +97 -41
- package/dist/TreeItem.js +44 -9
- package/dist/TreeListItem.js +88 -4
- package/dist/WheelSlider.js +60 -60
- package/dist/YearPicker.js +188 -284
- package/dist/api.json +6871 -1
- package/dist/features/ColorPaletteMoreColors.js +42 -0
- package/dist/features/InputElementsFormSupport.js +0 -1
- package/dist/features/InputSuggestions.js +137 -45
- 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 -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 -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 -19
- 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 -16
- package/dist/generated/templates/BadgeTemplate.lit.js +5 -13
- 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 -13
- package/dist/generated/templates/ButtonTemplate.lit.js +6 -13
- package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -11
- package/dist/generated/templates/CalendarTemplate.lit.js +4 -11
- package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
- package/dist/generated/templates/CardTemplate.lit.js +5 -17
- package/dist/generated/templates/CarouselTemplate.lit.js +13 -19
- package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -14
- 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 -25
- package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -14
- package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -20
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -13
- package/dist/generated/templates/DatePickerTemplate.lit.js +6 -13
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -19
- package/dist/generated/templates/DayPickerTemplate.lit.js +13 -19
- package/dist/generated/templates/DialogTemplate.lit.js +9 -14
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +7 -14
- package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -14
- package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -11
- package/dist/generated/templates/IconTemplate.lit.js +6 -13
- package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -31
- package/dist/generated/templates/InputTemplate.lit.js +9 -15
- package/dist/generated/templates/LabelTemplate.lit.js +4 -11
- package/dist/generated/templates/LinkTemplate.lit.js +5 -12
- package/dist/generated/templates/ListItemTemplate.lit.js +13 -20
- package/dist/generated/templates/ListTemplate.lit.js +12 -16
- package/dist/generated/templates/MessageStripTemplate.lit.js +8 -15
- package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -13
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -27
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -16
- package/dist/generated/templates/MultiInputTemplate.lit.js +13 -19
- package/dist/generated/templates/PanelTemplate.lit.js +9 -14
- package/dist/generated/templates/PopoverTemplate.lit.js +9 -16
- package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +4 -11
- package/dist/generated/templates/PopupTemplate.lit.js +4 -11
- package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +14 -17
- package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -14
- package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +11 -16
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -21
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -27
- package/dist/generated/templates/SelectTemplate.lit.js +6 -12
- 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 -27
- package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +24 -29
- package/dist/generated/templates/SwitchTemplate.lit.js +8 -13
- package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -13
- package/dist/generated/templates/TabContainerTemplate.lit.js +16 -23
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
- package/dist/generated/templates/TabInStripTemplate.lit.js +8 -17
- package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -11
- package/dist/generated/templates/TabTemplate.lit.js +4 -11
- package/dist/generated/templates/TableCellTemplate.lit.js +4 -11
- package/dist/generated/templates/TableColumnTemplate.lit.js +4 -11
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
- package/dist/generated/templates/TableRowTemplate.lit.js +12 -18
- package/dist/generated/templates/TableTemplate.lit.js +13 -15
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -15
- package/dist/generated/templates/TextAreaTemplate.lit.js +8 -15
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -15
- package/dist/generated/templates/TimePickerTemplate.lit.js +6 -13
- package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
- package/dist/generated/templates/TitleTemplate.lit.js +10 -17
- package/dist/generated/templates/ToastTemplate.lit.js +5 -11
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -13
- package/dist/generated/templates/TokenTemplate.lit.js +7 -14
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +9 -16
- package/dist/generated/templates/TokenizerTemplate.lit.js +6 -13
- package/dist/generated/templates/TreeListItemTemplate.lit.js +18 -24
- package/dist/generated/templates/TreeTemplate.lit.js +5 -12
- package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -14
- package/dist/generated/templates/YearPickerTemplate.lit.js +6 -13
- package/dist/generated/themes/Avatar.css.js +5 -5
- package/dist/generated/themes/AvatarGroup.css.js +8 -0
- package/dist/generated/themes/Badge.css.js +5 -5
- 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 +5 -5
- package/dist/generated/themes/Button.css.js +5 -5
- package/dist/generated/themes/Button.ie11.css.js +8 -0
- package/dist/generated/themes/Calendar.css.js +5 -5
- package/dist/generated/themes/CalendarHeader.css.js +5 -5
- package/dist/generated/themes/Card.css.js +5 -5
- package/dist/generated/themes/CardHeader.css.js +8 -0
- package/dist/generated/themes/Carousel.css.js +5 -5
- package/dist/generated/themes/CheckBox.css.js +5 -5
- 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 +5 -5
- package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
- package/dist/generated/themes/CustomListItem.css.js +5 -5
- package/dist/generated/themes/DatePicker.css.js +5 -5
- package/dist/generated/themes/DatePickerPopover.css.js +5 -5
- package/dist/generated/themes/DateRangePicker.css.js +5 -5
- package/dist/generated/themes/DateTimePicker.css.js +5 -5
- package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
- package/dist/generated/themes/DayPicker.css.js +5 -5
- package/dist/generated/themes/Dialog.css.js +5 -5
- package/dist/generated/themes/FileUploader.css.js +5 -5
- package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
- package/dist/generated/themes/GrowingButton.css.js +8 -0
- package/dist/generated/themes/Icon.css.js +5 -5
- package/dist/generated/themes/Input.css.js +5 -5
- package/dist/generated/themes/InputIcon.css.js +5 -5
- package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
- package/dist/generated/themes/Label.css.js +5 -5
- package/dist/generated/themes/Link.css.js +5 -5
- package/dist/generated/themes/List.css.js +5 -5
- package/dist/generated/themes/ListItem.css.js +5 -5
- package/dist/generated/themes/ListItemBase.css.js +5 -5
- package/dist/generated/themes/MessageStrip.css.js +5 -5
- package/dist/generated/themes/MonthPicker.css.js +5 -5
- package/dist/generated/themes/MultiComboBox.css.js +5 -5
- package/dist/generated/themes/MultiInput.css.js +5 -5
- package/dist/generated/themes/Panel.css.js +5 -5
- package/dist/generated/themes/Popover.css.js +5 -5
- package/dist/generated/themes/Popup.css.js +5 -5
- package/dist/generated/themes/PopupGlobal.css.js +8 -0
- package/dist/generated/themes/PopupStaticAreaStyles.css.js +5 -5
- package/dist/generated/themes/PopupsCommon.css.js +5 -5
- package/dist/generated/themes/ProgressIndicator.css.js +5 -5
- package/dist/generated/themes/RadioButton.css.js +5 -5
- package/dist/generated/themes/RatingIndicator.css.js +5 -5
- package/dist/generated/themes/ResponsivePopover.css.js +5 -5
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
- package/dist/generated/themes/SegmentedButton.css.js +5 -5
- package/dist/generated/themes/Select.css.js +5 -5
- package/dist/generated/themes/SelectPopover.css.js +5 -5
- 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 +5 -5
- package/dist/generated/themes/Tab.css.js +5 -5
- package/dist/generated/themes/TabContainer.css.js +5 -5
- package/dist/generated/themes/TabInOverflow.css.js +5 -5
- package/dist/generated/themes/TabInStrip.css.js +5 -5
- package/dist/generated/themes/Table.css.js +5 -5
- package/dist/generated/themes/TableCell.css.js +5 -5
- package/dist/generated/themes/TableColumn.css.js +5 -5
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableRow.css.js +5 -5
- package/dist/generated/themes/TapHighlightColor.css.js +8 -0
- package/dist/generated/themes/TextArea.css.js +5 -5
- package/dist/generated/themes/TimePicker.css.js +5 -5
- package/dist/generated/themes/TimePickerPopover.css.js +5 -5
- package/dist/generated/themes/TimeSelection.css.js +8 -0
- package/dist/generated/themes/Title.css.js +5 -5
- package/dist/generated/themes/Toast.css.js +5 -5
- package/dist/generated/themes/ToggleButton.css.js +5 -5
- package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
- package/dist/generated/themes/Token.css.js +5 -5
- package/dist/generated/themes/Tokenizer.css.js +5 -5
- package/dist/generated/themes/Tree.css.js +5 -5
- package/dist/generated/themes/TreeListItem.css.js +5 -5
- package/dist/generated/themes/ValueStateMessage.css.js +5 -5
- package/dist/generated/themes/WheelSlider.css.js +5 -5
- package/dist/generated/themes/YearPicker.css.js +5 -5
- 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 -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 +1 -1
- package/dist/popup-utils/PopoverRegistry.js +2 -4
- package/dist/timepicker-utils/TimeSlider.js +15 -13
- package/{src/types/AvatarBackgroundColor.js → dist/types/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 +3 -3
- 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 +1 -1
- package/dist/types/ListMode.js +1 -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 +1 -1
- package/dist/types/SemanticColor.js +1 -1
- package/dist/types/SwitchDesign.js +40 -0
- package/dist/types/TabContainerTabsPlacement.js +5 -5
- package/dist/types/TabLayout.js +1 -1
- 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 +18 -7
- package/src/Assets-static.js +6 -0
- package/src/Assets.js +2 -1
- package/src/Avatar.hbs +14 -3
- package/src/Avatar.js +190 -50
- package/src/AvatarGroup.hbs +30 -0
- package/src/AvatarGroup.js +603 -0
- package/src/Badge.hbs +7 -4
- package/src/Badge.js +45 -19
- package/src/Breadcrumbs.hbs +42 -0
- package/src/Breadcrumbs.js +573 -0
- package/src/BreadcrumbsItem.js +103 -0
- package/src/BreadcrumbsPopover.hbs +28 -0
- package/src/BusyIndicator.hbs +28 -14
- package/src/BusyIndicator.js +121 -34
- package/src/Button.hbs +5 -3
- package/src/Button.js +110 -66
- package/src/Calendar.hbs +53 -47
- package/src/Calendar.js +324 -622
- package/src/CalendarDate.js +45 -0
- package/src/CalendarHeader.hbs +29 -35
- package/src/CalendarHeader.js +113 -59
- package/src/CalendarPart.js +111 -0
- package/src/Card.hbs +7 -39
- package/src/Card.js +38 -198
- package/src/CardHeader.hbs +35 -0
- package/src/CardHeader.js +288 -0
- package/src/Carousel.hbs +23 -16
- package/src/Carousel.js +255 -96
- package/src/CheckBox.hbs +18 -7
- package/src/CheckBox.js +140 -51
- 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 +7 -2
- package/src/ComboBox.js +356 -147
- package/src/ComboBoxFilters.js +8 -1
- package/src/ComboBoxGroupItem.js +70 -0
- package/src/ComboBoxItem.js +11 -24
- package/src/ComboBoxPopover.hbs +26 -16
- package/src/CustomListItem.js +36 -2
- package/src/DateComponentBase.js +170 -0
- package/src/DatePicker.hbs +5 -3
- package/src/DatePicker.js +265 -494
- package/src/DatePickerPopover.hbs +22 -17
- package/src/DateRangePicker.js +189 -305
- package/src/DateTimePicker.js +96 -414
- package/src/DateTimePickerPopover.hbs +28 -52
- package/src/DayPicker.hbs +18 -12
- package/src/DayPicker.js +450 -647
- package/src/Dialog.hbs +22 -10
- package/src/Dialog.js +369 -43
- package/src/DurationPicker.js +110 -512
- package/src/FileUploader.hbs +3 -0
- package/src/FileUploader.js +74 -35
- package/src/FileUploaderPopover.hbs +2 -1
- package/src/GroupHeaderListItem.hbs +4 -4
- package/src/GroupHeaderListItem.js +22 -13
- package/src/Icon.hbs +5 -4
- package/src/Icon.js +128 -43
- package/src/Input.hbs +17 -6
- package/src/Input.js +349 -158
- package/src/InputPopover.hbs +11 -7
- package/src/Interfaces.js +192 -0
- package/src/Label.hbs +1 -1
- package/src/Label.js +27 -12
- package/src/Link.hbs +4 -2
- package/src/Link.js +122 -29
- package/src/List.hbs +76 -37
- package/src/List.js +377 -104
- package/src/ListItem.hbs +20 -7
- package/src/ListItem.js +62 -15
- package/src/ListItemBase.js +29 -2
- package/src/MessageStrip.hbs +16 -13
- package/src/MessageStrip.js +48 -47
- package/src/MonthPicker.hbs +6 -6
- package/src/MonthPicker.js +173 -227
- package/src/MultiComboBox.hbs +13 -8
- package/src/MultiComboBox.js +384 -148
- package/src/MultiComboBoxItem.js +7 -2
- package/src/MultiComboBoxPopover.hbs +42 -18
- package/src/MultiInput.hbs +2 -1
- package/src/MultiInput.js +55 -24
- package/src/Option.js +48 -5
- package/src/Panel.hbs +23 -16
- package/src/Panel.js +64 -74
- package/src/Popover.js +195 -80
- package/src/Popup.hbs +5 -0
- package/src/Popup.js +158 -64
- package/src/ProgressIndicator.hbs +7 -1
- package/src/ProgressIndicator.js +28 -20
- package/src/RadioButton.hbs +7 -4
- package/src/RadioButton.js +126 -43
- package/src/RadioButtonGroup.js +53 -29
- package/src/RangeSlider.hbs +70 -0
- package/src/RangeSlider.js +769 -0
- package/src/RatingIndicator.hbs +5 -3
- package/src/RatingIndicator.js +27 -37
- package/src/ResponsivePopover.hbs +13 -8
- package/src/ResponsivePopover.js +57 -43
- package/src/SegmentedButton.hbs +12 -5
- package/src/SegmentedButton.js +102 -68
- package/src/SegmentedButtonItem.hbs +42 -0
- package/src/SegmentedButtonItem.js +109 -0
- package/src/Select.hbs +26 -17
- package/src/Select.js +278 -119
- package/src/SelectPopover.hbs +27 -24
- 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 +17 -9
- package/src/StandardListItem.js +35 -9
- package/src/StepInput.hbs +80 -0
- package/src/StepInput.js +684 -0
- package/src/SuggestionGroupItem.js +64 -0
- package/src/SuggestionItem.js +13 -26
- package/src/SuggestionListItem.hbs +18 -10
- package/src/SuggestionListItem.js +17 -6
- package/src/Switch.hbs +19 -3
- package/src/Switch.js +55 -34
- package/src/Tab.js +47 -26
- package/src/TabContainer.hbs +43 -26
- package/src/TabContainer.js +98 -38
- package/src/TabContainerPopover.hbs +2 -1
- package/src/TabInStrip.hbs +1 -6
- package/src/TabSeparator.hbs +1 -1
- package/src/TabSeparator.js +1 -0
- package/src/Table.hbs +95 -25
- package/src/Table.js +474 -22
- package/src/TableCell.hbs +1 -0
- package/src/TableCell.js +11 -9
- package/src/TableColumn.hbs +2 -0
- package/src/TableColumn.js +13 -3
- package/src/TableGroupRow.hbs +12 -0
- package/src/TableGroupRow.js +160 -0
- package/src/TableRow.hbs +29 -2
- package/src/TableRow.js +210 -11
- package/src/TextArea.hbs +1 -3
- package/src/TextArea.js +86 -46
- package/src/TextAreaPopover.hbs +2 -1
- package/src/TimePicker.hbs +6 -3
- package/src/TimePicker.js +28 -743
- package/src/TimePickerBase.js +463 -0
- package/src/TimePickerPopover.hbs +28 -52
- package/src/TimeSelection.hbs +60 -0
- package/src/TimeSelection.js +493 -0
- package/src/Title.js +16 -9
- package/src/Toast.hbs +13 -11
- package/src/Toast.js +19 -8
- package/src/ToggleButton.js +21 -8
- package/src/Token.hbs +2 -0
- package/src/Token.js +34 -18
- package/src/Tokenizer.hbs +1 -0
- package/src/Tokenizer.js +75 -42
- package/src/TokenizerPopover.hbs +1 -1
- package/src/Tree.hbs +10 -2
- package/src/Tree.js +97 -41
- package/src/TreeItem.js +44 -9
- package/src/TreeListItem.hbs +15 -4
- package/src/TreeListItem.js +88 -4
- package/src/WheelSlider.hbs +17 -10
- package/src/WheelSlider.js +60 -60
- package/src/YearPicker.hbs +9 -7
- package/src/YearPicker.js +188 -284
- package/src/features/ColorPaletteMoreColors.js +42 -0
- package/src/features/InputElementsFormSupport.js +0 -1
- package/src/features/InputSuggestions.js +137 -45
- package/src/i18n/messagebundle.properties +144 -189
- package/src/i18n/messagebundle_ar.properties +99 -115
- package/src/i18n/messagebundle_bg.properties +99 -115
- package/src/i18n/messagebundle_ca.properties +99 -115
- package/src/i18n/messagebundle_cs.properties +99 -115
- package/src/i18n/messagebundle_cy.properties +224 -0
- package/src/i18n/messagebundle_da.properties +99 -115
- package/src/i18n/messagebundle_de.properties +99 -115
- package/src/i18n/messagebundle_el.properties +99 -115
- package/src/i18n/messagebundle_en.properties +99 -115
- package/src/i18n/messagebundle_en_GB.properties +224 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +99 -115
- package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +99 -115
- package/src/i18n/messagebundle_es.properties +99 -115
- package/src/i18n/messagebundle_es_MX.properties +224 -0
- package/src/i18n/messagebundle_et.properties +99 -115
- package/src/i18n/messagebundle_fi.properties +99 -115
- package/src/i18n/messagebundle_fr.properties +99 -115
- package/src/i18n/messagebundle_fr_CA.properties +224 -0
- package/src/i18n/messagebundle_hi.properties +99 -115
- package/src/i18n/messagebundle_hr.properties +99 -115
- package/src/i18n/messagebundle_hu.properties +99 -115
- package/src/i18n/messagebundle_id.properties +224 -0
- package/src/i18n/messagebundle_in.properties +172 -0
- package/src/i18n/messagebundle_it.properties +99 -115
- package/src/i18n/messagebundle_iw.properties +99 -115
- package/src/i18n/messagebundle_ja.properties +100 -116
- package/src/i18n/messagebundle_kk.properties +99 -115
- package/src/i18n/messagebundle_ko.properties +99 -115
- package/src/i18n/messagebundle_lt.properties +99 -115
- package/src/i18n/messagebundle_lv.properties +99 -115
- package/src/i18n/messagebundle_ms.properties +99 -115
- package/src/i18n/messagebundle_nl.properties +99 -115
- package/src/i18n/messagebundle_no.properties +99 -115
- package/src/i18n/messagebundle_pl.properties +99 -115
- package/src/i18n/messagebundle_pt.properties +99 -115
- package/src/i18n/messagebundle_pt_PT.properties +224 -0
- package/src/i18n/messagebundle_ro.properties +98 -114
- package/src/i18n/messagebundle_ru.properties +99 -115
- package/src/i18n/messagebundle_sh.properties +99 -115
- package/src/i18n/messagebundle_sk.properties +99 -115
- package/src/i18n/messagebundle_sl.properties +99 -115
- package/src/i18n/messagebundle_sv.properties +99 -115
- package/src/i18n/messagebundle_th.properties +99 -115
- package/src/i18n/messagebundle_tr.properties +99 -115
- package/src/i18n/messagebundle_uk.properties +101 -117
- package/src/i18n/messagebundle_vi.properties +99 -115
- package/src/i18n/messagebundle_zh_CN.properties +99 -115
- package/src/i18n/messagebundle_zh_TW.properties +99 -115
- package/src/popup-utils/OpenedPopupsRegistry.js +1 -1
- package/src/popup-utils/PopoverRegistry.js +2 -4
- package/src/timepicker-utils/TimeSlider.js +15 -13
- package/{dist/types/AvatarBackgroundColor.js → src/types/AvatarColorScheme.js} +9 -9
- package/src/types/AvatarGroupType.js +43 -0
- package/src/types/AvatarShape.js +1 -1
- package/src/types/AvatarSize.js +1 -1
- package/src/types/BreadcrumbsDesign.js +42 -0
- package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/src/types/BusyIndicatorSize.js +1 -1
- package/src/types/ButtonDesign.js +8 -1
- package/src/types/CalendarSelectionMode.js +47 -0
- package/src/types/CarouselArrowsPlacement.js +3 -3
- package/src/types/GrowingMode.js +48 -0
- package/src/types/InputType.js +7 -7
- package/src/types/LinkDesign.js +1 -1
- package/src/types/ListGrowingMode.js +15 -0
- package/src/types/ListItemType.js +1 -1
- package/src/types/ListMode.js +1 -1
- package/src/types/ListSeparators.js +1 -1
- package/src/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
- package/src/types/PanelAccessibleRole.js +1 -1
- package/src/types/PopoverHorizontalAlign.js +1 -1
- package/src/types/PopoverPlacementType.js +2 -2
- package/src/types/PopoverVerticalAlign.js +1 -2
- package/src/types/Priority.js +1 -1
- package/src/types/SemanticColor.js +1 -1
- package/src/types/SwitchDesign.js +40 -0
- package/src/types/TabContainerTabsPlacement.js +5 -5
- package/src/types/TabLayout.js +1 -1
- 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 +1 -1
- package/src/types/ToastPlacement.js +1 -2
- package/src/types/WrappingType.js +41 -0
- package/dist/Timeline.js +0 -99
- package/dist/TimelineItem.js +0 -156
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -14
- package/dist/generated/templates/DateRangePickerTemplate.lit.js +0 -16
- package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -17
- package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -16
- package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -19
- package/dist/generated/templates/TimelineTemplate.lit.js +0 -15
- package/dist/generated/themes/ComboBoxItem.css.js +0 -8
- package/dist/generated/themes/DurationPicker.css.js +0 -8
- package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
- package/dist/generated/themes/Timeline.css.js +0 -8
- package/dist/generated/themes/TimelineItem.css.js +0 -8
- package/dist/popup-utils/PopupUtils.js +0 -84
- package/dist/types/AvatarFitType.js +0 -40
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/src/ComboBoxItem.hbs +0 -0
- package/src/DateRangePicker.hbs +0 -1
- package/src/DurationPicker.hbs +0 -29
- package/src/DurationPickerPopover.hbs +0 -48
- package/src/Timeline.hbs +0 -9
- package/src/Timeline.js +0 -99
- package/src/TimelineItem.hbs +0 -39
- package/src/TimelineItem.js +0 -156
- package/src/popup-utils/PopupUtils.js +0 -84
- package/src/types/AvatarFitType.js +0 -40
package/dist/Select.js
CHANGED
|
@@ -6,25 +6,28 @@ import {
|
|
|
6
6
|
isDown,
|
|
7
7
|
isEnter,
|
|
8
8
|
isEscape,
|
|
9
|
+
isHome,
|
|
10
|
+
isEnd,
|
|
9
11
|
isShow,
|
|
10
12
|
isTabNext,
|
|
11
13
|
isTabPrevious,
|
|
12
14
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
15
|
+
import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
|
|
13
16
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
14
17
|
import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
|
|
15
18
|
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
16
19
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
17
|
-
import "@ui5/webcomponents-icons/dist/
|
|
20
|
+
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
18
21
|
import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
19
22
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
20
|
-
import "@ui5/webcomponents-icons/dist/
|
|
23
|
+
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
21
24
|
import {
|
|
22
25
|
VALUE_STATE_SUCCESS,
|
|
23
26
|
VALUE_STATE_INFORMATION,
|
|
24
27
|
VALUE_STATE_ERROR,
|
|
25
28
|
VALUE_STATE_WARNING,
|
|
26
29
|
INPUT_SUGGESTIONS_TITLE,
|
|
27
|
-
|
|
30
|
+
LIST_ITEM_POSITION,
|
|
28
31
|
} from "./generated/i18n/i18n-defaults.js";
|
|
29
32
|
import Option from "./Option.js";
|
|
30
33
|
import Label from "./Label.js";
|
|
@@ -55,7 +58,7 @@ const metadata = {
|
|
|
55
58
|
slots: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
|
|
56
59
|
|
|
57
60
|
/**
|
|
58
|
-
* Defines the
|
|
61
|
+
* Defines the component options.
|
|
59
62
|
*
|
|
60
63
|
* <br><br>
|
|
61
64
|
* <b>Note:</b> Only one selected option is allowed.
|
|
@@ -63,24 +66,24 @@ const metadata = {
|
|
|
63
66
|
*
|
|
64
67
|
* <br><br>
|
|
65
68
|
* <b>Note:</b> Use the <code>ui5-option</code> component to define the desired options.
|
|
66
|
-
* @type {
|
|
67
|
-
* @slot
|
|
69
|
+
* @type {sap.ui.webcomponents.main.ISelectOption[]}
|
|
70
|
+
* @slot options
|
|
68
71
|
* @public
|
|
69
72
|
*/
|
|
70
73
|
"default": {
|
|
71
74
|
propertyName: "options",
|
|
72
75
|
type: HTMLElement,
|
|
73
|
-
|
|
76
|
+
invalidateOnChildChange: true,
|
|
74
77
|
},
|
|
75
78
|
|
|
76
79
|
/**
|
|
77
|
-
* Defines the value state message that will be displayed as pop up under the
|
|
80
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
78
81
|
* <br><br>
|
|
79
82
|
*
|
|
80
83
|
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
81
84
|
* <br>
|
|
82
85
|
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
83
|
-
* when the
|
|
86
|
+
* when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
84
87
|
* @type {HTMLElement[]}
|
|
85
88
|
* @since 1.0.0-rc.9
|
|
86
89
|
* @slot
|
|
@@ -89,13 +92,24 @@ const metadata = {
|
|
|
89
92
|
valueStateMessage: {
|
|
90
93
|
type: HTMLElement,
|
|
91
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,
|
|
105
|
+
},
|
|
92
106
|
},
|
|
93
107
|
properties: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
|
|
94
108
|
|
|
95
109
|
/**
|
|
96
|
-
* Defines whether
|
|
110
|
+
* Defines whether the component is in disabled state.
|
|
97
111
|
* <br><br>
|
|
98
|
-
* <b>Note:</b> A disabled
|
|
112
|
+
* <b>Note:</b> A disabled component is noninteractive.
|
|
99
113
|
*
|
|
100
114
|
* @type {boolean}
|
|
101
115
|
* @defaultvalue false
|
|
@@ -106,8 +120,8 @@ const metadata = {
|
|
|
106
120
|
},
|
|
107
121
|
|
|
108
122
|
/**
|
|
109
|
-
* Determines the name with which the
|
|
110
|
-
* 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>.
|
|
111
125
|
*
|
|
112
126
|
* <br><br>
|
|
113
127
|
* <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
|
|
@@ -127,7 +141,7 @@ const metadata = {
|
|
|
127
141
|
},
|
|
128
142
|
|
|
129
143
|
/**
|
|
130
|
-
* Defines the value state of the
|
|
144
|
+
* Defines the value state of the component.
|
|
131
145
|
* <br><br>
|
|
132
146
|
* Available options are:
|
|
133
147
|
* <ul>
|
|
@@ -148,10 +162,10 @@ const metadata = {
|
|
|
148
162
|
},
|
|
149
163
|
|
|
150
164
|
/**
|
|
151
|
-
* Defines whether the
|
|
165
|
+
* Defines whether the component is required.
|
|
152
166
|
*
|
|
153
167
|
* @since 1.0.0-rc.9
|
|
154
|
-
* @type {
|
|
168
|
+
* @type {boolean}
|
|
155
169
|
* @defaultvalue false
|
|
156
170
|
* @public
|
|
157
171
|
*/
|
|
@@ -160,14 +174,14 @@ const metadata = {
|
|
|
160
174
|
},
|
|
161
175
|
|
|
162
176
|
/**
|
|
163
|
-
*
|
|
177
|
+
* Sets the accessible aria name of the component.
|
|
164
178
|
*
|
|
165
179
|
* @type {String}
|
|
166
180
|
* @since 1.0.0-rc.9
|
|
167
|
-
* @
|
|
168
|
-
* @
|
|
181
|
+
* @public
|
|
182
|
+
* @since 1.0.0-rc.15
|
|
169
183
|
*/
|
|
170
|
-
|
|
184
|
+
accessibleName: {
|
|
171
185
|
type: String,
|
|
172
186
|
},
|
|
173
187
|
|
|
@@ -176,10 +190,10 @@ const metadata = {
|
|
|
176
190
|
*
|
|
177
191
|
* @type {String}
|
|
178
192
|
* @defaultvalue ""
|
|
179
|
-
* @
|
|
180
|
-
* @since 1.0.0-rc.
|
|
193
|
+
* @public
|
|
194
|
+
* @since 1.0.0-rc.15
|
|
181
195
|
*/
|
|
182
|
-
|
|
196
|
+
accessibleNameRef: {
|
|
183
197
|
type: String,
|
|
184
198
|
defaultValue: "",
|
|
185
199
|
},
|
|
@@ -239,11 +253,17 @@ const metadata = {
|
|
|
239
253
|
*
|
|
240
254
|
* <h3>Keyboard Handling</h3>
|
|
241
255
|
* The <code>ui5-select</code> provides advanced keyboard handling.
|
|
242
|
-
* If the <code>ui5-select</code> is focused,
|
|
243
|
-
* you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.
|
|
244
|
-
* Once the drop-down is opened, you can use the <code>UP</code> and <code>DOWN</code> arrow keys
|
|
245
|
-
* to navigate through the available options and select one by pressing the <code>Space</code> or <code>Enter</code> keys.
|
|
246
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
|
+
*
|
|
247
267
|
* <h3>ES6 Module Import</h3>
|
|
248
268
|
* <code>import "@ui5/webcomponents/dist/Select";</code>
|
|
249
269
|
* <br>
|
|
@@ -290,7 +310,8 @@ class Select extends UI5Element {
|
|
|
290
310
|
this._selectedIndexBeforeOpen = -1;
|
|
291
311
|
this._escapePressed = false;
|
|
292
312
|
this._lastSelectedOption = null;
|
|
293
|
-
this.
|
|
313
|
+
this._typedChars = "";
|
|
314
|
+
this._typingTimeoutID = -1;
|
|
294
315
|
}
|
|
295
316
|
|
|
296
317
|
onBeforeRendering() {
|
|
@@ -301,9 +322,13 @@ class Select extends UI5Element {
|
|
|
301
322
|
onAfterRendering() {
|
|
302
323
|
this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
|
|
303
324
|
|
|
304
|
-
if (this._isPickerOpen
|
|
305
|
-
this._listWidth
|
|
325
|
+
if (this._isPickerOpen) {
|
|
326
|
+
if (!this._listWidth) {
|
|
327
|
+
this._listWidth = this.responsivePopover.offsetWidth;
|
|
328
|
+
}
|
|
306
329
|
}
|
|
330
|
+
|
|
331
|
+
this._attachRealDomRefs();
|
|
307
332
|
}
|
|
308
333
|
|
|
309
334
|
_onfocusin() {
|
|
@@ -315,11 +340,10 @@ class Select extends UI5Element {
|
|
|
315
340
|
}
|
|
316
341
|
|
|
317
342
|
get _isPickerOpen() {
|
|
318
|
-
return this.responsivePopover && this.responsivePopover.opened;
|
|
343
|
+
return !!this.responsivePopover && this.responsivePopover.opened;
|
|
319
344
|
}
|
|
320
345
|
|
|
321
346
|
async _respPopover() {
|
|
322
|
-
this._iconPressed = true;
|
|
323
347
|
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
324
348
|
return staticAreaItem.querySelector("[ui5-responsive-popover]");
|
|
325
349
|
}
|
|
@@ -327,14 +351,15 @@ class Select extends UI5Element {
|
|
|
327
351
|
/**
|
|
328
352
|
* Currently selected option.
|
|
329
353
|
* @readonly
|
|
330
|
-
* @type {
|
|
354
|
+
* @type { sap.ui.webcomponents.main.ISelectOption }
|
|
331
355
|
* @public
|
|
332
356
|
*/
|
|
333
357
|
get selectedOption() {
|
|
334
|
-
return this.
|
|
358
|
+
return this._filteredItems.find(option => option.selected);
|
|
335
359
|
}
|
|
336
360
|
|
|
337
361
|
async _toggleRespPopover() {
|
|
362
|
+
this._iconPressed = true;
|
|
338
363
|
this.responsivePopover = await this._respPopover();
|
|
339
364
|
if (this.disabled) {
|
|
340
365
|
return;
|
|
@@ -343,46 +368,66 @@ class Select extends UI5Element {
|
|
|
343
368
|
if (this._isPickerOpen) {
|
|
344
369
|
this.responsivePopover.close();
|
|
345
370
|
} else {
|
|
346
|
-
this.responsivePopover.
|
|
371
|
+
this.responsivePopover.showAt(this);
|
|
347
372
|
}
|
|
348
373
|
}
|
|
349
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
|
+
|
|
350
383
|
_syncSelection() {
|
|
351
|
-
let lastSelectedOptionIndex = -1
|
|
352
|
-
|
|
353
|
-
|
|
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)
|
|
354
390
|
lastSelectedOptionIndex = index;
|
|
355
391
|
}
|
|
392
|
+
if (firstEnabledOptionIndex === -1) {
|
|
393
|
+
firstEnabledOptionIndex = index;
|
|
394
|
+
}
|
|
356
395
|
|
|
357
396
|
opt.selected = false;
|
|
397
|
+
opt._focused = false;
|
|
358
398
|
|
|
359
399
|
return {
|
|
360
400
|
selected: false,
|
|
401
|
+
_focused: false,
|
|
361
402
|
icon: opt.icon,
|
|
362
403
|
value: opt.value,
|
|
363
404
|
textContent: opt.textContent,
|
|
364
405
|
id: opt._id,
|
|
406
|
+
stableDomRef: opt.stableDomRef,
|
|
365
407
|
};
|
|
366
408
|
});
|
|
367
409
|
|
|
368
|
-
if (lastSelectedOptionIndex > -1) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
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;
|
|
372
416
|
this._selectedIndex = lastSelectedOptionIndex;
|
|
373
417
|
} else {
|
|
374
418
|
this._text = "";
|
|
375
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
|
+
}
|
|
376
428
|
}
|
|
377
429
|
|
|
378
|
-
|
|
379
|
-
opts[0].selected = true;
|
|
380
|
-
this.options[0].selected = true;
|
|
381
|
-
this._selectedIndex = 0;
|
|
382
|
-
this._text = this.options[0].textContent;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
this._syncedOptions = opts;
|
|
430
|
+
this._syncedOptions = syncOpts;
|
|
386
431
|
}
|
|
387
432
|
|
|
388
433
|
_enableFormSupport() {
|
|
@@ -390,7 +435,7 @@ class Select extends UI5Element {
|
|
|
390
435
|
if (FormSupport) {
|
|
391
436
|
FormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {
|
|
392
437
|
nativeInput.disabled = element.disabled;
|
|
393
|
-
nativeInput.value = element._currentlySelectedOption.value;
|
|
438
|
+
nativeInput.value = element._currentlySelectedOption ? element._currentlySelectedOption.value : "";
|
|
394
439
|
});
|
|
395
440
|
} else if (this.name) {
|
|
396
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
|
|
@@ -407,20 +452,90 @@ class Select extends UI5Element {
|
|
|
407
452
|
if (isShow(event)) {
|
|
408
453
|
event.preventDefault();
|
|
409
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);
|
|
410
467
|
}
|
|
468
|
+
}
|
|
411
469
|
|
|
412
|
-
|
|
413
|
-
|
|
470
|
+
_handleKeyboardNavigation(event) {
|
|
471
|
+
if (isEnter(event)) {
|
|
472
|
+
return;
|
|
414
473
|
}
|
|
415
474
|
|
|
416
|
-
|
|
417
|
-
|
|
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
|
+
}
|
|
418
507
|
}
|
|
419
508
|
}
|
|
420
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
|
+
|
|
421
532
|
_onkeyup(event) {
|
|
422
|
-
if (isSpace(event)
|
|
423
|
-
this.
|
|
533
|
+
if (isSpace(event)) {
|
|
534
|
+
if (this._isPickerOpen) {
|
|
535
|
+
this._handleSelectionChange();
|
|
536
|
+
} else {
|
|
537
|
+
this._toggleRespPopover();
|
|
538
|
+
}
|
|
424
539
|
}
|
|
425
540
|
}
|
|
426
541
|
|
|
@@ -429,9 +544,9 @@ class Select extends UI5Element {
|
|
|
429
544
|
}
|
|
430
545
|
|
|
431
546
|
_select(index) {
|
|
432
|
-
this.
|
|
547
|
+
this._filteredItems[this._selectedIndex].selected = false;
|
|
433
548
|
this._selectedIndex = index;
|
|
434
|
-
this.
|
|
549
|
+
this._filteredItems[index].selected = true;
|
|
435
550
|
}
|
|
436
551
|
|
|
437
552
|
/**
|
|
@@ -441,62 +556,66 @@ class Select extends UI5Element {
|
|
|
441
556
|
_handleItemPress(event) {
|
|
442
557
|
const item = event.detail.item;
|
|
443
558
|
const selectedItemIndex = this._getSelectedItemIndex(item);
|
|
444
|
-
this._select(selectedItemIndex);
|
|
445
559
|
|
|
560
|
+
this._handleSelectionChange(selectedItemIndex);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
_itemMousedown(event) {
|
|
564
|
+
// prevent actual focus of items
|
|
565
|
+
event.preventDefault();
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
_onclick(event) {
|
|
569
|
+
this.getFocusDomRef().focus();
|
|
446
570
|
this._toggleRespPopover();
|
|
447
571
|
}
|
|
448
572
|
|
|
449
573
|
/**
|
|
450
|
-
* The user
|
|
574
|
+
* The user selected an item with Enter or Space
|
|
451
575
|
* @private
|
|
452
576
|
*/
|
|
453
|
-
_handleSelectionChange(
|
|
454
|
-
|
|
455
|
-
const selectedItemIndex = this._getSelectedItemIndex(item);
|
|
456
|
-
this._select(selectedItemIndex);
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
_applyFocusAfterOpen() {
|
|
460
|
-
if (!this._currentlySelectedOption) {
|
|
461
|
-
return;
|
|
462
|
-
}
|
|
577
|
+
_handleSelectionChange(index = this._selectedIndex) {
|
|
578
|
+
this._select(index);
|
|
463
579
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
li.parentElement._itemNavigation.currentIndex = this._selectedIndex;
|
|
467
|
-
li && li.focus();
|
|
580
|
+
this._toggleRespPopover();
|
|
468
581
|
}
|
|
469
582
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
583
|
+
_handleArrowNavigation(event) {
|
|
584
|
+
let nextIndex = -1;
|
|
585
|
+
const currentIndex = this._selectedIndex;
|
|
586
|
+
const isDownKey = isDown(event);
|
|
587
|
+
|
|
588
|
+
event.preventDefault();
|
|
589
|
+
if (isDownKey) {
|
|
590
|
+
nextIndex = this._getNextOptionIndex();
|
|
591
|
+
} else {
|
|
592
|
+
nextIndex = this._getPreviousOptionIndex();
|
|
473
593
|
}
|
|
474
594
|
|
|
475
|
-
|
|
476
|
-
|
|
595
|
+
this._changeSelectedItem(this._selectedIndex, nextIndex);
|
|
596
|
+
|
|
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();
|
|
477
602
|
}
|
|
478
603
|
}
|
|
479
604
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
const isDownKey = isDown(event);
|
|
483
|
-
const isUpKey = isUp(event);
|
|
605
|
+
_changeSelectedItem(oldIndex, newIndex) {
|
|
606
|
+
const options = this._filteredItems;
|
|
484
607
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
if (isDownKey) {
|
|
488
|
-
nextIndex = this._getNextOptionIndex();
|
|
489
|
-
} else {
|
|
490
|
-
nextIndex = this._getPreviousOptionIndex();
|
|
491
|
-
}
|
|
608
|
+
options[oldIndex].selected = false;
|
|
609
|
+
options[oldIndex]._focused = false;
|
|
492
610
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
this._selectedIndex = nextIndex === -1 ? this._selectedIndex : nextIndex;
|
|
611
|
+
options[newIndex].selected = true;
|
|
612
|
+
options[newIndex]._focused = true;
|
|
496
613
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
614
|
+
this._selectedIndex = newIndex;
|
|
615
|
+
|
|
616
|
+
if (!this._isPickerOpen) {
|
|
617
|
+
// arrow pressed on closed picker - do selection change
|
|
618
|
+
this._fireChangeEvent(options[newIndex]);
|
|
500
619
|
}
|
|
501
620
|
}
|
|
502
621
|
|
|
@@ -510,19 +629,24 @@ class Select extends UI5Element {
|
|
|
510
629
|
|
|
511
630
|
_beforeOpen() {
|
|
512
631
|
this._selectedIndexBeforeOpen = this._selectedIndex;
|
|
513
|
-
this._lastSelectedOption = this.
|
|
632
|
+
this._lastSelectedOption = this._filteredItems[this._selectedIndex];
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
_afterOpen() {
|
|
636
|
+
this.opened = true;
|
|
514
637
|
}
|
|
515
638
|
|
|
516
639
|
_afterClose() {
|
|
640
|
+
this.opened = false;
|
|
517
641
|
this._iconPressed = false;
|
|
518
642
|
this._listWidth = 0;
|
|
519
643
|
|
|
520
644
|
if (this._escapePressed) {
|
|
521
645
|
this._select(this._selectedIndexBeforeOpen);
|
|
522
646
|
this._escapePressed = false;
|
|
523
|
-
} else if (this._lastSelectedOption !== this.
|
|
524
|
-
this._fireChangeEvent(this.
|
|
525
|
-
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];
|
|
526
650
|
}
|
|
527
651
|
}
|
|
528
652
|
|
|
@@ -530,18 +654,16 @@ class Select extends UI5Element {
|
|
|
530
654
|
this.fireEvent("change", { selectedOption });
|
|
531
655
|
|
|
532
656
|
// Angular two way data binding
|
|
533
|
-
this.selectedItem = selectedOption;
|
|
657
|
+
this.selectedItem = selectedOption.textContent;
|
|
534
658
|
this.fireEvent("selected-item-changed");
|
|
535
659
|
}
|
|
536
660
|
|
|
537
661
|
get valueStateTextMappings() {
|
|
538
|
-
const i18nBundle = this.i18nBundle;
|
|
539
|
-
|
|
540
662
|
return {
|
|
541
|
-
"Success": i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
542
|
-
"Information": i18nBundle.getText(VALUE_STATE_INFORMATION),
|
|
543
|
-
"Error": i18nBundle.getText(VALUE_STATE_ERROR),
|
|
544
|
-
"Warning": i18nBundle.getText(VALUE_STATE_WARNING),
|
|
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),
|
|
545
667
|
};
|
|
546
668
|
}
|
|
547
669
|
|
|
@@ -561,20 +683,16 @@ class Select extends UI5Element {
|
|
|
561
683
|
return this.disabled || undefined;
|
|
562
684
|
}
|
|
563
685
|
|
|
564
|
-
get selectRoleDescription() {
|
|
565
|
-
return this.i18nBundle.getText(SELECT_ROLE_DESCRIPTION);
|
|
566
|
-
}
|
|
567
|
-
|
|
568
686
|
get _headerTitleText() {
|
|
569
|
-
return
|
|
687
|
+
return Select.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
570
688
|
}
|
|
571
689
|
|
|
572
690
|
get _currentSelectedItem() {
|
|
573
|
-
return this.shadowRoot.querySelector(`#${this.
|
|
691
|
+
return this.shadowRoot.querySelector(`#${this._filteredItems[this._selectedIndex]._id}-li`);
|
|
574
692
|
}
|
|
575
693
|
|
|
576
694
|
get _currentlySelectedOption() {
|
|
577
|
-
return this.
|
|
695
|
+
return this._filteredItems[this._selectedIndex];
|
|
578
696
|
}
|
|
579
697
|
|
|
580
698
|
get tabIndex() {
|
|
@@ -583,6 +701,20 @@ class Select extends UI5Element {
|
|
|
583
701
|
&& this.responsivePopover.opened) ? "-1" : "0";
|
|
584
702
|
}
|
|
585
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
|
+
|
|
586
718
|
get classes() {
|
|
587
719
|
return {
|
|
588
720
|
popoverValueState: {
|
|
@@ -592,17 +724,20 @@ class Select extends UI5Element {
|
|
|
592
724
|
"ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
|
|
593
725
|
"ui5-valuestatemessage--information": this.valueState === ValueState.Information,
|
|
594
726
|
},
|
|
727
|
+
popover: {
|
|
728
|
+
"ui5-valuestatemessage-popover": this.hasValueState,
|
|
729
|
+
},
|
|
595
730
|
};
|
|
596
731
|
}
|
|
597
732
|
|
|
598
733
|
get styles() {
|
|
599
734
|
return {
|
|
600
735
|
popoverHeader: {
|
|
601
|
-
"width": `${this.offsetWidth}px`,
|
|
736
|
+
"max-width": `${this.offsetWidth}px`,
|
|
602
737
|
},
|
|
603
738
|
responsivePopoverHeader: {
|
|
604
|
-
"display": this.
|
|
605
|
-
"width": `${this.
|
|
739
|
+
"display": this._filteredItems.length && this._listWidth === 0 ? "none" : "inline-block",
|
|
740
|
+
"width": `${this._filteredItems.length ? this._listWidth : this.offsetWidth}px`,
|
|
606
741
|
},
|
|
607
742
|
};
|
|
608
743
|
}
|
|
@@ -632,10 +767,26 @@ class Select extends UI5Element {
|
|
|
632
767
|
return isPhone();
|
|
633
768
|
}
|
|
634
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
|
+
|
|
635
786
|
async openValueStatePopover() {
|
|
636
787
|
this.popover = await this._getPopover();
|
|
637
788
|
if (this.popover) {
|
|
638
|
-
this.popover.
|
|
789
|
+
this.popover.showAt(this);
|
|
639
790
|
}
|
|
640
791
|
}
|
|
641
792
|
|
|
@@ -651,6 +802,10 @@ class Select extends UI5Element {
|
|
|
651
802
|
}
|
|
652
803
|
}
|
|
653
804
|
|
|
805
|
+
get selectedOptionIcon() {
|
|
806
|
+
return this.selectedOption && this.selectedOption.icon;
|
|
807
|
+
}
|
|
808
|
+
|
|
654
809
|
async _getPopover() {
|
|
655
810
|
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
656
811
|
return staticAreaItem.querySelector("[ui5-popover]");
|
|
@@ -668,6 +823,10 @@ class Select extends UI5Element {
|
|
|
668
823
|
Button,
|
|
669
824
|
];
|
|
670
825
|
}
|
|
826
|
+
|
|
827
|
+
static async onDefine() {
|
|
828
|
+
Select.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
829
|
+
}
|
|
671
830
|
}
|
|
672
831
|
|
|
673
832
|
Select.define();
|