@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/MultiComboBox.js
CHANGED
|
@@ -5,36 +5,42 @@ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
|
5
5
|
import {
|
|
6
6
|
isShow,
|
|
7
7
|
isDown,
|
|
8
|
+
isUp,
|
|
8
9
|
isBackSpace,
|
|
9
10
|
isSpace,
|
|
10
11
|
isLeft,
|
|
11
12
|
isRight,
|
|
13
|
+
isEscape,
|
|
14
|
+
isEnter,
|
|
12
15
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
13
16
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
14
17
|
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
15
18
|
import { isIE, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
16
|
-
import {
|
|
19
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
17
20
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
18
21
|
import "@ui5/webcomponents-icons/dist/multiselect-all.js";
|
|
22
|
+
import "@ui5/webcomponents-icons/dist/not-editable.js";
|
|
19
23
|
import MultiComboBoxItem from "./MultiComboBoxItem.js";
|
|
20
24
|
import Tokenizer from "./Tokenizer.js";
|
|
21
25
|
import Token from "./Token.js";
|
|
22
26
|
import Icon from "./Icon.js";
|
|
27
|
+
import Popover from "./Popover.js";
|
|
23
28
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
24
29
|
import List from "./List.js";
|
|
25
30
|
import StandardListItem from "./StandardListItem.js";
|
|
26
31
|
import ToggleButton from "./ToggleButton.js";
|
|
32
|
+
import * as Filters from "./ComboBoxFilters.js";
|
|
27
33
|
import Button from "./Button.js";
|
|
34
|
+
|
|
28
35
|
import {
|
|
29
36
|
VALUE_STATE_SUCCESS,
|
|
30
37
|
VALUE_STATE_ERROR,
|
|
31
38
|
VALUE_STATE_WARNING,
|
|
32
|
-
|
|
33
|
-
TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
|
|
34
|
-
TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,
|
|
39
|
+
VALUE_STATE_INFORMATION,
|
|
35
40
|
INPUT_SUGGESTIONS_TITLE,
|
|
36
|
-
|
|
41
|
+
SELECT_OPTIONS,
|
|
37
42
|
MULTICOMBOBOX_DIALOG_OK_BUTTON,
|
|
43
|
+
VALUE_STATE_ERROR_ALREADY_SELECTED,
|
|
38
44
|
} from "./generated/i18n/i18n-defaults.js";
|
|
39
45
|
|
|
40
46
|
// Templates
|
|
@@ -45,6 +51,7 @@ import MultiComboBoxPopoverTemplate from "./generated/templates/MultiComboBoxPop
|
|
|
45
51
|
import styles from "./generated/themes/MultiComboBox.css.js";
|
|
46
52
|
import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
|
|
47
53
|
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
54
|
+
import SuggestionsCss from "./generated/themes/Suggestions.css.js";
|
|
48
55
|
|
|
49
56
|
/**
|
|
50
57
|
* @public
|
|
@@ -55,45 +62,38 @@ const metadata = {
|
|
|
55
62
|
managedSlots: true,
|
|
56
63
|
slots: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
|
|
57
64
|
/**
|
|
58
|
-
* Defines the
|
|
59
|
-
* <br><br>
|
|
60
|
-
* Example: <br>
|
|
61
|
-
* <ui5-multi-combobox><br>
|
|
62
|
-
* <ui5-li>Item #1</ui5-li><br>
|
|
63
|
-
* <ui5-li>Item #2</ui5-li><br>
|
|
64
|
-
* </ui5-multi-combobox>
|
|
65
|
-
* <br> <br>
|
|
65
|
+
* Defines the component items.
|
|
66
66
|
*
|
|
67
|
-
* @type {
|
|
68
|
-
* @slot
|
|
67
|
+
* @type {sap.ui.webcomponents.main.IMultiComboBoxItem[]}
|
|
68
|
+
* @slot items
|
|
69
69
|
* @public
|
|
70
70
|
*/
|
|
71
71
|
"default": {
|
|
72
72
|
propertyName: "items",
|
|
73
73
|
type: HTMLElement,
|
|
74
|
-
|
|
74
|
+
invalidateOnChildChange: true,
|
|
75
75
|
},
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
|
-
* Defines the icon to be displayed in the
|
|
78
|
+
* Defines the icon to be displayed in the component.
|
|
79
79
|
*
|
|
80
|
-
* @type {
|
|
80
|
+
* @type {sap.ui.webcomponents.main.IIcon}
|
|
81
81
|
* @slot
|
|
82
82
|
* @public
|
|
83
83
|
* @since 1.0.0-rc.9
|
|
84
84
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
icon: {
|
|
86
|
+
type: HTMLElement,
|
|
87
|
+
},
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
|
-
* Defines the value state message that will be displayed as pop up under the
|
|
90
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
91
91
|
* <br><br>
|
|
92
92
|
*
|
|
93
93
|
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
94
94
|
* <br>
|
|
95
95
|
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
96
|
-
* when the
|
|
96
|
+
* when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
97
97
|
* @type {HTMLElement[]}
|
|
98
98
|
* @since 1.0.0-rc.9
|
|
99
99
|
* @slot
|
|
@@ -105,7 +105,7 @@ const metadata = {
|
|
|
105
105
|
},
|
|
106
106
|
properties: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
|
|
107
107
|
/**
|
|
108
|
-
* Defines the value of the
|
|
108
|
+
* Defines the value of the component.
|
|
109
109
|
* <br><br>
|
|
110
110
|
* <b>Note:</b> The property is updated upon typing.
|
|
111
111
|
*
|
|
@@ -120,7 +120,7 @@ const metadata = {
|
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
122
|
* Defines a short hint intended to aid the user with data entry when the
|
|
123
|
-
*
|
|
123
|
+
* component has no value.
|
|
124
124
|
* @type {string}
|
|
125
125
|
* @defaultvalue ""
|
|
126
126
|
* @public
|
|
@@ -142,9 +142,9 @@ const metadata = {
|
|
|
142
142
|
},
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
|
-
* Defines whether
|
|
145
|
+
* Defines whether the component is in disabled state.
|
|
146
146
|
* <br><br>
|
|
147
|
-
* <b>Note:</b> A disabled
|
|
147
|
+
* <b>Note:</b> A disabled component is completely noninteractive.
|
|
148
148
|
*
|
|
149
149
|
* @type {boolean}
|
|
150
150
|
* @defaultvalue false
|
|
@@ -155,7 +155,7 @@ const metadata = {
|
|
|
155
155
|
},
|
|
156
156
|
|
|
157
157
|
/**
|
|
158
|
-
* Defines the value state of the
|
|
158
|
+
* Defines the value state of the component.
|
|
159
159
|
* <br><br>
|
|
160
160
|
* Available options are:
|
|
161
161
|
* <ul>
|
|
@@ -176,9 +176,9 @@ const metadata = {
|
|
|
176
176
|
},
|
|
177
177
|
|
|
178
178
|
/**
|
|
179
|
-
* Defines whether the
|
|
179
|
+
* Defines whether the component is read-only.
|
|
180
180
|
* <br><br>
|
|
181
|
-
* <b>Note:</b> A read-only
|
|
181
|
+
* <b>Note:</b> A read-only component is not editable,
|
|
182
182
|
* but still provides visual feedback upon user interaction.
|
|
183
183
|
*
|
|
184
184
|
* @type {boolean}
|
|
@@ -190,7 +190,7 @@ const metadata = {
|
|
|
190
190
|
},
|
|
191
191
|
|
|
192
192
|
/**
|
|
193
|
-
* Defines whether the
|
|
193
|
+
* Defines whether the component is required.
|
|
194
194
|
*
|
|
195
195
|
* @type {boolean}
|
|
196
196
|
* @defaultvalue false
|
|
@@ -201,11 +201,25 @@ const metadata = {
|
|
|
201
201
|
type: Boolean,
|
|
202
202
|
},
|
|
203
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
|
+
|
|
204
217
|
/**
|
|
205
218
|
* Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.
|
|
206
219
|
*
|
|
207
220
|
* @type {boolean}
|
|
208
221
|
* @defaultvalue false
|
|
222
|
+
* @readonly
|
|
209
223
|
* @since 1.0.0-rc.5
|
|
210
224
|
* @public
|
|
211
225
|
*/
|
|
@@ -217,7 +231,6 @@ const metadata = {
|
|
|
217
231
|
type: Object,
|
|
218
232
|
},
|
|
219
233
|
|
|
220
|
-
|
|
221
234
|
filterSelected: {
|
|
222
235
|
type: Boolean,
|
|
223
236
|
},
|
|
@@ -245,6 +258,10 @@ const metadata = {
|
|
|
245
258
|
defaultValue: 0,
|
|
246
259
|
noAttribute: true,
|
|
247
260
|
},
|
|
261
|
+
|
|
262
|
+
_performingSelectionTwice: {
|
|
263
|
+
type: Boolean,
|
|
264
|
+
},
|
|
248
265
|
},
|
|
249
266
|
events: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
|
|
250
267
|
/**
|
|
@@ -256,7 +273,7 @@ const metadata = {
|
|
|
256
273
|
change: {},
|
|
257
274
|
|
|
258
275
|
/**
|
|
259
|
-
* Fired when the value of the
|
|
276
|
+
* Fired when the value of the component changes at each keystroke.
|
|
260
277
|
*
|
|
261
278
|
* @event
|
|
262
279
|
* @public
|
|
@@ -293,10 +310,10 @@ const metadata = {
|
|
|
293
310
|
*
|
|
294
311
|
* <h3 class="comment-api-title">Overview</h3>
|
|
295
312
|
*
|
|
296
|
-
* 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.
|
|
297
314
|
*
|
|
298
|
-
*
|
|
299
|
-
* 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.
|
|
300
317
|
* <h3>Structure</h3>
|
|
301
318
|
* The <code>ui5-multi-combobox</code> consists of the following elements:
|
|
302
319
|
* <ul>
|
|
@@ -323,6 +340,15 @@ const metadata = {
|
|
|
323
340
|
* <li> Backspace - deletes the token and focus the next token. </li>
|
|
324
341
|
* </ul>
|
|
325
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
|
+
*
|
|
326
352
|
* <h3>ES6 Module Import</h3>
|
|
327
353
|
*
|
|
328
354
|
* <code>import "@ui5/webcomponents/dist/MultiComboBox";</code>
|
|
@@ -359,7 +385,7 @@ class MultiComboBox extends UI5Element {
|
|
|
359
385
|
}
|
|
360
386
|
|
|
361
387
|
static get staticAreaStyles() {
|
|
362
|
-
return [ResponsivePopoverCommonCss, ValueStateMessageCss];
|
|
388
|
+
return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
|
|
363
389
|
}
|
|
364
390
|
|
|
365
391
|
static get dependencies() {
|
|
@@ -369,6 +395,7 @@ class MultiComboBox extends UI5Element {
|
|
|
369
395
|
Token,
|
|
370
396
|
Icon,
|
|
371
397
|
ResponsivePopover,
|
|
398
|
+
Popover,
|
|
372
399
|
List,
|
|
373
400
|
StandardListItem,
|
|
374
401
|
ToggleButton,
|
|
@@ -380,10 +407,11 @@ class MultiComboBox extends UI5Element {
|
|
|
380
407
|
super();
|
|
381
408
|
|
|
382
409
|
this._filteredItems = [];
|
|
410
|
+
this.selectedValues = [];
|
|
383
411
|
this._inputLastValue = "";
|
|
412
|
+
this._valueBeforeOpen = "";
|
|
384
413
|
this._deleting = false;
|
|
385
414
|
this._validationTimeout = null;
|
|
386
|
-
this.i18nBundle = getI18nBundle("@ui5/webcomponents");
|
|
387
415
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
388
416
|
}
|
|
389
417
|
|
|
@@ -403,34 +431,24 @@ class MultiComboBox extends UI5Element {
|
|
|
403
431
|
this.fireEvent("change");
|
|
404
432
|
}
|
|
405
433
|
|
|
406
|
-
|
|
407
|
-
this.
|
|
408
|
-
this._toggleRespPopover();
|
|
434
|
+
togglePopover() {
|
|
435
|
+
this.allItemsPopover.toggle(this);
|
|
409
436
|
}
|
|
410
437
|
|
|
411
|
-
|
|
412
|
-
this.
|
|
438
|
+
_showFilteredItems() {
|
|
439
|
+
this.filterSelected = true;
|
|
440
|
+
this._showMorePressed = true;
|
|
413
441
|
|
|
414
|
-
|
|
415
|
-
this._inputDom.focus();
|
|
416
|
-
}
|
|
442
|
+
this.togglePopover();
|
|
417
443
|
}
|
|
418
444
|
|
|
419
445
|
filterSelectedItems(event) {
|
|
420
|
-
if (this.allItemsSelected) {
|
|
421
|
-
this.filterSelected = true;
|
|
422
|
-
return;
|
|
423
|
-
}
|
|
424
|
-
|
|
425
446
|
this.filterSelected = event.target.pressed;
|
|
447
|
+
this.selectedItems = this._filteredItems.filter(item => item.selected);
|
|
426
448
|
}
|
|
427
449
|
|
|
428
450
|
get _showAllItemsButtonPressed() {
|
|
429
|
-
return this.filterSelected
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
get allItemsSelected() {
|
|
433
|
-
return this.items.length === this.selectedValues.length;
|
|
451
|
+
return this.filterSelected;
|
|
434
452
|
}
|
|
435
453
|
|
|
436
454
|
get _inputDom() {
|
|
@@ -443,11 +461,15 @@ class MultiComboBox extends UI5Element {
|
|
|
443
461
|
const filteredItems = this._filterItems(value);
|
|
444
462
|
const oldValueState = this.valueState;
|
|
445
463
|
|
|
464
|
+
if (this.filterSelected) {
|
|
465
|
+
this.filterSelected = false;
|
|
466
|
+
}
|
|
467
|
+
|
|
446
468
|
/* skip calling change event when an input with a placeholder is focused on IE
|
|
447
469
|
- value of the host and the internal input should be differnt in case of actual input
|
|
448
470
|
- input is called when a key is pressed => keyup should not be called yet
|
|
449
471
|
*/
|
|
450
|
-
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;
|
|
451
473
|
|
|
452
474
|
if (skipFiring) {
|
|
453
475
|
event.preventDefault();
|
|
@@ -464,15 +486,11 @@ class MultiComboBox extends UI5Element {
|
|
|
464
486
|
input.value = this._inputLastValue;
|
|
465
487
|
this.valueState = "Error";
|
|
466
488
|
|
|
467
|
-
this.
|
|
468
|
-
this.valueState = oldValueState;
|
|
469
|
-
this._validationTimeout = null;
|
|
470
|
-
}, 2000);
|
|
489
|
+
this._resetValueState(oldValueState);
|
|
471
490
|
|
|
472
491
|
return;
|
|
473
492
|
}
|
|
474
493
|
|
|
475
|
-
|
|
476
494
|
this._inputLastValue = input.value;
|
|
477
495
|
this.value = input.value;
|
|
478
496
|
this._filteredItems = filteredItems;
|
|
@@ -481,7 +499,7 @@ class MultiComboBox extends UI5Element {
|
|
|
481
499
|
if (filteredItems.length === 0) {
|
|
482
500
|
this.allItemsPopover.close();
|
|
483
501
|
} else {
|
|
484
|
-
this.allItemsPopover.
|
|
502
|
+
this.allItemsPopover.showAt(this);
|
|
485
503
|
}
|
|
486
504
|
}
|
|
487
505
|
|
|
@@ -498,30 +516,26 @@ class MultiComboBox extends UI5Element {
|
|
|
498
516
|
this.fireSelectionChange();
|
|
499
517
|
}
|
|
500
518
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
if (cursorPosition === 0) {
|
|
505
|
-
this._focusLastToken();
|
|
519
|
+
get _getPlaceholder() {
|
|
520
|
+
if (this._tokenizer && this._tokenizer.tokens.length) {
|
|
521
|
+
return "";
|
|
506
522
|
}
|
|
523
|
+
|
|
524
|
+
return this.placeholder;
|
|
507
525
|
}
|
|
508
526
|
|
|
509
|
-
|
|
510
|
-
const
|
|
527
|
+
_handleLeft() {
|
|
528
|
+
const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
|
|
511
529
|
|
|
512
|
-
if (
|
|
513
|
-
|
|
530
|
+
if (cursorPosition === 0) {
|
|
531
|
+
this._tokenizer._focusLastToken();
|
|
514
532
|
}
|
|
515
|
-
|
|
516
|
-
this._tokenizer.tokens[lastTokenIndex].focus();
|
|
517
|
-
this._tokenizer._itemNav.currentIndex = lastTokenIndex;
|
|
518
533
|
}
|
|
519
534
|
|
|
520
535
|
_tokenizerFocusOut(event) {
|
|
521
536
|
this._tokenizerFocused = false;
|
|
522
537
|
|
|
523
|
-
const
|
|
524
|
-
const tokensCount = tokenizer.tokens.length - 1;
|
|
538
|
+
const tokensCount = this._tokenizer.tokens.length - 1;
|
|
525
539
|
|
|
526
540
|
if (!event.relatedTarget || event.relatedTarget.localName !== "ui5-token") {
|
|
527
541
|
this._tokenizer.tokens.forEach(token => { token.selected = false; });
|
|
@@ -555,25 +569,125 @@ class MultiComboBox extends UI5Element {
|
|
|
555
569
|
|
|
556
570
|
if (isShow(event) && !this.readonly && !this.disabled) {
|
|
557
571
|
event.preventDefault();
|
|
558
|
-
this.
|
|
572
|
+
this.togglePopover();
|
|
559
573
|
}
|
|
560
574
|
|
|
561
|
-
if (
|
|
562
|
-
|
|
563
|
-
await this._getList();
|
|
564
|
-
this.list._itemNavigation.current = 0;
|
|
565
|
-
this.list.items[0].focus();
|
|
575
|
+
if (this.open && (isUp(event) || isDown(event))) {
|
|
576
|
+
this._handleArrowNavigation(event);
|
|
566
577
|
}
|
|
567
578
|
|
|
568
579
|
if (isBackSpace(event) && event.target.value === "") {
|
|
569
580
|
event.preventDefault();
|
|
570
581
|
|
|
571
|
-
this._focusLastToken();
|
|
582
|
+
this._tokenizer._focusLastToken();
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
// Reset value on ESC
|
|
586
|
+
if (isEscape(event) && (!this.allowCustomValues || (!this.open && this.allowCustomValues))) {
|
|
587
|
+
this.value = this._lastValue;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
if (isEnter(event)) {
|
|
591
|
+
this.handleEnter();
|
|
572
592
|
}
|
|
573
593
|
|
|
574
594
|
this._keyDown = true;
|
|
575
595
|
}
|
|
576
596
|
|
|
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
|
+
}
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
_onItemKeydown(event) {
|
|
613
|
+
const isFirstItem = this.list.items[0] === event.target;
|
|
614
|
+
|
|
615
|
+
event.preventDefault();
|
|
616
|
+
|
|
617
|
+
if (!isUp(event) || !isFirstItem) {
|
|
618
|
+
return;
|
|
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
|
+
|
|
577
691
|
_onTokenizerKeydown(event) {
|
|
578
692
|
if (isRight(event)) {
|
|
579
693
|
const lastTokenIndex = this._tokenizer.tokens.length - 1;
|
|
@@ -586,21 +700,23 @@ class MultiComboBox extends UI5Element {
|
|
|
586
700
|
}
|
|
587
701
|
}
|
|
588
702
|
|
|
589
|
-
_filterItems(
|
|
590
|
-
return this.
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
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
|
+
}
|
|
595
715
|
}
|
|
596
716
|
|
|
597
717
|
_toggle() {
|
|
598
718
|
this.open = !this.open;
|
|
599
719
|
this.fireEvent("open-change");
|
|
600
|
-
|
|
601
|
-
if (!this.open) {
|
|
602
|
-
this._afterClosePopover();
|
|
603
|
-
}
|
|
604
720
|
}
|
|
605
721
|
|
|
606
722
|
_getSelectedItems() {
|
|
@@ -610,23 +726,37 @@ class MultiComboBox extends UI5Element {
|
|
|
610
726
|
}
|
|
611
727
|
|
|
612
728
|
_listSelectionChange(event) {
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
if (mcbItem._id === item.getAttribute("data-ui5-token-id")) {
|
|
616
|
-
mcbItem.selected = item.selected;
|
|
617
|
-
}
|
|
618
|
-
});
|
|
619
|
-
});
|
|
729
|
+
// sync list items and cb items
|
|
730
|
+
this.syncItems(event.target.items);
|
|
620
731
|
|
|
621
|
-
|
|
732
|
+
// don't call selection change right after selection as user can cancel it on phone
|
|
733
|
+
if (!isPhone()) {
|
|
734
|
+
this.fireSelectionChange();
|
|
735
|
+
}
|
|
622
736
|
|
|
623
737
|
if (!event.detail.selectionComponentPressed && !isSpace(event.detail)) {
|
|
624
738
|
this.allItemsPopover.close();
|
|
625
739
|
this.value = "";
|
|
740
|
+
|
|
741
|
+
// if the item (not checkbox) is clicked, call the selection change
|
|
742
|
+
if (isPhone()) {
|
|
743
|
+
this.fireSelectionChange();
|
|
744
|
+
}
|
|
745
|
+
|
|
626
746
|
this.fireEvent("input");
|
|
627
747
|
}
|
|
628
748
|
}
|
|
629
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
|
+
|
|
630
760
|
fireSelectionChange() {
|
|
631
761
|
this.fireEvent("selection-change", { items: this._getSelectedItems() });
|
|
632
762
|
// Angular 2 way data binding
|
|
@@ -643,28 +773,41 @@ class MultiComboBox extends UI5Element {
|
|
|
643
773
|
this.list = staticAreaItem.querySelector(".ui5-multi-combobox-all-items-list");
|
|
644
774
|
}
|
|
645
775
|
|
|
646
|
-
_toggleRespPopover() {
|
|
647
|
-
this.allItemsPopover.toggle(this);
|
|
648
|
-
}
|
|
649
|
-
|
|
650
776
|
_click(event) {
|
|
651
|
-
if (isPhone() && !this.readonly && !this._showMorePressed) {
|
|
652
|
-
this.allItemsPopover.
|
|
777
|
+
if (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {
|
|
778
|
+
this.allItemsPopover.showAt(this);
|
|
653
779
|
}
|
|
654
780
|
|
|
655
781
|
this._showMorePressed = false;
|
|
656
782
|
}
|
|
657
783
|
|
|
658
|
-
|
|
784
|
+
_afterClosePicker() {
|
|
659
785
|
// close device's keyboard and prevent further typing
|
|
660
786
|
if (isPhone()) {
|
|
661
787
|
this.blur();
|
|
662
788
|
}
|
|
663
789
|
|
|
790
|
+
this._toggle();
|
|
791
|
+
|
|
664
792
|
this._iconPressed = false;
|
|
665
793
|
this.filterSelected = false;
|
|
666
794
|
}
|
|
667
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
|
+
|
|
668
811
|
onBeforeRendering() {
|
|
669
812
|
const input = this.shadowRoot.querySelector("input");
|
|
670
813
|
this._inputLastValue = this.value;
|
|
@@ -673,6 +816,10 @@ class MultiComboBox extends UI5Element {
|
|
|
673
816
|
this._filteredItems = this.items;
|
|
674
817
|
}
|
|
675
818
|
|
|
819
|
+
this.items.forEach(item => {
|
|
820
|
+
item._getRealDomRef = () => this.allItemsPopover.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
|
|
821
|
+
});
|
|
822
|
+
|
|
676
823
|
const filteredItems = this._filterItems(this.value);
|
|
677
824
|
this._filteredItems = filteredItems;
|
|
678
825
|
}
|
|
@@ -683,6 +830,8 @@ class MultiComboBox extends UI5Element {
|
|
|
683
830
|
|
|
684
831
|
this.toggle(this.shouldDisplayOnlyValueStateMessage);
|
|
685
832
|
this.storeResponsivePopoverWidth();
|
|
833
|
+
|
|
834
|
+
this._deleting = false;
|
|
686
835
|
}
|
|
687
836
|
|
|
688
837
|
get _isPhone() {
|
|
@@ -707,14 +856,36 @@ class MultiComboBox extends UI5Element {
|
|
|
707
856
|
}
|
|
708
857
|
}
|
|
709
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
|
+
|
|
710
877
|
async openPopover() {
|
|
711
878
|
const popover = await this._getPopover();
|
|
712
879
|
|
|
713
880
|
if (popover) {
|
|
714
|
-
popover.
|
|
881
|
+
popover.showAt(this);
|
|
715
882
|
}
|
|
716
883
|
}
|
|
717
884
|
|
|
885
|
+
_forwardFocusToInner() {
|
|
886
|
+
this._innerInput.focus();
|
|
887
|
+
}
|
|
888
|
+
|
|
718
889
|
async closePopover() {
|
|
719
890
|
const popover = await this._getPopover();
|
|
720
891
|
|
|
@@ -726,42 +897,51 @@ class MultiComboBox extends UI5Element {
|
|
|
726
897
|
return staticAreaItem.querySelector("[ui5-popover]");
|
|
727
898
|
}
|
|
728
899
|
|
|
729
|
-
|
|
730
|
-
|
|
900
|
+
async _getResponsivePopover() {
|
|
901
|
+
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
902
|
+
return staticAreaItem.querySelector("[ui5-responsive-popover]");
|
|
731
903
|
}
|
|
732
904
|
|
|
733
|
-
|
|
734
|
-
const
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
return this.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_TOKEN);
|
|
738
|
-
}
|
|
739
|
-
|
|
740
|
-
if (iTokenCount === 1) {
|
|
741
|
-
return this.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_ONE_TOKEN);
|
|
742
|
-
}
|
|
905
|
+
async _setValueStateHeader() {
|
|
906
|
+
const responsivePopover = await this._getResponsivePopover();
|
|
907
|
+
this.valueStateHeader = responsivePopover.querySelector("div.ui5-responsive-popover-header.ui5-valuestatemessage-root");
|
|
908
|
+
}
|
|
743
909
|
|
|
744
|
-
|
|
910
|
+
get _tokenizer() {
|
|
911
|
+
return this.shadowRoot.querySelector("[ui5-tokenizer]");
|
|
745
912
|
}
|
|
746
913
|
|
|
747
914
|
inputFocusIn() {
|
|
748
915
|
if (!isPhone()) {
|
|
749
916
|
this.focused = true;
|
|
917
|
+
} else {
|
|
918
|
+
this._innerInput.blur();
|
|
750
919
|
}
|
|
920
|
+
|
|
921
|
+
this._lastValue = this.value;
|
|
751
922
|
}
|
|
752
923
|
|
|
753
924
|
inputFocusOut(event) {
|
|
754
925
|
if (!this.shadowRoot.contains(event.relatedTarget) && !this._deleting) {
|
|
755
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
|
+
}
|
|
756
932
|
}
|
|
757
933
|
}
|
|
758
934
|
|
|
935
|
+
_readonlyIconClick() {
|
|
936
|
+
this._inputDom.focus();
|
|
937
|
+
}
|
|
938
|
+
|
|
759
939
|
get editable() {
|
|
760
940
|
return !this.readonly;
|
|
761
941
|
}
|
|
762
942
|
|
|
763
943
|
get _isFocusInside() {
|
|
764
|
-
return this.focused || this._tokenizerFocused;
|
|
944
|
+
return !isPhone() && (this.focused || this._tokenizerFocused);
|
|
765
945
|
}
|
|
766
946
|
|
|
767
947
|
get selectedItemsListMode() {
|
|
@@ -781,7 +961,13 @@ class MultiComboBox extends UI5Element {
|
|
|
781
961
|
}
|
|
782
962
|
|
|
783
963
|
get valueStateText() {
|
|
784
|
-
|
|
964
|
+
let key = this.valueState;
|
|
965
|
+
|
|
966
|
+
if (this._performingSelectionTwice) {
|
|
967
|
+
key = "Error_Selection";
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
return this.valueStateTextMappings[key];
|
|
785
971
|
}
|
|
786
972
|
|
|
787
973
|
get valueStateTextId() {
|
|
@@ -792,6 +978,35 @@ class MultiComboBox extends UI5Element {
|
|
|
792
978
|
return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
|
|
793
979
|
}
|
|
794
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
|
+
|
|
795
1010
|
get shouldDisplayDefaultValueStateMessage() {
|
|
796
1011
|
return !this.valueStateMessage.length && this.hasValueStateMessage;
|
|
797
1012
|
}
|
|
@@ -802,9 +1017,11 @@ class MultiComboBox extends UI5Element {
|
|
|
802
1017
|
|
|
803
1018
|
get valueStateTextMappings() {
|
|
804
1019
|
return {
|
|
805
|
-
"Success":
|
|
806
|
-
"Error":
|
|
807
|
-
"
|
|
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),
|
|
808
1025
|
};
|
|
809
1026
|
}
|
|
810
1027
|
|
|
@@ -819,15 +1036,15 @@ class MultiComboBox extends UI5Element {
|
|
|
819
1036
|
}
|
|
820
1037
|
|
|
821
1038
|
get _headerTitleText() {
|
|
822
|
-
return
|
|
1039
|
+
return MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
823
1040
|
}
|
|
824
1041
|
|
|
825
1042
|
get _iconAccessibleNameText() {
|
|
826
|
-
return
|
|
1043
|
+
return MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);
|
|
827
1044
|
}
|
|
828
1045
|
|
|
829
1046
|
get _dialogOkButton() {
|
|
830
|
-
return
|
|
1047
|
+
return MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);
|
|
831
1048
|
}
|
|
832
1049
|
|
|
833
1050
|
get _tokenizerExpanded() {
|
|
@@ -836,8 +1053,14 @@ class MultiComboBox extends UI5Element {
|
|
|
836
1053
|
|
|
837
1054
|
get classes() {
|
|
838
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
|
+
},
|
|
839
1061
|
popoverValueState: {
|
|
840
1062
|
"ui5-valuestatemessage-root": true,
|
|
1063
|
+
"ui5-valuestatemessage-header": true,
|
|
841
1064
|
"ui5-valuestatemessage--success": this.valueState === ValueState.Success,
|
|
842
1065
|
"ui5-valuestatemessage--error": this.valueState === ValueState.Error,
|
|
843
1066
|
"ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
|
|
@@ -850,18 +1073,16 @@ class MultiComboBox extends UI5Element {
|
|
|
850
1073
|
return {
|
|
851
1074
|
popoverValueStateMessage: {
|
|
852
1075
|
"width": `${this._listWidth}px`,
|
|
853
|
-
"min-height": "2.5rem",
|
|
854
|
-
"padding": "0.5625rem 1rem",
|
|
855
1076
|
"display": this._listWidth === 0 ? "none" : "inline-block",
|
|
856
1077
|
},
|
|
857
1078
|
popoverHeader: {
|
|
858
|
-
"width": `${this._inputWidth}px`,
|
|
1079
|
+
"max-width": isPhone() ? "100%" : `${this._inputWidth}px`,
|
|
859
1080
|
},
|
|
860
1081
|
};
|
|
861
1082
|
}
|
|
862
1083
|
|
|
863
1084
|
static async onDefine() {
|
|
864
|
-
await
|
|
1085
|
+
MultiComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
865
1086
|
}
|
|
866
1087
|
}
|
|
867
1088
|
|