@ui5/webcomponents 0.0.0-323968e1b → 0.0.0-4180fe799
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +717 -1
- package/README.md +144 -41
- package/csp.js +7 -0
- package/customI18n.js +50 -0
- package/dist/Assets-static.js +6 -0
- package/dist/Assets.js +3 -2
- package/dist/Avatar.js +224 -40
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +48 -28
- package/dist/Breadcrumbs.js +563 -0
- package/dist/BreadcrumbsItem.js +109 -0
- package/dist/BusyIndicator.js +172 -19
- package/dist/Button.js +180 -49
- package/dist/Calendar.js +345 -554
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +133 -64
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +47 -161
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +681 -0
- package/dist/CheckBox.js +154 -54
- package/dist/ColorPalette.js +493 -0
- package/dist/ColorPaletteItem.js +137 -0
- package/dist/ColorPalettePopover.js +219 -0
- package/dist/ColorPicker.js +524 -0
- package/dist/ComboBox.js +664 -107
- package/dist/ComboBoxFilters.js +8 -1
- package/dist/ComboBoxGroupItem.js +70 -0
- package/dist/ComboBoxItem.js +33 -30
- package/dist/CustomListItem.js +38 -9
- package/dist/DateComponentBase.js +170 -0
- package/dist/DatePicker.js +468 -384
- package/dist/DateRangePicker.js +328 -0
- package/dist/DateTimePicker.js +430 -0
- package/dist/DayPicker.js +513 -438
- package/dist/Dialog.js +501 -47
- package/dist/DurationPicker.js +312 -0
- package/dist/FileUploader.js +532 -0
- package/dist/GroupHeaderListItem.js +36 -8
- package/dist/Icon.js +221 -43
- package/dist/Input.js +796 -127
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -12
- package/dist/Link.js +143 -35
- package/dist/List.js +560 -73
- package/dist/ListItem.js +139 -30
- package/dist/ListItemBase.js +53 -9
- package/dist/MessageStrip.js +82 -93
- package/dist/MonthPicker.js +181 -184
- package/dist/MultiComboBox.js +625 -200
- package/dist/MultiComboBoxItem.js +43 -0
- package/dist/MultiInput.js +301 -0
- package/dist/Option.js +48 -5
- package/dist/Panel.js +123 -41
- package/dist/Popover.js +314 -234
- package/dist/Popup.js +382 -287
- package/dist/ProgressIndicator.js +235 -0
- package/dist/RadioButton.js +153 -66
- package/dist/RadioButtonGroup.js +53 -29
- package/dist/RangeSlider.js +769 -0
- package/dist/RatingIndicator.js +291 -0
- package/dist/ResponsivePopover.js +117 -61
- package/dist/SegmentedButton.js +290 -0
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +500 -110
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +46 -24
- package/dist/StepInput.js +684 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +146 -0
- package/dist/SuggestionListItem.js +76 -0
- package/dist/Switch.js +62 -48
- package/dist/Tab.js +184 -18
- package/dist/TabContainer.js +337 -235
- package/dist/TabSeparator.js +2 -1
- package/dist/Table.js +492 -39
- package/dist/TableCell.js +13 -15
- package/dist/TableColumn.js +18 -7
- package/dist/TableGroupRow.js +160 -0
- package/dist/TableRow.js +254 -31
- package/dist/TextArea.js +314 -38
- package/dist/TimePicker.js +166 -0
- package/dist/TimePickerBase.js +463 -0
- package/dist/TimeSelection.js +493 -0
- package/dist/Title.js +18 -10
- package/dist/Toast.js +63 -37
- package/dist/ToggleButton.js +21 -13
- package/dist/Token.js +87 -49
- package/dist/Tokenizer.js +250 -65
- package/dist/Tree.js +443 -0
- package/dist/TreeItem.js +168 -0
- package/dist/TreeListItem.js +332 -0
- package/dist/WheelSlider.js +435 -0
- package/dist/YearPicker.js +201 -258
- package/dist/api.json +6877 -0
- package/dist/features/ColorPaletteMoreColors.js +42 -0
- package/dist/features/InputElementsFormSupport.js +35 -1
- package/dist/features/InputSuggestions.js +294 -52
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
- package/dist/generated/i18n/i18n-defaults.js +2 -2
- package/dist/generated/json-imports/Themes-static.js +35 -0
- package/dist/generated/json-imports/Themes.js +23 -13
- package/dist/generated/json-imports/i18n-static.js +162 -0
- package/dist/generated/json-imports/i18n.js +113 -89
- package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
- package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
- package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -5
- package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
- package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
- package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
- package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
- package/dist/generated/templates/CardTemplate.lit.js +5 -8
- package/dist/generated/templates/CarouselTemplate.lit.js +16 -0
- package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
- package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
- package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
- package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
- package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -5
- package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
- package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
- package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
- package/dist/generated/templates/DialogTemplate.lit.js +9 -8
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
- package/dist/generated/templates/FileUploaderTemplate.lit.js +10 -0
- package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
- package/dist/generated/templates/IconTemplate.lit.js +6 -6
- package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -6
- package/dist/generated/templates/InputTemplate.lit.js +9 -8
- package/dist/generated/templates/LabelTemplate.lit.js +4 -4
- package/dist/generated/templates/LinkTemplate.lit.js +5 -5
- package/dist/generated/templates/ListItemTemplate.lit.js +13 -12
- package/dist/generated/templates/ListTemplate.lit.js +12 -8
- package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
- package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
- package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
- package/dist/generated/templates/PanelTemplate.lit.js +9 -6
- package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
- package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
- package/dist/generated/templates/PopupTemplate.lit.js +4 -4
- package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
- package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
- package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -11
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
- package/dist/generated/templates/SelectTemplate.lit.js +6 -4
- package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
- package/dist/generated/templates/SliderTemplate.lit.js +12 -0
- package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -18
- package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
- package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
- package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -8
- package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
- package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
- package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
- package/dist/generated/templates/TabTemplate.lit.js +4 -4
- package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
- package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
- package/dist/generated/templates/TableRowTemplate.lit.js +12 -6
- package/dist/generated/templates/TableTemplate.lit.js +13 -8
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
- package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
- package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
- package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
- package/dist/generated/templates/TitleTemplate.lit.js +10 -10
- package/dist/generated/templates/ToastTemplate.lit.js +5 -4
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
- package/dist/generated/templates/TokenTemplate.lit.js +7 -5
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
- package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
- package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
- package/dist/generated/templates/TreeTemplate.lit.js +8 -0
- package/dist/generated/templates/WheelSliderTemplate.lit.js +10 -0
- package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
- package/dist/generated/themes/Avatar.css.js +6 -7
- package/dist/generated/themes/AvatarGroup.css.js +8 -0
- package/dist/generated/themes/Badge.css.js +6 -7
- package/dist/generated/themes/Breadcrumbs.css.js +8 -0
- package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
- package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
- package/dist/generated/themes/BusyIndicator.css.js +6 -7
- package/dist/generated/themes/Button.css.js +6 -7
- package/dist/generated/themes/Button.ie11.css.js +8 -0
- package/dist/generated/themes/Calendar.css.js +6 -7
- package/dist/generated/themes/CalendarHeader.css.js +6 -7
- package/dist/generated/themes/Card.css.js +6 -7
- package/dist/generated/themes/CardHeader.css.js +8 -0
- package/dist/generated/themes/Carousel.css.js +8 -0
- package/dist/generated/themes/CheckBox.css.js +6 -7
- package/dist/generated/themes/ColorPalette.css.js +8 -0
- package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
- package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
- package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
- package/dist/generated/themes/ColorPicker.css.js +8 -0
- package/dist/generated/themes/ComboBox.css.js +6 -7
- package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
- package/dist/generated/themes/CustomListItem.css.js +6 -7
- package/dist/generated/themes/DatePicker.css.js +6 -7
- package/dist/generated/themes/DatePickerPopover.css.js +6 -7
- package/dist/generated/themes/DateRangePicker.css.js +8 -0
- package/dist/generated/themes/DateTimePicker.css.js +8 -0
- package/dist/generated/themes/DateTimePickerPopover.css.js +8 -0
- package/dist/generated/themes/DayPicker.css.js +6 -7
- package/dist/generated/themes/Dialog.css.js +6 -7
- package/dist/generated/themes/FileUploader.css.js +8 -0
- package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
- package/dist/generated/themes/GrowingButton.css.js +8 -0
- package/dist/generated/themes/Icon.css.js +6 -7
- package/dist/generated/themes/Input.css.js +6 -7
- package/dist/generated/themes/InputIcon.css.js +6 -7
- package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
- package/dist/generated/themes/Label.css.js +6 -7
- package/dist/generated/themes/Link.css.js +6 -7
- package/dist/generated/themes/List.css.js +6 -7
- package/dist/generated/themes/ListItem.css.js +6 -7
- package/dist/generated/themes/ListItemBase.css.js +6 -7
- package/dist/generated/themes/MessageStrip.css.js +6 -7
- package/dist/generated/themes/MonthPicker.css.js +6 -7
- package/dist/generated/themes/MultiComboBox.css.js +6 -7
- package/dist/generated/themes/MultiInput.css.js +8 -0
- package/dist/generated/themes/Panel.css.js +6 -7
- package/dist/generated/themes/Popover.css.js +6 -7
- package/dist/generated/themes/Popup.css.js +6 -7
- package/dist/generated/themes/PopupGlobal.css.js +8 -0
- package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
- package/dist/generated/themes/PopupsCommon.css.js +8 -0
- package/dist/generated/themes/ProgressIndicator.css.js +8 -0
- package/dist/generated/themes/RadioButton.css.js +6 -7
- package/dist/generated/themes/RatingIndicator.css.js +8 -0
- package/dist/generated/themes/ResponsivePopover.css.js +6 -7
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
- package/dist/generated/themes/SegmentedButton.css.js +8 -0
- package/dist/generated/themes/Select.css.js +6 -7
- package/dist/generated/themes/SelectPopover.css.js +8 -0
- package/dist/generated/themes/SliderBase.css.js +8 -0
- package/dist/generated/themes/StepInput.css.js +8 -0
- package/dist/generated/themes/Suggestions.css.js +8 -0
- package/dist/generated/themes/Switch.css.js +6 -7
- package/dist/generated/themes/Tab.css.js +6 -7
- package/dist/generated/themes/TabContainer.css.js +6 -7
- package/dist/generated/themes/TabInOverflow.css.js +8 -0
- package/dist/generated/themes/TabInStrip.css.js +8 -0
- package/dist/generated/themes/Table.css.js +6 -7
- package/dist/generated/themes/TableCell.css.js +6 -7
- package/dist/generated/themes/TableColumn.css.js +6 -7
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableRow.css.js +6 -7
- package/dist/generated/themes/TapHighlightColor.css.js +8 -0
- package/dist/generated/themes/TextArea.css.js +6 -7
- package/dist/generated/themes/TimePicker.css.js +8 -0
- package/dist/generated/themes/TimePickerPopover.css.js +8 -0
- package/dist/generated/themes/TimeSelection.css.js +8 -0
- package/dist/generated/themes/Title.css.js +6 -7
- package/dist/generated/themes/Toast.css.js +6 -7
- package/dist/generated/themes/ToggleButton.css.js +6 -7
- package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
- package/dist/generated/themes/Token.css.js +6 -7
- package/dist/generated/themes/Tokenizer.css.js +6 -7
- package/dist/generated/themes/Tree.css.js +8 -0
- package/dist/generated/themes/TreeListItem.css.js +8 -0
- package/dist/generated/themes/ValueStateMessage.css.js +8 -0
- package/dist/generated/themes/WheelSlider.css.js +8 -0
- package/dist/generated/themes/YearPicker.css.js +6 -7
- package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
- package/dist/i18n/messagebundle.properties +335 -0
- package/dist/i18n/messagebundle_ar.properties +224 -0
- package/dist/i18n/messagebundle_bg.properties +224 -0
- package/dist/i18n/messagebundle_ca.properties +224 -0
- package/dist/i18n/messagebundle_cs.properties +224 -0
- package/dist/i18n/messagebundle_cy.properties +224 -0
- package/dist/i18n/messagebundle_da.properties +224 -0
- package/dist/i18n/messagebundle_de.properties +224 -0
- package/dist/i18n/messagebundle_el.properties +224 -0
- package/dist/i18n/messagebundle_en.properties +224 -0
- package/dist/i18n/messagebundle_en_GB.properties +224 -0
- package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
- package/dist/i18n/messagebundle_es.properties +224 -0
- package/dist/i18n/messagebundle_es_MX.properties +224 -0
- package/dist/i18n/messagebundle_et.properties +224 -0
- package/dist/i18n/messagebundle_fi.properties +224 -0
- package/dist/i18n/messagebundle_fr.properties +224 -0
- package/dist/i18n/messagebundle_fr_CA.properties +224 -0
- package/dist/i18n/messagebundle_hi.properties +224 -0
- package/dist/i18n/messagebundle_hr.properties +224 -0
- package/dist/i18n/messagebundle_hu.properties +224 -0
- package/dist/i18n/messagebundle_id.properties +224 -0
- package/dist/i18n/messagebundle_in.properties +172 -0
- package/dist/i18n/messagebundle_it.properties +224 -0
- package/dist/i18n/messagebundle_iw.properties +224 -0
- package/dist/i18n/messagebundle_ja.properties +224 -0
- package/dist/i18n/messagebundle_kk.properties +224 -0
- package/dist/i18n/messagebundle_ko.properties +224 -0
- package/dist/i18n/messagebundle_lt.properties +224 -0
- package/dist/i18n/messagebundle_lv.properties +224 -0
- package/dist/i18n/messagebundle_ms.properties +224 -0
- package/dist/i18n/messagebundle_nl.properties +224 -0
- package/dist/i18n/messagebundle_no.properties +224 -0
- package/dist/i18n/messagebundle_pl.properties +224 -0
- package/dist/i18n/messagebundle_pt.properties +224 -0
- package/dist/i18n/messagebundle_pt_PT.properties +224 -0
- package/dist/i18n/messagebundle_ro.properties +224 -0
- package/dist/i18n/messagebundle_ru.properties +224 -0
- package/dist/i18n/messagebundle_sh.properties +224 -0
- package/dist/i18n/messagebundle_sk.properties +224 -0
- package/dist/i18n/messagebundle_sl.properties +224 -0
- package/dist/i18n/messagebundle_sv.properties +224 -0
- package/dist/i18n/messagebundle_th.properties +224 -0
- package/dist/i18n/messagebundle_tr.properties +224 -0
- package/dist/i18n/messagebundle_uk.properties +224 -0
- package/dist/i18n/messagebundle_vi.properties +224 -0
- package/dist/i18n/messagebundle_zh_CN.properties +224 -0
- package/dist/i18n/messagebundle_zh_TW.properties +224 -0
- package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
- package/dist/popup-utils/PopoverRegistry.js +55 -21
- package/dist/timepicker-utils/TimeSlider.js +103 -0
- package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
- package/dist/types/AvatarGroupType.js +43 -0
- package/dist/types/AvatarShape.js +1 -1
- package/dist/types/AvatarSize.js +1 -1
- package/dist/types/BreadcrumbsDesign.js +42 -0
- package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/dist/types/BusyIndicatorSize.js +1 -1
- package/dist/types/ButtonDesign.js +8 -1
- package/dist/types/CalendarSelectionMode.js +47 -0
- package/dist/types/CarouselArrowsPlacement.js +40 -0
- package/dist/types/GrowingMode.js +48 -0
- package/dist/types/InputType.js +7 -7
- package/dist/types/LinkDesign.js +1 -1
- package/dist/types/ListGrowingMode.js +15 -0
- package/dist/types/ListItemType.js +8 -1
- package/dist/types/ListMode.js +9 -1
- package/dist/types/ListSeparators.js +1 -1
- package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
- package/dist/types/PanelAccessibleRole.js +1 -1
- package/dist/types/PopoverHorizontalAlign.js +1 -1
- package/dist/types/PopoverPlacementType.js +2 -2
- package/dist/types/PopoverVerticalAlign.js +1 -2
- package/dist/types/Priority.js +55 -0
- package/dist/types/SemanticColor.js +1 -1
- package/dist/types/SwitchDesign.js +40 -0
- package/dist/types/TabContainerTabsPlacement.js +40 -0
- package/dist/types/TabLayout.js +40 -0
- package/dist/types/TableGrowingMode.js +15 -0
- package/dist/types/TableMode.js +47 -0
- package/dist/types/TableRowType.js +40 -0
- package/dist/types/TitleLevel.js +1 -1
- package/dist/types/ToastPlacement.js +1 -2
- package/dist/types/WrappingType.js +41 -0
- package/dist/webcomponentsjs/CHANGELOG.md +61 -0
- package/dist/webcomponentsjs/README.md +64 -47
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
- package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
- package/package-scripts.js +1 -0
- package/package.json +23 -8
- package/src/Assets-static.js +6 -0
- package/src/Assets.js +7 -0
- package/src/Avatar.hbs +20 -0
- package/src/Avatar.js +392 -0
- package/src/AvatarGroup.hbs +30 -0
- package/src/AvatarGroup.js +603 -0
- package/src/Badge.hbs +14 -0
- package/src/Badge.js +165 -0
- package/src/Breadcrumbs.hbs +42 -0
- package/src/Breadcrumbs.js +563 -0
- package/src/BreadcrumbsItem.js +109 -0
- package/src/BreadcrumbsPopover.hbs +28 -0
- package/src/BusyIndicator.hbs +32 -0
- package/src/BusyIndicator.js +269 -0
- package/src/Button.hbs +45 -0
- package/src/Button.js +463 -0
- package/src/Calendar.hbs +69 -0
- package/src/Calendar.js +489 -0
- package/src/CalendarDate.js +45 -0
- package/src/CalendarHeader.hbs +54 -0
- package/src/CalendarHeader.js +209 -0
- package/src/CalendarPart.js +111 -0
- package/src/Card.hbs +14 -0
- package/src/Card.js +160 -0
- package/src/CardHeader.hbs +35 -0
- package/src/CardHeader.js +288 -0
- package/src/Carousel.hbs +85 -0
- package/src/Carousel.js +681 -0
- package/src/CheckBox.hbs +44 -0
- package/src/CheckBox.js +424 -0
- package/src/ColorPalette.hbs +52 -0
- package/src/ColorPalette.js +493 -0
- package/src/ColorPaletteDialog.hbs +18 -0
- package/src/ColorPaletteItem.hbs +11 -0
- package/src/ColorPaletteItem.js +137 -0
- package/src/ColorPalettePopover.hbs +29 -0
- package/src/ColorPalettePopover.js +219 -0
- package/src/ColorPicker.hbs +98 -0
- package/src/ColorPicker.js +524 -0
- package/src/ComboBox.hbs +49 -0
- package/src/ComboBox.js +1041 -0
- package/src/ComboBoxFilters.js +40 -0
- package/src/ComboBoxGroupItem.js +70 -0
- package/src/ComboBoxItem.js +49 -0
- package/src/ComboBoxPopover.hbs +125 -0
- package/src/CustomListItem.hbs +5 -0
- package/src/CustomListItem.js +99 -0
- package/src/DateComponentBase.js +170 -0
- package/src/DatePicker.hbs +44 -0
- package/src/DatePicker.js +823 -0
- package/src/DatePickerPopover.hbs +63 -0
- package/src/DateRangePicker.js +328 -0
- package/src/DateTimePicker.js +430 -0
- package/src/DateTimePickerPopover.hbs +74 -0
- package/src/DayPicker.hbs +66 -0
- package/src/DayPicker.js +754 -0
- package/src/Dialog.hbs +35 -0
- package/src/Dialog.js +601 -0
- package/src/DurationPicker.js +312 -0
- package/src/FileUploader.hbs +40 -0
- package/src/FileUploader.js +532 -0
- package/src/FileUploaderPopover.hbs +25 -0
- package/src/GroupHeaderListItem.hbs +15 -0
- package/src/GroupHeaderListItem.js +94 -0
- package/src/Icon.hbs +25 -0
- package/src/Icon.js +373 -0
- package/src/Input.hbs +78 -0
- package/src/Input.js +1381 -0
- package/src/InputPopover.hbs +118 -0
- package/src/Interfaces.js +192 -0
- package/src/Label.hbs +13 -0
- package/src/Label.js +152 -0
- package/src/Link.hbs +20 -0
- package/src/Link.js +349 -0
- package/src/List.hbs +89 -0
- package/src/List.js +1056 -0
- package/src/ListItem.hbs +102 -0
- package/src/ListItem.js +371 -0
- package/src/ListItemBase.js +179 -0
- package/src/MessageStrip.hbs +34 -0
- package/src/MessageStrip.js +227 -0
- package/src/MonthPicker.hbs +29 -0
- package/src/MonthPicker.js +299 -0
- package/src/MultiComboBox.hbs +78 -0
- package/src/MultiComboBox.js +1091 -0
- package/src/MultiComboBoxItem.js +43 -0
- package/src/MultiComboBoxPopover.hbs +133 -0
- package/src/MultiInput.hbs +41 -0
- package/src/MultiInput.js +301 -0
- package/src/Option.js +115 -0
- package/src/Panel.hbs +63 -0
- package/src/Panel.js +462 -0
- package/src/Popover.hbs +25 -0
- package/src/Popover.js +786 -0
- package/src/Popup.hbs +34 -0
- package/src/Popup.js +567 -0
- package/src/PopupBlockLayer.hbs +7 -0
- package/src/ProgressIndicator.hbs +35 -0
- package/src/ProgressIndicator.js +235 -0
- package/src/RadioButton.hbs +33 -0
- package/src/RadioButton.js +494 -0
- package/src/RadioButtonGroup.js +205 -0
- package/src/RangeSlider.hbs +70 -0
- package/src/RangeSlider.js +769 -0
- package/src/RatingIndicator.hbs +33 -0
- package/src/RatingIndicator.js +291 -0
- package/src/ResponsivePopover.hbs +39 -0
- package/src/ResponsivePopover.js +206 -0
- package/src/SegmentedButton.hbs +17 -0
- package/src/SegmentedButton.js +290 -0
- package/src/SegmentedButtonItem.hbs +42 -0
- package/src/SegmentedButtonItem.js +109 -0
- package/src/Select.hbs +45 -0
- package/src/Select.js +834 -0
- package/src/SelectPopover.hbs +89 -0
- package/src/Slider.hbs +42 -0
- package/src/Slider.js +320 -0
- package/src/SliderBase.hbs +38 -0
- package/src/SliderBase.js +842 -0
- package/src/StandardListItem.hbs +44 -0
- package/src/StandardListItem.js +191 -0
- package/src/StepInput.hbs +80 -0
- package/src/StepInput.js +684 -0
- package/src/SuggestionGroupItem.js +64 -0
- package/src/SuggestionItem.js +146 -0
- package/src/SuggestionListItem.hbs +33 -0
- package/src/SuggestionListItem.js +76 -0
- package/src/Switch.hbs +50 -0
- package/src/Switch.js +262 -0
- package/src/Tab.hbs +3 -0
- package/src/Tab.js +334 -0
- package/src/TabContainer.hbs +93 -0
- package/src/TabContainer.js +679 -0
- package/src/TabContainerPopover.hbs +24 -0
- package/src/TabInOverflow.hbs +22 -0
- package/src/TabInStrip.hbs +43 -0
- package/src/TabSeparator.hbs +1 -0
- package/src/TabSeparator.js +44 -0
- package/src/Table.hbs +99 -0
- package/src/Table.js +761 -0
- package/src/TableCell.hbs +7 -0
- package/src/TableCell.js +88 -0
- package/src/TableColumn.hbs +8 -0
- package/src/TableColumn.js +136 -0
- package/src/TableGroupRow.hbs +12 -0
- package/src/TableGroupRow.js +160 -0
- package/src/TableRow.hbs +61 -0
- package/src/TableRow.js +388 -0
- package/src/TextArea.hbs +50 -0
- package/src/TextArea.js +691 -0
- package/src/TextAreaPopover.hbs +28 -0
- package/src/TimePicker.hbs +35 -0
- package/src/TimePicker.js +166 -0
- package/src/TimePickerBase.js +463 -0
- package/src/TimePickerPopover.hbs +34 -0
- package/src/TimeSelection.hbs +60 -0
- package/src/TimeSelection.js +493 -0
- package/src/Title.hbs +47 -0
- package/src/Title.js +132 -0
- package/src/Toast.hbs +13 -0
- package/src/Toast.js +243 -0
- package/src/ToggleButton.hbs +5 -0
- package/src/ToggleButton.js +84 -0
- package/src/Token.hbs +30 -0
- package/src/Token.js +219 -0
- package/src/Tokenizer.hbs +27 -0
- package/src/Tokenizer.js +414 -0
- package/src/TokenizerPopover.hbs +50 -0
- package/src/Tree.hbs +42 -0
- package/src/Tree.js +443 -0
- package/src/TreeItem.js +168 -0
- package/src/TreeListItem.hbs +48 -0
- package/src/TreeListItem.js +332 -0
- package/src/WheelSlider.hbs +48 -0
- package/src/WheelSlider.js +435 -0
- package/src/YearPicker.hbs +27 -0
- package/src/YearPicker.js +324 -0
- package/src/features/ColorPaletteMoreColors.js +42 -0
- package/src/features/InputElementsFormSupport.js +88 -0
- package/src/features/InputSuggestions.js +530 -0
- package/src/i18n/messagebundle.properties +335 -0
- package/src/i18n/messagebundle_ar.properties +224 -0
- package/src/i18n/messagebundle_bg.properties +224 -0
- package/src/i18n/messagebundle_ca.properties +224 -0
- package/src/i18n/messagebundle_cs.properties +224 -0
- package/src/i18n/messagebundle_cy.properties +224 -0
- package/src/i18n/messagebundle_da.properties +224 -0
- package/src/i18n/messagebundle_de.properties +224 -0
- package/src/i18n/messagebundle_el.properties +224 -0
- package/src/i18n/messagebundle_en.properties +224 -0
- package/src/i18n/messagebundle_en_GB.properties +224 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
- package/src/i18n/messagebundle_es.properties +224 -0
- package/src/i18n/messagebundle_es_MX.properties +224 -0
- package/src/i18n/messagebundle_et.properties +224 -0
- package/src/i18n/messagebundle_fi.properties +224 -0
- package/src/i18n/messagebundle_fr.properties +224 -0
- package/src/i18n/messagebundle_fr_CA.properties +224 -0
- package/src/i18n/messagebundle_hi.properties +224 -0
- package/src/i18n/messagebundle_hr.properties +224 -0
- package/src/i18n/messagebundle_hu.properties +224 -0
- package/src/i18n/messagebundle_id.properties +224 -0
- package/src/i18n/messagebundle_in.properties +172 -0
- package/src/i18n/messagebundle_it.properties +224 -0
- package/src/i18n/messagebundle_iw.properties +224 -0
- package/src/i18n/messagebundle_ja.properties +224 -0
- package/src/i18n/messagebundle_kk.properties +224 -0
- package/src/i18n/messagebundle_ko.properties +224 -0
- package/src/i18n/messagebundle_lt.properties +224 -0
- package/src/i18n/messagebundle_lv.properties +224 -0
- package/src/i18n/messagebundle_ms.properties +224 -0
- package/src/i18n/messagebundle_nl.properties +224 -0
- package/src/i18n/messagebundle_no.properties +224 -0
- package/src/i18n/messagebundle_pl.properties +224 -0
- package/src/i18n/messagebundle_pt.properties +224 -0
- package/src/i18n/messagebundle_pt_PT.properties +224 -0
- package/src/i18n/messagebundle_ro.properties +224 -0
- package/src/i18n/messagebundle_ru.properties +224 -0
- package/src/i18n/messagebundle_sh.properties +224 -0
- package/src/i18n/messagebundle_sk.properties +224 -0
- package/src/i18n/messagebundle_sl.properties +224 -0
- package/src/i18n/messagebundle_sv.properties +224 -0
- package/src/i18n/messagebundle_th.properties +224 -0
- package/src/i18n/messagebundle_tr.properties +224 -0
- package/src/i18n/messagebundle_uk.properties +224 -0
- package/src/i18n/messagebundle_vi.properties +224 -0
- package/src/i18n/messagebundle_zh_CN.properties +224 -0
- package/src/i18n/messagebundle_zh_TW.properties +224 -0
- package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
- package/src/popup-utils/PopoverRegistry.js +145 -0
- package/src/timepicker-utils/TimeSlider.js +103 -0
- package/src/types/AvatarColorScheme.js +104 -0
- package/src/types/AvatarGroupType.js +43 -0
- package/src/types/AvatarShape.js +41 -0
- package/src/types/AvatarSize.js +67 -0
- package/src/types/BreadcrumbsDesign.js +42 -0
- package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/src/types/BusyIndicatorSize.js +47 -0
- package/src/types/ButtonDesign.js +68 -0
- package/src/types/CalendarSelectionMode.js +47 -0
- package/src/types/CarouselArrowsPlacement.js +40 -0
- package/src/types/GrowingMode.js +48 -0
- package/src/types/InputType.js +68 -0
- package/src/types/LinkDesign.js +47 -0
- package/src/types/ListGrowingMode.js +15 -0
- package/src/types/ListItemType.js +47 -0
- package/src/types/ListMode.js +77 -0
- package/src/types/ListSeparators.js +46 -0
- package/src/types/MessageStripDesign.js +54 -0
- package/src/types/PanelAccessibleRole.js +48 -0
- package/src/types/PopoverHorizontalAlign.js +54 -0
- package/src/types/PopoverPlacementType.js +54 -0
- package/src/types/PopoverVerticalAlign.js +54 -0
- package/src/types/Priority.js +55 -0
- package/src/types/SemanticColor.js +61 -0
- package/src/types/SwitchDesign.js +40 -0
- package/src/types/TabContainerTabsPlacement.js +40 -0
- package/src/types/TabLayout.js +40 -0
- package/src/types/TableGrowingMode.js +15 -0
- package/src/types/TableMode.js +47 -0
- package/src/types/TableRowType.js +40 -0
- package/src/types/TitleLevel.js +68 -0
- package/src/types/ToastPlacement.js +91 -0
- package/src/types/WrappingType.js +41 -0
- package/dist/Timeline.js +0 -81
- package/dist/TimelineItem.js +0 -163
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
- package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
- package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
- package/dist/generated/themes/ComboBoxItem.css.js +0 -9
- package/dist/generated/themes/TabContainerPopup.css.js +0 -9
- package/dist/generated/themes/Timeline.css.js +0 -9
- package/dist/generated/themes/TimelineItem.css.js +0 -9
- package/dist/popup-utils/PopupUtils.js +0 -42
- package/dist/types/AvatarFitType.js +0 -40
- package/dist/webcomponentsjs/package.json +0 -46
- package/index.js +0 -2
package/dist/Popover.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
-
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
|
-
import { getFirstFocusableElement, getLastFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
|
|
4
1
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
5
|
-
import
|
|
2
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
3
|
+
import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
|
|
4
|
+
import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
|
|
5
|
+
import Popup from "./Popup.js";
|
|
6
6
|
import PopoverPlacementType from "./types/PopoverPlacementType.js";
|
|
7
7
|
import PopoverVerticalAlign from "./types/PopoverVerticalAlign.js";
|
|
8
8
|
import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
|
|
9
|
-
|
|
10
9
|
import { addOpenedPopover, removeOpenedPopover } from "./popup-utils/PopoverRegistry.js";
|
|
11
|
-
import { getFocusedElement, getClosedPopupParent } from "./popup-utils/PopupUtils.js";
|
|
12
10
|
|
|
11
|
+
// Template
|
|
12
|
+
import PopoverTemplate from "./generated/templates/PopoverTemplate.lit.js";
|
|
13
13
|
// Styles
|
|
14
|
+
import browserScrollbarCSS from "./generated/themes/BrowserScrollbar.css.js";
|
|
15
|
+
import PopupsCommonCss from "./generated/themes/PopupsCommon.css.js";
|
|
14
16
|
import PopoverCss from "./generated/themes/Popover.css.js";
|
|
15
17
|
|
|
16
18
|
const arrowSize = 8;
|
|
@@ -21,23 +23,13 @@ const arrowSize = 8;
|
|
|
21
23
|
const metadata = {
|
|
22
24
|
tag: "ui5-popover",
|
|
23
25
|
properties: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {
|
|
24
|
-
/**
|
|
25
|
-
* Defines the ID of the HTML Element, which will get the initial focus.
|
|
26
|
-
*
|
|
27
|
-
* @type {string}
|
|
28
|
-
* @defaultvalue: ""
|
|
29
|
-
* @public
|
|
30
|
-
*/
|
|
31
|
-
initialFocus: {
|
|
32
|
-
type: String,
|
|
33
|
-
},
|
|
34
|
-
|
|
35
26
|
/**
|
|
36
27
|
* Defines the header text.
|
|
37
|
-
* <br><
|
|
28
|
+
* <br><br>
|
|
29
|
+
* <b>Note:</b> If <code>header</code> slot is provided, the <code>headerText</code> is ignored.
|
|
38
30
|
*
|
|
39
31
|
* @type {string}
|
|
40
|
-
* @defaultvalue
|
|
32
|
+
* @defaultvalue ""
|
|
41
33
|
* @public
|
|
42
34
|
*/
|
|
43
35
|
headerText: {
|
|
@@ -45,7 +37,15 @@ const metadata = {
|
|
|
45
37
|
},
|
|
46
38
|
|
|
47
39
|
/**
|
|
48
|
-
* Determines on which side the
|
|
40
|
+
* Determines on which side the component is placed at.
|
|
41
|
+
* <br><br>
|
|
42
|
+
* Available options are:
|
|
43
|
+
* <ul>
|
|
44
|
+
* <li><code>Left</code></li>
|
|
45
|
+
* <li><code>Right</code></li>
|
|
46
|
+
* <li><code>Top</code></li>
|
|
47
|
+
* <li><code>Bottom</code></li>
|
|
48
|
+
* </ul>
|
|
49
49
|
*
|
|
50
50
|
* @type {PopoverPlacementType}
|
|
51
51
|
* @defaultvalue "Right"
|
|
@@ -57,7 +57,15 @@ const metadata = {
|
|
|
57
57
|
},
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
|
-
* Determines the horizontal alignment of the
|
|
60
|
+
* Determines the horizontal alignment of the component.
|
|
61
|
+
* <br><br>
|
|
62
|
+
* Available options are:
|
|
63
|
+
* <ul>
|
|
64
|
+
* <li><code>Center</code></li>
|
|
65
|
+
* <li><code>Left</code></li>
|
|
66
|
+
* <li><code>Right</code></li>
|
|
67
|
+
* <li><code>Stretch</code></li>
|
|
68
|
+
* </ul>
|
|
61
69
|
*
|
|
62
70
|
* @type {PopoverHorizontalAlign}
|
|
63
71
|
* @defaultvalue "Center"
|
|
@@ -69,7 +77,15 @@ const metadata = {
|
|
|
69
77
|
},
|
|
70
78
|
|
|
71
79
|
/**
|
|
72
|
-
* Determines the vertical alignment of the
|
|
80
|
+
* Determines the vertical alignment of the component.
|
|
81
|
+
* <br><br>
|
|
82
|
+
* Available options are:
|
|
83
|
+
* <ul>
|
|
84
|
+
* <li><code>Center</code></li>
|
|
85
|
+
* <li><code>Top</code></li>
|
|
86
|
+
* <li><code>Bottom</code></li>
|
|
87
|
+
* <li><code>Stretch</code></li>
|
|
88
|
+
* </ul>
|
|
73
89
|
*
|
|
74
90
|
* @type {PopoverVerticalAlign}
|
|
75
91
|
* @defaultvalue "Center"
|
|
@@ -81,7 +97,7 @@ const metadata = {
|
|
|
81
97
|
},
|
|
82
98
|
|
|
83
99
|
/**
|
|
84
|
-
* Defines whether the
|
|
100
|
+
* Defines whether the component should close when
|
|
85
101
|
* clicking/tapping outside of the popover.
|
|
86
102
|
* If enabled, it blocks any interaction with the background.
|
|
87
103
|
*
|
|
@@ -94,18 +110,30 @@ const metadata = {
|
|
|
94
110
|
},
|
|
95
111
|
|
|
96
112
|
/**
|
|
97
|
-
*
|
|
113
|
+
* Defines whether the block layer will be shown if modal property is set to true.
|
|
114
|
+
* @type {boolean}
|
|
115
|
+
* @defaultvalue false
|
|
116
|
+
* @public
|
|
117
|
+
* @since 1.0.0-rc.10
|
|
118
|
+
*/
|
|
119
|
+
hideBackdrop: {
|
|
120
|
+
type: Boolean,
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Determines whether the component arrow is hidden.
|
|
98
125
|
*
|
|
99
126
|
* @type {boolean}
|
|
100
127
|
* @defaultvalue false
|
|
101
128
|
* @public
|
|
129
|
+
* @since 1.0.0-rc.15
|
|
102
130
|
*/
|
|
103
|
-
|
|
131
|
+
hideArrow: {
|
|
104
132
|
type: Boolean,
|
|
105
133
|
},
|
|
106
134
|
|
|
107
135
|
/**
|
|
108
|
-
* Determines if there is no enough space, the
|
|
136
|
+
* Determines if there is no enough space, the component can be placed
|
|
109
137
|
* over the target.
|
|
110
138
|
*
|
|
111
139
|
* @type {boolean}
|
|
@@ -116,6 +144,17 @@ const metadata = {
|
|
|
116
144
|
type: Boolean,
|
|
117
145
|
},
|
|
118
146
|
|
|
147
|
+
/**
|
|
148
|
+
* Defines whether the content is scrollable.
|
|
149
|
+
*
|
|
150
|
+
* @type {boolean}
|
|
151
|
+
* @defaultvalue false
|
|
152
|
+
* @private
|
|
153
|
+
*/
|
|
154
|
+
disableScrolling: {
|
|
155
|
+
type: Boolean,
|
|
156
|
+
},
|
|
157
|
+
|
|
119
158
|
/**
|
|
120
159
|
* Sets the X translation of the arrow
|
|
121
160
|
*
|
|
@@ -148,33 +187,17 @@ const metadata = {
|
|
|
148
187
|
defaultValue: PopoverPlacementType.Right,
|
|
149
188
|
},
|
|
150
189
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
_maxContentHeight: { type: Integer },
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* @private
|
|
162
|
-
*/
|
|
163
|
-
_disableInitialFocus: {
|
|
164
|
-
type: Boolean,
|
|
190
|
+
_maxContentHeight: {
|
|
191
|
+
type: Integer,
|
|
192
|
+
noAttribute: true,
|
|
193
|
+
},
|
|
194
|
+
_maxContentWidth: {
|
|
195
|
+
type: Integer,
|
|
196
|
+
noAttribute: true,
|
|
165
197
|
},
|
|
166
198
|
},
|
|
199
|
+
managedSlots: true,
|
|
167
200
|
slots: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {
|
|
168
|
-
/**
|
|
169
|
-
* Defines the content of the Web Component.
|
|
170
|
-
* @type {Node[]}
|
|
171
|
-
* @slot
|
|
172
|
-
* @public
|
|
173
|
-
*/
|
|
174
|
-
"default": {
|
|
175
|
-
type: Node,
|
|
176
|
-
},
|
|
177
|
-
|
|
178
201
|
/**
|
|
179
202
|
* Defines the header HTML Element.
|
|
180
203
|
*
|
|
@@ -198,40 +221,6 @@ const metadata = {
|
|
|
198
221
|
},
|
|
199
222
|
},
|
|
200
223
|
events: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {
|
|
201
|
-
/**
|
|
202
|
-
* Fired before the component is opened.
|
|
203
|
-
*
|
|
204
|
-
* @public
|
|
205
|
-
* @event
|
|
206
|
-
*/
|
|
207
|
-
beforeOpen: {},
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Fired after the component is opened.
|
|
211
|
-
*
|
|
212
|
-
* @public
|
|
213
|
-
* @event
|
|
214
|
-
*/
|
|
215
|
-
afterOpen: {},
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Fired before the component is closed.
|
|
219
|
-
*
|
|
220
|
-
* @public
|
|
221
|
-
* @event
|
|
222
|
-
* @param {Boolean} escPressed Indicates that <code>ESC</code> key has triggered the event.
|
|
223
|
-
*/
|
|
224
|
-
beforeClose: {
|
|
225
|
-
escPressed: { type: Boolean },
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Fired after the component is closed.
|
|
230
|
-
*
|
|
231
|
-
* @public
|
|
232
|
-
* @event
|
|
233
|
-
*/
|
|
234
|
-
afterClose: {},
|
|
235
224
|
},
|
|
236
225
|
};
|
|
237
226
|
|
|
@@ -266,144 +255,96 @@ const metadata = {
|
|
|
266
255
|
* @constructor
|
|
267
256
|
* @author SAP SE
|
|
268
257
|
* @alias sap.ui.webcomponents.main.Popover
|
|
269
|
-
* @extends
|
|
258
|
+
* @extends Popup
|
|
270
259
|
* @tagname ui5-popover
|
|
260
|
+
* @since 1.0.0-rc.6
|
|
271
261
|
* @public
|
|
272
262
|
*/
|
|
273
|
-
class Popover extends
|
|
274
|
-
|
|
275
|
-
|
|
263
|
+
class Popover extends Popup {
|
|
264
|
+
constructor() {
|
|
265
|
+
super();
|
|
266
|
+
|
|
267
|
+
this._handleResize = this.handleResize.bind(this);
|
|
276
268
|
}
|
|
277
269
|
|
|
278
|
-
static get
|
|
279
|
-
return
|
|
270
|
+
static get metadata() {
|
|
271
|
+
return metadata;
|
|
280
272
|
}
|
|
281
273
|
|
|
282
274
|
static get styles() {
|
|
283
|
-
return PopoverCss;
|
|
275
|
+
return [browserScrollbarCSS, PopupsCommonCss, PopoverCss];
|
|
284
276
|
}
|
|
285
277
|
|
|
286
278
|
static get template() {
|
|
287
279
|
return PopoverTemplate;
|
|
288
280
|
}
|
|
289
281
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
if (firstFocusable) {
|
|
294
|
-
firstFocusable.focus();
|
|
295
|
-
}
|
|
282
|
+
static get VIEWPORT_MARGIN() {
|
|
283
|
+
return 10; // px
|
|
296
284
|
}
|
|
297
285
|
|
|
298
|
-
|
|
299
|
-
|
|
286
|
+
onEnterDOM() {
|
|
287
|
+
ResizeHandler.register(this, this._handleResize);
|
|
288
|
+
}
|
|
300
289
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}
|
|
290
|
+
onExitDOM() {
|
|
291
|
+
ResizeHandler.deregister(this, this._handleResize);
|
|
304
292
|
}
|
|
305
293
|
|
|
306
294
|
isOpenerClicked(event) {
|
|
307
|
-
|
|
295
|
+
const target = event.target;
|
|
296
|
+
return target === this._opener || (target.getFocusDomRef && target.getFocusDomRef() === this._opener) || event.composedPath().indexOf(this._opener) > -1;
|
|
308
297
|
}
|
|
309
298
|
|
|
310
299
|
/**
|
|
311
|
-
*
|
|
312
|
-
* @param {HTMLElement} opener the element that the popover is
|
|
300
|
+
* Shows the popover.
|
|
301
|
+
* @param {HTMLElement} opener the element that the popover is shown at
|
|
302
|
+
* @param {boolean} preventInitialFocus prevents applying the focus inside the popover
|
|
313
303
|
* @public
|
|
304
|
+
* @async
|
|
305
|
+
* @returns {Promise} Resolved when the popover is open
|
|
314
306
|
*/
|
|
315
|
-
|
|
307
|
+
async showAt(opener, preventInitialFocus = false) {
|
|
316
308
|
if (!opener || this.opened) {
|
|
317
309
|
return;
|
|
318
310
|
}
|
|
319
311
|
|
|
320
312
|
this._opener = opener;
|
|
321
|
-
this.
|
|
313
|
+
this._openerRect = opener.getBoundingClientRect();
|
|
322
314
|
|
|
323
|
-
|
|
324
|
-
this.reposition();
|
|
325
|
-
this.applyInitialFocus();
|
|
326
|
-
|
|
327
|
-
addOpenedPopover(this);
|
|
328
|
-
|
|
329
|
-
this.opened = true;
|
|
330
|
-
this.fireEvent("afterOpen", {});
|
|
315
|
+
await super._open(preventInitialFocus);
|
|
331
316
|
}
|
|
332
317
|
|
|
333
318
|
/**
|
|
334
|
-
*
|
|
335
|
-
* @
|
|
319
|
+
* Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)
|
|
320
|
+
* @private
|
|
336
321
|
*/
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
return;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
this.fireEvent("beforeClose", {
|
|
343
|
-
escPressed,
|
|
344
|
-
}, true);
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
this.opened = false;
|
|
348
|
-
|
|
349
|
-
if (!preventRegitryUpdate) {
|
|
350
|
-
removeOpenedPopover(this);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
if (!this._prevetFocusRestore) {
|
|
354
|
-
this.resetFocus();
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
this.hide();
|
|
358
|
-
this.fireEvent("afterClose", {});
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
get focusedElement() {
|
|
362
|
-
let element = document.activeElement;
|
|
363
|
-
|
|
364
|
-
while (element.shadowRoot && element.shadowRoot.activeElement) {
|
|
365
|
-
element = element.shadowRoot.activeElement;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
return (element && typeof element.focus === "function") ? element : null;
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
applyInitialFocus() {
|
|
372
|
-
if (this._disableInitialFocus) {
|
|
373
|
-
return;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
const element = this.getRootNode().getElementById(this.initialFocus) || document.getElementById(this.initialFocus) || getFirstFocusableElement(this.contentDOM);
|
|
377
|
-
|
|
378
|
-
if (element) {
|
|
379
|
-
element.focus();
|
|
380
|
-
}
|
|
322
|
+
_addOpenedPopup() {
|
|
323
|
+
addOpenedPopover(this);
|
|
381
324
|
}
|
|
382
325
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
this
|
|
389
|
-
this._focusedElementBeforeOpen = null;
|
|
326
|
+
/**
|
|
327
|
+
* Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)
|
|
328
|
+
* @private
|
|
329
|
+
*/
|
|
330
|
+
_removeOpenedPopup() {
|
|
331
|
+
removeOpenedPopover(this);
|
|
390
332
|
}
|
|
391
333
|
|
|
392
|
-
|
|
334
|
+
shouldCloseDueToOverflow(placement, openerRect) {
|
|
393
335
|
const threshold = 32;
|
|
394
|
-
|
|
395
336
|
const limits = {
|
|
396
|
-
"Right": openerRect.
|
|
397
|
-
"Left": openerRect.
|
|
337
|
+
"Right": openerRect.right,
|
|
338
|
+
"Left": openerRect.left,
|
|
398
339
|
"Top": openerRect.top,
|
|
399
|
-
"Bottom": openerRect.
|
|
340
|
+
"Bottom": openerRect.bottom,
|
|
400
341
|
};
|
|
401
342
|
|
|
402
343
|
const closedPopupParent = getClosedPopupParent(this._opener);
|
|
403
344
|
let overflowsBottom = false;
|
|
404
345
|
let overflowsTop = false;
|
|
405
346
|
|
|
406
|
-
if (closedPopupParent.
|
|
347
|
+
if (closedPopupParent.showAt) {
|
|
407
348
|
const contentRect = closedPopupParent.contentDOM.getBoundingClientRect();
|
|
408
349
|
overflowsBottom = openerRect.top > (contentRect.top + contentRect.height);
|
|
409
350
|
overflowsTop = (openerRect.top + openerRect.height) < contentRect.top;
|
|
@@ -412,73 +353,133 @@ class Popover extends UI5Element {
|
|
|
412
353
|
return (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop;
|
|
413
354
|
}
|
|
414
355
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
356
|
+
shouldCloseDueToNoOpener(openerRect) {
|
|
357
|
+
return openerRect.top === 0
|
|
358
|
+
&& openerRect.bottom === 0
|
|
359
|
+
&& openerRect.left === 0
|
|
360
|
+
&& openerRect.right === 0;
|
|
361
|
+
}
|
|
420
362
|
|
|
421
|
-
|
|
422
|
-
|
|
363
|
+
handleResize() {
|
|
364
|
+
if (this.opened) {
|
|
365
|
+
this.reposition();
|
|
423
366
|
}
|
|
367
|
+
}
|
|
424
368
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
369
|
+
reposition() {
|
|
370
|
+
this._show();
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
_show() {
|
|
374
|
+
let placement;
|
|
375
|
+
const popoverSize = this.getPopoverSize();
|
|
376
|
+
|
|
377
|
+
if (popoverSize.width === 0 || popoverSize.height === 0) {
|
|
378
|
+
// size can not be determined properly at this point, popover will be shown with the next reposition
|
|
428
379
|
return;
|
|
429
380
|
}
|
|
430
381
|
|
|
431
|
-
this.
|
|
382
|
+
if (this.isOpen()) {
|
|
383
|
+
// update opener rect if it was changed during the popover being opened
|
|
384
|
+
this._openerRect = this._opener.getBoundingClientRect();
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
if (this.shouldCloseDueToNoOpener(this._openerRect) && this.isFocusWithin()) {
|
|
388
|
+
// reuse the old placement as the opener is not available,
|
|
389
|
+
// but keep the popover open as the focus is within
|
|
390
|
+
placement = this._oldPlacement;
|
|
391
|
+
} else {
|
|
392
|
+
placement = this.calcPlacement(this._openerRect, popoverSize);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
const stretching = this.horizontalAlign === PopoverHorizontalAlign.Stretch;
|
|
396
|
+
|
|
397
|
+
if (this._preventRepositionAndClose) {
|
|
398
|
+
return this.close();
|
|
399
|
+
}
|
|
432
400
|
|
|
401
|
+
this._oldPlacement = placement;
|
|
433
402
|
this.actualPlacementType = placement.placementType;
|
|
434
|
-
this.arrowTranslateX = placement.arrowX;
|
|
435
|
-
this.arrowTranslateY = placement.arrowY;
|
|
436
403
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
404
|
+
let left = clamp(
|
|
405
|
+
this._left,
|
|
406
|
+
Popover.VIEWPORT_MARGIN,
|
|
407
|
+
document.documentElement.clientWidth - popoverSize.width - Popover.VIEWPORT_MARGIN,
|
|
408
|
+
);
|
|
440
409
|
|
|
441
|
-
if (
|
|
442
|
-
|
|
410
|
+
if (this.actualPlacementType === PopoverPlacementType.Right) {
|
|
411
|
+
left = Math.max(left, this._left);
|
|
443
412
|
}
|
|
444
|
-
}
|
|
445
413
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
414
|
+
let top = clamp(
|
|
415
|
+
this._top,
|
|
416
|
+
Popover.VIEWPORT_MARGIN,
|
|
417
|
+
document.documentElement.clientHeight - popoverSize.height - Popover.VIEWPORT_MARGIN,
|
|
418
|
+
);
|
|
449
419
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
let rect = this.getBoundingClientRect();
|
|
420
|
+
if (this.actualPlacementType === PopoverPlacementType.Bottom) {
|
|
421
|
+
top = Math.max(top, this._top);
|
|
422
|
+
}
|
|
454
423
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
424
|
+
let { arrowX, arrowY } = placement;
|
|
425
|
+
const isVertical = this.actualPlacementType === PopoverPlacementType.Top
|
|
426
|
+
|| this.actualPlacementType === PopoverPlacementType.Bottom;
|
|
458
427
|
|
|
459
|
-
|
|
428
|
+
if (isVertical) {
|
|
429
|
+
const popoverOnLeftBorderOffset = Popover.VIEWPORT_MARGIN - this._left;
|
|
430
|
+
const popoverOnRightBorderOffset = this._left + popoverSize.width + Popover.VIEWPORT_MARGIN - document.documentElement.clientWidth;
|
|
431
|
+
if (popoverOnLeftBorderOffset > 0) {
|
|
432
|
+
arrowX -= popoverOnLeftBorderOffset;
|
|
433
|
+
} else if (popoverOnRightBorderOffset > 0) {
|
|
434
|
+
arrowX += popoverOnRightBorderOffset;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
this.arrowTranslateX = Math.round(arrowX);
|
|
438
|
+
|
|
439
|
+
if (!isVertical) {
|
|
440
|
+
const popoverOnTopBorderOffset = Popover.VIEWPORT_MARGIN - this._top;
|
|
441
|
+
const popoverOnBottomBorderOffset = this._top + popoverSize.height + Popover.VIEWPORT_MARGIN - document.documentElement.clientHeight;
|
|
442
|
+
if (popoverOnTopBorderOffset > 0) {
|
|
443
|
+
arrowY -= popoverOnTopBorderOffset;
|
|
444
|
+
} else if (popoverOnBottomBorderOffset > 0) {
|
|
445
|
+
arrowY += popoverOnBottomBorderOffset;
|
|
446
|
+
}
|
|
460
447
|
}
|
|
448
|
+
this.arrowTranslateY = Math.round(arrowY);
|
|
461
449
|
|
|
462
|
-
this.style
|
|
463
|
-
|
|
450
|
+
Object.assign(this.style, {
|
|
451
|
+
top: `${top}px`,
|
|
452
|
+
left: `${left}px`,
|
|
453
|
+
});
|
|
454
|
+
super._show();
|
|
464
455
|
|
|
465
|
-
|
|
456
|
+
if (stretching && this._width) {
|
|
457
|
+
this.style.width = this._width;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
466
460
|
|
|
467
|
-
|
|
468
|
-
|
|
461
|
+
getPopoverSize() {
|
|
462
|
+
if (!this.opened) {
|
|
463
|
+
Object.assign(this.style, {
|
|
464
|
+
display: "block",
|
|
465
|
+
top: "-10000px",
|
|
466
|
+
left: "-10000px",
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
469
|
|
|
470
|
-
|
|
471
|
-
|
|
470
|
+
const rect = this.getBoundingClientRect(),
|
|
471
|
+
width = rect.width,
|
|
472
|
+
height = rect.height;
|
|
472
473
|
|
|
473
474
|
return { width, height };
|
|
474
475
|
}
|
|
475
476
|
|
|
476
477
|
get contentDOM() {
|
|
477
|
-
return this.shadowRoot.querySelector(".ui5-
|
|
478
|
+
return this.shadowRoot.querySelector(".ui5-popup-content");
|
|
478
479
|
}
|
|
479
480
|
|
|
480
481
|
get arrowDOM() {
|
|
481
|
-
return this.shadowRoot.querySelector(".ui5-popover-
|
|
482
|
+
return this.shadowRoot.querySelector(".ui5-popover-arrow");
|
|
482
483
|
}
|
|
483
484
|
|
|
484
485
|
calcPlacement(targetRect, popoverSize) {
|
|
@@ -490,13 +491,14 @@ class Popover extends UI5Element {
|
|
|
490
491
|
const clientHeight = document.documentElement.clientHeight;
|
|
491
492
|
|
|
492
493
|
let maxHeight = clientHeight;
|
|
494
|
+
let maxWidth = clientWidth;
|
|
493
495
|
|
|
494
496
|
let width = "";
|
|
495
497
|
let height = "";
|
|
496
498
|
|
|
497
499
|
const placementType = this.getActualPlacementType(targetRect, popoverSize);
|
|
498
500
|
|
|
499
|
-
this._preventRepositionAndClose = this.
|
|
501
|
+
this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placementType, targetRect);
|
|
500
502
|
|
|
501
503
|
const isVertical = placementType === PopoverPlacementType.Top
|
|
502
504
|
|| placementType === PopoverPlacementType.Bottom;
|
|
@@ -512,7 +514,7 @@ class Popover extends UI5Element {
|
|
|
512
514
|
this._width = width;
|
|
513
515
|
this._height = height;
|
|
514
516
|
|
|
515
|
-
const arrowOffset = this.
|
|
517
|
+
const arrowOffset = this.hideArrow ? 0 : arrowSize;
|
|
516
518
|
|
|
517
519
|
// calc popover positions
|
|
518
520
|
switch (placementType) {
|
|
@@ -537,12 +539,17 @@ class Popover extends UI5Element {
|
|
|
537
539
|
case PopoverPlacementType.Left:
|
|
538
540
|
left = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);
|
|
539
541
|
top = this.getHorizontalTop(targetRect, popoverSize);
|
|
542
|
+
|
|
543
|
+
if (!allowTargetOverlap) {
|
|
544
|
+
maxWidth = targetRect.left - arrowOffset;
|
|
545
|
+
}
|
|
540
546
|
break;
|
|
541
547
|
case PopoverPlacementType.Right:
|
|
542
548
|
if (allowTargetOverlap) {
|
|
543
549
|
left = Math.max(Math.min(targetRect.left + targetRect.width + arrowOffset, clientWidth - popoverSize.width), 0);
|
|
544
550
|
} else {
|
|
545
551
|
left = targetRect.left + targetRect.width + arrowOffset;
|
|
552
|
+
maxWidth = clientWidth - targetRect.right - arrowOffset;
|
|
546
553
|
}
|
|
547
554
|
|
|
548
555
|
top = this.getHorizontalTop(targetRect, popoverSize);
|
|
@@ -564,23 +571,21 @@ class Popover extends UI5Element {
|
|
|
564
571
|
}
|
|
565
572
|
}
|
|
566
573
|
|
|
567
|
-
let maxContentHeight =
|
|
574
|
+
let maxContentHeight = maxHeight;
|
|
568
575
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
if (hasHeader) {
|
|
572
|
-
const headerDomRef = this.shadowRoot.querySelector(".ui5-popover-header-root")
|
|
576
|
+
if (this._displayHeader) {
|
|
577
|
+
const headerDomRef = this.shadowRoot.querySelector(".ui5-popup-header-root")
|
|
573
578
|
|| this.shadowRoot.querySelector(".ui5-popup-header-text");
|
|
574
579
|
|
|
575
580
|
if (headerDomRef) {
|
|
576
|
-
maxContentHeight =
|
|
581
|
+
maxContentHeight = maxHeight - headerDomRef.offsetHeight;
|
|
577
582
|
}
|
|
578
583
|
}
|
|
579
584
|
|
|
580
|
-
this._maxContentHeight = maxContentHeight;
|
|
585
|
+
this._maxContentHeight = Math.round(maxContentHeight - Popover.VIEWPORT_MARGIN);
|
|
586
|
+
this._maxContentWidth = Math.round(maxWidth - Popover.VIEWPORT_MARGIN);
|
|
581
587
|
|
|
582
|
-
const
|
|
583
|
-
const arrowTranslateY = !isVertical ? targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2 : 0;
|
|
588
|
+
const arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical);
|
|
584
589
|
|
|
585
590
|
if (this._left === undefined || Math.abs(this._left - left) > 1.5) {
|
|
586
591
|
this._left = Math.round(left);
|
|
@@ -591,14 +596,73 @@ class Popover extends UI5Element {
|
|
|
591
596
|
}
|
|
592
597
|
|
|
593
598
|
return {
|
|
594
|
-
arrowX:
|
|
595
|
-
arrowY:
|
|
599
|
+
arrowX: arrowPos.x,
|
|
600
|
+
arrowY: arrowPos.y,
|
|
596
601
|
top: this._top,
|
|
597
602
|
left: this._left,
|
|
598
603
|
placementType,
|
|
599
604
|
};
|
|
600
605
|
}
|
|
601
606
|
|
|
607
|
+
/**
|
|
608
|
+
* Calculates the position for the arrow.
|
|
609
|
+
* @private
|
|
610
|
+
* @param targetRect BoundingClientRect of the target element
|
|
611
|
+
* @param popoverSize Width and height of the popover
|
|
612
|
+
* @param left Left offset of the popover
|
|
613
|
+
* @param top Top offset of the popover
|
|
614
|
+
* @param isVertical if the popover is positioned vertically to the target element
|
|
615
|
+
* @returns {{x: number, y: number}} Arrow's coordinates
|
|
616
|
+
*/
|
|
617
|
+
getArrowPosition(targetRect, popoverSize, left, top, isVertical) {
|
|
618
|
+
let arrowXCentered = this.horizontalAlign === PopoverHorizontalAlign.Center || this.horizontalAlign === PopoverHorizontalAlign.Stretch;
|
|
619
|
+
|
|
620
|
+
if (this.horizontalAlign === PopoverHorizontalAlign.Right && left <= targetRect.left) {
|
|
621
|
+
arrowXCentered = true;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
if (this.horizontalAlign === PopoverHorizontalAlign.Left && left + popoverSize.width >= targetRect.left + targetRect.width) {
|
|
625
|
+
arrowXCentered = true;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
let arrowTranslateX = 0;
|
|
629
|
+
if (isVertical && arrowXCentered) {
|
|
630
|
+
arrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
let arrowTranslateY = 0;
|
|
634
|
+
if (!isVertical) {
|
|
635
|
+
arrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
return {
|
|
639
|
+
x: Math.round(arrowTranslateX),
|
|
640
|
+
y: Math.round(arrowTranslateY),
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Fallbacks to new placement, prioritizing <code>Left</code> and <code>Right</code> placements.
|
|
646
|
+
* @private
|
|
647
|
+
*/
|
|
648
|
+
fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) {
|
|
649
|
+
if (targetRect.left > popoverSize.width) {
|
|
650
|
+
return PopoverPlacementType.Left;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
if (clientWidth - targetRect.right > targetRect.left) {
|
|
654
|
+
return PopoverPlacementType.Right;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
if (clientHeight - targetRect.bottom > popoverSize.height) {
|
|
658
|
+
return PopoverPlacementType.Bottom;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
if (clientHeight - targetRect.bottom < targetRect.top) {
|
|
662
|
+
return PopoverPlacementType.Top;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
|
|
602
666
|
getActualPlacementType(targetRect, popoverSize) {
|
|
603
667
|
const placementType = this.placementType;
|
|
604
668
|
let actualPlacementType = placementType;
|
|
@@ -620,15 +684,13 @@ class Popover extends UI5Element {
|
|
|
620
684
|
}
|
|
621
685
|
break;
|
|
622
686
|
case PopoverPlacementType.Left:
|
|
623
|
-
if (targetRect.left < popoverSize.width
|
|
624
|
-
|
|
625
|
-
actualPlacementType = PopoverPlacementType.Right;
|
|
687
|
+
if (targetRect.left < popoverSize.width) {
|
|
688
|
+
actualPlacementType = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placementType;
|
|
626
689
|
}
|
|
627
690
|
break;
|
|
628
691
|
case PopoverPlacementType.Right:
|
|
629
|
-
if (clientWidth - targetRect.right < popoverSize.width
|
|
630
|
-
|
|
631
|
-
actualPlacementType = PopoverPlacementType.Left;
|
|
692
|
+
if (clientWidth - targetRect.right < popoverSize.width) {
|
|
693
|
+
actualPlacementType = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placementType;
|
|
632
694
|
}
|
|
633
695
|
break;
|
|
634
696
|
}
|
|
@@ -642,6 +704,7 @@ class Popover extends UI5Element {
|
|
|
642
704
|
switch (this.horizontalAlign) {
|
|
643
705
|
case PopoverHorizontalAlign.Center:
|
|
644
706
|
case PopoverHorizontalAlign.Stretch:
|
|
707
|
+
|
|
645
708
|
left = targetRect.left - (popoverSize.width - targetRect.width) / 2;
|
|
646
709
|
break;
|
|
647
710
|
case PopoverHorizontalAlign.Left:
|
|
@@ -674,15 +737,32 @@ class Popover extends UI5Element {
|
|
|
674
737
|
return top;
|
|
675
738
|
}
|
|
676
739
|
|
|
740
|
+
get isModal() { // Required by Popup.js
|
|
741
|
+
return this.modal;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
get shouldHideBackdrop() { // Required by Popup.js
|
|
745
|
+
return this.hideBackdrop;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
get _ariaLabelledBy() { // Required by Popup.js
|
|
749
|
+
return this.accessibleName ? undefined : "ui5-popup-header";
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
get _ariaModal() { // Required by Popup.js
|
|
753
|
+
return true;
|
|
754
|
+
}
|
|
755
|
+
|
|
677
756
|
get styles() {
|
|
678
757
|
return {
|
|
758
|
+
...super.styles,
|
|
679
759
|
content: {
|
|
680
760
|
"max-height": `${this._maxContentHeight}px`,
|
|
761
|
+
"max-width": `${this._maxContentWidth}px`,
|
|
681
762
|
},
|
|
682
763
|
arrow: {
|
|
683
764
|
transform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,
|
|
684
765
|
},
|
|
685
|
-
root: { },
|
|
686
766
|
};
|
|
687
767
|
}
|
|
688
768
|
|
|
@@ -690,7 +770,7 @@ class Popover extends UI5Element {
|
|
|
690
770
|
* Hook for descendants to hide header.
|
|
691
771
|
*/
|
|
692
772
|
get _displayHeader() {
|
|
693
|
-
return
|
|
773
|
+
return this.header.length || this.headerText;
|
|
694
774
|
}
|
|
695
775
|
|
|
696
776
|
/**
|