@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/ComboBox.js
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
3
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
4
|
-
import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
5
|
-
import "@ui5/webcomponents-
|
|
4
|
+
import { isPhone, isSafari } from "@ui5/webcomponents-base/dist/Device.js";
|
|
5
|
+
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
6
|
+
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
7
|
+
import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
|
|
8
|
+
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
9
|
+
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
10
|
+
import "@ui5/webcomponents-icons/dist/not-editable.js";
|
|
6
11
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
7
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
isBackSpace,
|
|
14
|
+
isDelete,
|
|
15
|
+
isShow,
|
|
16
|
+
isUp,
|
|
17
|
+
isDown,
|
|
18
|
+
isEnter,
|
|
19
|
+
isEscape,
|
|
20
|
+
isTabNext,
|
|
21
|
+
isTabPrevious,
|
|
22
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
8
23
|
import * as Filters from "./ComboBoxFilters.js";
|
|
9
24
|
|
|
10
25
|
import {
|
|
26
|
+
VALUE_STATE_SUCCESS,
|
|
27
|
+
VALUE_STATE_ERROR,
|
|
28
|
+
VALUE_STATE_WARNING,
|
|
29
|
+
VALUE_STATE_INFORMATION,
|
|
11
30
|
INPUT_SUGGESTIONS_TITLE,
|
|
31
|
+
SELECT_OPTIONS,
|
|
32
|
+
LIST_ITEM_POSITION,
|
|
33
|
+
LIST_ITEM_SELECTED,
|
|
12
34
|
} from "./generated/i18n/i18n-defaults.js";
|
|
13
35
|
|
|
14
36
|
// Templates
|
|
@@ -19,20 +41,28 @@ import ComboBoxPopoverTemplate from "./generated/templates/ComboBoxPopoverTempla
|
|
|
19
41
|
import ComboBoxCss from "./generated/themes/ComboBox.css.js";
|
|
20
42
|
import ComboBoxPopoverCss from "./generated/themes/ComboBoxPopover.css.js";
|
|
21
43
|
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
|
|
44
|
+
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
45
|
+
import SuggestionsCss from "./generated/themes/Suggestions.css.js";
|
|
22
46
|
|
|
23
47
|
import ComboBoxItem from "./ComboBoxItem.js";
|
|
24
48
|
import Icon from "./Icon.js";
|
|
49
|
+
import Popover from "./Popover.js";
|
|
25
50
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
26
51
|
import List from "./List.js";
|
|
27
52
|
import BusyIndicator from "./BusyIndicator.js";
|
|
53
|
+
import Button from "./Button.js";
|
|
28
54
|
import StandardListItem from "./StandardListItem.js";
|
|
55
|
+
import ComboBoxGroupItem from "./ComboBoxGroupItem.js";
|
|
29
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
30
60
|
const metadata = {
|
|
31
61
|
tag: "ui5-combobox",
|
|
32
|
-
|
|
33
|
-
properties: {
|
|
62
|
+
languageAware: true,
|
|
63
|
+
properties: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
|
|
34
64
|
/**
|
|
35
|
-
* Defines the value of the
|
|
65
|
+
* Defines the value of the component.
|
|
36
66
|
*
|
|
37
67
|
* @type {string}
|
|
38
68
|
* @defaultvalue ""
|
|
@@ -44,14 +74,16 @@ const metadata = {
|
|
|
44
74
|
},
|
|
45
75
|
|
|
46
76
|
/**
|
|
47
|
-
* Defines the "live" value of the
|
|
77
|
+
* Defines the "live" value of the component.
|
|
78
|
+
* <br><br>
|
|
79
|
+
* <b>Note:</b> If we have an item e.g. "Bulgaria", "B" is typed, "ulgaria" is typed ahead, value will be "Bulgaria", filterValue will be "B".
|
|
80
|
+
*
|
|
48
81
|
* <br><br>
|
|
49
|
-
* <b>Note:</b> The property is updated upon typing.
|
|
50
82
|
* <b>Note:</b> Initially the filter value is synced with value.
|
|
51
83
|
*
|
|
52
84
|
* @type {string}
|
|
53
85
|
* @defaultvalue ""
|
|
54
|
-
* @
|
|
86
|
+
* @private
|
|
55
87
|
*/
|
|
56
88
|
filterValue: {
|
|
57
89
|
type: String,
|
|
@@ -60,7 +92,7 @@ const metadata = {
|
|
|
60
92
|
|
|
61
93
|
/**
|
|
62
94
|
* Defines a short hint intended to aid the user with data entry when the
|
|
63
|
-
*
|
|
95
|
+
* component has no value.
|
|
64
96
|
* @type {string}
|
|
65
97
|
* @defaultvalue ""
|
|
66
98
|
* @public
|
|
@@ -71,9 +103,9 @@ const metadata = {
|
|
|
71
103
|
},
|
|
72
104
|
|
|
73
105
|
/**
|
|
74
|
-
* Defines whether
|
|
106
|
+
* Defines whether the component is in disabled state.
|
|
75
107
|
* <br><br>
|
|
76
|
-
* <b>Note:</b> A disabled
|
|
108
|
+
* <b>Note:</b> A disabled component is completely noninteractive.
|
|
77
109
|
*
|
|
78
110
|
* @type {boolean}
|
|
79
111
|
* @defaultvalue false
|
|
@@ -84,10 +116,18 @@ const metadata = {
|
|
|
84
116
|
},
|
|
85
117
|
|
|
86
118
|
/**
|
|
87
|
-
* Defines the value state of the
|
|
88
|
-
*
|
|
119
|
+
* Defines the value state of the component.
|
|
120
|
+
* <br><br>
|
|
121
|
+
* Available options are:
|
|
122
|
+
* <ul>
|
|
123
|
+
* <li><code>None</code></li>
|
|
124
|
+
* <li><code>Error</code></li>
|
|
125
|
+
* <li><code>Warning</code></li>
|
|
126
|
+
* <li><code>Success</code></li>
|
|
127
|
+
* <li><code>Information</code></li>
|
|
128
|
+
* </ul>
|
|
89
129
|
*
|
|
90
|
-
* @type {
|
|
130
|
+
* @type {ValueState}
|
|
91
131
|
* @defaultvalue "None"
|
|
92
132
|
* @public
|
|
93
133
|
*/
|
|
@@ -97,9 +137,9 @@ const metadata = {
|
|
|
97
137
|
},
|
|
98
138
|
|
|
99
139
|
/**
|
|
100
|
-
* Defines whether the
|
|
140
|
+
* Defines whether the component is read-only.
|
|
101
141
|
* <br><br>
|
|
102
|
-
* <b>Note:</b> A read-only
|
|
142
|
+
* <b>Note:</b> A read-only component is not editable,
|
|
103
143
|
* but still provides visual feedback upon user interaction.
|
|
104
144
|
*
|
|
105
145
|
* @type {boolean}
|
|
@@ -111,19 +151,21 @@ const metadata = {
|
|
|
111
151
|
},
|
|
112
152
|
|
|
113
153
|
/**
|
|
114
|
-
* Defines whether the
|
|
154
|
+
* Defines whether the component is required.
|
|
115
155
|
*
|
|
116
156
|
* @type {boolean}
|
|
117
157
|
* @defaultvalue false
|
|
118
158
|
* @public
|
|
119
|
-
* @since 1.0.0-rc.5
|
|
120
159
|
*/
|
|
121
160
|
required: {
|
|
122
161
|
type: Boolean,
|
|
123
162
|
},
|
|
124
163
|
|
|
125
164
|
/**
|
|
126
|
-
* Indicates whether a loading indicator should be shown in the picker
|
|
165
|
+
* Indicates whether a loading indicator should be shown in the picker.
|
|
166
|
+
*
|
|
167
|
+
* @type {boolean}
|
|
168
|
+
* @defaultvalue false
|
|
127
169
|
* @public
|
|
128
170
|
*/
|
|
129
171
|
loading: {
|
|
@@ -131,7 +173,7 @@ const metadata = {
|
|
|
131
173
|
},
|
|
132
174
|
|
|
133
175
|
/**
|
|
134
|
-
* Defines the filter type of the
|
|
176
|
+
* Defines the filter type of the component.
|
|
135
177
|
* Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code> and <code>Contains</code>.
|
|
136
178
|
*
|
|
137
179
|
* @type {string}
|
|
@@ -151,42 +193,99 @@ const metadata = {
|
|
|
151
193
|
type: Boolean,
|
|
152
194
|
},
|
|
153
195
|
|
|
154
|
-
|
|
196
|
+
/**
|
|
197
|
+
* Indicates whether the visual focus is on the value state header
|
|
198
|
+
* @private
|
|
199
|
+
*/
|
|
200
|
+
_isValueStateFocused: {
|
|
155
201
|
type: Boolean,
|
|
156
|
-
noAttribute: true,
|
|
157
202
|
},
|
|
158
203
|
|
|
159
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Sets the accessible aria name of the component.
|
|
206
|
+
*
|
|
207
|
+
* @type {String}
|
|
208
|
+
* @defaultvalue: ""
|
|
209
|
+
* @public
|
|
210
|
+
* @since 1.0.0-rc.15
|
|
211
|
+
*/
|
|
212
|
+
accessibleName: {
|
|
213
|
+
type: String,
|
|
214
|
+
defaultValue: undefined,
|
|
215
|
+
},
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Receives id(or many ids) of the elements that label the combo box
|
|
219
|
+
* @type {String}
|
|
220
|
+
* @defaultvalue ""
|
|
221
|
+
* @public
|
|
222
|
+
* @since 1.0.0-rc.15
|
|
223
|
+
*/
|
|
224
|
+
accessibleNameRef: {
|
|
160
225
|
type: String,
|
|
161
226
|
defaultValue: "",
|
|
162
227
|
},
|
|
163
228
|
|
|
229
|
+
_iconPressed: {
|
|
230
|
+
type: Boolean,
|
|
231
|
+
noAttribute: true,
|
|
232
|
+
},
|
|
233
|
+
|
|
164
234
|
_filteredItems: {
|
|
165
235
|
type: Object,
|
|
166
236
|
},
|
|
237
|
+
|
|
238
|
+
_listWidth: {
|
|
239
|
+
type: Integer,
|
|
240
|
+
defaultValue: 0,
|
|
241
|
+
noAttribute: true,
|
|
242
|
+
},
|
|
167
243
|
},
|
|
168
|
-
|
|
244
|
+
managedSlots: true,
|
|
245
|
+
slots: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
|
|
246
|
+
/**
|
|
247
|
+
* Defines the component items.
|
|
248
|
+
*
|
|
249
|
+
* @type {sap.ui.webcomponents.main.IComboBoxItem[]}
|
|
250
|
+
* @slot items
|
|
251
|
+
* @public
|
|
252
|
+
*/
|
|
253
|
+
"default": {
|
|
254
|
+
propertyName: "items",
|
|
255
|
+
type: HTMLElement,
|
|
256
|
+
invalidateOnChildChange: true,
|
|
257
|
+
},
|
|
258
|
+
|
|
169
259
|
/**
|
|
170
|
-
* Defines the
|
|
260
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
171
261
|
* <br><br>
|
|
172
|
-
* Example: <br>
|
|
173
|
-
* <ui5-combobox><br>
|
|
174
|
-
* <ui5-li>Item #1</ui5-li><br>
|
|
175
|
-
* <ui5-li>Item #2</ui5-li><br>
|
|
176
|
-
* </ui5-combobox>
|
|
177
|
-
* <br> <br>
|
|
178
262
|
*
|
|
263
|
+
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
264
|
+
* <br>
|
|
265
|
+
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
266
|
+
* when the <code>ui5-combobox</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
179
267
|
* @type {HTMLElement[]}
|
|
268
|
+
* @since 1.0.0-rc.9
|
|
180
269
|
* @slot
|
|
181
270
|
* @public
|
|
182
271
|
*/
|
|
183
|
-
|
|
184
|
-
|
|
272
|
+
valueStateMessage: {
|
|
273
|
+
type: HTMLElement,
|
|
274
|
+
},
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Defines the icon to be displayed in the input field.
|
|
278
|
+
*
|
|
279
|
+
* @type {sap.ui.webcomponents.main.IIcon}
|
|
280
|
+
* @slot
|
|
281
|
+
* @public
|
|
282
|
+
* @since 1.0.0-rc.9
|
|
283
|
+
*/
|
|
284
|
+
icon: {
|
|
185
285
|
type: HTMLElement,
|
|
186
|
-
listenFor: { include: ["*"] },
|
|
187
286
|
},
|
|
188
287
|
},
|
|
189
|
-
events: {
|
|
288
|
+
events: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
|
|
190
289
|
/**
|
|
191
290
|
* Fired when the input operation has finished by pressing Enter, focusout or an item is selected.
|
|
192
291
|
*
|
|
@@ -203,6 +302,19 @@ const metadata = {
|
|
|
203
302
|
* @public
|
|
204
303
|
*/
|
|
205
304
|
input: {},
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Fired when selection is changed by user interaction
|
|
308
|
+
*
|
|
309
|
+
* @event sap.ui.webcomponents.main.ComboBox#selection-change
|
|
310
|
+
* @param {HTMLElement} item item to be selected.
|
|
311
|
+
* @public
|
|
312
|
+
*/
|
|
313
|
+
"selection-change": {
|
|
314
|
+
detail: {
|
|
315
|
+
item: { type: HTMLElement },
|
|
316
|
+
},
|
|
317
|
+
},
|
|
206
318
|
},
|
|
207
319
|
};
|
|
208
320
|
|
|
@@ -211,11 +323,9 @@ const metadata = {
|
|
|
211
323
|
*
|
|
212
324
|
* <h3 class="comment-api-title">Overview</h3>
|
|
213
325
|
*
|
|
214
|
-
* The <code>ui5-combobox</code> represents a drop-down menu with a list of the available options and a text input field to narrow down the options.
|
|
326
|
+
* The <code>ui5-combobox</code> component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.
|
|
215
327
|
*
|
|
216
|
-
*
|
|
217
|
-
* <h3>Description</h3>
|
|
218
|
-
* The <code>ui5-combobox</code> component is commonly used to enable users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow of available options.
|
|
328
|
+
* It is commonly used to enable users to select an option from a predefined list.
|
|
219
329
|
* <h3>Structure</h3>
|
|
220
330
|
* The <code>ui5-combobox</code> consists of the following elements:
|
|
221
331
|
* <ul>
|
|
@@ -227,7 +337,7 @@ const metadata = {
|
|
|
227
337
|
*
|
|
228
338
|
* The <code>ui5-combobox</code> provides advanced keyboard handling.
|
|
229
339
|
*
|
|
230
|
-
* <
|
|
340
|
+
* <h4>Picker</h4>
|
|
231
341
|
* If the <code>ui5-combobox</code> is focused,
|
|
232
342
|
* you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.
|
|
233
343
|
* <br>
|
|
@@ -243,6 +353,7 @@ const metadata = {
|
|
|
243
353
|
* @alias sap.ui.webcomponents.main.ComboBox
|
|
244
354
|
* @extends UI5Element
|
|
245
355
|
* @tagname ui5-combobox
|
|
356
|
+
* @appenddocs ComboBoxItem ComboBoxGroupItem
|
|
246
357
|
* @public
|
|
247
358
|
* @since 1.0.0-rc.6
|
|
248
359
|
*/
|
|
@@ -260,7 +371,7 @@ class ComboBox extends UI5Element {
|
|
|
260
371
|
}
|
|
261
372
|
|
|
262
373
|
static get staticAreaStyles() {
|
|
263
|
-
return [ComboBoxPopoverCss,
|
|
374
|
+
return [ResponsivePopoverCommonCss, ValueStateMessageCss, ComboBoxPopoverCss, SuggestionsCss];
|
|
264
375
|
}
|
|
265
376
|
|
|
266
377
|
static get template() {
|
|
@@ -276,18 +387,13 @@ class ComboBox extends UI5Element {
|
|
|
276
387
|
|
|
277
388
|
this._filteredItems = [];
|
|
278
389
|
this._initialRendering = true;
|
|
279
|
-
this.
|
|
390
|
+
this._itemFocused = false;
|
|
391
|
+
this._selectionChanged = false;
|
|
280
392
|
}
|
|
281
393
|
|
|
282
394
|
onBeforeRendering() {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
this._filteredItems = this._filterItems(domValue);
|
|
286
|
-
|
|
287
|
-
if (this._autocomplete && domValue !== "") {
|
|
288
|
-
this._autoCompleteValue(domValue);
|
|
289
|
-
} else {
|
|
290
|
-
this._tempValue = domValue;
|
|
395
|
+
if (this._initialRendering) {
|
|
396
|
+
this._filteredItems = this.items;
|
|
291
397
|
}
|
|
292
398
|
|
|
293
399
|
if (!this._initialRendering && this.popover && document.activeElement === this && !this._filteredItems.length) {
|
|
@@ -298,25 +404,60 @@ class ComboBox extends UI5Element {
|
|
|
298
404
|
this._initialRendering = false;
|
|
299
405
|
}
|
|
300
406
|
|
|
301
|
-
onAfterRendering() {
|
|
302
|
-
|
|
407
|
+
async onAfterRendering() {
|
|
408
|
+
await this._respPopover();
|
|
409
|
+
if (isPhone() && this.responsivePopover.opened) {
|
|
303
410
|
// Set initial focus to the native input
|
|
304
411
|
this.inner.focus();
|
|
305
412
|
}
|
|
413
|
+
|
|
414
|
+
if (this.shouldClosePopover() && !isPhone()) {
|
|
415
|
+
this.responsivePopover.close(false, false, true);
|
|
416
|
+
this._clearFocus();
|
|
417
|
+
this._itemFocused = false;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
|
|
421
|
+
this.storeResponsivePopoverWidth();
|
|
422
|
+
|
|
423
|
+
// Safari is quite slow and does not preserve text highlighting on control rerendering.
|
|
424
|
+
// That's why we need to restore it "manually".
|
|
425
|
+
if (isSafari() && this._autocomplete && this.filterValue !== this.value) {
|
|
426
|
+
this.inner.setSelectionRange(
|
|
427
|
+
(this._isKeyNavigation ? 0 : this.filterValue.length),
|
|
428
|
+
this.value.length,
|
|
429
|
+
);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
shouldClosePopover() {
|
|
434
|
+
return this.responsivePopover.opened && !this.focused && !this._itemFocused && !this._isValueStateFocused;
|
|
306
435
|
}
|
|
307
436
|
|
|
308
437
|
_focusin(event) {
|
|
309
438
|
this.focused = true;
|
|
310
439
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
440
|
+
this._lastValue = this.value;
|
|
441
|
+
|
|
442
|
+
this._autocomplete = false;
|
|
314
443
|
|
|
315
|
-
event.target.setSelectionRange(0, this.value.length);
|
|
444
|
+
!isPhone() && event.target.setSelectionRange(0, this.value.length);
|
|
316
445
|
}
|
|
317
446
|
|
|
318
|
-
_focusout() {
|
|
319
|
-
|
|
447
|
+
_focusout(event) {
|
|
448
|
+
const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
|
|
449
|
+
|
|
450
|
+
this._fireChangeEvent();
|
|
451
|
+
|
|
452
|
+
if (focusedOutToValueStateMessage) {
|
|
453
|
+
event.stopImmediatePropagation();
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
if (!this.shadowRoot.contains(event.relatedTarget)) {
|
|
458
|
+
this.focused = false;
|
|
459
|
+
!isPhone() && this._closeRespPopover(event);
|
|
460
|
+
}
|
|
320
461
|
}
|
|
321
462
|
|
|
322
463
|
_afterOpenPopover() {
|
|
@@ -325,21 +466,56 @@ class ComboBox extends UI5Element {
|
|
|
325
466
|
|
|
326
467
|
_afterClosePopover() {
|
|
327
468
|
this._iconPressed = false;
|
|
469
|
+
this._filteredItems = this.items;
|
|
328
470
|
|
|
329
471
|
// close device's keyboard and prevent further typing
|
|
330
472
|
if (isPhone()) {
|
|
331
473
|
this.blur();
|
|
332
474
|
}
|
|
475
|
+
|
|
476
|
+
if (this._selectionPerformed) {
|
|
477
|
+
this._lastValue = this.value;
|
|
478
|
+
this._selectionPerformed = false;
|
|
479
|
+
}
|
|
333
480
|
}
|
|
334
481
|
|
|
335
482
|
_toggleRespPopover() {
|
|
336
|
-
if (this.
|
|
337
|
-
this.
|
|
483
|
+
if (this.responsivePopover.opened) {
|
|
484
|
+
this._closeRespPopover();
|
|
338
485
|
} else {
|
|
339
|
-
this.
|
|
486
|
+
this._openRespPopover();
|
|
340
487
|
}
|
|
341
488
|
}
|
|
342
489
|
|
|
490
|
+
storeResponsivePopoverWidth() {
|
|
491
|
+
if (this.open && !this._listWidth) {
|
|
492
|
+
this._listWidth = this.responsivePopover.offsetWidth;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
toggleValueStatePopover(open) {
|
|
497
|
+
if (open) {
|
|
498
|
+
this.openValueStatePopover();
|
|
499
|
+
} else {
|
|
500
|
+
this.closeValueStatePopover();
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
async openValueStatePopover() {
|
|
505
|
+
this.popover = await this._getPopover();
|
|
506
|
+
this.popover && this.popover.showAt(this);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
async closeValueStatePopover() {
|
|
510
|
+
this.popover = await this._getPopover();
|
|
511
|
+
this.popover && this.popover.close();
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
async _getPopover() {
|
|
515
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
516
|
+
return staticAreaItem.querySelector(".ui5-valuestatemessage-popover");
|
|
517
|
+
}
|
|
518
|
+
|
|
343
519
|
_resetFilter() {
|
|
344
520
|
this._filteredItems = this._filterItems("");
|
|
345
521
|
this._selectMatchingItem();
|
|
@@ -352,130 +528,511 @@ class ComboBox extends UI5Element {
|
|
|
352
528
|
this._toggleRespPopover();
|
|
353
529
|
}
|
|
354
530
|
|
|
531
|
+
_readonlyIconClick() {
|
|
532
|
+
this.inner.focus();
|
|
533
|
+
}
|
|
534
|
+
|
|
355
535
|
_input(event) {
|
|
356
536
|
const { value } = event.target;
|
|
357
537
|
|
|
358
538
|
if (event.target === this.inner) {
|
|
359
539
|
// stop the native event, as the semantic "input" would be fired.
|
|
360
540
|
event.stopImmediatePropagation();
|
|
541
|
+
this.focused = true;
|
|
542
|
+
this._isValueStateFocused = false;
|
|
361
543
|
}
|
|
362
544
|
|
|
545
|
+
this._filteredItems = this._filterItems(value);
|
|
546
|
+
|
|
547
|
+
this.value = value;
|
|
363
548
|
this.filterValue = value;
|
|
549
|
+
|
|
550
|
+
this._clearFocus();
|
|
551
|
+
|
|
552
|
+
// autocomplete
|
|
553
|
+
if (this._autocomplete) {
|
|
554
|
+
const item = this._getFirstMatchingItem(value);
|
|
555
|
+
this._applyAtomicValueAndSelection(item, value, true);
|
|
556
|
+
|
|
557
|
+
if (value !== "" && !this._selectionChanged && (item && !item.selected && !item.isGroupItem)) {
|
|
558
|
+
this.fireEvent("selection-change", {
|
|
559
|
+
item,
|
|
560
|
+
});
|
|
561
|
+
|
|
562
|
+
this._selectionChanged = false;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
|
|
364
566
|
this.fireEvent("input");
|
|
365
567
|
|
|
366
|
-
|
|
568
|
+
if (isPhone()) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
if (!this._filteredItems.length || value === "") {
|
|
573
|
+
this._closeRespPopover();
|
|
574
|
+
} else {
|
|
575
|
+
this._openRespPopover();
|
|
576
|
+
}
|
|
367
577
|
}
|
|
368
578
|
|
|
369
579
|
_startsWithMatchingItems(str) {
|
|
370
580
|
return Filters.StartsWith(str, this._filteredItems);
|
|
371
581
|
}
|
|
372
582
|
|
|
583
|
+
_clearFocus() {
|
|
584
|
+
this._filteredItems.map(item => {
|
|
585
|
+
item.focused = false;
|
|
586
|
+
|
|
587
|
+
return item;
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
async handleArrowKeyPress(event) {
|
|
592
|
+
if (this.readonly || !this._filteredItems.length) {
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
const isOpen = this.open;
|
|
597
|
+
const isArrowDown = isDown(event);
|
|
598
|
+
const isArrowUp = isUp(event);
|
|
599
|
+
const currentItem = this._filteredItems.find(item => {
|
|
600
|
+
return isOpen ? item.focused : item.selected;
|
|
601
|
+
});
|
|
602
|
+
const indexOfItem = this._filteredItems.indexOf(currentItem);
|
|
603
|
+
|
|
604
|
+
event.preventDefault();
|
|
605
|
+
|
|
606
|
+
if ((this.focused === true && isArrowUp && isOpen) || (this._filteredItems.length - 1 === indexOfItem && isArrowDown)) {
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
this._isKeyNavigation = true;
|
|
611
|
+
|
|
612
|
+
if (isArrowDown) {
|
|
613
|
+
this._handleArrowDown(event, indexOfItem);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
if (isArrowUp) {
|
|
617
|
+
this._handleArrowUp(event, indexOfItem);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
_handleItemNavigation(event, indexOfItem, isForward) {
|
|
622
|
+
const isOpen = this.open;
|
|
623
|
+
const currentItem = this._filteredItems[indexOfItem];
|
|
624
|
+
const nextItem = isForward ? this._filteredItems[indexOfItem + 1] : this._filteredItems[indexOfItem - 1];
|
|
625
|
+
const isGroupItem = currentItem && currentItem.isGroupItem;
|
|
626
|
+
|
|
627
|
+
if ((!isOpen) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
this._clearFocus();
|
|
632
|
+
|
|
633
|
+
if (isOpen) {
|
|
634
|
+
this._itemFocused = true;
|
|
635
|
+
this.value = isGroupItem ? this.filterValue : currentItem.text;
|
|
636
|
+
this.focused = false;
|
|
637
|
+
currentItem.focused = true;
|
|
638
|
+
} else {
|
|
639
|
+
this.focused = true;
|
|
640
|
+
this.value = isGroupItem ? nextItem.text : currentItem.text;
|
|
641
|
+
currentItem.focused = false;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
this._isValueStateFocused = false;
|
|
645
|
+
this._selectionChanged = true;
|
|
646
|
+
|
|
647
|
+
if (isGroupItem && isOpen) {
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
this._announceSelectedItem(indexOfItem);
|
|
652
|
+
|
|
653
|
+
// autocomplete
|
|
654
|
+
const item = this._getFirstMatchingItem(this.value);
|
|
655
|
+
this._applyAtomicValueAndSelection(item, "", true);
|
|
656
|
+
|
|
657
|
+
if ((item && !item.selected)) {
|
|
658
|
+
this.fireEvent("selection-change", {
|
|
659
|
+
item,
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
this.fireEvent("input");
|
|
664
|
+
this._fireChangeEvent();
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
_handleArrowDown(event, indexOfItem) {
|
|
668
|
+
const isOpen = this.open;
|
|
669
|
+
|
|
670
|
+
if (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {
|
|
671
|
+
this._isValueStateFocused = true;
|
|
672
|
+
this.focused = false;
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
|
|
677
|
+
|
|
678
|
+
this._handleItemNavigation(event, ++indexOfItem, true /* isForward */);
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
_handleArrowUp(event, indexOfItem) {
|
|
682
|
+
const isOpen = this.open;
|
|
683
|
+
|
|
684
|
+
if (indexOfItem === 0 && !this.hasValueStateText) {
|
|
685
|
+
this._clearFocus();
|
|
686
|
+
this.focused = true;
|
|
687
|
+
this._itemFocused = false;
|
|
688
|
+
return;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
if (indexOfItem === 0 && this.hasValueStateText && isOpen) {
|
|
692
|
+
this._clearFocus();
|
|
693
|
+
this._itemFocused = false;
|
|
694
|
+
this._isValueStateFocused = true;
|
|
695
|
+
this._filteredItems[0].selected = false;
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
if (this._isValueStateFocused) {
|
|
700
|
+
this.focused = true;
|
|
701
|
+
this._isValueStateFocused = false;
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
|
|
706
|
+
this._handleItemNavigation(event, --indexOfItem, false /* isForward */);
|
|
707
|
+
}
|
|
708
|
+
|
|
373
709
|
_keydown(event) {
|
|
710
|
+
const isArrowKey = isDown(event) || isUp(event);
|
|
374
711
|
this._autocomplete = !(isBackSpace(event) || isDelete(event));
|
|
712
|
+
this._isKeyNavigation = false;
|
|
713
|
+
|
|
714
|
+
if (isArrowKey) {
|
|
715
|
+
this.handleArrowKeyPress(event);
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
if (isEnter(event)) {
|
|
719
|
+
this._fireChangeEvent();
|
|
720
|
+
this._closeRespPopover();
|
|
721
|
+
this.focused = true;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
if (isEscape(event)) {
|
|
725
|
+
this.focused = true;
|
|
726
|
+
this.value = !this.open ? this._lastValue : this.value;
|
|
727
|
+
this._isValueStateFocused = false;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
if ((isTabNext(event) || isTabPrevious(event)) && this.open) {
|
|
731
|
+
this._closeRespPopover();
|
|
732
|
+
}
|
|
375
733
|
|
|
376
734
|
if (isShow(event) && !this.readonly && !this.disabled) {
|
|
377
735
|
event.preventDefault();
|
|
736
|
+
|
|
378
737
|
this._resetFilter();
|
|
379
738
|
this._toggleRespPopover();
|
|
739
|
+
|
|
740
|
+
const selectedItem = this._filteredItems.find(item => {
|
|
741
|
+
return item.selected;
|
|
742
|
+
});
|
|
743
|
+
|
|
744
|
+
if (selectedItem && this.open) {
|
|
745
|
+
this._itemFocused = true;
|
|
746
|
+
selectedItem.focused = true;
|
|
747
|
+
this.focused = false;
|
|
748
|
+
} else {
|
|
749
|
+
this.focused = true;
|
|
750
|
+
}
|
|
380
751
|
}
|
|
381
752
|
}
|
|
382
753
|
|
|
383
754
|
_click(event) {
|
|
384
755
|
if (isPhone() && !this.readonly) {
|
|
385
|
-
this.
|
|
756
|
+
this._openRespPopover();
|
|
386
757
|
}
|
|
387
758
|
}
|
|
388
759
|
|
|
389
|
-
_closeRespPopover() {
|
|
390
|
-
|
|
760
|
+
_closeRespPopover(event) {
|
|
761
|
+
if (isPhone() && event && event.target.classList.contains("ui5-responsive-popover-close-btn") && this._selectedItemText) {
|
|
762
|
+
this.value = this._selectedItemText;
|
|
763
|
+
this.filterValue = this._selectedItemText;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
this._isValueStateFocused = false;
|
|
767
|
+
this._clearFocus();
|
|
768
|
+
|
|
769
|
+
this.responsivePopover.close();
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
_openRespPopover() {
|
|
773
|
+
this.responsivePopover.showAt(this);
|
|
391
774
|
}
|
|
392
775
|
|
|
393
776
|
_filterItems(str) {
|
|
394
|
-
|
|
777
|
+
const itemsToFilter = this.items.filter(item => !item.isGroupItem);
|
|
778
|
+
const filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter);
|
|
779
|
+
|
|
780
|
+
// Return the filtered items and their group items
|
|
781
|
+
return this.items.filter((item, idx, allItems) => ComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
/**
|
|
785
|
+
* Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)
|
|
786
|
+
*
|
|
787
|
+
* @private
|
|
788
|
+
*/
|
|
789
|
+
static _groupItemFilter(item, idx, allItems, filteredItems) {
|
|
790
|
+
if (item.isGroupItem) {
|
|
791
|
+
let groupHasFilteredItems;
|
|
792
|
+
|
|
793
|
+
while (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {
|
|
794
|
+
groupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;
|
|
795
|
+
idx++;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
return groupHasFilteredItems;
|
|
799
|
+
}
|
|
395
800
|
}
|
|
396
801
|
|
|
397
|
-
|
|
398
|
-
const
|
|
399
|
-
|
|
802
|
+
_getFirstMatchingItem(current) {
|
|
803
|
+
const currentlyFocusedItem = this.items.find(item => item.focused === true);
|
|
804
|
+
|
|
805
|
+
if (currentlyFocusedItem && currentlyFocusedItem.isGroupItem) {
|
|
806
|
+
this.value = this.filterValue;
|
|
807
|
+
return;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
const matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem);
|
|
400
811
|
|
|
401
812
|
if (matchingItems.length) {
|
|
402
|
-
|
|
403
|
-
}
|
|
404
|
-
|
|
813
|
+
return matchingItems[0];
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
_applyAtomicValueAndSelection(item, filterValue, highlightValue) {
|
|
818
|
+
if (!item) {
|
|
819
|
+
return;
|
|
405
820
|
}
|
|
406
821
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
822
|
+
const value = (item && item.text) || "";
|
|
823
|
+
this.inner.value = value;
|
|
824
|
+
if (highlightValue) {
|
|
825
|
+
this.inner.setSelectionRange(filterValue.length, value.length);
|
|
411
826
|
}
|
|
827
|
+
this.value = value;
|
|
412
828
|
}
|
|
413
829
|
|
|
414
830
|
_selectMatchingItem() {
|
|
415
|
-
|
|
416
|
-
|
|
831
|
+
const currentlyFocusedItem = this.items.find(item => item.focused);
|
|
832
|
+
const shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;
|
|
417
833
|
|
|
834
|
+
this._filteredItems = this._filteredItems.map(item => {
|
|
835
|
+
item.selected = !item.isGroupItem && (item.text === this.value) && !shouldSelectionBeCleared;
|
|
418
836
|
return item;
|
|
419
837
|
});
|
|
420
838
|
}
|
|
421
839
|
|
|
422
|
-
|
|
423
|
-
if (this.value !== this.
|
|
424
|
-
this.value = this._tempValue;
|
|
840
|
+
_fireChangeEvent() {
|
|
841
|
+
if (this.value !== this._lastValue) {
|
|
425
842
|
this.fireEvent("change");
|
|
426
|
-
this.
|
|
843
|
+
this._lastValue = this.value;
|
|
427
844
|
}
|
|
428
845
|
}
|
|
429
846
|
|
|
847
|
+
_inputChange(event) {
|
|
848
|
+
event.preventDefault();
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
_itemMousedown(event) {
|
|
852
|
+
event.preventDefault();
|
|
853
|
+
}
|
|
854
|
+
|
|
430
855
|
_selectItem(event) {
|
|
431
856
|
const listItem = event.detail.item;
|
|
432
857
|
|
|
433
|
-
this.
|
|
434
|
-
this.
|
|
858
|
+
this._selectedItemText = listItem.mappedItem.text;
|
|
859
|
+
this._selectionPerformed = true;
|
|
435
860
|
|
|
436
|
-
this.
|
|
437
|
-
|
|
861
|
+
const sameItemSelected = this.value === this._selectedItemText;
|
|
862
|
+
const sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();
|
|
863
|
+
|
|
864
|
+
if (sameItemSelected && sameSelectionPerformed) {
|
|
865
|
+
return this._closeRespPopover();
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
this.value = this._selectedItemText;
|
|
869
|
+
|
|
870
|
+
if (!listItem.mappedItem.selected) {
|
|
871
|
+
this.fireEvent("selection-change", {
|
|
872
|
+
item: listItem.mappedItem,
|
|
873
|
+
});
|
|
874
|
+
|
|
875
|
+
this._selectionChanged = true;
|
|
876
|
+
}
|
|
438
877
|
|
|
878
|
+
this._filteredItems.map(item => {
|
|
879
|
+
item.selected = (item === listItem.mappedItem && !item.isGroupItem);
|
|
439
880
|
return item;
|
|
440
881
|
});
|
|
441
882
|
|
|
442
|
-
this.
|
|
443
|
-
this.
|
|
883
|
+
this._fireChangeEvent();
|
|
884
|
+
this._closeRespPopover();
|
|
885
|
+
|
|
886
|
+
// reset selection
|
|
887
|
+
this.inner.setSelectionRange(this.value.length, this.value.length);
|
|
444
888
|
}
|
|
445
889
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
890
|
+
_onItemFocus(event) {
|
|
891
|
+
this._itemFocused = true;
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
_announceSelectedItem(indexOfItem) {
|
|
895
|
+
const itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, indexOfItem + 1, this._filteredItems.length);
|
|
896
|
+
const itemSelectionText = ComboBox.i18nBundle.getText(LIST_ITEM_SELECTED);
|
|
897
|
+
|
|
898
|
+
announce(`${itemPositionText} ${itemSelectionText}`, "Polite");
|
|
450
899
|
}
|
|
451
900
|
|
|
452
901
|
get _headerTitleText() {
|
|
453
|
-
return
|
|
902
|
+
return ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
get _iconAccessibleNameText() {
|
|
906
|
+
return ComboBox.i18nBundle.getText(SELECT_OPTIONS);
|
|
454
907
|
}
|
|
455
908
|
|
|
456
909
|
get inner() {
|
|
457
|
-
return isPhone() ? this.
|
|
910
|
+
return isPhone() ? this.responsivePopover.querySelector(".ui5-input-inner-phone") : this.shadowRoot.querySelector("[inner-input]");
|
|
458
911
|
}
|
|
459
912
|
|
|
460
|
-
|
|
461
|
-
|
|
913
|
+
async _respPopover() {
|
|
914
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
915
|
+
this.responsivePopover = staticAreaItem.querySelector("[ui5-responsive-popover]");
|
|
916
|
+
return this.responsivePopover;
|
|
462
917
|
}
|
|
463
918
|
|
|
464
919
|
get editable() {
|
|
465
920
|
return !this.readonly;
|
|
466
921
|
}
|
|
467
922
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
923
|
+
get hasValueState() {
|
|
924
|
+
return this.valueState !== ValueState.None;
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
get hasValueStateText() {
|
|
928
|
+
return this.hasValueState && this.valueState !== ValueState.Success;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
get valueStateText() {
|
|
932
|
+
return this.valueStateTextMappings[this.valueState];
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
get valueStateMessageText() {
|
|
936
|
+
return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
get valueStateTextId() {
|
|
940
|
+
return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
get valueStateTextMappings() {
|
|
944
|
+
return {
|
|
945
|
+
"Success": ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
946
|
+
"Error": ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),
|
|
947
|
+
"Warning": ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),
|
|
948
|
+
"Information": ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),
|
|
949
|
+
};
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
get shouldOpenValueStateMessagePopover() {
|
|
953
|
+
return this.focused && this.hasValueStateText && !this._iconPressed
|
|
954
|
+
&& !this.open && !this._isPhone;
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
get shouldDisplayDefaultValueStateMessage() {
|
|
958
|
+
return !this.valueStateMessage.length && this.hasValueStateText;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
/**
|
|
962
|
+
* This method is relevant for sap_horizon theme only
|
|
963
|
+
*/
|
|
964
|
+
get _valueStateMessageIcon() {
|
|
965
|
+
const iconPerValueState = {
|
|
966
|
+
Error: "error",
|
|
967
|
+
Warning: "alert",
|
|
968
|
+
Success: "sys-enter-2",
|
|
969
|
+
Information: "information",
|
|
970
|
+
};
|
|
971
|
+
|
|
972
|
+
return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
get open() {
|
|
976
|
+
return this.responsivePopover ? this.responsivePopover.opened : false;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
get _isPhone() {
|
|
980
|
+
return isPhone();
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
get itemTabIndex() {
|
|
984
|
+
return undefined;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
get ariaLabelText() {
|
|
988
|
+
return getEffectiveAriaLabelText(this);
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
static get dependencies() {
|
|
992
|
+
return [
|
|
993
|
+
ComboBoxItem,
|
|
994
|
+
Icon,
|
|
995
|
+
ResponsivePopover,
|
|
996
|
+
List,
|
|
997
|
+
BusyIndicator,
|
|
998
|
+
Button,
|
|
999
|
+
StandardListItem,
|
|
1000
|
+
Popover,
|
|
1001
|
+
ComboBoxGroupItem,
|
|
1002
|
+
];
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
static async onDefine() {
|
|
1006
|
+
ComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
get styles() {
|
|
1010
|
+
return {
|
|
1011
|
+
popoverHeader: {
|
|
1012
|
+
"width": `${this.offsetWidth}px`,
|
|
1013
|
+
},
|
|
1014
|
+
suggestionPopoverHeader: {
|
|
1015
|
+
"display": this._listWidth === 0 ? "none" : "inline-block",
|
|
1016
|
+
"width": `${this._listWidth}px`,
|
|
1017
|
+
},
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
477
1020
|
|
|
478
|
-
|
|
1021
|
+
get classes() {
|
|
1022
|
+
return {
|
|
1023
|
+
popover: {
|
|
1024
|
+
"ui5-suggestions-popover": !this.isPhone,
|
|
1025
|
+
"ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.hasValueStateText,
|
|
1026
|
+
},
|
|
1027
|
+
popoverValueState: {
|
|
1028
|
+
"ui5-valuestatemessage-header": true,
|
|
1029
|
+
"ui5-valuestatemessage-root": true,
|
|
1030
|
+
"ui5-valuestatemessage--success": this.valueState === ValueState.Success,
|
|
1031
|
+
"ui5-valuestatemessage--error": this.valueState === ValueState.Error,
|
|
1032
|
+
"ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
|
|
1033
|
+
"ui5-valuestatemessage--information": this.valueState === ValueState.Information,
|
|
1034
|
+
},
|
|
1035
|
+
};
|
|
479
1036
|
}
|
|
480
1037
|
}
|
|
481
1038
|
|