@ui5/webcomponents 0.0.0-d849bec2c → 0.0.0-dc3ccac50
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 +552 -1
- package/README.md +144 -52
- package/csp.js +7 -0
- package/customI18n.js +50 -0
- package/dist/Assets-static.js +6 -0
- package/dist/Assets.js +2 -1
- package/dist/Avatar.js +197 -46
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +44 -22
- package/dist/Breadcrumbs.js +563 -0
- package/dist/BreadcrumbsItem.js +109 -0
- package/dist/BusyIndicator.js +141 -37
- package/dist/Button.js +120 -68
- package/dist/Calendar.js +341 -545
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +127 -56
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +44 -158
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +267 -98
- package/dist/CheckBox.js +146 -58
- 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 +599 -94
- package/dist/ComboBoxFilters.js +8 -1
- package/dist/ComboBoxGroupItem.js +70 -0
- package/dist/ComboBoxItem.js +12 -24
- package/dist/CustomListItem.js +38 -4
- package/dist/DateComponentBase.js +170 -0
- package/dist/DatePicker.js +392 -409
- package/dist/DateRangePicker.js +328 -0
- package/dist/DateTimePicker.js +106 -384
- package/dist/DayPicker.js +508 -430
- package/dist/Dialog.js +496 -44
- package/dist/DurationPicker.js +135 -400
- package/dist/FileUploader.js +208 -26
- package/dist/GroupHeaderListItem.js +24 -14
- package/dist/Icon.js +140 -46
- package/dist/Input.js +613 -162
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -17
- package/dist/Link.js +123 -29
- package/dist/List.js +425 -94
- package/dist/ListItem.js +88 -19
- package/dist/ListItemBase.js +27 -5
- package/dist/MessageStrip.js +50 -65
- package/dist/MonthPicker.js +180 -182
- package/dist/MultiComboBox.js +569 -156
- package/dist/MultiComboBoxItem.js +8 -2
- package/dist/MultiInput.js +301 -0
- package/dist/Option.js +48 -5
- package/dist/Panel.js +100 -37
- package/dist/Popover.js +252 -139
- package/dist/Popup.js +364 -90
- package/dist/ProgressIndicator.js +235 -0
- package/dist/RadioButton.js +131 -51
- package/dist/RadioButtonGroup.js +53 -29
- package/dist/RangeSlider.js +769 -0
- package/dist/RatingIndicator.js +291 -0
- package/dist/ResponsivePopover.js +67 -53
- package/dist/SegmentedButton.js +109 -73
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +441 -108
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +44 -13
- package/dist/StepInput.js +681 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +37 -31
- package/dist/SuggestionListItem.js +76 -0
- package/dist/Switch.js +59 -42
- package/dist/Tab.js +55 -24
- package/dist/TabContainer.js +142 -62
- package/dist/TabSeparator.js +1 -0
- package/dist/Table.js +475 -22
- package/dist/TableCell.js +11 -9
- package/dist/TableColumn.js +13 -3
- package/dist/TableGroupRow.js +160 -0
- package/dist/TableRow.js +235 -10
- package/dist/TextArea.js +139 -41
- package/dist/TimePicker.js +55 -675
- package/dist/TimePickerBase.js +463 -0
- package/dist/TimeSelection.js +493 -0
- package/dist/Title.js +16 -9
- package/dist/Toast.js +24 -13
- package/dist/ToggleButton.js +21 -8
- package/dist/Token.js +84 -47
- package/dist/Tokenizer.js +242 -60
- package/dist/Tree.js +137 -51
- package/dist/TreeItem.js +44 -9
- package/dist/TreeListItem.js +127 -7
- package/dist/WheelSlider.js +76 -56
- package/dist/YearPicker.js +198 -254
- 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 +247 -53
- 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 -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 -15
- package/dist/generated/json-imports/i18n-static.js +162 -0
- package/dist/generated/json-imports/i18n.js +113 -87
- 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 -6
- 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 +13 -12
- 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 -6
- package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -13
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -6
- package/dist/generated/templates/DatePickerTemplate.lit.js +6 -6
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -12
- package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
- package/dist/generated/templates/DialogTemplate.lit.js +9 -9
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
- package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -7
- 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 -23
- 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 -13
- package/dist/generated/templates/ListTemplate.lit.js +12 -9
- package/dist/generated/templates/MessageStripTemplate.lit.js +8 -17
- package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -5
- 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 +4 -4
- package/dist/generated/templates/PopupTemplate.lit.js +4 -9
- 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 -14
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -9
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
- package/dist/generated/templates/SelectTemplate.lit.js +6 -5
- 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 -20
- package/dist/generated/templates/StepInputTemplate.lit.js +8 -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 -6
- package/dist/generated/templates/TabContainerTemplate.lit.js +16 -14
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
- package/dist/generated/templates/TabInStripTemplate.lit.js +8 -21
- 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 -11
- package/dist/generated/templates/TableTemplate.lit.js +13 -8
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -8
- package/dist/generated/templates/TextAreaTemplate.lit.js +8 -7
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -8
- package/dist/generated/templates/TimePickerTemplate.lit.js +6 -6
- 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 +18 -16
- package/dist/generated/templates/TreeTemplate.lit.js +5 -5
- package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -7
- package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
- 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 +8 -0
- 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 +8 -0
- 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 +8 -0
- package/dist/generated/themes/ProgressIndicator.css.js +8 -0
- package/dist/generated/themes/RadioButton.css.js +5 -5
- package/dist/generated/themes/RatingIndicator.css.js +8 -0
- 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 +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 +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 -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 +49 -15
- package/dist/timepicker-utils/TimeSlider.js +15 -13
- 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 +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 +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 +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 +23 -7
- 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 +226 -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 +77 -0
- package/src/StepInput.js +681 -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 +261 -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 -97
- package/dist/TimelineItem.js +0 -161
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
- package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -10
- package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -8
- 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 -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 -55
- package/dist/types/AvatarFitType.js +0 -40
- package/dist/webcomponentsjs/package.json +0 -46
package/dist/MultiComboBox.js
CHANGED
|
@@ -1,32 +1,46 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
3
4
|
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
4
5
|
import {
|
|
5
|
-
isShow,
|
|
6
|
+
isShow,
|
|
7
|
+
isDown,
|
|
8
|
+
isUp,
|
|
9
|
+
isBackSpace,
|
|
10
|
+
isSpace,
|
|
11
|
+
isLeft,
|
|
12
|
+
isRight,
|
|
13
|
+
isEscape,
|
|
14
|
+
isEnter,
|
|
6
15
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
7
|
-
import "@ui5/webcomponents-
|
|
8
|
-
import
|
|
16
|
+
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
17
|
+
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
9
18
|
import { isIE, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
10
|
-
import {
|
|
11
|
-
import "@ui5/webcomponents-icons/dist/
|
|
12
|
-
import "@ui5/webcomponents-icons/dist/
|
|
19
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
20
|
+
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
21
|
+
import "@ui5/webcomponents-icons/dist/multiselect-all.js";
|
|
22
|
+
import "@ui5/webcomponents-icons/dist/not-editable.js";
|
|
13
23
|
import MultiComboBoxItem from "./MultiComboBoxItem.js";
|
|
14
24
|
import Tokenizer from "./Tokenizer.js";
|
|
15
25
|
import Token from "./Token.js";
|
|
16
26
|
import Icon from "./Icon.js";
|
|
27
|
+
import Popover from "./Popover.js";
|
|
17
28
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
18
29
|
import List from "./List.js";
|
|
19
30
|
import StandardListItem from "./StandardListItem.js";
|
|
20
31
|
import ToggleButton from "./ToggleButton.js";
|
|
32
|
+
import * as Filters from "./ComboBoxFilters.js";
|
|
33
|
+
import Button from "./Button.js";
|
|
34
|
+
|
|
21
35
|
import {
|
|
22
36
|
VALUE_STATE_SUCCESS,
|
|
23
37
|
VALUE_STATE_ERROR,
|
|
24
38
|
VALUE_STATE_WARNING,
|
|
25
|
-
|
|
26
|
-
TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
|
|
27
|
-
TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,
|
|
39
|
+
VALUE_STATE_INFORMATION,
|
|
28
40
|
INPUT_SUGGESTIONS_TITLE,
|
|
29
|
-
|
|
41
|
+
SELECT_OPTIONS,
|
|
42
|
+
MULTICOMBOBOX_DIALOG_OK_BUTTON,
|
|
43
|
+
VALUE_STATE_ERROR_ALREADY_SELECTED,
|
|
30
44
|
} from "./generated/i18n/i18n-defaults.js";
|
|
31
45
|
|
|
32
46
|
// Templates
|
|
@@ -36,37 +50,62 @@ import MultiComboBoxPopoverTemplate from "./generated/templates/MultiComboBoxPop
|
|
|
36
50
|
// Styles
|
|
37
51
|
import styles from "./generated/themes/MultiComboBox.css.js";
|
|
38
52
|
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
|
|
53
|
+
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
54
|
+
import SuggestionsCss from "./generated/themes/Suggestions.css.js";
|
|
39
55
|
|
|
40
56
|
/**
|
|
41
57
|
* @public
|
|
42
58
|
*/
|
|
43
59
|
const metadata = {
|
|
44
60
|
tag: "ui5-multi-combobox",
|
|
61
|
+
languageAware: true,
|
|
45
62
|
managedSlots: true,
|
|
46
63
|
slots: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
|
|
47
64
|
/**
|
|
48
|
-
* Defines the
|
|
65
|
+
* Defines the component items.
|
|
66
|
+
*
|
|
67
|
+
* @type {sap.ui.webcomponents.main.IMultiComboBoxItem[]}
|
|
68
|
+
* @slot items
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
"default": {
|
|
72
|
+
propertyName: "items",
|
|
73
|
+
type: HTMLElement,
|
|
74
|
+
invalidateOnChildChange: true,
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Defines the icon to be displayed in the component.
|
|
79
|
+
*
|
|
80
|
+
* @type {sap.ui.webcomponents.main.IIcon}
|
|
81
|
+
* @slot
|
|
82
|
+
* @public
|
|
83
|
+
* @since 1.0.0-rc.9
|
|
84
|
+
*/
|
|
85
|
+
icon: {
|
|
86
|
+
type: HTMLElement,
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
49
91
|
* <br><br>
|
|
50
|
-
* Example: <br>
|
|
51
|
-
* <ui5-multi-combobox><br>
|
|
52
|
-
* <ui5-li>Item #1</ui5-li><br>
|
|
53
|
-
* <ui5-li>Item #2</ui5-li><br>
|
|
54
|
-
* </ui5-multi-combobox>
|
|
55
|
-
* <br> <br>
|
|
56
92
|
*
|
|
93
|
+
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
94
|
+
* <br>
|
|
95
|
+
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
96
|
+
* when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
57
97
|
* @type {HTMLElement[]}
|
|
98
|
+
* @since 1.0.0-rc.9
|
|
58
99
|
* @slot
|
|
59
100
|
* @public
|
|
60
101
|
*/
|
|
61
|
-
|
|
62
|
-
propertyName: "items",
|
|
102
|
+
valueStateMessage: {
|
|
63
103
|
type: HTMLElement,
|
|
64
|
-
listenFor: { include: ["*"] },
|
|
65
104
|
},
|
|
66
105
|
},
|
|
67
106
|
properties: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
|
|
68
107
|
/**
|
|
69
|
-
* Defines the value of the
|
|
108
|
+
* Defines the value of the component.
|
|
70
109
|
* <br><br>
|
|
71
110
|
* <b>Note:</b> The property is updated upon typing.
|
|
72
111
|
*
|
|
@@ -81,7 +120,7 @@ const metadata = {
|
|
|
81
120
|
|
|
82
121
|
/**
|
|
83
122
|
* Defines a short hint intended to aid the user with data entry when the
|
|
84
|
-
*
|
|
123
|
+
* component has no value.
|
|
85
124
|
* @type {string}
|
|
86
125
|
* @defaultvalue ""
|
|
87
126
|
* @public
|
|
@@ -103,9 +142,9 @@ const metadata = {
|
|
|
103
142
|
},
|
|
104
143
|
|
|
105
144
|
/**
|
|
106
|
-
* Defines whether
|
|
145
|
+
* Defines whether the component is in disabled state.
|
|
107
146
|
* <br><br>
|
|
108
|
-
* <b>Note:</b> A disabled
|
|
147
|
+
* <b>Note:</b> A disabled component is completely noninteractive.
|
|
109
148
|
*
|
|
110
149
|
* @type {boolean}
|
|
111
150
|
* @defaultvalue false
|
|
@@ -116,7 +155,7 @@ const metadata = {
|
|
|
116
155
|
},
|
|
117
156
|
|
|
118
157
|
/**
|
|
119
|
-
* Defines the value state of the
|
|
158
|
+
* Defines the value state of the component.
|
|
120
159
|
* <br><br>
|
|
121
160
|
* Available options are:
|
|
122
161
|
* <ul>
|
|
@@ -137,9 +176,9 @@ const metadata = {
|
|
|
137
176
|
},
|
|
138
177
|
|
|
139
178
|
/**
|
|
140
|
-
* Defines whether the
|
|
179
|
+
* Defines whether the component is read-only.
|
|
141
180
|
* <br><br>
|
|
142
|
-
* <b>Note:</b> A read-only
|
|
181
|
+
* <b>Note:</b> A read-only component is not editable,
|
|
143
182
|
* but still provides visual feedback upon user interaction.
|
|
144
183
|
*
|
|
145
184
|
* @type {boolean}
|
|
@@ -151,7 +190,7 @@ const metadata = {
|
|
|
151
190
|
},
|
|
152
191
|
|
|
153
192
|
/**
|
|
154
|
-
* Defines whether the
|
|
193
|
+
* Defines whether the component is required.
|
|
155
194
|
*
|
|
156
195
|
* @type {boolean}
|
|
157
196
|
* @defaultvalue false
|
|
@@ -162,11 +201,25 @@ const metadata = {
|
|
|
162
201
|
type: Boolean,
|
|
163
202
|
},
|
|
164
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Defines the filter type of the component.
|
|
206
|
+
* Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code>, <code>Contains</code> and <code>None</code>.
|
|
207
|
+
*
|
|
208
|
+
* @type {string}
|
|
209
|
+
* @defaultvalue "StartsWithPerTerm"
|
|
210
|
+
* @public
|
|
211
|
+
*/
|
|
212
|
+
filter: {
|
|
213
|
+
type: String,
|
|
214
|
+
defaultValue: "StartsWithPerTerm",
|
|
215
|
+
},
|
|
216
|
+
|
|
165
217
|
/**
|
|
166
218
|
* Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.
|
|
167
219
|
*
|
|
168
220
|
* @type {boolean}
|
|
169
221
|
* @defaultvalue false
|
|
222
|
+
* @readonly
|
|
170
223
|
* @since 1.0.0-rc.5
|
|
171
224
|
* @public
|
|
172
225
|
*/
|
|
@@ -174,16 +227,20 @@ const metadata = {
|
|
|
174
227
|
type: Boolean,
|
|
175
228
|
},
|
|
176
229
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
230
|
+
_filteredItems: {
|
|
231
|
+
type: Object,
|
|
232
|
+
},
|
|
233
|
+
|
|
234
|
+
filterSelected: {
|
|
235
|
+
type: Boolean,
|
|
236
|
+
},
|
|
237
|
+
|
|
181
238
|
focused: {
|
|
182
239
|
type: Boolean,
|
|
183
240
|
},
|
|
184
241
|
|
|
185
|
-
|
|
186
|
-
type:
|
|
242
|
+
_tokenizerFocused: {
|
|
243
|
+
type: Boolean,
|
|
187
244
|
},
|
|
188
245
|
|
|
189
246
|
_iconPressed: {
|
|
@@ -191,15 +248,18 @@ const metadata = {
|
|
|
191
248
|
noAttribute: true,
|
|
192
249
|
},
|
|
193
250
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
*/
|
|
198
|
-
expandedTokenizer: {
|
|
199
|
-
type: Boolean,
|
|
251
|
+
_inputWidth: {
|
|
252
|
+
type: Integer,
|
|
253
|
+
noAttribute: true,
|
|
200
254
|
},
|
|
201
255
|
|
|
202
|
-
|
|
256
|
+
_listWidth: {
|
|
257
|
+
type: Integer,
|
|
258
|
+
defaultValue: 0,
|
|
259
|
+
noAttribute: true,
|
|
260
|
+
},
|
|
261
|
+
|
|
262
|
+
_performingSelectionTwice: {
|
|
203
263
|
type: Boolean,
|
|
204
264
|
},
|
|
205
265
|
},
|
|
@@ -213,7 +273,7 @@ const metadata = {
|
|
|
213
273
|
change: {},
|
|
214
274
|
|
|
215
275
|
/**
|
|
216
|
-
* Fired when the value of the
|
|
276
|
+
* Fired when the value of the component changes at each keystroke.
|
|
217
277
|
*
|
|
218
278
|
* @event
|
|
219
279
|
* @public
|
|
@@ -250,10 +310,10 @@ const metadata = {
|
|
|
250
310
|
*
|
|
251
311
|
* <h3 class="comment-api-title">Overview</h3>
|
|
252
312
|
*
|
|
253
|
-
* The <code>ui5-multi-combobox</code> component
|
|
313
|
+
* The <code>ui5-multi-combobox</code> component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.
|
|
254
314
|
*
|
|
255
|
-
*
|
|
256
|
-
* The
|
|
315
|
+
* The drop-down list is used for selecting and filtering values, it enables 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 to expand/collapse the list of available options.
|
|
316
|
+
* The options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.
|
|
257
317
|
* <h3>Structure</h3>
|
|
258
318
|
* The <code>ui5-multi-combobox</code> consists of the following elements:
|
|
259
319
|
* <ul>
|
|
@@ -280,6 +340,15 @@ const metadata = {
|
|
|
280
340
|
* <li> Backspace - deletes the token and focus the next token. </li>
|
|
281
341
|
* </ul>
|
|
282
342
|
*
|
|
343
|
+
* <h3>CSS Shadow Parts</h3>
|
|
344
|
+
*
|
|
345
|
+
* <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
|
|
346
|
+
* <br>
|
|
347
|
+
* The <code>ui5-multi-combobox</code> exposes the following CSS Shadow Parts:
|
|
348
|
+
* <ul>
|
|
349
|
+
* <li>token-{index} - Used to style each token(where <code>token-0</code> corresponds to the first item)</li>
|
|
350
|
+
* </ul>
|
|
351
|
+
*
|
|
283
352
|
* <h3>ES6 Module Import</h3>
|
|
284
353
|
*
|
|
285
354
|
* <code>import "@ui5/webcomponents/dist/MultiComboBox";</code>
|
|
@@ -316,42 +385,70 @@ class MultiComboBox extends UI5Element {
|
|
|
316
385
|
}
|
|
317
386
|
|
|
318
387
|
static get staticAreaStyles() {
|
|
319
|
-
return ResponsivePopoverCommonCss;
|
|
388
|
+
return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
static get dependencies() {
|
|
392
|
+
return [
|
|
393
|
+
MultiComboBoxItem,
|
|
394
|
+
Tokenizer,
|
|
395
|
+
Token,
|
|
396
|
+
Icon,
|
|
397
|
+
ResponsivePopover,
|
|
398
|
+
Popover,
|
|
399
|
+
List,
|
|
400
|
+
StandardListItem,
|
|
401
|
+
ToggleButton,
|
|
402
|
+
Button,
|
|
403
|
+
];
|
|
320
404
|
}
|
|
321
405
|
|
|
322
406
|
constructor() {
|
|
323
407
|
super();
|
|
324
408
|
|
|
325
409
|
this._filteredItems = [];
|
|
410
|
+
this.selectedValues = [];
|
|
326
411
|
this._inputLastValue = "";
|
|
412
|
+
this._valueBeforeOpen = "";
|
|
327
413
|
this._deleting = false;
|
|
328
414
|
this._validationTimeout = null;
|
|
329
|
-
this.
|
|
415
|
+
this._handleResizeBound = this._handleResize.bind(this);
|
|
330
416
|
}
|
|
331
417
|
|
|
332
|
-
|
|
333
|
-
this.
|
|
418
|
+
onEnterDOM() {
|
|
419
|
+
ResizeHandler.register(this, this._handleResizeBound);
|
|
334
420
|
}
|
|
335
421
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
}
|
|
422
|
+
onExitDOM() {
|
|
423
|
+
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
424
|
+
}
|
|
340
425
|
|
|
341
|
-
|
|
342
|
-
this.
|
|
426
|
+
_handleResize() {
|
|
427
|
+
this._inputWidth = this.offsetWidth;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
_inputChange() {
|
|
431
|
+
this.fireEvent("change");
|
|
343
432
|
}
|
|
344
433
|
|
|
345
434
|
togglePopover() {
|
|
346
|
-
this.
|
|
435
|
+
this.allItemsPopover.toggle(this);
|
|
436
|
+
}
|
|
347
437
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
438
|
+
_showFilteredItems() {
|
|
439
|
+
this.filterSelected = true;
|
|
440
|
+
this._showMorePressed = true;
|
|
441
|
+
|
|
442
|
+
this.togglePopover();
|
|
351
443
|
}
|
|
352
444
|
|
|
353
445
|
filterSelectedItems(event) {
|
|
354
446
|
this.filterSelected = event.target.pressed;
|
|
447
|
+
this.selectedItems = this._filteredItems.filter(item => item.selected);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
get _showAllItemsButtonPressed() {
|
|
451
|
+
return this.filterSelected;
|
|
355
452
|
}
|
|
356
453
|
|
|
357
454
|
get _inputDom() {
|
|
@@ -364,11 +461,15 @@ class MultiComboBox extends UI5Element {
|
|
|
364
461
|
const filteredItems = this._filterItems(value);
|
|
365
462
|
const oldValueState = this.valueState;
|
|
366
463
|
|
|
464
|
+
if (this.filterSelected) {
|
|
465
|
+
this.filterSelected = false;
|
|
466
|
+
}
|
|
467
|
+
|
|
367
468
|
/* skip calling change event when an input with a placeholder is focused on IE
|
|
368
469
|
- value of the host and the internal input should be differnt in case of actual input
|
|
369
470
|
- input is called when a key is pressed => keyup should not be called yet
|
|
370
471
|
*/
|
|
371
|
-
const skipFiring = (this._inputDom.value === this.value) && isIE && !this._keyDown && !!this.placeholder;
|
|
472
|
+
const skipFiring = (this._inputDom.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
|
|
372
473
|
|
|
373
474
|
if (skipFiring) {
|
|
374
475
|
event.preventDefault();
|
|
@@ -385,15 +486,11 @@ class MultiComboBox extends UI5Element {
|
|
|
385
486
|
input.value = this._inputLastValue;
|
|
386
487
|
this.valueState = "Error";
|
|
387
488
|
|
|
388
|
-
this.
|
|
389
|
-
this.valueState = oldValueState;
|
|
390
|
-
this._validationTimeout = null;
|
|
391
|
-
}, 2000);
|
|
489
|
+
this._resetValueState(oldValueState);
|
|
392
490
|
|
|
393
491
|
return;
|
|
394
492
|
}
|
|
395
493
|
|
|
396
|
-
|
|
397
494
|
this._inputLastValue = input.value;
|
|
398
495
|
this.value = input.value;
|
|
399
496
|
this._filteredItems = filteredItems;
|
|
@@ -402,8 +499,7 @@ class MultiComboBox extends UI5Element {
|
|
|
402
499
|
if (filteredItems.length === 0) {
|
|
403
500
|
this.allItemsPopover.close();
|
|
404
501
|
} else {
|
|
405
|
-
this.
|
|
406
|
-
this.allItemsPopover.open(this);
|
|
502
|
+
this.allItemsPopover.showAt(this);
|
|
407
503
|
}
|
|
408
504
|
}
|
|
409
505
|
|
|
@@ -420,13 +516,31 @@ class MultiComboBox extends UI5Element {
|
|
|
420
516
|
this.fireSelectionChange();
|
|
421
517
|
}
|
|
422
518
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
519
|
+
get _getPlaceholder() {
|
|
520
|
+
if (this._tokenizer && this._tokenizer.tokens.length) {
|
|
521
|
+
return "";
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
return this.placeholder;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
_handleLeft() {
|
|
528
|
+
const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
|
|
426
529
|
|
|
427
|
-
|
|
530
|
+
if (cursorPosition === 0) {
|
|
531
|
+
this._tokenizer._focusLastToken();
|
|
532
|
+
}
|
|
533
|
+
}
|
|
428
534
|
|
|
429
|
-
|
|
535
|
+
_tokenizerFocusOut(event) {
|
|
536
|
+
this._tokenizerFocused = false;
|
|
537
|
+
|
|
538
|
+
const tokensCount = this._tokenizer.tokens.length - 1;
|
|
539
|
+
|
|
540
|
+
if (!event.relatedTarget || event.relatedTarget.localName !== "ui5-token") {
|
|
541
|
+
this._tokenizer.tokens.forEach(token => { token.selected = false; });
|
|
542
|
+
this._tokenizer.scrollToStart();
|
|
543
|
+
}
|
|
430
544
|
|
|
431
545
|
if (tokensCount === 0 && this._deleting) {
|
|
432
546
|
setTimeout(() => {
|
|
@@ -439,56 +553,170 @@ class MultiComboBox extends UI5Element {
|
|
|
439
553
|
}
|
|
440
554
|
}
|
|
441
555
|
|
|
556
|
+
_tokenizerFocusIn() {
|
|
557
|
+
this._tokenizerFocused = true;
|
|
558
|
+
this.focused = false;
|
|
559
|
+
}
|
|
560
|
+
|
|
442
561
|
_onkeyup() {
|
|
443
562
|
this._keyDown = false;
|
|
444
563
|
}
|
|
445
564
|
|
|
446
565
|
async _onkeydown(event) {
|
|
566
|
+
if (isLeft(event)) {
|
|
567
|
+
this._handleLeft(event);
|
|
568
|
+
}
|
|
569
|
+
|
|
447
570
|
if (isShow(event) && !this.readonly && !this.disabled) {
|
|
448
571
|
event.preventDefault();
|
|
449
|
-
this.
|
|
572
|
+
this.togglePopover();
|
|
450
573
|
}
|
|
451
574
|
|
|
452
|
-
if (
|
|
453
|
-
|
|
454
|
-
await this._getList();
|
|
455
|
-
this.list._itemNavigation.current = 0;
|
|
456
|
-
this.list.items[0].focus();
|
|
575
|
+
if (this.open && (isUp(event) || isDown(event))) {
|
|
576
|
+
this._handleArrowNavigation(event);
|
|
457
577
|
}
|
|
458
578
|
|
|
459
579
|
if (isBackSpace(event) && event.target.value === "") {
|
|
460
580
|
event.preventDefault();
|
|
461
581
|
|
|
462
|
-
|
|
582
|
+
this._tokenizer._focusLastToken();
|
|
583
|
+
}
|
|
463
584
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
585
|
+
// Reset value on ESC
|
|
586
|
+
if (isEscape(event) && (!this.allowCustomValues || (!this.open && this.allowCustomValues))) {
|
|
587
|
+
this.value = this._lastValue;
|
|
588
|
+
}
|
|
467
589
|
|
|
468
|
-
|
|
469
|
-
this.
|
|
590
|
+
if (isEnter(event)) {
|
|
591
|
+
this.handleEnter();
|
|
470
592
|
}
|
|
471
593
|
|
|
472
594
|
this._keyDown = true;
|
|
473
595
|
}
|
|
474
596
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
597
|
+
_onValueStateKeydown(event) {
|
|
598
|
+
const isArrowDown = isDown(event);
|
|
599
|
+
const isArrowUp = isUp(event);
|
|
600
|
+
|
|
601
|
+
event.preventDefault();
|
|
602
|
+
|
|
603
|
+
if (isArrowDown) {
|
|
604
|
+
this._handleArrowDown(event);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
if (isArrowUp) {
|
|
608
|
+
this._inputDom.focus();
|
|
609
|
+
}
|
|
481
610
|
}
|
|
482
611
|
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
this.open = this._iconPressed;
|
|
612
|
+
_onItemKeydown(event) {
|
|
613
|
+
const isFirstItem = this.list.items[0] === event.target;
|
|
486
614
|
|
|
487
|
-
|
|
615
|
+
event.preventDefault();
|
|
488
616
|
|
|
489
|
-
if (!
|
|
490
|
-
|
|
617
|
+
if (!isUp(event) || !isFirstItem) {
|
|
618
|
+
return;
|
|
491
619
|
}
|
|
620
|
+
|
|
621
|
+
if (this.valueStateHeader) {
|
|
622
|
+
this.valueStateHeader.focus();
|
|
623
|
+
return;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
this._inputDom.focus();
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
async _handleArrowNavigation(event) {
|
|
630
|
+
const isArrowDown = isDown(event);
|
|
631
|
+
const hasSuggestions = this.allItemsPopover.opened && this.items.length;
|
|
632
|
+
|
|
633
|
+
event.preventDefault();
|
|
634
|
+
|
|
635
|
+
if (this.hasValueStateMessage && !this.valueStateHeader) {
|
|
636
|
+
await this._setValueStateHeader();
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
if (isArrowDown && this.focused && this.valueStateHeader) {
|
|
640
|
+
this.valueStateHeader.focus();
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
if (isArrowDown && this.focused && hasSuggestions) {
|
|
645
|
+
this._handleArrowDown(event);
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
_handleArrowDown(event) {
|
|
650
|
+
const firstListItem = this.list.items[0];
|
|
651
|
+
|
|
652
|
+
this.list._itemNavigation.setCurrentItem(firstListItem);
|
|
653
|
+
firstListItem.focus();
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
handleEnter() {
|
|
657
|
+
const lowerCaseValue = this.value.toLowerCase();
|
|
658
|
+
const matchingItem = this.items.find(item => item.text.toLowerCase() === lowerCaseValue);
|
|
659
|
+
const oldValueState = this.valueState;
|
|
660
|
+
|
|
661
|
+
if (matchingItem) {
|
|
662
|
+
if (matchingItem.selected) {
|
|
663
|
+
if (this._validationTimeout) {
|
|
664
|
+
return;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
this.valueState = "Error";
|
|
668
|
+
this._performingSelectionTwice = true;
|
|
669
|
+
this._resetValueState(oldValueState, () => {
|
|
670
|
+
this._performingSelectionTwice = false;
|
|
671
|
+
});
|
|
672
|
+
} else {
|
|
673
|
+
matchingItem.selected = true;
|
|
674
|
+
this.value = "";
|
|
675
|
+
this.fireSelectionChange();
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
this.allItemsPopover.close();
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
_resetValueState(valueState, callback) {
|
|
683
|
+
this._validationTimeout = setTimeout(() => {
|
|
684
|
+
this.valueState = valueState;
|
|
685
|
+
this._validationTimeout = null;
|
|
686
|
+
|
|
687
|
+
callback && callback();
|
|
688
|
+
}, 2000);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
_onTokenizerKeydown(event) {
|
|
692
|
+
if (isRight(event)) {
|
|
693
|
+
const lastTokenIndex = this._tokenizer.tokens.length - 1;
|
|
694
|
+
|
|
695
|
+
if (this._tokenizer.tokens[lastTokenIndex] === document.activeElement.shadowRoot.activeElement) {
|
|
696
|
+
setTimeout(() => {
|
|
697
|
+
this.shadowRoot.querySelector("input").focus();
|
|
698
|
+
}, 0);
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
_filterItems(str) {
|
|
704
|
+
return (Filters[this.filter] || Filters.StartsWithPerTerm)(str, this.items);
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
_afterOpenPicker() {
|
|
708
|
+
this._toggle();
|
|
709
|
+
|
|
710
|
+
if (!isPhone()) {
|
|
711
|
+
this._innerInput.focus();
|
|
712
|
+
} else {
|
|
713
|
+
this.allItemsPopover.focus();
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
_toggle() {
|
|
718
|
+
this.open = !this.open;
|
|
719
|
+
this.fireEvent("open-change");
|
|
492
720
|
}
|
|
493
721
|
|
|
494
722
|
_getSelectedItems() {
|
|
@@ -498,23 +726,37 @@ class MultiComboBox extends UI5Element {
|
|
|
498
726
|
}
|
|
499
727
|
|
|
500
728
|
_listSelectionChange(event) {
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
if (mcbItem._id === item.getAttribute("data-ui5-token-id")) {
|
|
504
|
-
mcbItem.selected = item.selected;
|
|
505
|
-
}
|
|
506
|
-
});
|
|
507
|
-
});
|
|
729
|
+
// sync list items and cb items
|
|
730
|
+
this.syncItems(event.target.items);
|
|
508
731
|
|
|
509
|
-
|
|
732
|
+
// don't call selection change right after selection as user can cancel it on phone
|
|
733
|
+
if (!isPhone()) {
|
|
734
|
+
this.fireSelectionChange();
|
|
735
|
+
}
|
|
510
736
|
|
|
511
737
|
if (!event.detail.selectionComponentPressed && !isSpace(event.detail)) {
|
|
512
738
|
this.allItemsPopover.close();
|
|
513
739
|
this.value = "";
|
|
740
|
+
|
|
741
|
+
// if the item (not checkbox) is clicked, call the selection change
|
|
742
|
+
if (isPhone()) {
|
|
743
|
+
this.fireSelectionChange();
|
|
744
|
+
}
|
|
745
|
+
|
|
514
746
|
this.fireEvent("input");
|
|
515
747
|
}
|
|
516
748
|
}
|
|
517
749
|
|
|
750
|
+
syncItems(listItems) {
|
|
751
|
+
listItems.forEach(item => {
|
|
752
|
+
this.items.forEach(mcbItem => {
|
|
753
|
+
if (mcbItem._id === item.getAttribute("data-ui5-token-id")) {
|
|
754
|
+
mcbItem.selected = item.selected;
|
|
755
|
+
}
|
|
756
|
+
});
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
|
|
518
760
|
fireSelectionChange() {
|
|
519
761
|
this.fireEvent("selection-change", { items: this._getSelectedItems() });
|
|
520
762
|
// Angular 2 way data binding
|
|
@@ -531,37 +773,41 @@ class MultiComboBox extends UI5Element {
|
|
|
531
773
|
this.list = staticAreaItem.querySelector(".ui5-multi-combobox-all-items-list");
|
|
532
774
|
}
|
|
533
775
|
|
|
534
|
-
_toggleRespPopover() {
|
|
535
|
-
this.updateStaticAreaItemContentDensity();
|
|
536
|
-
this.allItemsPopover.toggle(this);
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
_focusin() {
|
|
540
|
-
this.focused = true;
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
_focusout() {
|
|
544
|
-
this.focused = false;
|
|
545
|
-
}
|
|
546
|
-
|
|
547
776
|
_click(event) {
|
|
548
|
-
if (isPhone() && !this.readonly && !this._showMorePressed) {
|
|
549
|
-
this.
|
|
550
|
-
this.allItemsPopover.open(this);
|
|
777
|
+
if (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {
|
|
778
|
+
this.allItemsPopover.showAt(this);
|
|
551
779
|
}
|
|
552
780
|
|
|
553
781
|
this._showMorePressed = false;
|
|
554
782
|
}
|
|
555
783
|
|
|
556
|
-
|
|
784
|
+
_afterClosePicker() {
|
|
557
785
|
// close device's keyboard and prevent further typing
|
|
558
786
|
if (isPhone()) {
|
|
559
787
|
this.blur();
|
|
560
788
|
}
|
|
561
789
|
|
|
790
|
+
this._toggle();
|
|
791
|
+
|
|
792
|
+
this._iconPressed = false;
|
|
562
793
|
this.filterSelected = false;
|
|
563
794
|
}
|
|
564
795
|
|
|
796
|
+
_beforeOpen() {
|
|
797
|
+
this._itemsBeforeOpen = this.items.map(item => {
|
|
798
|
+
return {
|
|
799
|
+
ref: item,
|
|
800
|
+
selected: item.selected,
|
|
801
|
+
};
|
|
802
|
+
});
|
|
803
|
+
|
|
804
|
+
this._valueBeforeOpen = this.value;
|
|
805
|
+
|
|
806
|
+
if (this.filterSelected) {
|
|
807
|
+
this.selectedItems = this._filteredItems.filter(item => item.selected);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
565
811
|
onBeforeRendering() {
|
|
566
812
|
const input = this.shadowRoot.querySelector("input");
|
|
567
813
|
this._inputLastValue = this.value;
|
|
@@ -570,76 +816,215 @@ class MultiComboBox extends UI5Element {
|
|
|
570
816
|
this._filteredItems = this.items;
|
|
571
817
|
}
|
|
572
818
|
|
|
819
|
+
this.items.forEach(item => {
|
|
820
|
+
item._getRealDomRef = () => this.allItemsPopover.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
|
|
821
|
+
});
|
|
822
|
+
|
|
573
823
|
const filteredItems = this._filterItems(this.value);
|
|
574
824
|
this._filteredItems = filteredItems;
|
|
575
825
|
}
|
|
576
826
|
|
|
577
827
|
async onAfterRendering() {
|
|
578
828
|
await this._getRespPopover();
|
|
829
|
+
await this._getList();
|
|
830
|
+
|
|
831
|
+
this.toggle(this.shouldDisplayOnlyValueStateMessage);
|
|
832
|
+
this.storeResponsivePopoverWidth();
|
|
833
|
+
|
|
834
|
+
this._deleting = false;
|
|
579
835
|
}
|
|
580
836
|
|
|
581
|
-
get
|
|
582
|
-
return
|
|
583
|
-
"Success": this.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
584
|
-
"Error": this.i18nBundle.getText(VALUE_STATE_ERROR),
|
|
585
|
-
"Warning": this.i18nBundle.getText(VALUE_STATE_WARNING),
|
|
586
|
-
};
|
|
837
|
+
get _isPhone() {
|
|
838
|
+
return isPhone();
|
|
587
839
|
}
|
|
588
840
|
|
|
589
|
-
|
|
590
|
-
|
|
841
|
+
_onIconMousedown() {
|
|
842
|
+
this._iconPressed = true;
|
|
591
843
|
}
|
|
592
844
|
|
|
593
|
-
|
|
594
|
-
|
|
845
|
+
storeResponsivePopoverWidth() {
|
|
846
|
+
if (this.open && !this._listWidth) {
|
|
847
|
+
this._listWidth = this.list.offsetWidth;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
595
850
|
|
|
596
|
-
|
|
597
|
-
|
|
851
|
+
toggle(isToggled) {
|
|
852
|
+
if (isToggled && !this.open) {
|
|
853
|
+
this.openPopover();
|
|
854
|
+
} else {
|
|
855
|
+
this.closePopover();
|
|
598
856
|
}
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
handleCancel() {
|
|
860
|
+
this._itemsBeforeOpen.forEach(item => {
|
|
861
|
+
item.ref.selected = item.selected;
|
|
862
|
+
});
|
|
863
|
+
|
|
864
|
+
this.togglePopover();
|
|
865
|
+
|
|
866
|
+
this.value = this._valueBeforeOpen;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
handleOK() {
|
|
870
|
+
if (isPhone()) {
|
|
871
|
+
this.fireSelectionChange();
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
this.togglePopover();
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
async openPopover() {
|
|
878
|
+
const popover = await this._getPopover();
|
|
599
879
|
|
|
600
|
-
if (
|
|
601
|
-
|
|
880
|
+
if (popover) {
|
|
881
|
+
popover.showAt(this);
|
|
602
882
|
}
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
_forwardFocusToInner() {
|
|
886
|
+
this._innerInput.focus();
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
async closePopover() {
|
|
890
|
+
const popover = await this._getPopover();
|
|
891
|
+
|
|
892
|
+
popover && popover.close();
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
async _getPopover() {
|
|
896
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
897
|
+
return staticAreaItem.querySelector("[ui5-popover]");
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
async _getResponsivePopover() {
|
|
901
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
902
|
+
return staticAreaItem.querySelector("[ui5-responsive-popover]");
|
|
903
|
+
}
|
|
603
904
|
|
|
604
|
-
|
|
905
|
+
async _setValueStateHeader() {
|
|
906
|
+
const responsivePopover = await this._getResponsivePopover();
|
|
907
|
+
this.valueStateHeader = responsivePopover.querySelector("div.ui5-responsive-popover-header.ui5-valuestatemessage-root");
|
|
605
908
|
}
|
|
606
909
|
|
|
607
|
-
|
|
910
|
+
get _tokenizer() {
|
|
911
|
+
return this.shadowRoot.querySelector("[ui5-tokenizer]");
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
inputFocusIn() {
|
|
608
915
|
if (!isPhone()) {
|
|
609
|
-
this.
|
|
916
|
+
this.focused = true;
|
|
917
|
+
} else {
|
|
918
|
+
this._innerInput.blur();
|
|
610
919
|
}
|
|
920
|
+
|
|
921
|
+
this._lastValue = this.value;
|
|
611
922
|
}
|
|
612
923
|
|
|
613
|
-
|
|
924
|
+
inputFocusOut(event) {
|
|
614
925
|
if (!this.shadowRoot.contains(event.relatedTarget) && !this._deleting) {
|
|
615
|
-
this.
|
|
926
|
+
this.focused = false;
|
|
927
|
+
|
|
928
|
+
// remove the value if user focus out the input and focus is not going in the popover
|
|
929
|
+
if (!isPhone() && !this.allowCustomValues && (this.staticAreaItem !== event.relatedTarget)) {
|
|
930
|
+
this.value = "";
|
|
931
|
+
}
|
|
616
932
|
}
|
|
617
933
|
}
|
|
618
934
|
|
|
935
|
+
_readonlyIconClick() {
|
|
936
|
+
this._inputDom.focus();
|
|
937
|
+
}
|
|
938
|
+
|
|
619
939
|
get editable() {
|
|
620
940
|
return !this.readonly;
|
|
621
941
|
}
|
|
622
942
|
|
|
623
|
-
get
|
|
624
|
-
return
|
|
943
|
+
get _isFocusInside() {
|
|
944
|
+
return !isPhone() && (this.focused || this._tokenizerFocused);
|
|
625
945
|
}
|
|
626
946
|
|
|
627
947
|
get selectedItemsListMode() {
|
|
628
948
|
return this.readonly ? "None" : "MultiSelect";
|
|
629
949
|
}
|
|
630
950
|
|
|
951
|
+
get _listItemsType() {
|
|
952
|
+
return this.readonly ? "Inactive" : "Active";
|
|
953
|
+
}
|
|
954
|
+
|
|
631
955
|
get hasValueState() {
|
|
632
956
|
return this.valueState !== ValueState.None;
|
|
633
957
|
}
|
|
634
958
|
|
|
959
|
+
get hasValueStateMessage() {
|
|
960
|
+
return this.hasValueState && this.valueState !== ValueState.Success;
|
|
961
|
+
}
|
|
962
|
+
|
|
635
963
|
get valueStateText() {
|
|
636
|
-
|
|
964
|
+
let key = this.valueState;
|
|
965
|
+
|
|
966
|
+
if (this._performingSelectionTwice) {
|
|
967
|
+
key = "Error_Selection";
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
return this.valueStateTextMappings[key];
|
|
637
971
|
}
|
|
638
972
|
|
|
639
973
|
get valueStateTextId() {
|
|
640
974
|
return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
|
|
641
975
|
}
|
|
642
976
|
|
|
977
|
+
get valueStateMessageText() {
|
|
978
|
+
return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
/**
|
|
982
|
+
* This method is relevant for sap_horizon theme only
|
|
983
|
+
*/
|
|
984
|
+
get _valueStateMessageIcon() {
|
|
985
|
+
const iconPerValueState = {
|
|
986
|
+
Error: "error",
|
|
987
|
+
Warning: "alert",
|
|
988
|
+
Success: "sys-enter-2",
|
|
989
|
+
Information: "information",
|
|
990
|
+
};
|
|
991
|
+
|
|
992
|
+
return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
get _tokensCountText() {
|
|
996
|
+
if (!this._tokenizer) {
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
999
|
+
return this._tokenizer._tokensCountText();
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
get _tokensCountTextId() {
|
|
1003
|
+
return `${this._id}-hiddenText-nMore`;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
get ariaDescribedByText() {
|
|
1007
|
+
return this.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
get shouldDisplayDefaultValueStateMessage() {
|
|
1011
|
+
return !this.valueStateMessage.length && this.hasValueStateMessage;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
get shouldDisplayOnlyValueStateMessage() {
|
|
1015
|
+
return this.focused && this.hasValueStateMessage && !this._iconPressed;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
get valueStateTextMappings() {
|
|
1019
|
+
return {
|
|
1020
|
+
"Success": MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
1021
|
+
"Error": MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),
|
|
1022
|
+
"Error_Selection": MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR_ALREADY_SELECTED),
|
|
1023
|
+
"Warning": MultiComboBox.i18nBundle.getText(VALUE_STATE_WARNING),
|
|
1024
|
+
"Information": MultiComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),
|
|
1025
|
+
};
|
|
1026
|
+
}
|
|
1027
|
+
|
|
643
1028
|
get _innerInput() {
|
|
644
1029
|
if (isPhone()) {
|
|
645
1030
|
if (this.allItemsPopover.opened) {
|
|
@@ -651,25 +1036,53 @@ class MultiComboBox extends UI5Element {
|
|
|
651
1036
|
}
|
|
652
1037
|
|
|
653
1038
|
get _headerTitleText() {
|
|
654
|
-
return
|
|
1039
|
+
return MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
655
1040
|
}
|
|
656
1041
|
|
|
657
1042
|
get _iconAccessibleNameText() {
|
|
658
|
-
return
|
|
1043
|
+
return MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
get _dialogOkButton() {
|
|
1047
|
+
return MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
get _tokenizerExpanded() {
|
|
1051
|
+
return (this._isFocusInside || this.open) && !this.readonly;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
get classes() {
|
|
1055
|
+
return {
|
|
1056
|
+
popover: {
|
|
1057
|
+
"ui5-multi-combobox-all-items-responsive-popover": true,
|
|
1058
|
+
"ui5-suggestions-popover": !this.isPhone,
|
|
1059
|
+
"ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.hasValueStateMessage,
|
|
1060
|
+
},
|
|
1061
|
+
popoverValueState: {
|
|
1062
|
+
"ui5-valuestatemessage-root": true,
|
|
1063
|
+
"ui5-valuestatemessage-header": true,
|
|
1064
|
+
"ui5-valuestatemessage--success": this.valueState === ValueState.Success,
|
|
1065
|
+
"ui5-valuestatemessage--error": this.valueState === ValueState.Error,
|
|
1066
|
+
"ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
|
|
1067
|
+
"ui5-valuestatemessage--information": this.valueState === ValueState.Information,
|
|
1068
|
+
},
|
|
1069
|
+
};
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
get styles() {
|
|
1073
|
+
return {
|
|
1074
|
+
popoverValueStateMessage: {
|
|
1075
|
+
"width": `${this._listWidth}px`,
|
|
1076
|
+
"display": this._listWidth === 0 ? "none" : "inline-block",
|
|
1077
|
+
},
|
|
1078
|
+
popoverHeader: {
|
|
1079
|
+
"max-width": isPhone() ? "100%" : `${this._inputWidth}px`,
|
|
1080
|
+
},
|
|
1081
|
+
};
|
|
659
1082
|
}
|
|
660
1083
|
|
|
661
1084
|
static async onDefine() {
|
|
662
|
-
await
|
|
663
|
-
MultiComboBoxItem.define(),
|
|
664
|
-
Tokenizer.define(),
|
|
665
|
-
Token.define(),
|
|
666
|
-
Icon.define(),
|
|
667
|
-
ResponsivePopover.define(),
|
|
668
|
-
List.define(),
|
|
669
|
-
StandardListItem.define(),
|
|
670
|
-
ToggleButton,
|
|
671
|
-
fetchI18nBundle("@ui5/webcomponents"),
|
|
672
|
-
]);
|
|
1085
|
+
MultiComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
673
1086
|
}
|
|
674
1087
|
}
|
|
675
1088
|
|