@ui5/webcomponents 0.0.0-aeb93167c → 0.0.0-b053ad005
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 +343 -0
- 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 +189 -49
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +45 -19
- package/dist/Breadcrumbs.js +563 -0
- package/dist/BreadcrumbsItem.js +109 -0
- package/dist/BusyIndicator.js +121 -34
- package/dist/Button.js +110 -66
- package/dist/Calendar.js +324 -648
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +110 -59
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +38 -198
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +253 -94
- package/dist/CheckBox.js +138 -70
- 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 +348 -144
- 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 +264 -519
- package/dist/DateRangePicker.js +162 -426
- package/dist/DateTimePicker.js +94 -413
- package/dist/DayPicker.js +443 -648
- package/dist/Dialog.js +220 -58
- package/dist/DurationPicker.js +109 -511
- package/dist/FileUploader.js +70 -31
- package/dist/GroupHeaderListItem.js +22 -13
- package/dist/Icon.js +103 -41
- package/dist/Input.js +346 -155
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -12
- package/dist/Link.js +105 -43
- package/dist/List.js +377 -104
- package/dist/ListItem.js +60 -13
- package/dist/ListItemBase.js +29 -2
- package/dist/MessageStrip.js +47 -46
- package/dist/MonthPicker.js +171 -225
- package/dist/MultiComboBox.js +356 -135
- package/dist/MultiComboBoxItem.js +7 -2
- package/dist/MultiInput.js +55 -24
- package/dist/Option.js +48 -5
- package/dist/Panel.js +63 -73
- package/dist/Popover.js +195 -80
- package/dist/Popup.js +151 -61
- 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 +56 -42
- package/dist/SegmentedButton.js +102 -68
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +275 -116
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +35 -9
- package/dist/StepInput.js +681 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +13 -26
- package/dist/SuggestionListItem.js +17 -6
- package/dist/Switch.js +52 -32
- package/dist/Tab.js +47 -26
- package/dist/TabContainer.js +94 -34
- 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 +27 -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 +32 -16
- package/dist/Tokenizer.js +75 -42
- package/dist/Tree.js +97 -41
- package/dist/TreeItem.js +44 -9
- package/dist/TreeListItem.js +86 -2
- package/dist/WheelSlider.js +58 -58
- package/dist/YearPicker.js +188 -284
- package/dist/api.json +6877 -1
- package/dist/features/ColorPaletteMoreColors.js +42 -0
- package/dist/features/InputElementsFormSupport.js +0 -1
- package/dist/features/InputSuggestions.js +131 -30
- 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 -15
- 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 -28
- package/dist/generated/templates/StepInputTemplate.lit.js +8 -0
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +24 -31
- 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 +189 -49
- 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 +563 -0
- package/src/BreadcrumbsItem.js +109 -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 -48
- package/src/Calendar.js +324 -648
- package/src/CalendarDate.js +45 -0
- package/src/CalendarHeader.hbs +29 -36
- package/src/CalendarHeader.js +110 -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 +253 -94
- package/src/CheckBox.hbs +10 -7
- package/src/CheckBox.js +138 -70
- 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 +348 -144
- 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 -4
- package/src/DatePicker.js +264 -519
- package/src/DatePickerPopover.hbs +22 -17
- package/src/DateRangePicker.js +162 -426
- package/src/DateTimePicker.js +94 -413
- package/src/DateTimePickerPopover.hbs +28 -52
- package/src/DayPicker.hbs +18 -12
- package/src/DayPicker.js +443 -648
- package/src/Dialog.hbs +14 -10
- package/src/Dialog.js +220 -58
- package/src/DurationPicker.js +109 -511
- package/src/FileUploader.hbs +3 -0
- package/src/FileUploader.js +70 -31
- package/src/FileUploaderPopover.hbs +2 -1
- package/src/GroupHeaderListItem.hbs +4 -4
- package/src/GroupHeaderListItem.js +22 -13
- package/src/Icon.hbs +4 -3
- package/src/Icon.js +103 -41
- package/src/Input.hbs +17 -6
- package/src/Input.js +346 -155
- 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 +3 -2
- package/src/Link.js +105 -43
- package/src/List.hbs +76 -37
- package/src/List.js +377 -104
- package/src/ListItem.hbs +20 -7
- package/src/ListItem.js +60 -13
- package/src/ListItemBase.js +29 -2
- package/src/MessageStrip.hbs +10 -11
- package/src/MessageStrip.js +47 -46
- package/src/MonthPicker.hbs +6 -6
- package/src/MonthPicker.js +171 -225
- package/src/MultiComboBox.hbs +10 -6
- package/src/MultiComboBox.js +356 -135
- 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 +63 -73
- package/src/Popover.js +195 -80
- package/src/Popup.hbs +5 -0
- package/src/Popup.js +151 -61
- 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 +56 -42
- 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 +275 -116
- 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 +7 -5
- package/src/StandardListItem.js +35 -9
- package/src/StepInput.hbs +77 -0
- package/src/StepInput.js +681 -0
- package/src/SuggestionGroupItem.js +64 -0
- package/src/SuggestionItem.js +13 -26
- package/src/SuggestionListItem.hbs +4 -4
- package/src/SuggestionListItem.js +17 -6
- package/src/Switch.hbs +19 -3
- package/src/Switch.js +52 -32
- package/src/Tab.js +47 -26
- package/src/TabContainer.hbs +43 -26
- package/src/TabContainer.js +94 -34
- 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 +27 -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 +32 -16
- 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 +86 -2
- package/src/WheelSlider.hbs +17 -10
- package/src/WheelSlider.js +58 -58
- 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 +131 -30
- 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/src/ComboBox.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
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";
|
|
4
|
+
import { isPhone, isSafari } from "@ui5/webcomponents-base/dist/Device.js";
|
|
5
5
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
6
6
|
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
7
|
+
import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
|
|
7
8
|
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
8
9
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
10
|
+
import "@ui5/webcomponents-icons/dist/not-editable.js";
|
|
9
11
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
12
|
import {
|
|
11
13
|
isBackSpace,
|
|
@@ -14,6 +16,9 @@ import {
|
|
|
14
16
|
isUp,
|
|
15
17
|
isDown,
|
|
16
18
|
isEnter,
|
|
19
|
+
isEscape,
|
|
20
|
+
isTabNext,
|
|
21
|
+
isTabPrevious,
|
|
17
22
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
18
23
|
import * as Filters from "./ComboBoxFilters.js";
|
|
19
24
|
|
|
@@ -23,7 +28,9 @@ import {
|
|
|
23
28
|
VALUE_STATE_WARNING,
|
|
24
29
|
VALUE_STATE_INFORMATION,
|
|
25
30
|
INPUT_SUGGESTIONS_TITLE,
|
|
26
|
-
|
|
31
|
+
SELECT_OPTIONS,
|
|
32
|
+
LIST_ITEM_POSITION,
|
|
33
|
+
LIST_ITEM_SELECTED,
|
|
27
34
|
} from "./generated/i18n/i18n-defaults.js";
|
|
28
35
|
|
|
29
36
|
// Templates
|
|
@@ -35,6 +42,7 @@ import ComboBoxCss from "./generated/themes/ComboBox.css.js";
|
|
|
35
42
|
import ComboBoxPopoverCss from "./generated/themes/ComboBoxPopover.css.js";
|
|
36
43
|
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
|
|
37
44
|
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
45
|
+
import SuggestionsCss from "./generated/themes/Suggestions.css.js";
|
|
38
46
|
|
|
39
47
|
import ComboBoxItem from "./ComboBoxItem.js";
|
|
40
48
|
import Icon from "./Icon.js";
|
|
@@ -44,6 +52,7 @@ import List from "./List.js";
|
|
|
44
52
|
import BusyIndicator from "./BusyIndicator.js";
|
|
45
53
|
import Button from "./Button.js";
|
|
46
54
|
import StandardListItem from "./StandardListItem.js";
|
|
55
|
+
import ComboBoxGroupItem from "./ComboBoxGroupItem.js";
|
|
47
56
|
|
|
48
57
|
/**
|
|
49
58
|
* @public
|
|
@@ -51,10 +60,9 @@ import StandardListItem from "./StandardListItem.js";
|
|
|
51
60
|
const metadata = {
|
|
52
61
|
tag: "ui5-combobox",
|
|
53
62
|
languageAware: true,
|
|
54
|
-
defaultSlot: "items",
|
|
55
63
|
properties: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
|
|
56
64
|
/**
|
|
57
|
-
* Defines the value of the
|
|
65
|
+
* Defines the value of the component.
|
|
58
66
|
*
|
|
59
67
|
* @type {string}
|
|
60
68
|
* @defaultvalue ""
|
|
@@ -66,16 +74,16 @@ const metadata = {
|
|
|
66
74
|
},
|
|
67
75
|
|
|
68
76
|
/**
|
|
69
|
-
* Defines the "live" value of the
|
|
77
|
+
* Defines the "live" value of the component.
|
|
70
78
|
* <br><br>
|
|
71
|
-
* <b>Note:</b>
|
|
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".
|
|
72
80
|
*
|
|
73
81
|
* <br><br>
|
|
74
82
|
* <b>Note:</b> Initially the filter value is synced with value.
|
|
75
83
|
*
|
|
76
84
|
* @type {string}
|
|
77
85
|
* @defaultvalue ""
|
|
78
|
-
* @
|
|
86
|
+
* @private
|
|
79
87
|
*/
|
|
80
88
|
filterValue: {
|
|
81
89
|
type: String,
|
|
@@ -84,7 +92,7 @@ const metadata = {
|
|
|
84
92
|
|
|
85
93
|
/**
|
|
86
94
|
* Defines a short hint intended to aid the user with data entry when the
|
|
87
|
-
*
|
|
95
|
+
* component has no value.
|
|
88
96
|
* @type {string}
|
|
89
97
|
* @defaultvalue ""
|
|
90
98
|
* @public
|
|
@@ -95,9 +103,9 @@ const metadata = {
|
|
|
95
103
|
},
|
|
96
104
|
|
|
97
105
|
/**
|
|
98
|
-
* Defines whether
|
|
106
|
+
* Defines whether the component is in disabled state.
|
|
99
107
|
* <br><br>
|
|
100
|
-
* <b>Note:</b> A disabled
|
|
108
|
+
* <b>Note:</b> A disabled component is completely noninteractive.
|
|
101
109
|
*
|
|
102
110
|
* @type {boolean}
|
|
103
111
|
* @defaultvalue false
|
|
@@ -108,7 +116,7 @@ const metadata = {
|
|
|
108
116
|
},
|
|
109
117
|
|
|
110
118
|
/**
|
|
111
|
-
* Defines the value state of the
|
|
119
|
+
* Defines the value state of the component.
|
|
112
120
|
* <br><br>
|
|
113
121
|
* Available options are:
|
|
114
122
|
* <ul>
|
|
@@ -129,9 +137,9 @@ const metadata = {
|
|
|
129
137
|
},
|
|
130
138
|
|
|
131
139
|
/**
|
|
132
|
-
* Defines whether the
|
|
140
|
+
* Defines whether the component is read-only.
|
|
133
141
|
* <br><br>
|
|
134
|
-
* <b>Note:</b> A read-only
|
|
142
|
+
* <b>Note:</b> A read-only component is not editable,
|
|
135
143
|
* but still provides visual feedback upon user interaction.
|
|
136
144
|
*
|
|
137
145
|
* @type {boolean}
|
|
@@ -143,7 +151,7 @@ const metadata = {
|
|
|
143
151
|
},
|
|
144
152
|
|
|
145
153
|
/**
|
|
146
|
-
* Defines whether the
|
|
154
|
+
* Defines whether the component is required.
|
|
147
155
|
*
|
|
148
156
|
* @type {boolean}
|
|
149
157
|
* @defaultvalue false
|
|
@@ -165,7 +173,7 @@ const metadata = {
|
|
|
165
173
|
},
|
|
166
174
|
|
|
167
175
|
/**
|
|
168
|
-
* Defines the filter type of the
|
|
176
|
+
* Defines the filter type of the component.
|
|
169
177
|
* Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code> and <code>Contains</code>.
|
|
170
178
|
*
|
|
171
179
|
* @type {string}
|
|
@@ -186,13 +194,22 @@ const metadata = {
|
|
|
186
194
|
},
|
|
187
195
|
|
|
188
196
|
/**
|
|
189
|
-
*
|
|
197
|
+
* Indicates whether the visual focus is on the value state header
|
|
198
|
+
* @private
|
|
199
|
+
*/
|
|
200
|
+
_isValueStateFocused: {
|
|
201
|
+
type: Boolean,
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Sets the accessible aria name of the component.
|
|
206
|
+
*
|
|
190
207
|
* @type {String}
|
|
191
208
|
* @defaultvalue: ""
|
|
192
|
-
* @
|
|
193
|
-
* @since 1.0.0-rc.
|
|
209
|
+
* @public
|
|
210
|
+
* @since 1.0.0-rc.15
|
|
194
211
|
*/
|
|
195
|
-
|
|
212
|
+
accessibleName: {
|
|
196
213
|
type: String,
|
|
197
214
|
defaultValue: undefined,
|
|
198
215
|
},
|
|
@@ -201,10 +218,10 @@ const metadata = {
|
|
|
201
218
|
* Receives id(or many ids) of the elements that label the combo box
|
|
202
219
|
* @type {String}
|
|
203
220
|
* @defaultvalue ""
|
|
204
|
-
* @
|
|
205
|
-
* @since 1.0.0-rc.
|
|
221
|
+
* @public
|
|
222
|
+
* @since 1.0.0-rc.15
|
|
206
223
|
*/
|
|
207
|
-
|
|
224
|
+
accessibleNameRef: {
|
|
208
225
|
type: String,
|
|
209
226
|
defaultValue: "",
|
|
210
227
|
},
|
|
@@ -214,11 +231,6 @@ const metadata = {
|
|
|
214
231
|
noAttribute: true,
|
|
215
232
|
},
|
|
216
233
|
|
|
217
|
-
_tempValue: {
|
|
218
|
-
type: String,
|
|
219
|
-
defaultValue: "",
|
|
220
|
-
},
|
|
221
|
-
|
|
222
234
|
_filteredItems: {
|
|
223
235
|
type: Object,
|
|
224
236
|
},
|
|
@@ -232,33 +244,26 @@ const metadata = {
|
|
|
232
244
|
managedSlots: true,
|
|
233
245
|
slots: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
|
|
234
246
|
/**
|
|
235
|
-
* Defines the
|
|
236
|
-
* <br><br>
|
|
237
|
-
* Example: <br>
|
|
238
|
-
* <ui5-combobox><br>
|
|
239
|
-
* <ui5-li>Item #1</ui5-li><br>
|
|
240
|
-
* <ui5-li>Item #2</ui5-li><br>
|
|
241
|
-
* </ui5-combobox>
|
|
242
|
-
* <br> <br>
|
|
247
|
+
* Defines the component items.
|
|
243
248
|
*
|
|
244
|
-
* @type {
|
|
245
|
-
* @slot
|
|
249
|
+
* @type {sap.ui.webcomponents.main.IComboBoxItem[]}
|
|
250
|
+
* @slot items
|
|
246
251
|
* @public
|
|
247
252
|
*/
|
|
248
253
|
"default": {
|
|
249
254
|
propertyName: "items",
|
|
250
255
|
type: HTMLElement,
|
|
251
|
-
|
|
256
|
+
invalidateOnChildChange: true,
|
|
252
257
|
},
|
|
253
258
|
|
|
254
259
|
/**
|
|
255
|
-
* Defines the value state message that will be displayed as pop up under the
|
|
260
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
256
261
|
* <br><br>
|
|
257
262
|
*
|
|
258
263
|
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
259
264
|
* <br>
|
|
260
265
|
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
261
|
-
* when the <code>ui5-
|
|
266
|
+
* when the <code>ui5-combobox</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
262
267
|
* @type {HTMLElement[]}
|
|
263
268
|
* @since 1.0.0-rc.9
|
|
264
269
|
* @slot
|
|
@@ -271,7 +276,7 @@ const metadata = {
|
|
|
271
276
|
/**
|
|
272
277
|
* Defines the icon to be displayed in the input field.
|
|
273
278
|
*
|
|
274
|
-
* @type {
|
|
279
|
+
* @type {sap.ui.webcomponents.main.IIcon}
|
|
275
280
|
* @slot
|
|
276
281
|
* @public
|
|
277
282
|
* @since 1.0.0-rc.9
|
|
@@ -301,7 +306,7 @@ const metadata = {
|
|
|
301
306
|
/**
|
|
302
307
|
* Fired when selection is changed by user interaction
|
|
303
308
|
*
|
|
304
|
-
* @event sap.ui.webcomponents.main.
|
|
309
|
+
* @event sap.ui.webcomponents.main.ComboBox#selection-change
|
|
305
310
|
* @param {HTMLElement} item item to be selected.
|
|
306
311
|
* @public
|
|
307
312
|
*/
|
|
@@ -320,7 +325,7 @@ const metadata = {
|
|
|
320
325
|
*
|
|
321
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.
|
|
322
327
|
*
|
|
323
|
-
* It is commonly used to enable users to select
|
|
328
|
+
* It is commonly used to enable users to select an option from a predefined list.
|
|
324
329
|
* <h3>Structure</h3>
|
|
325
330
|
* The <code>ui5-combobox</code> consists of the following elements:
|
|
326
331
|
* <ul>
|
|
@@ -348,7 +353,7 @@ const metadata = {
|
|
|
348
353
|
* @alias sap.ui.webcomponents.main.ComboBox
|
|
349
354
|
* @extends UI5Element
|
|
350
355
|
* @tagname ui5-combobox
|
|
351
|
-
* @appenddocs ComboBoxItem
|
|
356
|
+
* @appenddocs ComboBoxItem ComboBoxGroupItem
|
|
352
357
|
* @public
|
|
353
358
|
* @since 1.0.0-rc.6
|
|
354
359
|
*/
|
|
@@ -366,7 +371,7 @@ class ComboBox extends UI5Element {
|
|
|
366
371
|
}
|
|
367
372
|
|
|
368
373
|
static get staticAreaStyles() {
|
|
369
|
-
return [ResponsivePopoverCommonCss, ValueStateMessageCss, ComboBoxPopoverCss];
|
|
374
|
+
return [ResponsivePopoverCommonCss, ValueStateMessageCss, ComboBoxPopoverCss, SuggestionsCss];
|
|
370
375
|
}
|
|
371
376
|
|
|
372
377
|
static get template() {
|
|
@@ -383,33 +388,12 @@ class ComboBox extends UI5Element {
|
|
|
383
388
|
this._filteredItems = [];
|
|
384
389
|
this._initialRendering = true;
|
|
385
390
|
this._itemFocused = false;
|
|
386
|
-
this._tempFilterValue = "";
|
|
387
391
|
this._selectionChanged = false;
|
|
388
|
-
this.i18nBundle = getI18nBundle("@ui5/webcomponents");
|
|
389
392
|
}
|
|
390
393
|
|
|
391
394
|
onBeforeRendering() {
|
|
392
|
-
let domValue;
|
|
393
|
-
|
|
394
395
|
if (this._initialRendering) {
|
|
395
|
-
domValue = this.value;
|
|
396
396
|
this._filteredItems = this.items;
|
|
397
|
-
} else {
|
|
398
|
-
domValue = this.filterValue;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
if (this._autocomplete && domValue !== "") {
|
|
402
|
-
const item = this._autoCompleteValue(domValue);
|
|
403
|
-
|
|
404
|
-
if (!this._selectionChanged && (item && !item.selected)) {
|
|
405
|
-
this.fireEvent("selection-change", {
|
|
406
|
-
item,
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
this._selectionChanged = false;
|
|
410
|
-
}
|
|
411
|
-
} else {
|
|
412
|
-
this._tempValue = domValue;
|
|
413
397
|
}
|
|
414
398
|
|
|
415
399
|
if (!this._initialRendering && this.popover && document.activeElement === this && !this._filteredItems.length) {
|
|
@@ -417,15 +401,7 @@ class ComboBox extends UI5Element {
|
|
|
417
401
|
}
|
|
418
402
|
|
|
419
403
|
this._selectMatchingItem();
|
|
420
|
-
|
|
421
|
-
if (this._isKeyNavigation && this.responsivePopover && this.responsivePopover.opened) {
|
|
422
|
-
this.focused = false;
|
|
423
|
-
} else if (this.shadowRoot.activeElement) {
|
|
424
|
-
this.focused = this.shadowRoot.activeElement.id === "ui5-combobox-input";
|
|
425
|
-
}
|
|
426
|
-
|
|
427
404
|
this._initialRendering = false;
|
|
428
|
-
this._isKeyNavigation = false;
|
|
429
405
|
}
|
|
430
406
|
|
|
431
407
|
async onAfterRendering() {
|
|
@@ -437,49 +413,70 @@ class ComboBox extends UI5Element {
|
|
|
437
413
|
|
|
438
414
|
if (this.shouldClosePopover() && !isPhone()) {
|
|
439
415
|
this.responsivePopover.close(false, false, true);
|
|
416
|
+
this._clearFocus();
|
|
417
|
+
this._itemFocused = false;
|
|
440
418
|
}
|
|
441
419
|
|
|
442
|
-
this._itemFocused = false;
|
|
443
|
-
|
|
444
420
|
this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
|
|
445
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
|
+
}
|
|
446
431
|
}
|
|
447
432
|
|
|
448
433
|
shouldClosePopover() {
|
|
449
|
-
return this.responsivePopover.opened && !this.focused && !this._itemFocused;
|
|
434
|
+
return this.responsivePopover.opened && !this.focused && !this._itemFocused && !this._isValueStateFocused;
|
|
450
435
|
}
|
|
451
436
|
|
|
452
437
|
_focusin(event) {
|
|
453
438
|
this.focused = true;
|
|
454
439
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
440
|
+
this._lastValue = this.value;
|
|
441
|
+
|
|
442
|
+
this._autocomplete = false;
|
|
458
443
|
|
|
459
444
|
!isPhone() && event.target.setSelectionRange(0, this.value.length);
|
|
460
445
|
}
|
|
461
446
|
|
|
462
|
-
_focusout() {
|
|
463
|
-
|
|
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
|
+
}
|
|
464
456
|
|
|
465
|
-
this.
|
|
466
|
-
|
|
457
|
+
if (!this.shadowRoot.contains(event.relatedTarget)) {
|
|
458
|
+
this.focused = false;
|
|
459
|
+
!isPhone() && this._closeRespPopover(event);
|
|
460
|
+
}
|
|
467
461
|
}
|
|
468
462
|
|
|
469
463
|
_afterOpenPopover() {
|
|
470
464
|
this._iconPressed = true;
|
|
471
|
-
this._clearFocus();
|
|
472
465
|
}
|
|
473
466
|
|
|
474
467
|
_afterClosePopover() {
|
|
475
468
|
this._iconPressed = false;
|
|
476
469
|
this._filteredItems = this.items;
|
|
477
|
-
this._tempFilterValue = "";
|
|
478
470
|
|
|
479
471
|
// close device's keyboard and prevent further typing
|
|
480
472
|
if (isPhone()) {
|
|
481
473
|
this.blur();
|
|
482
474
|
}
|
|
475
|
+
|
|
476
|
+
if (this._selectionPerformed) {
|
|
477
|
+
this._lastValue = this.value;
|
|
478
|
+
this._selectionPerformed = false;
|
|
479
|
+
}
|
|
483
480
|
}
|
|
484
481
|
|
|
485
482
|
_toggleRespPopover() {
|
|
@@ -506,7 +503,7 @@ class ComboBox extends UI5Element {
|
|
|
506
503
|
|
|
507
504
|
async openValueStatePopover() {
|
|
508
505
|
this.popover = await this._getPopover();
|
|
509
|
-
this.popover && this.popover.
|
|
506
|
+
this.popover && this.popover.showAt(this);
|
|
510
507
|
}
|
|
511
508
|
|
|
512
509
|
async closeValueStatePopover() {
|
|
@@ -531,26 +528,48 @@ class ComboBox extends UI5Element {
|
|
|
531
528
|
this._toggleRespPopover();
|
|
532
529
|
}
|
|
533
530
|
|
|
531
|
+
_readonlyIconClick() {
|
|
532
|
+
this.inner.focus();
|
|
533
|
+
}
|
|
534
|
+
|
|
534
535
|
_input(event) {
|
|
535
536
|
const { value } = event.target;
|
|
536
537
|
|
|
537
538
|
if (event.target === this.inner) {
|
|
538
539
|
// stop the native event, as the semantic "input" would be fired.
|
|
539
540
|
event.stopImmediatePropagation();
|
|
541
|
+
this.focused = true;
|
|
542
|
+
this._isValueStateFocused = false;
|
|
540
543
|
}
|
|
541
544
|
|
|
542
|
-
this.
|
|
543
|
-
|
|
545
|
+
this._filteredItems = this._filterItems(value);
|
|
546
|
+
|
|
547
|
+
this.value = value;
|
|
544
548
|
this.filterValue = value;
|
|
545
|
-
this.fireEvent("input");
|
|
546
549
|
|
|
547
|
-
this.
|
|
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
|
+
|
|
566
|
+
this.fireEvent("input");
|
|
548
567
|
|
|
549
568
|
if (isPhone()) {
|
|
550
569
|
return;
|
|
551
570
|
}
|
|
552
571
|
|
|
553
|
-
if (!this._filteredItems.length) {
|
|
572
|
+
if (!this._filteredItems.length || value === "") {
|
|
554
573
|
this._closeRespPopover();
|
|
555
574
|
} else {
|
|
556
575
|
this._openRespPopover();
|
|
@@ -569,59 +588,166 @@ class ComboBox extends UI5Element {
|
|
|
569
588
|
});
|
|
570
589
|
}
|
|
571
590
|
|
|
572
|
-
handleArrowKeyPress(event) {
|
|
591
|
+
async handleArrowKeyPress(event) {
|
|
573
592
|
if (this.readonly || !this._filteredItems.length) {
|
|
574
593
|
return;
|
|
575
594
|
}
|
|
576
595
|
|
|
596
|
+
const isOpen = this.open;
|
|
577
597
|
const isArrowDown = isDown(event);
|
|
578
598
|
const isArrowUp = isUp(event);
|
|
579
599
|
const currentItem = this._filteredItems.find(item => {
|
|
580
|
-
return
|
|
600
|
+
return isOpen ? item.focused : item.selected;
|
|
581
601
|
});
|
|
582
|
-
|
|
602
|
+
const indexOfItem = this._filteredItems.indexOf(currentItem);
|
|
583
603
|
|
|
584
604
|
event.preventDefault();
|
|
585
605
|
|
|
586
|
-
if ((
|
|
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))) {
|
|
587
628
|
return;
|
|
588
629
|
}
|
|
589
630
|
|
|
590
631
|
this._clearFocus();
|
|
591
632
|
|
|
592
|
-
|
|
593
|
-
|
|
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
|
+
}
|
|
594
662
|
|
|
595
|
-
this._filteredItems[indexOfItem].focused = true;
|
|
596
|
-
this.filterValue = this._filteredItems[indexOfItem].text;
|
|
597
|
-
this._isKeyNavigation = true;
|
|
598
|
-
this._itemFocused = true;
|
|
599
663
|
this.fireEvent("input");
|
|
664
|
+
this._fireChangeEvent();
|
|
665
|
+
}
|
|
600
666
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
});
|
|
667
|
+
_handleArrowDown(event, indexOfItem) {
|
|
668
|
+
const isOpen = this.open;
|
|
604
669
|
|
|
605
|
-
this.
|
|
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 */);
|
|
606
707
|
}
|
|
607
708
|
|
|
608
709
|
_keydown(event) {
|
|
609
710
|
const isArrowKey = isDown(event) || isUp(event);
|
|
610
711
|
this._autocomplete = !(isBackSpace(event) || isDelete(event));
|
|
712
|
+
this._isKeyNavigation = false;
|
|
611
713
|
|
|
612
714
|
if (isArrowKey) {
|
|
613
715
|
this.handleArrowKeyPress(event);
|
|
614
716
|
}
|
|
615
717
|
|
|
616
718
|
if (isEnter(event)) {
|
|
617
|
-
this.
|
|
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) {
|
|
618
731
|
this._closeRespPopover();
|
|
619
732
|
}
|
|
620
733
|
|
|
621
734
|
if (isShow(event) && !this.readonly && !this.disabled) {
|
|
622
735
|
event.preventDefault();
|
|
736
|
+
|
|
623
737
|
this._resetFilter();
|
|
624
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
|
+
}
|
|
625
751
|
}
|
|
626
752
|
}
|
|
627
753
|
|
|
@@ -631,60 +757,97 @@ class ComboBox extends UI5Element {
|
|
|
631
757
|
}
|
|
632
758
|
}
|
|
633
759
|
|
|
634
|
-
_closeRespPopover() {
|
|
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
|
+
|
|
635
769
|
this.responsivePopover.close();
|
|
636
770
|
}
|
|
637
771
|
|
|
638
772
|
_openRespPopover() {
|
|
639
|
-
this.responsivePopover.
|
|
773
|
+
this.responsivePopover.showAt(this);
|
|
640
774
|
}
|
|
641
775
|
|
|
642
776
|
_filterItems(str) {
|
|
643
|
-
|
|
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);
|
|
644
782
|
}
|
|
645
783
|
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
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
|
+
}
|
|
650
797
|
|
|
651
|
-
|
|
652
|
-
this._tempValue = matchingItems[0] ? matchingItems[0].text : current;
|
|
653
|
-
} else {
|
|
654
|
-
this._tempValue = current;
|
|
798
|
+
return groupHasFilteredItems;
|
|
655
799
|
}
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
_getFirstMatchingItem(current) {
|
|
803
|
+
const currentlyFocusedItem = this.items.find(item => item.focused === true);
|
|
656
804
|
|
|
657
|
-
if (
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
}, 0);
|
|
661
|
-
} else if (this._isKeyNavigation) {
|
|
662
|
-
setTimeout(() => {
|
|
663
|
-
this.inner.setSelectionRange(0, this._tempValue.length);
|
|
664
|
-
}, 0);
|
|
805
|
+
if (currentlyFocusedItem && currentlyFocusedItem.isGroupItem) {
|
|
806
|
+
this.value = this.filterValue;
|
|
807
|
+
return;
|
|
665
808
|
}
|
|
666
809
|
|
|
810
|
+
const matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem);
|
|
811
|
+
|
|
667
812
|
if (matchingItems.length) {
|
|
668
813
|
return matchingItems[0];
|
|
669
814
|
}
|
|
670
815
|
}
|
|
671
816
|
|
|
817
|
+
_applyAtomicValueAndSelection(item, filterValue, highlightValue) {
|
|
818
|
+
if (!item) {
|
|
819
|
+
return;
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
const value = (item && item.text) || "";
|
|
823
|
+
this.inner.value = value;
|
|
824
|
+
if (highlightValue) {
|
|
825
|
+
this.inner.setSelectionRange(filterValue.length, value.length);
|
|
826
|
+
}
|
|
827
|
+
this.value = value;
|
|
828
|
+
}
|
|
829
|
+
|
|
672
830
|
_selectMatchingItem() {
|
|
673
|
-
|
|
674
|
-
|
|
831
|
+
const currentlyFocusedItem = this.items.find(item => item.focused);
|
|
832
|
+
const shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;
|
|
675
833
|
|
|
834
|
+
this._filteredItems = this._filteredItems.map(item => {
|
|
835
|
+
item.selected = !item.isGroupItem && (item.text === this.value) && !shouldSelectionBeCleared;
|
|
676
836
|
return item;
|
|
677
837
|
});
|
|
678
838
|
}
|
|
679
839
|
|
|
680
|
-
|
|
681
|
-
if (this.value !== this.
|
|
682
|
-
this.value = this._tempValue;
|
|
840
|
+
_fireChangeEvent() {
|
|
841
|
+
if (this.value !== this._lastValue) {
|
|
683
842
|
this.fireEvent("change");
|
|
684
|
-
this.
|
|
843
|
+
this._lastValue = this.value;
|
|
685
844
|
}
|
|
686
845
|
}
|
|
687
846
|
|
|
847
|
+
_inputChange(event) {
|
|
848
|
+
event.preventDefault();
|
|
849
|
+
}
|
|
850
|
+
|
|
688
851
|
_itemMousedown(event) {
|
|
689
852
|
event.preventDefault();
|
|
690
853
|
}
|
|
@@ -692,8 +855,17 @@ class ComboBox extends UI5Element {
|
|
|
692
855
|
_selectItem(event) {
|
|
693
856
|
const listItem = event.detail.item;
|
|
694
857
|
|
|
695
|
-
this.
|
|
696
|
-
this.
|
|
858
|
+
this._selectedItemText = listItem.mappedItem.text;
|
|
859
|
+
this._selectionPerformed = true;
|
|
860
|
+
|
|
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;
|
|
697
869
|
|
|
698
870
|
if (!listItem.mappedItem.selected) {
|
|
699
871
|
this.fireEvent("selection-change", {
|
|
@@ -704,25 +876,34 @@ class ComboBox extends UI5Element {
|
|
|
704
876
|
}
|
|
705
877
|
|
|
706
878
|
this._filteredItems.map(item => {
|
|
707
|
-
item.selected = (item === listItem.mappedItem);
|
|
708
|
-
|
|
879
|
+
item.selected = (item === listItem.mappedItem && !item.isGroupItem);
|
|
709
880
|
return item;
|
|
710
881
|
});
|
|
711
882
|
|
|
712
|
-
this.
|
|
883
|
+
this._fireChangeEvent();
|
|
713
884
|
this._closeRespPopover();
|
|
885
|
+
|
|
886
|
+
// reset selection
|
|
887
|
+
this.inner.setSelectionRange(this.value.length, this.value.length);
|
|
714
888
|
}
|
|
715
889
|
|
|
716
890
|
_onItemFocus(event) {
|
|
717
891
|
this._itemFocused = true;
|
|
718
892
|
}
|
|
719
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");
|
|
899
|
+
}
|
|
900
|
+
|
|
720
901
|
get _headerTitleText() {
|
|
721
|
-
return
|
|
902
|
+
return ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
722
903
|
}
|
|
723
904
|
|
|
724
905
|
get _iconAccessibleNameText() {
|
|
725
|
-
return
|
|
906
|
+
return ComboBox.i18nBundle.getText(SELECT_OPTIONS);
|
|
726
907
|
}
|
|
727
908
|
|
|
728
909
|
get inner() {
|
|
@@ -761,10 +942,10 @@ class ComboBox extends UI5Element {
|
|
|
761
942
|
|
|
762
943
|
get valueStateTextMappings() {
|
|
763
944
|
return {
|
|
764
|
-
"Success":
|
|
765
|
-
"Error":
|
|
766
|
-
"Warning":
|
|
767
|
-
"Information":
|
|
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),
|
|
768
949
|
};
|
|
769
950
|
}
|
|
770
951
|
|
|
@@ -777,6 +958,20 @@ class ComboBox extends UI5Element {
|
|
|
777
958
|
return !this.valueStateMessage.length && this.hasValueStateText;
|
|
778
959
|
}
|
|
779
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
|
+
|
|
780
975
|
get open() {
|
|
781
976
|
return this.responsivePopover ? this.responsivePopover.opened : false;
|
|
782
977
|
}
|
|
@@ -803,9 +998,14 @@ class ComboBox extends UI5Element {
|
|
|
803
998
|
Button,
|
|
804
999
|
StandardListItem,
|
|
805
1000
|
Popover,
|
|
1001
|
+
ComboBoxGroupItem,
|
|
806
1002
|
];
|
|
807
1003
|
}
|
|
808
1004
|
|
|
1005
|
+
static async onDefine() {
|
|
1006
|
+
ComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
1007
|
+
}
|
|
1008
|
+
|
|
809
1009
|
get styles() {
|
|
810
1010
|
return {
|
|
811
1011
|
popoverHeader: {
|
|
@@ -814,14 +1014,18 @@ class ComboBox extends UI5Element {
|
|
|
814
1014
|
suggestionPopoverHeader: {
|
|
815
1015
|
"display": this._listWidth === 0 ? "none" : "inline-block",
|
|
816
1016
|
"width": `${this._listWidth}px`,
|
|
817
|
-
"padding": "0.5625rem 1rem",
|
|
818
1017
|
},
|
|
819
1018
|
};
|
|
820
1019
|
}
|
|
821
1020
|
|
|
822
1021
|
get classes() {
|
|
823
1022
|
return {
|
|
1023
|
+
popover: {
|
|
1024
|
+
"ui5-suggestions-popover": !this.isPhone,
|
|
1025
|
+
"ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.hasValueStateText,
|
|
1026
|
+
},
|
|
824
1027
|
popoverValueState: {
|
|
1028
|
+
"ui5-valuestatemessage-header": true,
|
|
825
1029
|
"ui5-valuestatemessage-root": true,
|
|
826
1030
|
"ui5-valuestatemessage--success": this.valueState === ValueState.Success,
|
|
827
1031
|
"ui5-valuestatemessage--error": this.valueState === ValueState.Error,
|