@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/Popup.js
CHANGED
|
@@ -1,49 +1,36 @@
|
|
|
1
|
+
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
|
|
2
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
1
3
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
4
|
+
import { isChrome } from "@ui5/webcomponents-base/dist/Device.js";
|
|
2
5
|
import { getFirstFocusableElement, getLastFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
6
|
+
import { hasStyle, createStyle } from "@ui5/webcomponents-base/dist/ManagedStyles.js";
|
|
7
|
+
import { isTabPrevious } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
8
|
+
import { getNextZIndex, getFocusedElement, isFocusedElementWithinNode } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
|
|
9
|
+
import PopupTemplate from "./generated/templates/PopupTemplate.lit.js";
|
|
10
|
+
import PopupBlockLayer from "./generated/templates/PopupBlockLayerTemplate.lit.js";
|
|
11
|
+
import { addOpenedPopup, removeOpenedPopup } from "./popup-utils/OpenedPopupsRegistry.js";
|
|
5
12
|
|
|
6
13
|
// Styles
|
|
7
14
|
import styles from "./generated/themes/Popup.css.js";
|
|
8
|
-
|
|
9
|
-
import
|
|
15
|
+
import staticAreaStyles from "./generated/themes/PopupStaticAreaStyles.css.js";
|
|
16
|
+
import globalStyles from "./generated/themes/PopupGlobal.css.js";
|
|
10
17
|
|
|
11
18
|
/**
|
|
12
19
|
* @public
|
|
13
20
|
*/
|
|
14
21
|
const metadata = {
|
|
22
|
+
managedSlots: true,
|
|
15
23
|
slots: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
|
|
16
24
|
|
|
17
25
|
/**
|
|
18
|
-
* Defines the content of the
|
|
19
|
-
* @type {Node[]}
|
|
20
|
-
* @slot
|
|
21
|
-
* @public
|
|
22
|
-
*/
|
|
23
|
-
"default": {
|
|
24
|
-
type: Node,
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Defines the header HTML Element.
|
|
29
|
-
*
|
|
26
|
+
* Defines the content of the Popup.
|
|
30
27
|
* @type {HTMLElement[]}
|
|
31
28
|
* @slot
|
|
32
29
|
* @public
|
|
33
30
|
*/
|
|
34
|
-
|
|
35
|
-
type: HTMLElement,
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Defines the footer HTML Element.
|
|
40
|
-
*
|
|
41
|
-
* @type {HTMLElement[]}
|
|
42
|
-
* @slot
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
footer: {
|
|
31
|
+
"default": {
|
|
46
32
|
type: HTMLElement,
|
|
33
|
+
propertyName: "content",
|
|
47
34
|
},
|
|
48
35
|
},
|
|
49
36
|
properties: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
|
|
@@ -51,7 +38,7 @@ const metadata = {
|
|
|
51
38
|
* Defines the ID of the HTML Element, which will get the initial focus.
|
|
52
39
|
*
|
|
53
40
|
* @type {string}
|
|
54
|
-
* @defaultvalue
|
|
41
|
+
* @defaultvalue ""
|
|
55
42
|
* @public
|
|
56
43
|
*/
|
|
57
44
|
initialFocus: {
|
|
@@ -59,32 +46,38 @@ const metadata = {
|
|
|
59
46
|
},
|
|
60
47
|
|
|
61
48
|
/**
|
|
62
|
-
* Defines the
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* @
|
|
66
|
-
* @defaultvalue: ""
|
|
49
|
+
* Defines if the focus should be returned to the previously focused element,
|
|
50
|
+
* when the popup closes.
|
|
51
|
+
* @type {boolean}
|
|
52
|
+
* @defaultvalue false
|
|
67
53
|
* @public
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
54
|
+
* @since 1.0.0-rc.8
|
|
55
|
+
*/
|
|
56
|
+
preventFocusRestore: {
|
|
57
|
+
type: Boolean,
|
|
71
58
|
},
|
|
72
59
|
|
|
73
60
|
/**
|
|
74
|
-
* Indicates if the
|
|
61
|
+
* Indicates if the element is open
|
|
75
62
|
* @private
|
|
63
|
+
* @type {boolean}
|
|
64
|
+
* @defaultvalue false
|
|
76
65
|
*/
|
|
77
66
|
opened: {
|
|
78
67
|
type: Boolean,
|
|
79
68
|
},
|
|
80
69
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Sets the accessible aria name of the component.
|
|
72
|
+
*
|
|
73
|
+
* @type {String}
|
|
74
|
+
* @defaultvalue ""
|
|
75
|
+
* @public
|
|
76
|
+
* @since 1.0.0-rc.15
|
|
77
|
+
*/
|
|
78
|
+
accessibleName: {
|
|
79
|
+
type: String,
|
|
80
|
+
defaultValue: undefined,
|
|
88
81
|
},
|
|
89
82
|
|
|
90
83
|
/**
|
|
@@ -93,130 +86,98 @@ const metadata = {
|
|
|
93
86
|
_disableInitialFocus: {
|
|
94
87
|
type: Boolean,
|
|
95
88
|
},
|
|
89
|
+
|
|
90
|
+
_blockLayerHidden: {
|
|
91
|
+
type: Boolean,
|
|
92
|
+
},
|
|
96
93
|
},
|
|
97
94
|
events: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
|
|
98
95
|
|
|
99
96
|
/**
|
|
100
|
-
* Fired before the component is opened.
|
|
97
|
+
* Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening. <b>This event does not bubble.</b>
|
|
101
98
|
*
|
|
102
99
|
* @public
|
|
103
|
-
* @event
|
|
100
|
+
* @event sap.ui.webcomponents.main.Popup#before-open
|
|
101
|
+
* @allowPreventDefault
|
|
104
102
|
*/
|
|
103
|
+
"before-open": {},
|
|
105
104
|
|
|
106
|
-
beforeOpen: {},
|
|
107
105
|
/**
|
|
108
|
-
* Fired after the component is opened.
|
|
106
|
+
* Fired after the component is opened. <b>This event does not bubble.</b>
|
|
109
107
|
*
|
|
110
108
|
* @public
|
|
111
|
-
* @event
|
|
109
|
+
* @event sap.ui.webcomponents.main.Popup#after-open
|
|
112
110
|
*/
|
|
111
|
+
"after-open": {},
|
|
113
112
|
|
|
114
|
-
afterOpen: {},
|
|
115
113
|
/**
|
|
116
|
-
* Fired before the component is closed.
|
|
114
|
+
* Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing. <b>This event does not bubble.</b>
|
|
117
115
|
*
|
|
118
116
|
* @public
|
|
119
|
-
* @event
|
|
120
|
-
* @
|
|
117
|
+
* @event sap.ui.webcomponents.main.Popup#before-close
|
|
118
|
+
* @allowPreventDefault
|
|
119
|
+
* @param {boolean} escPressed Indicates that <code>ESC</code> key has triggered the event.
|
|
121
120
|
*/
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
"before-close": {
|
|
122
|
+
detail: {
|
|
123
|
+
escPressed: { type: Boolean },
|
|
124
|
+
},
|
|
125
125
|
},
|
|
126
126
|
|
|
127
127
|
/**
|
|
128
|
-
* Fired after the component is closed.
|
|
128
|
+
* Fired after the component is closed. <b>This event does not bubble.</b>
|
|
129
129
|
*
|
|
130
130
|
* @public
|
|
131
|
-
* @event
|
|
131
|
+
* @event sap.ui.webcomponents.main.Popup#after-close
|
|
132
132
|
*/
|
|
133
|
-
|
|
133
|
+
"after-close": {},
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Fired whenever the popup content area is scrolled
|
|
137
|
+
*
|
|
138
|
+
* @private
|
|
139
|
+
* @event sap.ui.webcomponents.main.Popup#scroll
|
|
140
|
+
*/
|
|
141
|
+
"scroll": {},
|
|
134
142
|
},
|
|
135
143
|
};
|
|
136
144
|
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
let customBLyBackStyleInserted = false;
|
|
141
|
-
|
|
142
|
-
function getParentHost(node) {
|
|
143
|
-
while (node && !node.host) {
|
|
144
|
-
node = node.parentNode;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return node && node.host;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function createBLyBackStyle() {
|
|
151
|
-
if (customBLyBackStyleInserted) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
customBLyBackStyleInserted = true;
|
|
156
|
-
|
|
157
|
-
const bodyStyleSheet = document.createElement("style");
|
|
158
|
-
bodyStyleSheet.type = "text/css";
|
|
159
|
-
bodyStyleSheet.innerHTML = `
|
|
160
|
-
.ui5-popup-BLy--back {
|
|
161
|
-
width: 100%;
|
|
162
|
-
height: 100%;
|
|
163
|
-
position: fixed;
|
|
164
|
-
overflow: hidden;
|
|
165
|
-
}
|
|
166
|
-
`;
|
|
167
|
-
document.head.appendChild(bodyStyleSheet);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function updateBlockLayers() {
|
|
171
|
-
let popup,
|
|
172
|
-
i,
|
|
173
|
-
hasModal = false;
|
|
174
|
-
|
|
175
|
-
for (i = openedPopups.length - 1; i >= 0; i--) {
|
|
176
|
-
popup = openedPopups[i];
|
|
177
|
-
if (hasModal) {
|
|
178
|
-
popup._hideBlockLayer = true;
|
|
179
|
-
} else {
|
|
180
|
-
if (popup.isModal()) { // eslint-disable-line
|
|
181
|
-
popup._hideBlockLayer = false;
|
|
182
|
-
hasModal = true;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
updateBodyScrolling(hasModal);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
function updateBodyScrolling(hasModal) {
|
|
191
|
-
if (isBodyScrollingDisabled === hasModal) {
|
|
192
|
-
return;
|
|
145
|
+
const createBlockingStyle = () => {
|
|
146
|
+
if (!hasStyle("data-ui5-popup-scroll-blocker")) {
|
|
147
|
+
createStyle(globalStyles, "data-ui5-popup-scroll-blocker");
|
|
193
148
|
}
|
|
149
|
+
};
|
|
194
150
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
if (hasModal) {
|
|
198
|
-
addBodyStyles();
|
|
199
|
-
} else {
|
|
200
|
-
removeBodyStyles();
|
|
201
|
-
}
|
|
202
|
-
isBodyScrollingDisabled = hasModal;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
function addBodyStyles() {
|
|
206
|
-
document.body.style.top = `-${window.pageYOffset}px`;
|
|
207
|
-
document.body.classList.add("ui5-popup-BLy--back");
|
|
208
|
-
}
|
|
151
|
+
createBlockingStyle();
|
|
209
152
|
|
|
210
|
-
|
|
211
|
-
document.body.classList.remove("ui5-popup-BLy--back");
|
|
212
|
-
window.scrollTo(0, -parseFloat(document.body.style.top));
|
|
213
|
-
document.body.style.top = "";
|
|
214
|
-
}
|
|
153
|
+
const bodyScrollingBlockers = new Set();
|
|
215
154
|
|
|
216
155
|
/**
|
|
217
156
|
* @class
|
|
218
157
|
* <h3 class="comment-api-title">Overview</h3>
|
|
219
|
-
*
|
|
158
|
+
* Base class for all popup Web Components.
|
|
159
|
+
*
|
|
160
|
+
* If you need to create your own popup-like custom UI5 Web Components, it is highly recommended that you extend
|
|
161
|
+
* at least Popup in order to have consistency with other popups in terms of modal behavior and z-index management.
|
|
162
|
+
*
|
|
163
|
+
* 1. The Popup class handles modality:
|
|
164
|
+
* - The "isModal" getter can be overridden by derivatives to provide their own conditions when they are modal or not
|
|
165
|
+
* - Derivatives may call the "blockBodyScrolling" and "unblockBodyScrolling" static methods to temporarily remove scrollbars on the body
|
|
166
|
+
* - Derivatives may call the "open" and "close" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer
|
|
167
|
+
*
|
|
168
|
+
* 2. Provides blocking layer (relevant for modal popups only):
|
|
169
|
+
* - It is in the static area
|
|
170
|
+
* - Controlled by the "open" and "close" methods
|
|
171
|
+
*
|
|
172
|
+
* 3. The Popup class "traps" focus:
|
|
173
|
+
* - Derivatives may call the "applyInitialFocus" method (usually when opening, to transfer focus inside the popup)
|
|
174
|
+
*
|
|
175
|
+
* 4. The Popup class automatically assigns "z-index"
|
|
176
|
+
* - Each time a popup is opened, it gets a higher than the previously opened popup z-index
|
|
177
|
+
*
|
|
178
|
+
* 5. The template of this component exposes two inline partials you can override in derivatives:
|
|
179
|
+
* - beforeContent (upper part of the box, useful for header/title/close button)
|
|
180
|
+
* - afterContent (lower part, useful for footer/action buttons)
|
|
220
181
|
*
|
|
221
182
|
* @constructor
|
|
222
183
|
* @author SAP SE
|
|
@@ -229,243 +190,377 @@ class Popup extends UI5Element {
|
|
|
229
190
|
return metadata;
|
|
230
191
|
}
|
|
231
192
|
|
|
193
|
+
static get render() {
|
|
194
|
+
return litRender;
|
|
195
|
+
}
|
|
196
|
+
|
|
232
197
|
static get styles() {
|
|
233
198
|
return styles;
|
|
234
199
|
}
|
|
235
200
|
|
|
236
|
-
static
|
|
237
|
-
|
|
238
|
-
return currentZIndex;
|
|
201
|
+
static get template() {
|
|
202
|
+
return PopupTemplate;
|
|
239
203
|
}
|
|
240
204
|
|
|
241
|
-
static
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
for (let i = indexOf; i < openedPopups.length; i++) {
|
|
246
|
-
openedPopup = openedPopups[i];
|
|
247
|
-
if (openedPopup.hitTest(event)) {
|
|
248
|
-
return true;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
205
|
+
static get staticAreaTemplate() {
|
|
206
|
+
return PopupBlockLayer;
|
|
207
|
+
}
|
|
251
208
|
|
|
252
|
-
|
|
209
|
+
static get staticAreaStyles() {
|
|
210
|
+
return staticAreaStyles;
|
|
253
211
|
}
|
|
254
212
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
return true;
|
|
259
|
-
}
|
|
213
|
+
onEnterDOM() {
|
|
214
|
+
if (!this.isOpen()) {
|
|
215
|
+
this._blockLayerHidden = true;
|
|
260
216
|
}
|
|
261
|
-
|
|
262
|
-
return false;
|
|
263
217
|
}
|
|
264
218
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
219
|
+
onExitDOM() {
|
|
220
|
+
if (this.isOpen()) {
|
|
221
|
+
Popup.unblockBodyScrolling(this);
|
|
222
|
+
this._removeOpenedPopup();
|
|
223
|
+
}
|
|
269
224
|
}
|
|
270
225
|
|
|
271
|
-
|
|
272
|
-
return
|
|
226
|
+
get _displayProp() {
|
|
227
|
+
return "block";
|
|
273
228
|
}
|
|
274
229
|
|
|
275
|
-
|
|
276
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Prevents the user from interacting with the content under the block layer
|
|
232
|
+
*/
|
|
233
|
+
_preventBlockLayerFocus(event) {
|
|
234
|
+
event.preventDefault();
|
|
277
235
|
}
|
|
278
236
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
237
|
+
/**
|
|
238
|
+
* Temporarily removes scrollbars from the body
|
|
239
|
+
* @protected
|
|
240
|
+
*/
|
|
241
|
+
static blockBodyScrolling(popup) {
|
|
242
|
+
bodyScrollingBlockers.add(popup);
|
|
243
|
+
|
|
244
|
+
if (bodyScrollingBlockers.size !== 1) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (window.pageYOffset > 0) {
|
|
249
|
+
document.body.style.top = `-${window.pageYOffset}px`;
|
|
283
250
|
}
|
|
251
|
+
document.body.classList.add("ui5-popup-scroll-blocker");
|
|
284
252
|
}
|
|
285
253
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
254
|
+
/**
|
|
255
|
+
* Restores scrollbars on the body, if needed
|
|
256
|
+
* @protected
|
|
257
|
+
*/
|
|
258
|
+
static unblockBodyScrolling(popup) {
|
|
259
|
+
bodyScrollingBlockers.delete(popup);
|
|
260
|
+
|
|
261
|
+
if (bodyScrollingBlockers.size !== 0) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
document.body.classList.remove("ui5-popup-scroll-blocker");
|
|
266
|
+
window.scrollTo(0, -parseFloat(document.body.style.top));
|
|
267
|
+
document.body.style.top = "";
|
|
289
268
|
}
|
|
290
269
|
|
|
291
|
-
|
|
292
|
-
|
|
270
|
+
_scroll(e) {
|
|
271
|
+
this.fireEvent("scroll", {
|
|
272
|
+
scrollTop: e.target.scrollTop,
|
|
273
|
+
targetRef: e.target,
|
|
274
|
+
});
|
|
293
275
|
}
|
|
294
276
|
|
|
295
|
-
|
|
296
|
-
this.
|
|
277
|
+
_onkeydown(e) {
|
|
278
|
+
if (e.target === this._root && isTabPrevious(e)) {
|
|
279
|
+
e.preventDefault();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
297
282
|
|
|
298
|
-
|
|
283
|
+
_onfocusout(e) {
|
|
284
|
+
// relatedTarget is the element, which will get focus. If no such element exists, focus the root.
|
|
285
|
+
// This happens after the mouse is released in order to not interrupt text selection.
|
|
286
|
+
if (!e.relatedTarget) {
|
|
287
|
+
this._shouldFocusRoot = true;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
299
290
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
addOpenedPopup(this);
|
|
291
|
+
_onmousedown(e) {
|
|
292
|
+
this._root.removeAttribute("tabindex");
|
|
303
293
|
|
|
294
|
+
if (this.shadowRoot.contains(e.target)) {
|
|
295
|
+
this._shouldFocusRoot = true;
|
|
296
|
+
} else {
|
|
297
|
+
this._shouldFocusRoot = false;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
304
300
|
|
|
305
|
-
|
|
301
|
+
_onmouseup() {
|
|
302
|
+
this._root.tabIndex = -1;
|
|
303
|
+
if (this._shouldFocusRoot) {
|
|
304
|
+
if (isChrome()) {
|
|
305
|
+
this._root.focus();
|
|
306
|
+
}
|
|
307
|
+
this._shouldFocusRoot = false;
|
|
308
|
+
}
|
|
306
309
|
}
|
|
307
310
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
311
|
+
/**
|
|
312
|
+
* Focus trapping
|
|
313
|
+
* @private
|
|
314
|
+
*/
|
|
315
|
+
async forwardToFirst() {
|
|
316
|
+
const firstFocusable = await getFirstFocusableElement(this);
|
|
312
317
|
|
|
313
|
-
|
|
318
|
+
if (firstFocusable) {
|
|
319
|
+
firstFocusable.focus();
|
|
320
|
+
} else {
|
|
321
|
+
this._root.focus();
|
|
322
|
+
}
|
|
323
|
+
}
|
|
314
324
|
|
|
315
|
-
|
|
316
|
-
|
|
325
|
+
/**
|
|
326
|
+
* Focus trapping
|
|
327
|
+
* @private
|
|
328
|
+
*/
|
|
329
|
+
async forwardToLast() {
|
|
330
|
+
const lastFocusable = await getLastFocusableElement(this);
|
|
317
331
|
|
|
318
|
-
if (
|
|
319
|
-
|
|
332
|
+
if (lastFocusable) {
|
|
333
|
+
lastFocusable.focus();
|
|
334
|
+
} else {
|
|
335
|
+
this._root.focus();
|
|
320
336
|
}
|
|
321
|
-
|
|
322
|
-
updateBlockLayers();
|
|
323
337
|
}
|
|
324
338
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
339
|
+
/**
|
|
340
|
+
* Use this method to focus the element denoted by "initialFocus", if provided, or the first focusable element otherwise.
|
|
341
|
+
* @protected
|
|
342
|
+
*/
|
|
343
|
+
async applyInitialFocus() {
|
|
344
|
+
await this.applyFocus();
|
|
345
|
+
}
|
|
331
346
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
347
|
+
/**
|
|
348
|
+
* Focuses the element denoted by <code>initialFocus</code>, if provided,
|
|
349
|
+
* or the first focusable element otherwise.
|
|
350
|
+
* @public
|
|
351
|
+
* @async
|
|
352
|
+
* @returns {Promise} Promise that resolves when the focus is applied
|
|
353
|
+
*/
|
|
354
|
+
async applyFocus() {
|
|
355
|
+
await this._waitForDomRef();
|
|
356
|
+
|
|
357
|
+
const element = this.getRootNode().getElementById(this.initialFocus)
|
|
358
|
+
|| document.getElementById(this.initialFocus)
|
|
359
|
+
|| await getFirstFocusableElement(this)
|
|
360
|
+
|| this._root; // in case of no focusable content focus the root
|
|
361
|
+
|
|
362
|
+
if (element) {
|
|
363
|
+
if (element === this._root) {
|
|
364
|
+
element.tabIndex = -1;
|
|
337
365
|
}
|
|
366
|
+
element.focus();
|
|
338
367
|
}
|
|
339
|
-
|
|
340
|
-
this._initialFocusDomRef = initialFocusDomRef;
|
|
341
368
|
}
|
|
342
369
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
370
|
+
/**
|
|
371
|
+
* Tells if the component is opened
|
|
372
|
+
* @public
|
|
373
|
+
* @returns {boolean}
|
|
374
|
+
*/
|
|
375
|
+
isOpen() {
|
|
376
|
+
return this.opened;
|
|
377
|
+
}
|
|
348
378
|
|
|
349
|
-
|
|
379
|
+
isFocusWithin() {
|
|
380
|
+
return isFocusedElementWithinNode(this.shadowRoot.querySelector(".ui5-popup-root"));
|
|
350
381
|
}
|
|
351
382
|
|
|
352
|
-
|
|
353
|
-
|
|
383
|
+
/**
|
|
384
|
+
* Shows the block layer (for modal popups only) and sets the correct z-index for the purpose of popup stacking
|
|
385
|
+
* @protected
|
|
386
|
+
*/
|
|
387
|
+
async _open(preventInitialFocus) {
|
|
388
|
+
const prevented = !this.fireEvent("before-open", {}, true, false);
|
|
389
|
+
if (prevented) {
|
|
354
390
|
return;
|
|
355
391
|
}
|
|
356
392
|
|
|
357
|
-
if (!this.
|
|
358
|
-
|
|
359
|
-
this.
|
|
393
|
+
if (this.isModal && !this.shouldHideBackdrop) {
|
|
394
|
+
// create static area item ref for block layer
|
|
395
|
+
this.getStaticAreaItemDomRef();
|
|
396
|
+
this._blockLayerHidden = false;
|
|
397
|
+
Popup.blockBodyScrolling(this);
|
|
360
398
|
}
|
|
361
|
-
}
|
|
362
399
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
}
|
|
400
|
+
this._zIndex = getNextZIndex();
|
|
401
|
+
this.style.zIndex = this._zIndex;
|
|
402
|
+
this._focusedElementBeforeOpen = getFocusedElement();
|
|
367
403
|
|
|
368
|
-
|
|
369
|
-
if (this._initialFocusDomRef !== document.activeElement) {
|
|
370
|
-
this._initialFocusDomRef.focus();
|
|
371
|
-
}
|
|
372
|
-
return;
|
|
373
|
-
}
|
|
404
|
+
this._show();
|
|
374
405
|
|
|
375
|
-
if (!
|
|
376
|
-
|
|
406
|
+
if (!this._disableInitialFocus && !preventInitialFocus) {
|
|
407
|
+
this.applyInitialFocus();
|
|
377
408
|
}
|
|
378
409
|
|
|
379
|
-
|
|
410
|
+
this._addOpenedPopup();
|
|
380
411
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
412
|
+
this.opened = true;
|
|
413
|
+
|
|
414
|
+
await renderFinished();
|
|
415
|
+
this.fireEvent("after-open", {}, false, false);
|
|
386
416
|
}
|
|
387
417
|
|
|
388
|
-
|
|
389
|
-
|
|
418
|
+
/**
|
|
419
|
+
* Adds the popup to the "opened popups registry"
|
|
420
|
+
* @protected
|
|
421
|
+
*/
|
|
422
|
+
_addOpenedPopup() {
|
|
423
|
+
addOpenedPopup(this);
|
|
390
424
|
}
|
|
391
425
|
|
|
392
|
-
|
|
393
|
-
|
|
426
|
+
/**
|
|
427
|
+
* Hides the block layer (for modal popups only)
|
|
428
|
+
* @public
|
|
429
|
+
*/
|
|
430
|
+
close(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
|
|
431
|
+
if (!this.opened) {
|
|
394
432
|
return;
|
|
395
433
|
}
|
|
396
434
|
|
|
397
|
-
|
|
435
|
+
const prevented = !this.fireEvent("before-close", { escPressed }, true, false);
|
|
436
|
+
if (prevented) {
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
398
439
|
|
|
399
|
-
|
|
400
|
-
|
|
440
|
+
if (this.isModal) {
|
|
441
|
+
this._blockLayerHidden = true;
|
|
442
|
+
Popup.unblockBodyScrolling(this);
|
|
401
443
|
}
|
|
402
444
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
focusableElement = getLastFocusableElement(container);
|
|
409
|
-
isSpecialCase = true;
|
|
410
|
-
break;
|
|
411
|
-
case `${this._id}-lastfe`:
|
|
412
|
-
focusableElement = getFirstFocusableElement(container);
|
|
413
|
-
isSpecialCase = true;
|
|
414
|
-
break;
|
|
415
|
-
case `${this._id}-blocklayer`:
|
|
416
|
-
focusableElement = this._currentFocusedElement
|
|
417
|
-
|| getFirstFocusableElement(container);
|
|
418
|
-
isSpecialCase = true;
|
|
419
|
-
break;
|
|
445
|
+
this.hide();
|
|
446
|
+
this.opened = false;
|
|
447
|
+
|
|
448
|
+
if (!preventRegistryUpdate) {
|
|
449
|
+
this._removeOpenedPopup();
|
|
420
450
|
}
|
|
421
451
|
|
|
422
|
-
if (
|
|
423
|
-
|
|
424
|
-
} else if (isSpecialCase) {
|
|
425
|
-
container.focus();
|
|
452
|
+
if (!this.preventFocusRestore && !preventFocusRestore) {
|
|
453
|
+
this.resetFocus();
|
|
426
454
|
}
|
|
427
455
|
|
|
428
|
-
this.
|
|
456
|
+
this.fireEvent("after-close", {}, false, false);
|
|
429
457
|
}
|
|
430
458
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
this._lastFocusableElement = (element && typeof element.focus === "function") ? element : null;
|
|
459
|
+
/**
|
|
460
|
+
* Removes the popup from the "opened popups registry"
|
|
461
|
+
* @protected
|
|
462
|
+
*/
|
|
463
|
+
_removeOpenedPopup() {
|
|
464
|
+
removeOpenedPopup(this);
|
|
439
465
|
}
|
|
440
466
|
|
|
467
|
+
/**
|
|
468
|
+
* Returns the focus to the previously focused element
|
|
469
|
+
* @protected
|
|
470
|
+
*/
|
|
441
471
|
resetFocus() {
|
|
442
|
-
if (!this.
|
|
472
|
+
if (!this._focusedElementBeforeOpen) {
|
|
443
473
|
return;
|
|
444
474
|
}
|
|
445
475
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
}
|
|
476
|
+
this._focusedElementBeforeOpen.focus();
|
|
477
|
+
this._focusedElementBeforeOpen = null;
|
|
478
|
+
}
|
|
450
479
|
|
|
451
|
-
|
|
480
|
+
/**
|
|
481
|
+
* Sets "block" display to the popup. The property can be overriden by derivatives of Popup.
|
|
482
|
+
* @protected
|
|
483
|
+
*/
|
|
484
|
+
_show() {
|
|
485
|
+
this.style.display = this._displayProp;
|
|
452
486
|
}
|
|
453
487
|
|
|
454
|
-
|
|
455
|
-
|
|
488
|
+
/**
|
|
489
|
+
* Sets "none" display to the popup
|
|
490
|
+
* @protected
|
|
491
|
+
*/
|
|
492
|
+
hide() {
|
|
493
|
+
this.style.display = "none";
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)
|
|
498
|
+
*
|
|
499
|
+
* @protected
|
|
500
|
+
* @abstract
|
|
501
|
+
* @returns {boolean}
|
|
502
|
+
*/
|
|
503
|
+
get isModal() {} // eslint-disable-line
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Implement this getter with relevant logic in order to hide the block layer (f.e. based on a public property)
|
|
507
|
+
*
|
|
508
|
+
* @protected
|
|
509
|
+
* @abstract
|
|
510
|
+
* @returns {boolean}
|
|
511
|
+
*/
|
|
512
|
+
get shouldHideBackdrop() {} // eslint-disable-line
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Return the ID of an element in the shadow DOM that is going to label this popup
|
|
516
|
+
*
|
|
517
|
+
* @protected
|
|
518
|
+
* @abstract
|
|
519
|
+
* @returns {String}
|
|
520
|
+
*/
|
|
521
|
+
get _ariaLabelledBy() {} // eslint-disable-line
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Return the value for aria-modal for this popup
|
|
525
|
+
*
|
|
526
|
+
* @protected
|
|
527
|
+
* @abstract
|
|
528
|
+
* @returns {String}
|
|
529
|
+
*/
|
|
530
|
+
get _ariaModal() {} // eslint-disable-line
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Ensures ariaLabel is never null or empty string
|
|
534
|
+
* @returns {String|undefined}
|
|
535
|
+
* @protected
|
|
536
|
+
*/
|
|
537
|
+
get _ariaLabel() {
|
|
538
|
+
return this.accessibleName || undefined;
|
|
456
539
|
}
|
|
457
540
|
|
|
458
|
-
get
|
|
459
|
-
|
|
460
|
-
return !!(hasHeaderText || this.header.length);
|
|
541
|
+
get _root() {
|
|
542
|
+
return this.shadowRoot.querySelector(".ui5-popup-root");
|
|
461
543
|
}
|
|
462
544
|
|
|
463
|
-
get
|
|
464
|
-
return
|
|
545
|
+
get styles() {
|
|
546
|
+
return {
|
|
547
|
+
root: {},
|
|
548
|
+
content: {},
|
|
549
|
+
blockLayer: {
|
|
550
|
+
"zIndex": (this._zIndex - 1),
|
|
551
|
+
},
|
|
552
|
+
};
|
|
465
553
|
}
|
|
466
554
|
|
|
467
|
-
get
|
|
468
|
-
return
|
|
555
|
+
get classes() {
|
|
556
|
+
return {
|
|
557
|
+
root: {
|
|
558
|
+
"ui5-popup-root": true,
|
|
559
|
+
},
|
|
560
|
+
content: {
|
|
561
|
+
"ui5-popup-content": true,
|
|
562
|
+
},
|
|
563
|
+
};
|
|
469
564
|
}
|
|
470
565
|
}
|
|
471
566
|
|