@openui5/sap.m 1.103.1 → 1.106.0
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/.eslintrc.json +2 -3
- package/.reuse/dep5 +35 -15
- package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
- package/THIRDPARTY.txt +64 -21
- package/package.json +4 -4
- package/src/sap/m/.library +17 -1
- package/src/sap/m/AccButton.js +1 -1
- package/src/sap/m/ActionListItem.js +1 -1
- package/src/sap/m/ActionSelect.js +1 -1
- package/src/sap/m/ActionSheet.js +1 -1
- package/src/sap/m/App.js +2 -3
- package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
- package/src/sap/m/Avatar.js +2 -2
- package/src/sap/m/BadgeEnabler.js +1 -2
- package/src/sap/m/Bar.js +11 -10
- package/src/sap/m/Breadcrumbs.js +2 -2
- package/src/sap/m/BusyDialog.js +1 -1
- package/src/sap/m/BusyIndicator.js +1 -1
- package/src/sap/m/Button.js +49 -10
- package/src/sap/m/ButtonRenderer.js +10 -2
- package/src/sap/m/Carousel.js +3 -4
- package/src/sap/m/CarouselLayout.js +1 -1
- package/src/sap/m/CarouselRenderer.js +3 -3
- package/src/sap/m/CheckBox.js +46 -6
- package/src/sap/m/CheckBoxRenderer.js +1 -0
- package/src/sap/m/ColorPalette.js +1 -1
- package/src/sap/m/ColorPalettePopover.js +1 -1
- package/src/sap/m/Column.js +5 -5
- package/src/sap/m/ColumnHeaderPopover.js +5 -7
- package/src/sap/m/ColumnListItem.js +1 -4
- package/src/sap/m/ColumnListItemRenderer.js +1 -2
- package/src/sap/m/ColumnPopoverActionItem.js +3 -3
- package/src/sap/m/ColumnPopoverCustomItem.js +3 -3
- package/src/sap/m/ColumnPopoverItem.js +3 -3
- package/src/sap/m/ColumnPopoverSelectListItem.js +3 -5
- package/src/sap/m/ColumnPopoverSortItem.js +3 -3
- package/src/sap/m/ComboBox.js +6 -5
- package/src/sap/m/ComboBoxBase.js +3 -7
- package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
- package/src/sap/m/ComboBoxTextField.js +1 -7
- package/src/sap/m/ComboBoxTextFieldRenderer.js +19 -4
- package/src/sap/m/CustomDynamicDateOption.js +1 -1
- package/src/sap/m/CustomListItem.js +1 -1
- package/src/sap/m/CustomTile.js +1 -1
- package/src/sap/m/CustomTreeItem.js +3 -3
- package/src/sap/m/CustomTreeItemRenderer.js +2 -2
- package/src/sap/m/DatePicker.js +16 -26
- package/src/sap/m/DateRangeSelection.js +45 -38
- package/src/sap/m/DateTimeField.js +87 -20
- package/src/sap/m/DateTimeInput.js +1 -1
- package/src/sap/m/DateTimePicker.js +58 -32
- package/src/sap/m/DateTimePickerRenderer.js +1 -1
- package/src/sap/m/Dialog.js +44 -2
- package/src/sap/m/DisplayListItem.js +1 -1
- package/src/sap/m/DraftIndicator.js +1 -1
- package/src/sap/m/DynamicDate.js +1 -1
- package/src/sap/m/DynamicDateFormat.js +2 -5
- package/src/sap/m/DynamicDateOption.js +43 -16
- package/src/sap/m/DynamicDateRange.js +49 -7
- package/src/sap/m/DynamicDateRangeRenderer.js +5 -2
- package/src/sap/m/DynamicDateUtil.js +23 -2
- package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
- package/src/sap/m/ExpandableText.js +1 -1
- package/src/sap/m/FacetFilter.js +2 -2
- package/src/sap/m/FacetFilterItem.js +1 -1
- package/src/sap/m/FacetFilterList.js +4 -4
- package/src/sap/m/FeedContent.js +1 -1
- package/src/sap/m/FeedInput.js +1 -1
- package/src/sap/m/FeedListItem.js +1 -1
- package/src/sap/m/FeedListItemAction.js +1 -1
- package/src/sap/m/Fiori20Adapter.js +2 -2
- package/src/sap/m/FlexBox.js +1 -1
- package/src/sap/m/FlexItemData.js +1 -1
- package/src/sap/m/FormattedText.js +1 -1
- package/src/sap/m/GenericTag.js +1 -1
- package/src/sap/m/GenericTile.js +116 -23
- package/src/sap/m/GenericTileLineModeRenderer.js +4 -4
- package/src/sap/m/GenericTileRenderer.js +23 -10
- package/src/sap/m/GroupHeaderListItem.js +1 -1
- package/src/sap/m/GrowingEnablement.js +60 -36
- package/src/sap/m/GrowingList.js +1 -1
- package/src/sap/m/HBox.js +1 -1
- package/src/sap/m/HeaderContainer.js +34 -32
- package/src/sap/m/HeaderContainerItemNavigator.js +3 -6
- package/src/sap/m/IconTabBar.js +54 -22
- package/src/sap/m/IconTabBarSelectList.js +1 -1
- package/src/sap/m/IconTabFilter.js +1 -1
- package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
- package/src/sap/m/IconTabHeader.js +6 -19
- package/src/sap/m/IconTabSeparator.js +1 -1
- package/src/sap/m/IllustratedMessage.js +98 -25
- package/src/sap/m/IllustratedMessageRenderer.js +10 -6
- package/src/sap/m/Illustration.js +8 -1
- package/src/sap/m/IllustrationPool.js +1 -0
- package/src/sap/m/IllustrationRenderer.js +2 -1
- package/src/sap/m/Image.js +73 -3
- package/src/sap/m/ImageContent.js +1 -1
- package/src/sap/m/ImageRenderer.js +66 -2
- package/src/sap/m/Input.js +62 -7
- package/src/sap/m/InputBase.js +1 -1
- package/src/sap/m/InputBaseRenderer.js +2 -2
- package/src/sap/m/InputListItem.js +1 -1
- package/src/sap/m/InputRenderer.js +4 -0
- package/src/sap/m/InstanceManager.js +6 -6
- package/src/sap/m/Label.js +34 -4
- package/src/sap/m/LabelRenderer.js +7 -2
- package/src/sap/m/LightBox.js +2 -2
- package/src/sap/m/LightBoxItem.js +1 -1
- package/src/sap/m/Link.js +74 -10
- package/src/sap/m/LinkRenderer.js +26 -12
- package/src/sap/m/List.js +38 -1
- package/src/sap/m/ListBase.js +109 -44
- package/src/sap/m/ListBaseRenderer.js +7 -15
- package/src/sap/m/ListItemBase.js +40 -11
- package/src/sap/m/ListItemBaseRenderer.js +17 -6
- package/src/sap/m/ListRenderer.js +2 -2
- package/src/sap/m/MaskEnabler.js +52 -2
- package/src/sap/m/MaskInput.js +23 -1
- package/src/sap/m/MaskInputRule.js +1 -1
- package/src/sap/m/Menu.js +1 -1
- package/src/sap/m/MenuButton.js +1 -1
- package/src/sap/m/MenuItem.js +1 -1
- package/src/sap/m/MenuListItem.js +1 -1
- package/src/sap/m/MessageBox.js +1 -1
- package/src/sap/m/MessageItem.js +3 -4
- package/src/sap/m/MessageListItem.js +10 -6
- package/src/sap/m/MessagePage.js +1 -1
- package/src/sap/m/MessagePopover.js +4 -1
- package/src/sap/m/MessagePopoverItem.js +1 -1
- package/src/sap/m/MessageStrip.js +1 -1
- package/src/sap/m/MessageToast.js +1 -1
- package/src/sap/m/MessageView.js +1 -1
- package/src/sap/m/MultiComboBox.js +5 -16
- package/src/sap/m/MultiEditField.js +1 -1
- package/src/sap/m/MultiInput.js +1 -15
- package/src/sap/m/NavContainer.js +21 -19
- package/src/sap/m/NewsContent.js +2 -3
- package/src/sap/m/NotificationList.js +1 -1
- package/src/sap/m/NotificationListBase.js +1 -1
- package/src/sap/m/NotificationListGroup.js +3 -7
- package/src/sap/m/NotificationListGroupRenderer.js +1 -1
- package/src/sap/m/NotificationListItem.js +1 -1
- package/src/sap/m/NumericContent.js +1 -1
- package/src/sap/m/NumericInput.js +1 -1
- package/src/sap/m/ObjectAttribute.js +1 -1
- package/src/sap/m/ObjectHeader.js +3 -3
- package/src/sap/m/ObjectIdentifier.js +8 -5
- package/src/sap/m/ObjectListItem.js +7 -1
- package/src/sap/m/ObjectMarker.js +1 -1
- package/src/sap/m/ObjectNumber.js +2 -3
- package/src/sap/m/ObjectNumberRenderer.js +10 -3
- package/src/sap/m/ObjectStatus.js +2 -3
- package/src/sap/m/ObjectStatusRenderer.js +2 -2
- package/src/sap/m/OverflowToolbar.js +3 -8
- package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
- package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +3 -8
- package/src/sap/m/OverflowToolbarAssociativePopoverRenderer.js +2 -2
- package/src/sap/m/OverflowToolbarButton.js +2 -2
- package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
- package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/P13nAnyFilterItem.js +3 -3
- package/src/sap/m/P13nColumnsItem.js +3 -3
- package/src/sap/m/P13nColumnsPanel.js +3 -3
- package/src/sap/m/P13nConditionPanel.js +10 -3
- package/src/sap/m/P13nDialog.js +3 -3
- package/src/sap/m/P13nDimMeasureItem.js +3 -3
- package/src/sap/m/P13nDimMeasurePanel.js +3 -3
- package/src/sap/m/P13nFilterItem.js +3 -3
- package/src/sap/m/P13nFilterPanel.js +3 -3
- package/src/sap/m/P13nGroupItem.js +3 -3
- package/src/sap/m/P13nGroupPanel.js +3 -3
- package/src/sap/m/P13nItem.js +3 -3
- package/src/sap/m/P13nOperationsHelper.js +2 -2
- package/src/sap/m/P13nPanel.js +3 -3
- package/src/sap/m/P13nSelectionItem.js +3 -3
- package/src/sap/m/P13nSelectionPanel.js +3 -3
- package/src/sap/m/P13nSortItem.js +3 -3
- package/src/sap/m/P13nSortPanel.js +3 -3
- package/src/sap/m/PDFViewer.js +2 -2
- package/src/sap/m/PDFViewerRenderer.js +1 -0
- package/src/sap/m/Page.js +1 -3
- package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/m/PagingButton.js +1 -1
- package/src/sap/m/Panel.js +1 -1
- package/src/sap/m/PlanningCalendar.js +4 -16
- package/src/sap/m/PlanningCalendarHeader.js +1 -5
- package/src/sap/m/PlanningCalendarLegend.js +1 -1
- package/src/sap/m/PlanningCalendarRow.js +1 -1
- package/src/sap/m/PlanningCalendarView.js +1 -1
- package/src/sap/m/Popover.js +11 -4
- package/src/sap/m/ProgressIndicator.js +1 -1
- package/src/sap/m/ProgressIndicatorRenderer.js +6 -3
- package/src/sap/m/PullToRefresh.js +1 -1
- package/src/sap/m/QuickView.js +3 -3
- package/src/sap/m/QuickViewBase.js +3 -3
- package/src/sap/m/QuickViewCard.js +3 -3
- package/src/sap/m/QuickViewGroup.js +1 -1
- package/src/sap/m/QuickViewGroupElement.js +3 -3
- package/src/sap/m/QuickViewPage.js +3 -3
- package/src/sap/m/RadioButton.js +47 -20
- package/src/sap/m/RadioButtonGroup.js +29 -26
- package/src/sap/m/RangeSlider.js +1 -3
- package/src/sap/m/RatingIndicator.js +8 -1
- package/src/sap/m/RatingIndicatorRenderer.js +13 -4
- package/src/sap/m/ResponsivePopover.js +3 -3
- package/src/sap/m/ResponsiveScale.js +1 -1
- package/src/sap/m/ScrollBar.js +1 -1
- package/src/sap/m/ScrollContainer.js +1 -1
- package/src/sap/m/SearchField.js +1 -1
- package/src/sap/m/SearchFieldRenderer.js +1 -0
- package/src/sap/m/SegmentedButton.js +1 -1
- package/src/sap/m/SegmentedButtonItem.js +1 -1
- package/src/sap/m/Select.js +8 -14
- package/src/sap/m/SelectDialog.js +2 -1
- package/src/sap/m/SelectDialogBase.js +1 -1
- package/src/sap/m/SelectList.js +1 -1
- package/src/sap/m/SelectListRenderer.js +2 -2
- package/src/sap/m/SelectionDetails.js +2 -2
- package/src/sap/m/SelectionDetailsFacade.js +2 -2
- package/src/sap/m/SelectionDetailsItem.js +1 -1
- package/src/sap/m/SelectionDetailsItemLine.js +1 -1
- package/src/sap/m/Shell.js +1 -1
- package/src/sap/m/SimpleFixFlex.js +1 -1
- package/src/sap/m/SinglePlanningCalendar.js +7 -9
- package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarGrid.js +1 -7
- package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
- package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +0 -2
- package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWeekView.js +12 -13
- package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
- package/src/sap/m/SlideTile.js +30 -5
- package/src/sap/m/Slider.js +1 -1
- package/src/sap/m/SliderTooltip.js +1 -3
- package/src/sap/m/SliderTooltipBase.js +1 -1
- package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
- package/src/sap/m/SliderTooltipContainer.js +1 -1
- package/src/sap/m/SliderTooltipContainerRenderer.js +2 -2
- package/src/sap/m/SliderTooltipRenderer.js +2 -2
- package/src/sap/m/SplitApp.js +1 -1
- package/src/sap/m/SplitButton.js +1 -3
- package/src/sap/m/SplitContainer.js +3 -7
- package/src/sap/m/StandardDynamicDateOption.js +9 -15
- package/src/sap/m/StandardListItem.js +1 -1
- package/src/sap/m/StandardListItemRenderer.js +2 -2
- package/src/sap/m/StandardTile.js +1 -1
- package/src/sap/m/StandardTreeItem.js +1 -1
- package/src/sap/m/StepInput.js +1 -1
- package/src/sap/m/SuggestionItem.js +1 -1
- package/src/sap/m/SuggestionsPopover.js +4 -2
- package/src/sap/m/Switch.js +1 -1
- package/src/sap/m/TabContainer.js +1 -1
- package/src/sap/m/TabContainerItem.js +1 -1
- package/src/sap/m/TabStrip.js +1 -1
- package/src/sap/m/TabStripItem.js +1 -1
- package/src/sap/m/Table.js +11 -9
- package/src/sap/m/TablePersoController.js +1 -1
- package/src/sap/m/TablePersoDialog.js +6 -15
- package/src/sap/m/TablePersoProvider.js +1 -1
- package/src/sap/m/TableRenderer.js +2 -9
- package/src/sap/m/TableSelectDialog.js +1 -1
- package/src/sap/m/Text.js +1 -1
- package/src/sap/m/TextArea.js +1 -1
- package/src/sap/m/TextAreaRenderer.js +1 -2
- package/src/sap/m/Tile.js +1 -1
- package/src/sap/m/TileContainer.js +1 -1
- package/src/sap/m/TileContent.js +8 -9
- package/src/sap/m/TileContentRenderer.js +3 -3
- package/src/sap/m/TimePicker.js +45 -8
- package/src/sap/m/TimePickerClock.js +2 -3
- package/src/sap/m/TimePickerClocks.js +5 -3
- package/src/sap/m/TimePickerClocksRenderer.js +4 -2
- package/src/sap/m/TimePickerInputs.js +1 -1
- package/src/sap/m/TimePickerInputsRenderer.js +1 -1
- package/src/sap/m/TimePickerInternals.js +1 -1
- package/src/sap/m/TimePickerSlider.js +1 -1
- package/src/sap/m/TimePickerSliders.js +3 -5
- package/src/sap/m/Title.js +1 -1
- package/src/sap/m/TitlePropagationSupport.js +1 -1
- package/src/sap/m/ToggleButton.js +2 -2
- package/src/sap/m/Token.js +1 -3
- package/src/sap/m/Tokenizer.js +1 -1
- package/src/sap/m/Toolbar.js +1 -1
- package/src/sap/m/ToolbarLayoutData.js +1 -1
- package/src/sap/m/ToolbarSeparator.js +1 -1
- package/src/sap/m/ToolbarSpacer.js +1 -1
- package/src/sap/m/Tree.js +8 -1
- package/src/sap/m/TreeItemBase.js +1 -1
- package/src/sap/m/TreeRenderer.js +0 -10
- package/src/sap/m/UploadCollection.js +2 -2
- package/src/sap/m/UploadCollectionItem.js +1 -1
- package/src/sap/m/UploadCollectionParameter.js +1 -1
- package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
- package/src/sap/m/VBox.js +1 -1
- package/src/sap/m/ValueStateHeader.js +1 -1
- package/src/sap/m/VariantItem.js +160 -0
- package/src/sap/m/VariantManagement.js +717 -571
- package/src/sap/m/ViewSettingsCustomItem.js +1 -1
- package/src/sap/m/ViewSettingsCustomTab.js +1 -1
- package/src/sap/m/ViewSettingsDialog.js +1 -1
- package/src/sap/m/ViewSettingsFilterItem.js +1 -1
- package/src/sap/m/ViewSettingsItem.js +1 -1
- package/src/sap/m/VisibleItem.js +1 -1
- package/src/sap/m/WheelSlider.js +1 -1
- package/src/sap/m/WheelSliderContainer.js +1 -1
- package/src/sap/m/Wizard.js +10 -3
- package/src/sap/m/WizardProgressNavigator.js +1 -1
- package/src/sap/m/WizardStep.js +3 -1
- package/src/sap/m/_thirdparty/purify.js +1622 -0
- package/src/sap/m/changeHandler/AddTableColumn.js +12 -13
- package/src/sap/m/changeHandler/ChangeLinkTarget.js +2 -3
- package/src/sap/m/changeHandler/CombineButtons.js +19 -22
- package/src/sap/m/changeHandler/MoveTableColumns.js +6 -6
- package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
- package/src/sap/m/changeHandler/SplitMenuButton.js +7 -6
- package/src/sap/m/delegate/DateNavigation.js +0 -4
- package/src/sap/m/designtime/Link.designtime.js +19 -11
- package/src/sap/m/designtime/VariantManagement.designtime.js +36 -26
- package/src/sap/m/flexibility/EngineFlex.js +48 -0
- package/src/sap/m/inputUtils/selectionRange.js +1 -2
- package/src/sap/m/library.js +60 -7
- package/src/sap/m/messagebundle.properties +57 -6
- package/src/sap/m/messagebundle_ar.properties +39 -9
- package/src/sap/m/messagebundle_bg.properties +33 -3
- package/src/sap/m/messagebundle_ca.properties +32 -2
- package/src/sap/m/messagebundle_cs.properties +32 -2
- package/src/sap/m/messagebundle_cy.properties +34 -4
- package/src/sap/m/messagebundle_da.properties +32 -2
- package/src/sap/m/messagebundle_de.properties +32 -2
- package/src/sap/m/messagebundle_el.properties +35 -5
- package/src/sap/m/messagebundle_en.properties +34 -4
- package/src/sap/m/messagebundle_en_GB.properties +34 -4
- package/src/sap/m/messagebundle_en_US_sappsd.properties +33 -3
- package/src/sap/m/messagebundle_en_US_saprigi.properties +31 -3
- package/src/sap/m/messagebundle_en_US_saptrc.properties +33 -3
- package/src/sap/m/messagebundle_es.properties +33 -3
- package/src/sap/m/messagebundle_es_MX.properties +32 -2
- package/src/sap/m/messagebundle_et.properties +32 -2
- package/src/sap/m/messagebundle_fi.properties +36 -6
- package/src/sap/m/messagebundle_fr.properties +33 -3
- package/src/sap/m/messagebundle_fr_CA.properties +34 -4
- package/src/sap/m/messagebundle_hi.properties +34 -4
- package/src/sap/m/messagebundle_hr.properties +36 -6
- package/src/sap/m/messagebundle_hu.properties +34 -4
- package/src/sap/m/messagebundle_id.properties +34 -4
- package/src/sap/m/messagebundle_it.properties +33 -3
- package/src/sap/m/messagebundle_iw.properties +34 -4
- package/src/sap/m/messagebundle_ja.properties +33 -3
- package/src/sap/m/messagebundle_kk.properties +32 -2
- package/src/sap/m/messagebundle_ko.properties +40 -10
- package/src/sap/m/messagebundle_lt.properties +32 -2
- package/src/sap/m/messagebundle_lv.properties +32 -2
- package/src/sap/m/messagebundle_ms.properties +33 -3
- package/src/sap/m/messagebundle_nl.properties +46 -16
- package/src/sap/m/messagebundle_no.properties +34 -4
- package/src/sap/m/messagebundle_pl.properties +33 -3
- package/src/sap/m/messagebundle_pt.properties +37 -7
- package/src/sap/m/messagebundle_pt_PT.properties +32 -2
- package/src/sap/m/messagebundle_ro.properties +33 -3
- package/src/sap/m/messagebundle_ru.properties +33 -3
- package/src/sap/m/messagebundle_sh.properties +33 -3
- package/src/sap/m/messagebundle_sk.properties +32 -2
- package/src/sap/m/messagebundle_sl.properties +33 -3
- package/src/sap/m/messagebundle_sv.properties +32 -2
- package/src/sap/m/messagebundle_th.properties +65 -35
- package/src/sap/m/messagebundle_tr.properties +36 -6
- package/src/sap/m/messagebundle_uk.properties +33 -3
- package/src/sap/m/messagebundle_vi.properties +33 -3
- package/src/sap/m/messagebundle_zh_CN.properties +33 -3
- package/src/sap/m/messagebundle_zh_TW.properties +32 -2
- package/src/sap/m/p13n/AbstractContainer.js +7 -7
- package/src/sap/m/p13n/AbstractContainerItem.js +4 -4
- package/src/sap/m/p13n/BasePanel.js +24 -13
- package/src/sap/m/p13n/Container.js +3 -3
- package/src/sap/m/p13n/Engine.js +1254 -0
- package/src/sap/m/p13n/FlexUtil.js +161 -0
- package/src/sap/m/p13n/GroupController.js +145 -0
- package/src/sap/m/p13n/GroupPanel.js +12 -5
- package/src/sap/m/p13n/MetadataHelper.js +35 -0
- package/src/sap/m/p13n/PersistenceProvider.js +160 -0
- package/src/sap/m/p13n/Popup.js +49 -12
- package/src/sap/m/p13n/QueryPanel.js +3 -3
- package/src/sap/m/p13n/SelectionController.js +548 -0
- package/src/sap/m/p13n/SelectionPanel.js +23 -5
- package/src/sap/m/p13n/SortController.js +153 -0
- package/src/sap/m/p13n/SortPanel.js +15 -5
- package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
- package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
- package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
- package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
- package/src/sap/m/p13n/modification/ModificationHandler.js +143 -0
- package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
- package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +147 -0
- package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
- package/src/sap/m/p13n/modules/UIManager.js +230 -0
- package/src/sap/m/p13n/modules/xConfigAPI.js +288 -0
- package/src/sap/m/plugins/CellSelector.js +741 -0
- package/src/sap/m/plugins/ColumnResizer.js +15 -1
- package/src/sap/m/plugins/DataStateIndicator.js +2 -2
- package/src/sap/m/plugins/PasteProvider.js +1 -1
- package/src/sap/m/plugins/PluginBase.js +4 -3
- package/src/sap/m/rules/CheckBox.support.js +1 -1
- package/src/sap/m/rules/Image.support.js +1 -1
- package/src/sap/m/rules/Link.support.js +1 -1
- package/src/sap/m/rules/MessagePage.support.js +1 -1
- package/src/sap/m/rules/ObjectHeader.support.js +6 -6
- package/src/sap/m/rules/ObjectListItem.support.js +1 -1
- package/src/sap/m/rules/ObjectMarker.support.js +1 -1
- package/src/sap/m/rules/ObjectStatus.support.js +1 -1
- package/src/sap/m/rules/Panel.support.js +1 -1
- package/src/sap/m/rules/Select.support.js +1 -1
- package/src/sap/m/rules/Table.support.js +3 -3
- package/src/sap/m/semantic/AddAction.js +1 -1
- package/src/sap/m/semantic/CancelAction.js +1 -1
- package/src/sap/m/semantic/DeleteAction.js +1 -1
- package/src/sap/m/semantic/DetailPage.js +1 -1
- package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
- package/src/sap/m/semantic/EditAction.js +1 -1
- package/src/sap/m/semantic/FavoriteAction.js +1 -1
- package/src/sap/m/semantic/FilterAction.js +1 -1
- package/src/sap/m/semantic/FilterSelect.js +1 -1
- package/src/sap/m/semantic/FlagAction.js +1 -1
- package/src/sap/m/semantic/ForwardAction.js +1 -1
- package/src/sap/m/semantic/FullscreenPage.js +1 -1
- package/src/sap/m/semantic/GroupAction.js +1 -1
- package/src/sap/m/semantic/GroupSelect.js +1 -1
- package/src/sap/m/semantic/MainAction.js +1 -1
- package/src/sap/m/semantic/MasterPage.js +1 -1
- package/src/sap/m/semantic/MessagesIndicator.js +1 -1
- package/src/sap/m/semantic/MultiSelectAction.js +1 -1
- package/src/sap/m/semantic/NegativeAction.js +1 -1
- package/src/sap/m/semantic/OpenInAction.js +1 -1
- package/src/sap/m/semantic/PositiveAction.js +1 -1
- package/src/sap/m/semantic/PrintAction.js +1 -1
- package/src/sap/m/semantic/SaveAction.js +1 -1
- package/src/sap/m/semantic/Segment.js +1 -1
- package/src/sap/m/semantic/SegmentedContainer.js +1 -1
- package/src/sap/m/semantic/SemanticButton.js +1 -1
- package/src/sap/m/semantic/SemanticConfiguration.js +3 -4
- package/src/sap/m/semantic/SemanticControl.js +1 -1
- package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
- package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/semantic/SemanticPage.js +1 -1
- package/src/sap/m/semantic/SemanticSelect.js +1 -1
- package/src/sap/m/semantic/SemanticToggleButton.js +1 -3
- package/src/sap/m/semantic/SendEmailAction.js +1 -1
- package/src/sap/m/semantic/SendMessageAction.js +1 -1
- package/src/sap/m/semantic/ShareInJamAction.js +1 -1
- package/src/sap/m/semantic/ShareMenu.js +1 -1
- package/src/sap/m/semantic/ShareMenuPage.js +1 -1
- package/src/sap/m/semantic/SortAction.js +1 -1
- package/src/sap/m/semantic/SortSelect.js +1 -1
- package/src/sap/m/table/Util.js +30 -11
- package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
- package/src/sap/m/table/columnmenu/Entry.js +1 -1
- package/src/sap/m/table/columnmenu/Item.js +1 -1
- package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
- package/src/sap/m/table/columnmenu/Menu.js +50 -13
- package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
- package/src/sap/m/table/columnmenu/QuickActionBase.js +18 -3
- package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
- package/src/sap/m/table/columnmenu/QuickGroup.js +29 -5
- package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
- package/src/sap/m/table/columnmenu/QuickSort.js +1 -3
- package/src/sap/m/table/columnmenu/QuickSortItem.js +8 -7
- package/src/sap/m/table/columnmenu/QuickTotal.js +29 -5
- package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
- package/src/sap/m/themes/base/Breadcrumbs.less +6 -0
- package/src/sap/m/themes/base/Button.less +0 -1
- package/src/sap/m/themes/base/Carousel.less +8 -8
- package/src/sap/m/themes/base/CellSelector.less +9 -0
- package/src/sap/m/themes/base/CheckBox.less +1 -0
- package/src/sap/m/themes/base/Dialog.less +1 -0
- package/src/sap/m/themes/base/DisplayListItem.less +3 -3
- package/src/sap/m/themes/base/DynamicDateRange.less +4 -0
- package/src/sap/m/themes/base/FeedContent.less +13 -5
- package/src/sap/m/themes/base/GenericTile.less +56 -9
- package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
- package/src/sap/m/themes/base/NewsContent.less +6 -0
- package/src/sap/m/themes/base/NumericContent.less +1 -1
- package/src/sap/m/themes/base/ObjectStatus.less +2 -1
- package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
- package/src/sap/m/themes/base/SelectList.less +0 -5
- package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
- package/src/sap/m/themes/base/SlideTile.less +35 -4
- package/src/sap/m/themes/base/Table.less +11 -2
- package/src/sap/m/themes/base/TileContent.less +17 -0
- package/src/sap/m/themes/base/library.source.less +1 -0
- package/src/sap/m/upload/UploadSet.js +300 -23
- package/src/sap/m/upload/UploadSetItem.js +18 -7
- package/src/sap/m/upload/UploadSetRenderer.js +8 -16
- package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
- package/src/sap/m/upload/Uploader.js +1 -2
|
@@ -82,7 +82,7 @@ sap.ui.define([
|
|
|
82
82
|
* @extends sap.ui.core.Control
|
|
83
83
|
*
|
|
84
84
|
* @author SAP SE
|
|
85
|
-
* @version 1.
|
|
85
|
+
* @version 1.106.0
|
|
86
86
|
*
|
|
87
87
|
* @constructor
|
|
88
88
|
* @public
|
|
@@ -115,6 +115,14 @@ sap.ui.define([
|
|
|
115
115
|
*/
|
|
116
116
|
enableFormattedText: { type: "boolean", group: "Appearance", defaultValue: false },
|
|
117
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Defines whether the <code>IllustratedMessage</code> would resize itself according to it's height
|
|
120
|
+
* if <code>illustrationSize</code> property is set to <code>IllustratedMessageSize.Auto</code>.
|
|
121
|
+
*
|
|
122
|
+
* @since 1.104
|
|
123
|
+
*/
|
|
124
|
+
enableVerticalResponsiveness: { type: "boolean", group: "Appearance", defaultValue: false },
|
|
125
|
+
|
|
118
126
|
/**
|
|
119
127
|
* Determines which illustration breakpoint variant is used.
|
|
120
128
|
*
|
|
@@ -194,6 +202,13 @@ sap.ui.define([
|
|
|
194
202
|
*/
|
|
195
203
|
_title: {type: "sap.m.Title", multiple: false, visibility: "hidden"}
|
|
196
204
|
},
|
|
205
|
+
associations : {
|
|
206
|
+
/**
|
|
207
|
+
* Association to controls / IDs which label those controls (see WAI-ARIA attribute aria-labelledBy).
|
|
208
|
+
* @since 1.106.0
|
|
209
|
+
*/
|
|
210
|
+
illustrationAriaLabelledBy: {type : "sap.ui.core.Control", multiple : true, singularName : "illustrationAriaLabelledBy"}
|
|
211
|
+
},
|
|
197
212
|
dnd: { draggable: false, droppable: true }
|
|
198
213
|
}
|
|
199
214
|
});
|
|
@@ -258,6 +273,12 @@ sap.ui.define([
|
|
|
258
273
|
BASE: 259
|
|
259
274
|
};
|
|
260
275
|
|
|
276
|
+
IllustratedMessage.BREAK_POINTS_HEIGHT = {
|
|
277
|
+
DIALOG: 451,
|
|
278
|
+
SPOT: 296,
|
|
279
|
+
BASE: 154
|
|
280
|
+
};
|
|
281
|
+
|
|
261
282
|
IllustratedMessage.MEDIA = {
|
|
262
283
|
BASE: "sapMIllustratedMessage-Base",
|
|
263
284
|
SPOT: "sapMIllustratedMessage-Spot",
|
|
@@ -274,6 +295,7 @@ sap.ui.define([
|
|
|
274
295
|
*/
|
|
275
296
|
|
|
276
297
|
IllustratedMessage.prototype.init = function () {
|
|
298
|
+
this._sLastKnownMedia = null;
|
|
277
299
|
this._updateInternalIllustrationSetAndType(this.getIllustrationType());
|
|
278
300
|
};
|
|
279
301
|
|
|
@@ -452,7 +474,7 @@ sap.ui.define([
|
|
|
452
474
|
/**
|
|
453
475
|
* Helper function which ensures that there is non-breaking space between the last two words
|
|
454
476
|
* of a given DOM content. By adding it, we prevent one word (widow) on the last row of a text node.
|
|
455
|
-
* @param {
|
|
477
|
+
* @param {HTMLElement} oDomRef - the DOM object which will be checked against
|
|
456
478
|
* @private
|
|
457
479
|
*/
|
|
458
480
|
IllustratedMessage.prototype._preventWidowWords = function(oDomRef) {
|
|
@@ -477,14 +499,16 @@ sap.ui.define([
|
|
|
477
499
|
*/
|
|
478
500
|
IllustratedMessage.prototype._updateDomSize = function () {
|
|
479
501
|
var oDomRef = this.getDomRef(),
|
|
480
|
-
sSize;
|
|
502
|
+
sSize, sCustomSize;
|
|
481
503
|
|
|
482
504
|
if (oDomRef) {
|
|
483
505
|
sSize = this.getIllustrationSize();
|
|
484
506
|
if (sSize === IllustratedMessageSize.Auto) {
|
|
485
|
-
this._updateMedia(oDomRef.getBoundingClientRect().width);
|
|
507
|
+
this._updateMedia(oDomRef.getBoundingClientRect().width, oDomRef.getBoundingClientRect().height);
|
|
486
508
|
} else {
|
|
487
|
-
|
|
509
|
+
sCustomSize = IllustratedMessage.MEDIA[sSize.toUpperCase()];
|
|
510
|
+
this._updateMediaStyle(sCustomSize);
|
|
511
|
+
this._updateSymbol(sCustomSize);
|
|
488
512
|
}
|
|
489
513
|
}
|
|
490
514
|
|
|
@@ -507,50 +531,72 @@ sap.ui.define([
|
|
|
507
531
|
* @private
|
|
508
532
|
*/
|
|
509
533
|
IllustratedMessage.prototype._onResize = function (oEvent) {
|
|
510
|
-
var iCurrentWidth = oEvent.size.width
|
|
534
|
+
var iCurrentWidth = oEvent.size.width,
|
|
535
|
+
iCurrentHeight = oEvent.size.height;
|
|
511
536
|
|
|
512
|
-
this._updateMedia(iCurrentWidth);
|
|
537
|
+
this._updateMedia(iCurrentWidth, iCurrentHeight);
|
|
513
538
|
};
|
|
514
539
|
|
|
515
540
|
/**
|
|
516
|
-
* Updates the media size of the control based on its own width, not on the entire screen size (which media query does).
|
|
541
|
+
* Updates the media size of the control based on its own width and height, not on the entire screen size (which media query does).
|
|
517
542
|
* @param {number} iWidth - the actual width of the control
|
|
543
|
+
* @param {number} iHeight - the actual height of the control
|
|
518
544
|
* @private
|
|
519
545
|
*/
|
|
520
|
-
IllustratedMessage.prototype._updateMedia = function (iWidth) {
|
|
521
|
-
|
|
546
|
+
IllustratedMessage.prototype._updateMedia = function (iWidth, iHeight) {
|
|
547
|
+
var bVertical = this.getEnableVerticalResponsiveness(),
|
|
548
|
+
sNewMedia;
|
|
549
|
+
|
|
550
|
+
if (!iWidth && !iHeight) {
|
|
522
551
|
return;
|
|
523
552
|
}
|
|
524
553
|
|
|
525
|
-
if (iWidth <= IllustratedMessage.BREAK_POINTS.BASE) {
|
|
526
|
-
|
|
527
|
-
} else if (iWidth <= IllustratedMessage.BREAK_POINTS.SPOT) {
|
|
528
|
-
|
|
529
|
-
} else if (iWidth <= IllustratedMessage.BREAK_POINTS.DIALOG) {
|
|
530
|
-
|
|
554
|
+
if (iWidth <= IllustratedMessage.BREAK_POINTS.BASE || (iHeight <= IllustratedMessage.BREAK_POINTS_HEIGHT.BASE && bVertical)) {
|
|
555
|
+
sNewMedia = IllustratedMessage.MEDIA.BASE;
|
|
556
|
+
} else if (iWidth <= IllustratedMessage.BREAK_POINTS.SPOT || (iHeight <= IllustratedMessage.BREAK_POINTS_HEIGHT.SPOT && bVertical)) {
|
|
557
|
+
sNewMedia = IllustratedMessage.MEDIA.SPOT;
|
|
558
|
+
} else if (iWidth <= IllustratedMessage.BREAK_POINTS.DIALOG || (iHeight <= IllustratedMessage.BREAK_POINTS_HEIGHT.DIALOG && bVertical)) {
|
|
559
|
+
sNewMedia = IllustratedMessage.MEDIA.DIALOG;
|
|
531
560
|
} else {
|
|
532
|
-
|
|
561
|
+
sNewMedia = IllustratedMessage.MEDIA.SCENE;
|
|
533
562
|
}
|
|
563
|
+
|
|
564
|
+
this._updateMediaStyle(sNewMedia);
|
|
565
|
+
this._updateSymbol(sNewMedia);
|
|
534
566
|
};
|
|
535
567
|
|
|
536
568
|
/**
|
|
537
|
-
* It puts the appropriate classes on the control
|
|
569
|
+
* It puts the appropriate classes on the control based on the current media size.
|
|
538
570
|
* @param {string} sCurrentMedia
|
|
539
571
|
* @private
|
|
540
572
|
*/
|
|
541
573
|
IllustratedMessage.prototype._updateMediaStyle = function (sCurrentMedia) {
|
|
574
|
+
if (this._sLastKnownMedia !== sCurrentMedia) {
|
|
575
|
+
this._sLastKnownMedia = sCurrentMedia;
|
|
576
|
+
} else {
|
|
577
|
+
return; // No need to iterate over the media classes if the media is the same as the one previously used
|
|
578
|
+
}
|
|
542
579
|
Object.keys(IllustratedMessage.MEDIA).forEach(function (sMedia) {
|
|
543
|
-
var bEnable = sCurrentMedia === IllustratedMessage.MEDIA[sMedia]
|
|
544
|
-
sIdMedia = sMedia.charAt(0) + sMedia.slice(1).toLowerCase();
|
|
580
|
+
var bEnable = sCurrentMedia === IllustratedMessage.MEDIA[sMedia];
|
|
545
581
|
this.toggleStyleClass(IllustratedMessage.MEDIA[sMedia], bEnable);
|
|
546
|
-
if (bEnable && sCurrentMedia !== IllustratedMessage.MEDIA.BASE) { // No need to require a resource for BASE illustrationSize, since there is none
|
|
547
|
-
this._getIllustration().setSet(this._sIllustrationSet, true)
|
|
548
|
-
.setMedia(sIdMedia, true)
|
|
549
|
-
.setType(this._sIllustrationType);
|
|
550
|
-
}
|
|
551
582
|
}, this);
|
|
552
583
|
};
|
|
553
584
|
|
|
585
|
+
/**
|
|
586
|
+
* Updates illustration's symbol based on the current media size.
|
|
587
|
+
* @param {string} sCurrentMedia
|
|
588
|
+
* @private
|
|
589
|
+
*/
|
|
590
|
+
IllustratedMessage.prototype._updateSymbol = function (sCurrentMedia) {
|
|
591
|
+
var sIdMedia = sCurrentMedia.substring(sCurrentMedia.indexOf('-') + 1);
|
|
592
|
+
|
|
593
|
+
if (sCurrentMedia !== IllustratedMessage.MEDIA.BASE) { // No need to require a resource for BASE illustrationSize, since there is none
|
|
594
|
+
this._getIllustration().setSet(this._sIllustrationSet, true)
|
|
595
|
+
.setMedia(sIdMedia, true)
|
|
596
|
+
.setType(this._sIllustrationType);
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
|
|
554
600
|
/**
|
|
555
601
|
* ATTACH/DETACH HANDLERS
|
|
556
602
|
*/
|
|
@@ -634,6 +680,33 @@ sap.ui.define([
|
|
|
634
680
|
};
|
|
635
681
|
};
|
|
636
682
|
|
|
683
|
+
IllustratedMessage.prototype.addIllustrationAriaLabelledBy = function(sID) {
|
|
684
|
+
this.addAssociation("ariaLabelledBy", sID, true);
|
|
685
|
+
|
|
686
|
+
var oIllustratedMessageIllustration = this._getIllustration();
|
|
687
|
+
oIllustratedMessageIllustration.addAriaLabelledBy(sID);
|
|
688
|
+
|
|
689
|
+
return this;
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
IllustratedMessage.prototype.removeIllustrationAriaLabelledBy = function(sID) {
|
|
693
|
+
this.removeAssociation("ariaLabelledBy", sID, true);
|
|
694
|
+
|
|
695
|
+
var oIllustratedMessageIllustration = this._getIllustration();
|
|
696
|
+
oIllustratedMessageIllustration.removeAriaLabelledBy(sID);
|
|
697
|
+
|
|
698
|
+
return this;
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
IllustratedMessage.prototype.removeAllAriaLabelledBy = function(sID) {
|
|
702
|
+
this.removeAssociation("ariaLabelledBy", sID, true);
|
|
703
|
+
|
|
704
|
+
var oIllustratedMessageIllustration = this._getIllustration();
|
|
705
|
+
oIllustratedMessageIllustration.removeAllAriaLabelledBy(sID);
|
|
706
|
+
|
|
707
|
+
return this;
|
|
708
|
+
};
|
|
709
|
+
|
|
637
710
|
|
|
638
711
|
return IllustratedMessage;
|
|
639
712
|
|
|
@@ -23,26 +23,30 @@ sap.ui.define([], function () {
|
|
|
23
23
|
*/
|
|
24
24
|
IllustratedMessageRenderer.render = function (oRm, oIllustratedMessage) {
|
|
25
25
|
var oIllustratedMessageIllustration = oIllustratedMessage._getIllustration(),
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
sIllustratedMessageTitle = oIllustratedMessage._getTitle(),
|
|
27
|
+
sIllustratedMessageDescription = oIllustratedMessage._getDescription(),
|
|
28
|
+
aIllustratedMessageAdditionalContent = oIllustratedMessage.getAdditionalContent(),
|
|
29
|
+
bIllustratedMessageEnableVerticalResponsiveness = oIllustratedMessage.getEnableVerticalResponsiveness();
|
|
29
30
|
|
|
30
31
|
// IllustratedMessage's Root DOM Element.
|
|
31
32
|
oRm.openStart("figure", oIllustratedMessage);
|
|
32
33
|
oRm.class("sapMIllustratedMessage");
|
|
34
|
+
if (bIllustratedMessageEnableVerticalResponsiveness) {
|
|
35
|
+
oRm.class("sapMIllustratedMessageScalable");
|
|
36
|
+
}
|
|
33
37
|
oRm.openEnd();
|
|
34
38
|
|
|
35
39
|
oRm.renderControl(oIllustratedMessageIllustration);
|
|
36
40
|
|
|
37
41
|
oRm.openStart("figcaption").openEnd();
|
|
38
|
-
oRm.renderControl(
|
|
39
|
-
oRm.renderControl(
|
|
42
|
+
oRm.renderControl(sIllustratedMessageTitle);
|
|
43
|
+
oRm.renderControl(sIllustratedMessageDescription.addStyleClass("sapMIllustratedMessageDescription"));
|
|
40
44
|
oRm.close("figcaption");
|
|
41
45
|
|
|
42
46
|
oRm.openStart("div");
|
|
43
47
|
oRm.class("sapMIllustratedMessageAdditionalContent"); // helper class in order to hide the additional content when on Base breakpoint
|
|
44
48
|
oRm.openEnd();
|
|
45
|
-
|
|
49
|
+
aIllustratedMessageAdditionalContent.forEach(function (oControl) {
|
|
46
50
|
oRm.renderControl(oControl);
|
|
47
51
|
});
|
|
48
52
|
oRm.close("div");
|
|
@@ -32,7 +32,7 @@ sap.ui.define([
|
|
|
32
32
|
* @extends sap.ui.core.Control
|
|
33
33
|
*
|
|
34
34
|
* @author SAP SE
|
|
35
|
-
* @version 1.
|
|
35
|
+
* @version 1.106.0
|
|
36
36
|
*
|
|
37
37
|
* @constructor
|
|
38
38
|
* @public
|
|
@@ -65,6 +65,13 @@ sap.ui.define([
|
|
|
65
65
|
*/
|
|
66
66
|
type: {type: "string", defaultValue: null}
|
|
67
67
|
},
|
|
68
|
+
associations : {
|
|
69
|
+
/**
|
|
70
|
+
* Association to controls / IDs which label those controls (see WAI-ARIA attribute aria-labelledBy).
|
|
71
|
+
* @since 1.106.0
|
|
72
|
+
*/
|
|
73
|
+
ariaLabelledBy: {type : "sap.ui.core.Control", multiple : true, singularName : "ariaLabelledBy"}
|
|
74
|
+
},
|
|
68
75
|
dnd: { draggable: true, droppable: false }
|
|
69
76
|
}
|
|
70
77
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
sap.ui.define([
|
|
7
|
+
sap.ui.define([], function () {
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -26,6 +26,7 @@ sap.ui.define(["sap/ui/Device"], function (Device) {
|
|
|
26
26
|
|
|
27
27
|
oRm.openStart("svg", oIllustration);
|
|
28
28
|
oRm.class("sapMIllustration");
|
|
29
|
+
oRm.accessibilityState(oIllustration);
|
|
29
30
|
oRm.openEnd();
|
|
30
31
|
|
|
31
32
|
oRm.openStart("use");
|
package/src/sap/m/Image.js
CHANGED
|
@@ -9,13 +9,14 @@ sap.ui.define([
|
|
|
9
9
|
'./library',
|
|
10
10
|
'sap/ui/core/Control',
|
|
11
11
|
'sap/ui/base/DataType',
|
|
12
|
+
'sap/base/security/URLListValidator',
|
|
12
13
|
'./ImageRenderer',
|
|
13
14
|
"sap/ui/events/KeyCodes",
|
|
14
15
|
"sap/ui/thirdparty/jquery",
|
|
15
16
|
"sap/base/security/encodeCSS",
|
|
16
17
|
"sap/ui/core/library"
|
|
17
18
|
],
|
|
18
|
-
function(library, Control, DataType, ImageRenderer, KeyCodes, jQuery, encodeCSS, coreLibrary) {
|
|
19
|
+
function(library, Control, DataType, URLListValidator, ImageRenderer, KeyCodes, jQuery, encodeCSS, coreLibrary) {
|
|
19
20
|
"use strict";
|
|
20
21
|
|
|
21
22
|
|
|
@@ -57,7 +58,7 @@ sap.ui.define([
|
|
|
57
58
|
* @implements sap.ui.core.IFormContent
|
|
58
59
|
*
|
|
59
60
|
* @author SAP SE
|
|
60
|
-
* @version 1.
|
|
61
|
+
* @version 1.106.0
|
|
61
62
|
*
|
|
62
63
|
* @public
|
|
63
64
|
* @alias sap.m.Image
|
|
@@ -282,6 +283,10 @@ sap.ui.define([
|
|
|
282
283
|
return ratio;
|
|
283
284
|
}());
|
|
284
285
|
|
|
286
|
+
Image.prototype.init = function () {
|
|
287
|
+
this._oSvgCachedData = {};
|
|
288
|
+
};
|
|
289
|
+
|
|
285
290
|
/**
|
|
286
291
|
* Function is called when image is loaded successfully.
|
|
287
292
|
*
|
|
@@ -388,7 +393,7 @@ sap.ui.define([
|
|
|
388
393
|
/**
|
|
389
394
|
* Sets the <code>detailBox</code> aggregation.
|
|
390
395
|
* @param {sap.m.LightBox|undefined} oLightBox - Instance of the <code>LightBox</code> control or undefined
|
|
391
|
-
* @returns {
|
|
396
|
+
* @returns {this} <code>this</code> for chaining
|
|
392
397
|
* @override
|
|
393
398
|
* @public
|
|
394
399
|
*/
|
|
@@ -418,6 +423,17 @@ sap.ui.define([
|
|
|
418
423
|
return this.setAggregation("detailBox", oLightBox);
|
|
419
424
|
};
|
|
420
425
|
|
|
426
|
+
Image.prototype.setSrc = function (sSrc) {
|
|
427
|
+
var oPreviousSrc = this.getSrc(),
|
|
428
|
+
oResult = this.setProperty("src", sSrc);
|
|
429
|
+
|
|
430
|
+
if (sSrc && oPreviousSrc !== this.getSrc() && this.getMode() === ImageMode.InlineSvg) {
|
|
431
|
+
sSrc.endsWith("svg") && this._loadSvg();
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
return oResult;
|
|
435
|
+
};
|
|
436
|
+
|
|
421
437
|
/*
|
|
422
438
|
* @override
|
|
423
439
|
*/
|
|
@@ -450,6 +466,10 @@ sap.ui.define([
|
|
|
450
466
|
var $DomNode = this.getDetailBox() ? this.$().find(".sapMImg") : this.$();
|
|
451
467
|
$DomNode.off("load").off("error");
|
|
452
468
|
}
|
|
469
|
+
|
|
470
|
+
if (this.getMode() === ImageMode.InlineSvg) {
|
|
471
|
+
this._loadSvg();
|
|
472
|
+
}
|
|
453
473
|
};
|
|
454
474
|
|
|
455
475
|
/**
|
|
@@ -501,6 +521,8 @@ sap.ui.define([
|
|
|
501
521
|
if (this._fnLightBoxOpen) {
|
|
502
522
|
this._fnLightBoxOpen = null;
|
|
503
523
|
}
|
|
524
|
+
|
|
525
|
+
this._oSvgCachedData = null;
|
|
504
526
|
};
|
|
505
527
|
|
|
506
528
|
/**
|
|
@@ -600,6 +622,54 @@ sap.ui.define([
|
|
|
600
622
|
oEvent.preventDefault();
|
|
601
623
|
};
|
|
602
624
|
|
|
625
|
+
/**
|
|
626
|
+
* Loads "svg"
|
|
627
|
+
* @private
|
|
628
|
+
*/
|
|
629
|
+
Image.prototype._loadSvg = function() {
|
|
630
|
+
var that = this,
|
|
631
|
+
sSrc = this.getSrc(),
|
|
632
|
+
oSvg;
|
|
633
|
+
|
|
634
|
+
if (!this._oSvgCachedData[sSrc]) {
|
|
635
|
+
that._oSvgCachedData[sSrc] = {};
|
|
636
|
+
jQuery.get(this.getSrc(), function(data) {
|
|
637
|
+
oSvg = jQuery(data).find('svg')[0];
|
|
638
|
+
|
|
639
|
+
if (oSvg) {
|
|
640
|
+
sap.ui.require(["sap/m/_thirdparty/purify"],
|
|
641
|
+
function(DOMPurify) {
|
|
642
|
+
that._oSvgCachedData[sSrc].oSvgDomRef = DOMPurify.sanitize(oSvg, {RETURN_DOM: true});
|
|
643
|
+
that.invalidate();
|
|
644
|
+
});
|
|
645
|
+
}
|
|
646
|
+
})
|
|
647
|
+
.done(function() {
|
|
648
|
+
that.fireLoad();
|
|
649
|
+
})
|
|
650
|
+
.fail(function() {
|
|
651
|
+
that.fireError();
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
|
|
656
|
+
Image.prototype._getSvgCachedData = function () {
|
|
657
|
+
var sSrc = this.getSrc();
|
|
658
|
+
|
|
659
|
+
if (this._oSvgCachedData[sSrc]
|
|
660
|
+
&& typeof this._oSvgCachedData[sSrc].oSvgDomRef === "object") {
|
|
661
|
+
return this._oSvgCachedData[sSrc].oSvgDomRef;
|
|
662
|
+
}
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* Checks if href is valid
|
|
667
|
+
* @private
|
|
668
|
+
*/
|
|
669
|
+
Image.prototype._isHrefValid = function (sURL) {
|
|
670
|
+
return URLListValidator.validate(sURL);
|
|
671
|
+
};
|
|
672
|
+
|
|
603
673
|
/**
|
|
604
674
|
* Update the source image either on the output DOM element (when in sap.m.ImageMode.Image mode) or on the window.Image object (when in sap.m.ImageMode.Background mode)
|
|
605
675
|
* @private
|
|
@@ -42,6 +42,8 @@ sap.ui.define(['sap/m/library', "sap/base/security/encodeCSS", "sap/ui/core/libr
|
|
|
42
42
|
aDescribedBy = oImage.getAriaDescribedBy(),
|
|
43
43
|
aDetails = oImage.getAriaDetails(),
|
|
44
44
|
bIsImageMode = sMode === ImageMode.Image,
|
|
45
|
+
bIsSvgMode = sMode === ImageMode.InlineSvg,
|
|
46
|
+
bIsBackGroundMode = sMode === ImageMode.Background,
|
|
45
47
|
bLazyLoading = oImage.getLazyLoading(),
|
|
46
48
|
sAriaHasPopup = oImage.getAriaHasPopup();
|
|
47
49
|
|
|
@@ -61,6 +63,8 @@ sap.ui.define(['sap/m/library', "sap/base/security/encodeCSS", "sap/ui/core/libr
|
|
|
61
63
|
oRm.attr("loading", "lazy");
|
|
62
64
|
}
|
|
63
65
|
|
|
66
|
+
} else if (bIsSvgMode) {
|
|
67
|
+
oRm.openStart("div", oImage);
|
|
64
68
|
} else {
|
|
65
69
|
oRm.openStart("span", !oLightBox ? oImage : oImage.getId() + "-inner");
|
|
66
70
|
}
|
|
@@ -84,7 +88,7 @@ sap.ui.define(['sap/m/library', "sap/base/security/encodeCSS", "sap/ui/core/libr
|
|
|
84
88
|
|
|
85
89
|
if (bIsImageMode) {
|
|
86
90
|
oRm.attr("src", oImage._getDensityAwareSrc());
|
|
87
|
-
} else {
|
|
91
|
+
} else if (bIsBackGroundMode) {
|
|
88
92
|
// preload the image with a window.Image instance. The source uri is set to the output DOM node via CSS style 'background-image' after the source image is loaded (in onload function)
|
|
89
93
|
oImage._preLoadImage(oImage._getDensityAwareSrc());
|
|
90
94
|
if (oImage._isValidBackgroundSizeValue(oImage.getBackgroundSize())) {
|
|
@@ -141,12 +145,72 @@ sap.ui.define(['sap/m/library', "sap/base/security/encodeCSS", "sap/ui/core/libr
|
|
|
141
145
|
oRm.style("width", oImage.getWidth());
|
|
142
146
|
oRm.style("height", oImage.getHeight());
|
|
143
147
|
|
|
144
|
-
|
|
148
|
+
if (bIsImageMode) {
|
|
149
|
+
oRm.voidEnd();
|
|
150
|
+
} else if (bIsSvgMode) {
|
|
151
|
+
oRm.openEnd();
|
|
152
|
+
this._renderSvg(oRm, oImage);
|
|
153
|
+
oRm.close("div");
|
|
154
|
+
} else {
|
|
155
|
+
oRm.openEnd().close("span");
|
|
156
|
+
}
|
|
145
157
|
|
|
146
158
|
if (oLightBox) {
|
|
147
159
|
oRm.close("span");
|
|
148
160
|
}
|
|
149
161
|
};
|
|
150
162
|
|
|
163
|
+
ImageRenderer._renderSvg = function(oRm, oImage) {
|
|
164
|
+
var oSvg = oImage._getSvgCachedData(),
|
|
165
|
+
oChildren;
|
|
166
|
+
|
|
167
|
+
if (!oSvg) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
oChildren = oSvg.children;
|
|
172
|
+
this._renderSvgChildren(oRm, oChildren, oImage);
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
ImageRenderer._renderSvgAttributes = function (oRm, aAttributes, oImage) {
|
|
176
|
+
for (var i = 0; i < aAttributes.length; i++) {
|
|
177
|
+
var oAttr = aAttributes[i],
|
|
178
|
+
iNamespaceIndex = oAttr.name.indexOf(":"),
|
|
179
|
+
sAttributeName = iNamespaceIndex < 0 ? oAttr.name : oAttr.name.slice(iNamespaceIndex + 1);
|
|
180
|
+
|
|
181
|
+
if (sAttributeName === "href" && !oImage._isHrefValid(oAttr.value)) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
oRm.attr(sAttributeName, oAttr.value);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
ImageRenderer._renderSvgChildren = function (oRm, oChildren, oImage) {
|
|
190
|
+
var aChildren = [].slice.call(oChildren).filter(function (oChild) {
|
|
191
|
+
return (oChild.nodeType !== Node.TEXT_NODE)
|
|
192
|
+
// Do not return empty textContent -> line spaces/endings
|
|
193
|
+
|| (oChild.nodeType === Node.TEXT_NODE && oChild.textContent.trim() !== "");
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
aChildren.forEach(function (oChild) {
|
|
197
|
+
var sTagName = oChild.tagName,
|
|
198
|
+
aAttributes = oChild.attributes,
|
|
199
|
+
oChildren = oChild.childNodes;
|
|
200
|
+
|
|
201
|
+
if (oChild.nodeType !== Node.TEXT_NODE) {
|
|
202
|
+
oRm.openStart(sTagName);
|
|
203
|
+
this._renderSvgAttributes(oRm, aAttributes, oImage);
|
|
204
|
+
oRm.openEnd();
|
|
205
|
+
|
|
206
|
+
oChildren.length && this._renderSvgChildren(oRm, oChildren, oImage);
|
|
207
|
+
oRm.close(sTagName);
|
|
208
|
+
|
|
209
|
+
} else {
|
|
210
|
+
oChild.textContent.length && oRm.text(oChild.textContent.trim());
|
|
211
|
+
}
|
|
212
|
+
}, this);
|
|
213
|
+
};
|
|
214
|
+
|
|
151
215
|
return ImageRenderer;
|
|
152
216
|
}, /* bExport= */ true);
|
package/src/sap/m/Input.js
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
'./InputBase',
|
|
10
10
|
'sap/ui/core/Item',
|
|
11
|
+
'sap/ui/core/Core',
|
|
12
|
+
'sap/ui/core/LabelEnablement',
|
|
13
|
+
'sap/ui/core/AccessKeysEnablement',
|
|
11
14
|
'./ColumnListItem',
|
|
12
15
|
'./GroupHeaderListItem',
|
|
13
16
|
'sap/ui/core/SeparatorItem',
|
|
@@ -40,6 +43,9 @@ sap.ui.define([
|
|
|
40
43
|
function(
|
|
41
44
|
InputBase,
|
|
42
45
|
Item,
|
|
46
|
+
Core,
|
|
47
|
+
LabelEnablement,
|
|
48
|
+
AccessKeysEnablement,
|
|
43
49
|
ColumnListItem,
|
|
44
50
|
GroupHeaderListItem,
|
|
45
51
|
SeparatorItem,
|
|
@@ -149,8 +155,9 @@ function(
|
|
|
149
155
|
* </ul>
|
|
150
156
|
*
|
|
151
157
|
* @extends sap.m.InputBase
|
|
158
|
+
* @implements sap.ui.core.IAccessKeySupport
|
|
152
159
|
* @author SAP SE
|
|
153
|
-
* @version 1.
|
|
160
|
+
* @version 1.106.0
|
|
154
161
|
*
|
|
155
162
|
* @constructor
|
|
156
163
|
* @public
|
|
@@ -159,7 +166,9 @@ function(
|
|
|
159
166
|
* @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
|
|
160
167
|
*/
|
|
161
168
|
var Input = InputBase.extend("sap.m.Input", /** @lends sap.m.Input.prototype */ { metadata : {
|
|
162
|
-
|
|
169
|
+
interfaces : [
|
|
170
|
+
"sap.ui.core.IAccessKeySupport"
|
|
171
|
+
],
|
|
163
172
|
library : "sap.m",
|
|
164
173
|
properties : {
|
|
165
174
|
|
|
@@ -178,6 +187,8 @@ function(
|
|
|
178
187
|
* Maximum number of characters. Value '0' means the feature is switched off.
|
|
179
188
|
* This parameter is not compatible with the input type <code>sap.m.InputType.Number</code>.
|
|
180
189
|
* If the input type is set to <code>Number</code>, the <code>maxLength</code> value is ignored.
|
|
190
|
+
* If the <code>maxLength</code> is set after there is already a longer value, this value will not get truncated.
|
|
191
|
+
* The <code>maxLength</code> property has effect only when the value is modified by user interaction.
|
|
181
192
|
*/
|
|
182
193
|
maxLength : {type : "int", group : "Behavior", defaultValue : 0},
|
|
183
194
|
|
|
@@ -326,7 +337,23 @@ function(
|
|
|
326
337
|
* Specifies whether to display separators in tabular suggestions.
|
|
327
338
|
* @private
|
|
328
339
|
*/
|
|
329
|
-
separateSuggestions: { type: "boolean", defaultValue: false, visibility: "hidden" }
|
|
340
|
+
separateSuggestions: { type: "boolean", defaultValue: false, visibility: "hidden" },
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Indicates whether the access keys ref of the control should be highlighted.
|
|
344
|
+
* NOTE: this property is used only when access keys feature is turned on.
|
|
345
|
+
*
|
|
346
|
+
* @private
|
|
347
|
+
*/
|
|
348
|
+
highlightAccKeysRef: { type: "boolean", defaultValue: false, visibility: "hidden" },
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Indicates which keyboard key should be pressed to focus the access key ref
|
|
352
|
+
* NOTE: this property is used only when access keys feature is turned on.
|
|
353
|
+
*
|
|
354
|
+
* @private
|
|
355
|
+
*/
|
|
356
|
+
accesskey: { type: "string", defaultValue: "", visibility: "hidden" }
|
|
330
357
|
},
|
|
331
358
|
defaultAggregation : "suggestionItems",
|
|
332
359
|
aggregations : {
|
|
@@ -398,7 +425,7 @@ function(
|
|
|
398
425
|
/**
|
|
399
426
|
* Fired when the value of the input is changed by user interaction - each keystroke, delete, paste, etc.
|
|
400
427
|
*
|
|
401
|
-
* <b>Note:</b> Browsing autocomplete suggestions does not
|
|
428
|
+
* <b>Note:</b> Browsing autocomplete suggestions does not fire the event.
|
|
402
429
|
*/
|
|
403
430
|
liveChange : {
|
|
404
431
|
parameters : {
|
|
@@ -588,6 +615,28 @@ function(
|
|
|
588
615
|
// indicates whether input's popover has finished opening
|
|
589
616
|
// we asume that after open its content has been rendered => we don't have the power user scenario
|
|
590
617
|
this._bAfterOpenFinisihed = false;
|
|
618
|
+
|
|
619
|
+
AccessKeysEnablement.registerControl(this);
|
|
620
|
+
};
|
|
621
|
+
|
|
622
|
+
var setRefLabelsHighlightAccKeysRef = function (bHighlightAccKeysRef) {
|
|
623
|
+
var aRefLabels = LabelEnablement.getReferencingLabels(this);
|
|
624
|
+
|
|
625
|
+
aRefLabels.forEach(function(sLabelId) {
|
|
626
|
+
Core.byId(sLabelId).setProperty("highlightAccKeysRef", bHighlightAccKeysRef);
|
|
627
|
+
}, this);
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
Input.prototype.getAccessKeysFocusTarget = function () {
|
|
631
|
+
return this.getFocusDomRef();
|
|
632
|
+
};
|
|
633
|
+
|
|
634
|
+
Input.prototype.onAccKeysHighlightStart = function () {
|
|
635
|
+
setRefLabelsHighlightAccKeysRef.call(this, true);
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
Input.prototype.onAccKeysHighlightEnd = function () {
|
|
639
|
+
setRefLabelsHighlightAccKeysRef.call(this, false);
|
|
591
640
|
};
|
|
592
641
|
|
|
593
642
|
/**
|
|
@@ -1327,9 +1376,6 @@ function(
|
|
|
1327
1376
|
* @returns {this} this Input instance for chaining.
|
|
1328
1377
|
*/
|
|
1329
1378
|
Input.prototype._doSelect = function(iStart, iEnd) {
|
|
1330
|
-
if (Device.support.touch) {
|
|
1331
|
-
return this;
|
|
1332
|
-
}
|
|
1333
1379
|
var oDomRef = this._$input[0];
|
|
1334
1380
|
if (oDomRef) {
|
|
1335
1381
|
// if no Dom-Ref - no selection (Maybe popup closed)
|
|
@@ -2139,6 +2185,11 @@ function(
|
|
|
2139
2185
|
Input.prototype._handleTypeAhead = function (oInput) {
|
|
2140
2186
|
var sValue = this.getValue();
|
|
2141
2187
|
|
|
2188
|
+
// check if typeahead is already performed
|
|
2189
|
+
if ((oInput && oInput.getValue().toLowerCase()) === (this._sProposedItemText && this._sProposedItemText.toLowerCase())) {
|
|
2190
|
+
return;
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2142
2193
|
this._setTypedInValue(sValue);
|
|
2143
2194
|
oInput._sProposedItemText = null;
|
|
2144
2195
|
|
|
@@ -2860,6 +2911,10 @@ function(
|
|
|
2860
2911
|
this._updateSuggestionsPopoverValueState();
|
|
2861
2912
|
}, this);
|
|
2862
2913
|
|
|
2914
|
+
oPopover.attachAfterOpen(function () {
|
|
2915
|
+
this._handleTypeAhead(this);
|
|
2916
|
+
}, this);
|
|
2917
|
+
|
|
2863
2918
|
if (this.isMobileDevice()) {
|
|
2864
2919
|
oPopover
|
|
2865
2920
|
.attachBeforeClose(function () {
|