@openui5/sap.m 1.105.1 → 1.107.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/.reuse/dep5 +20 -17
- package/THIRDPARTY.txt +31 -21
- package/package.json +4 -4
- package/src/sap/m/.library +20 -1
- package/src/sap/m/AccButton.js +4 -3
- package/src/sap/m/ActionListItem.js +14 -11
- package/src/sap/m/ActionSelect.js +14 -11
- package/src/sap/m/ActionSheet.js +103 -101
- package/src/sap/m/ActionSheetRenderer.js +3 -3
- package/src/sap/m/ActionTile.js +90 -0
- package/src/sap/m/ActionTileContent.js +71 -0
- package/src/sap/m/ActionTileContentRenderer.js +108 -0
- package/src/sap/m/App.js +107 -104
- package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
- package/src/sap/m/Avatar.js +4 -3
- package/src/sap/m/AvatarColor.js +0 -1
- package/src/sap/m/AvatarImageFitType.js +0 -1
- package/src/sap/m/AvatarShape.js +0 -1
- package/src/sap/m/AvatarSize.js +0 -1
- package/src/sap/m/AvatarType.js +0 -1
- package/src/sap/m/Bar.js +103 -89
- package/src/sap/m/BarRenderer.js +3 -3
- package/src/sap/m/Breadcrumbs.js +4 -3
- package/src/sap/m/BusyDialog.js +1 -2
- package/src/sap/m/BusyIndicator.js +76 -73
- package/src/sap/m/Button.js +123 -120
- package/src/sap/m/Carousel.js +148 -147
- package/src/sap/m/CarouselLayout.js +1 -2
- package/src/sap/m/CarouselRenderer.js +3 -3
- package/src/sap/m/CheckBox.js +178 -175
- package/src/sap/m/CheckBoxRenderer.js +3 -3
- package/src/sap/m/ColorPalette.js +4 -3
- package/src/sap/m/ColorPalettePopover.js +24 -21
- package/src/sap/m/Column.js +5 -6
- package/src/sap/m/ColumnHeaderPopover.js +1 -2
- package/src/sap/m/ColumnListItem.js +39 -50
- package/src/sap/m/ColumnListItemRenderer.js +0 -3
- package/src/sap/m/ColumnPopoverActionItem.js +1 -2
- package/src/sap/m/ColumnPopoverCustomItem.js +1 -2
- package/src/sap/m/ColumnPopoverItem.js +1 -2
- package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
- package/src/sap/m/ColumnPopoverSortItem.js +1 -2
- package/src/sap/m/ComboBox.js +4 -3
- package/src/sap/m/ComboBoxBase.js +3 -4
- package/src/sap/m/ComboBoxTextField.js +4 -3
- package/src/sap/m/CustomAttribute.js +53 -0
- package/src/sap/m/CustomDynamicDateOption.js +1 -2
- package/src/sap/m/CustomListItem.js +24 -21
- package/src/sap/m/CustomTile.js +19 -16
- package/src/sap/m/CustomTreeItem.js +4 -3
- package/src/sap/m/DatePicker.js +148 -143
- package/src/sap/m/DateRangeSelection.js +45 -40
- package/src/sap/m/DateTimeField.js +11 -8
- package/src/sap/m/DateTimeInput.js +147 -142
- package/src/sap/m/DateTimePicker.js +83 -75
- package/src/sap/m/DateTimePickerRenderer.js +1 -1
- package/src/sap/m/Dialog.js +10 -7
- package/src/sap/m/DisplayListItem.js +23 -20
- package/src/sap/m/DraftIndicator.js +4 -3
- package/src/sap/m/DynamicDate.js +1 -1
- package/src/sap/m/DynamicDateFormat.js +4 -3
- package/src/sap/m/DynamicDateOption.js +1 -2
- package/src/sap/m/DynamicDateRange.js +11 -10
- package/src/sap/m/DynamicDateValueHelpUIType.js +1 -2
- package/src/sap/m/ExpandableText.js +4 -3
- package/src/sap/m/FacetFilter.js +112 -110
- package/src/sap/m/FacetFilterItem.js +27 -24
- package/src/sap/m/FacetFilterList.js +131 -132
- package/src/sap/m/FeedContent.js +4 -3
- package/src/sap/m/FeedInput.js +136 -133
- package/src/sap/m/FeedListItem.js +9 -6
- package/src/sap/m/FeedListItemAction.js +1 -2
- package/src/sap/m/FeedListItemRenderer.js +3 -3
- package/src/sap/m/Fiori20Adapter.js +2 -2
- package/src/sap/m/FlexBox.js +96 -93
- package/src/sap/m/FlexItemData.js +1 -2
- package/src/sap/m/FormattedText.js +4 -3
- package/src/sap/m/GenericTag.js +5 -4
- package/src/sap/m/GenericTile.js +65 -22
- package/src/sap/m/GenericTileLineModeRenderer.js +3 -3
- package/src/sap/m/GenericTileRenderer.js +36 -10
- package/src/sap/m/GroupHeaderListItem.js +35 -32
- package/src/sap/m/GrowingEnablement.js +23 -25
- package/src/sap/m/GrowingList.js +35 -32
- package/src/sap/m/HBox.js +9 -6
- package/src/sap/m/HeaderContainer.js +44 -43
- package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
- package/src/sap/m/IconTabBar.js +232 -229
- package/src/sap/m/IconTabBarDragAndDropUtil.js +5 -4
- package/src/sap/m/IconTabBarSelectList.js +28 -25
- package/src/sap/m/IconTabFilter.js +1 -2
- package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -2
- package/src/sap/m/IconTabHeader.js +152 -166
- package/src/sap/m/IconTabSeparator.js +1 -2
- package/src/sap/m/IllustratedMessage.js +38 -3
- package/src/sap/m/IllustratedMessageSize.js +0 -1
- package/src/sap/m/IllustratedMessageType.js +0 -1
- package/src/sap/m/Illustration.js +11 -3
- package/src/sap/m/IllustrationPool.js +1 -1
- package/src/sap/m/IllustrationRenderer.js +1 -0
- package/src/sap/m/Image.js +270 -197
- package/src/sap/m/ImageContent.js +4 -3
- package/src/sap/m/ImageRenderer.js +66 -2
- package/src/sap/m/Input.js +375 -367
- package/src/sap/m/InputBase.js +143 -140
- package/src/sap/m/InputBaseRenderer.js +3 -3
- package/src/sap/m/InputListItem.js +26 -23
- package/src/sap/m/InputRenderer.js +4 -4
- package/src/sap/m/InstanceManager.js +6 -6
- package/src/sap/m/Label.js +110 -106
- package/src/sap/m/LightBox.js +5 -6
- package/src/sap/m/LightBoxItem.js +1 -2
- package/src/sap/m/Link.js +182 -179
- package/src/sap/m/LinkRenderer.js +5 -1
- package/src/sap/m/List.js +15 -12
- package/src/sap/m/ListBase.js +452 -458
- package/src/sap/m/ListItemBase.js +116 -107
- package/src/sap/m/ListItemBaseRenderer.js +1 -1
- package/src/sap/m/MaskEnabler.js +5 -5
- package/src/sap/m/MaskInput.js +4 -3
- package/src/sap/m/MaskInputRule.js +1 -2
- package/src/sap/m/Menu.js +1 -2
- package/src/sap/m/MenuButton.js +142 -135
- package/src/sap/m/MenuItem.js +1 -2
- package/src/sap/m/MenuListItem.js +49 -46
- package/src/sap/m/MessageItem.js +1 -2
- package/src/sap/m/MessageListItem.js +4 -3
- package/src/sap/m/MessagePage.js +124 -121
- package/src/sap/m/MessagePopover.js +6 -6
- package/src/sap/m/MessagePopoverItem.js +1 -2
- package/src/sap/m/MessageStrip.js +4 -3
- package/src/sap/m/MessageToast.js +6 -5
- package/src/sap/m/MessageView.js +6 -5
- package/src/sap/m/MultiComboBox.js +84 -87
- package/src/sap/m/MultiEditField.js +1 -1
- package/src/sap/m/MultiInput.js +4 -3
- package/src/sap/m/NavContainer.js +6 -15
- package/src/sap/m/NewsContent.js +4 -3
- package/src/sap/m/NotificationList.js +4 -3
- package/src/sap/m/NotificationListBase.js +5 -7
- package/src/sap/m/NotificationListGroup.js +4 -3
- package/src/sap/m/NotificationListItem.js +4 -12
- package/src/sap/m/NumericContent.js +8 -6
- package/src/sap/m/NumericInput.js +1 -1
- package/src/sap/m/NumericInputRenderer.js +3 -3
- package/src/sap/m/ObjectAttribute.js +77 -74
- package/src/sap/m/ObjectAttributeRenderer.js +3 -3
- package/src/sap/m/ObjectHeader.js +385 -380
- package/src/sap/m/ObjectHeaderRenderer.js +4 -3
- package/src/sap/m/ObjectIdentifier.js +111 -103
- package/src/sap/m/ObjectListItem.js +150 -145
- package/src/sap/m/ObjectMarker.js +4 -3
- package/src/sap/m/ObjectNumber.js +90 -87
- package/src/sap/m/ObjectStatus.js +84 -81
- package/src/sap/m/OverflowToolbar.js +4 -3
- package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
- package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +0 -5
- package/src/sap/m/OverflowToolbarButton.js +2 -3
- package/src/sap/m/OverflowToolbarLayoutData.js +1 -2
- package/src/sap/m/OverflowToolbarToggleButton.js +1 -2
- package/src/sap/m/P13nAnyFilterItem.js +1 -2
- package/src/sap/m/P13nColumnsItem.js +1 -2
- package/src/sap/m/P13nColumnsPanel.js +4 -5
- package/src/sap/m/P13nConditionPanel.js +1 -2
- package/src/sap/m/P13nDialog.js +1 -2
- package/src/sap/m/P13nDimMeasureItem.js +1 -2
- package/src/sap/m/P13nDimMeasurePanel.js +6 -5
- package/src/sap/m/P13nFilterItem.js +1 -2
- package/src/sap/m/P13nFilterPanel.js +1 -2
- package/src/sap/m/P13nGroupItem.js +1 -2
- package/src/sap/m/P13nGroupPanel.js +1 -2
- package/src/sap/m/P13nItem.js +1 -2
- package/src/sap/m/P13nPanel.js +1 -2
- package/src/sap/m/P13nSelectionItem.js +1 -2
- package/src/sap/m/P13nSelectionPanel.js +1 -2
- package/src/sap/m/P13nSortItem.js +1 -2
- package/src/sap/m/P13nSortPanel.js +1 -2
- package/src/sap/m/PDFViewer.js +8 -5
- package/src/sap/m/Page.js +9 -7
- package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -2
- package/src/sap/m/PagingButton.js +4 -4
- package/src/sap/m/Panel.js +117 -113
- package/src/sap/m/PlanningCalendar.js +6 -7
- package/src/sap/m/PlanningCalendarHeader.js +135 -129
- package/src/sap/m/PlanningCalendarLegend.js +26 -23
- package/src/sap/m/PlanningCalendarRow.js +1 -2
- package/src/sap/m/PlanningCalendarView.js +1 -2
- package/src/sap/m/Popover.js +15 -16
- package/src/sap/m/PopoverRenderer.js +5 -4
- package/src/sap/m/ProgressIndicator.js +85 -82
- package/src/sap/m/ProgressIndicatorRenderer.js +1 -1
- package/src/sap/m/PullToRefresh.js +37 -35
- package/src/sap/m/QuickView.js +1 -2
- package/src/sap/m/QuickViewBase.js +1 -2
- package/src/sap/m/QuickViewCard.js +4 -3
- package/src/sap/m/QuickViewGroup.js +1 -2
- package/src/sap/m/QuickViewGroupElement.js +1 -2
- package/src/sap/m/QuickViewPage.js +1 -2
- package/src/sap/m/RadioButton.js +117 -114
- package/src/sap/m/RadioButtonGroup.js +90 -95
- package/src/sap/m/RangeSlider.js +9 -6
- package/src/sap/m/RangeSliderRenderer.js +2 -2
- package/src/sap/m/RatingIndicator.js +104 -100
- package/src/sap/m/RatingIndicatorRenderer.js +3 -5
- package/src/sap/m/ResponsivePopover.js +209 -209
- package/src/sap/m/ResponsiveScale.js +1 -2
- package/src/sap/m/ScrollBar.js +31 -28
- package/src/sap/m/ScrollContainer.js +9 -7
- package/src/sap/m/SearchField.js +185 -182
- package/src/sap/m/SearchFieldRenderer.js +1 -0
- package/src/sap/m/SegmentedButton.js +120 -118
- package/src/sap/m/SegmentedButtonItem.js +1 -2
- package/src/sap/m/Select.js +23 -10
- package/src/sap/m/SelectDialog.js +22 -17
- package/src/sap/m/SelectDialogBase.js +1 -2
- package/src/sap/m/SelectList.js +4 -3
- package/src/sap/m/SelectionDetails.js +97 -92
- package/src/sap/m/SelectionDetailsFacade.js +2 -2
- package/src/sap/m/SelectionDetailsItem.js +1 -2
- package/src/sap/m/SelectionDetailsItemLine.js +1 -2
- package/src/sap/m/Shell.js +111 -107
- package/src/sap/m/SimpleFixFlex.js +5 -5
- package/src/sap/m/SinglePlanningCalendar.js +344 -340
- package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarGrid.js +25 -10
- package/src/sap/m/SinglePlanningCalendarGridRenderer.js +8 -7
- package/src/sap/m/SinglePlanningCalendarMonthGrid.js +16 -7
- package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWeekView.js +15 -15
- package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +5 -4
- package/src/sap/m/SlideTile.js +10 -7
- package/src/sap/m/Slider.js +180 -175
- package/src/sap/m/SliderRenderer.js +4 -4
- package/src/sap/m/SliderTooltip.js +5 -5
- package/src/sap/m/SliderTooltipBase.js +4 -3
- package/src/sap/m/SliderTooltipContainer.js +10 -6
- package/src/sap/m/SplitApp.js +52 -49
- package/src/sap/m/SplitButton.js +103 -96
- package/src/sap/m/SplitContainer.js +407 -422
- package/src/sap/m/StandardDynamicDateOption.js +1 -2
- package/src/sap/m/StandardListItem.js +116 -113
- package/src/sap/m/StandardTile.js +64 -61
- package/src/sap/m/StandardTreeItem.js +20 -17
- package/src/sap/m/StepInput.js +4 -3
- package/src/sap/m/SuggestionItem.js +1 -2
- package/src/sap/m/SuggestionsPopover.js +1 -1
- package/src/sap/m/Switch.js +79 -74
- package/src/sap/m/SwitchRenderer.js +3 -3
- package/src/sap/m/TabContainer.js +4 -3
- package/src/sap/m/TabContainerItem.js +1 -2
- package/src/sap/m/TabStrip.js +13 -11
- package/src/sap/m/TabStripItem.js +1 -1
- package/src/sap/m/Table.js +177 -174
- package/src/sap/m/TablePersoController.js +6 -5
- package/src/sap/m/TablePersoDialog.js +6 -4
- package/src/sap/m/TablePersoProvider.js +1 -1
- package/src/sap/m/TableRenderer.js +1 -1
- package/src/sap/m/TableSelectDialog.js +1 -3
- package/src/sap/m/Text.js +4 -3
- package/src/sap/m/TextArea.js +87 -84
- package/src/sap/m/Tile.js +20 -17
- package/src/sap/m/TileContainer.js +73 -73
- package/src/sap/m/TileContent.js +57 -6
- package/src/sap/m/TimePicker.js +17 -12
- package/src/sap/m/TimePickerClock.js +2 -2
- package/src/sap/m/TimePickerClocks.js +4 -2
- package/src/sap/m/TimePickerClocksRenderer.js +3 -1
- package/src/sap/m/TimePickerInputs.js +4 -2
- package/src/sap/m/TimePickerInternals.js +11 -7
- package/src/sap/m/TimePickerSlider.js +5 -4
- package/src/sap/m/TimePickerSliders.js +11 -7
- package/src/sap/m/TimePickerSlidersRenderer.js +2 -2
- package/src/sap/m/Title.js +109 -106
- package/src/sap/m/TitlePropagationSupport.js +4 -4
- package/src/sap/m/ToDoCardRenderer.js +161 -0
- package/src/sap/m/ToggleButton.js +29 -26
- package/src/sap/m/Token.js +97 -94
- package/src/sap/m/Tokenizer.js +153 -150
- package/src/sap/m/Toolbar.js +104 -101
- package/src/sap/m/ToolbarLayoutData.js +1 -2
- package/src/sap/m/ToolbarSeparator.js +11 -8
- package/src/sap/m/ToolbarSpacer.js +16 -13
- package/src/sap/m/Tree.js +32 -29
- package/src/sap/m/TreeItemBase.js +8 -5
- package/src/sap/m/TreeItemBaseRenderer.js +3 -3
- package/src/sap/m/UploadCollection.js +8 -5
- package/src/sap/m/UploadCollectionItem.js +1 -2
- package/src/sap/m/UploadCollectionParameter.js +1 -2
- package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -2
- package/src/sap/m/VBox.js +9 -6
- package/src/sap/m/ValueStateHeader.js +1 -2
- package/src/sap/m/VariantItem.js +6 -1
- package/src/sap/m/VariantManagement.js +79 -8
- package/src/sap/m/ViewSettingsCustomItem.js +1 -2
- package/src/sap/m/ViewSettingsCustomTab.js +1 -2
- package/src/sap/m/ViewSettingsDialog.js +189 -188
- package/src/sap/m/ViewSettingsFilterItem.js +1 -2
- package/src/sap/m/ViewSettingsItem.js +1 -2
- package/src/sap/m/VisibleItem.js +1 -1
- package/src/sap/m/WheelSlider.js +5 -4
- package/src/sap/m/WheelSliderContainer.js +4 -2
- package/src/sap/m/WheelSliderContainerRenderer.js +2 -2
- package/src/sap/m/Wizard.js +13 -3
- package/src/sap/m/WizardProgressNavigator.js +52 -49
- package/src/sap/m/WizardStep.js +6 -3
- package/src/sap/m/_thirdparty/purify.js +1622 -0
- package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
- package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
- package/src/sap/m/changeHandler/CombineButtons.js +4 -3
- package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
- package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
- package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
- package/src/sap/m/library.js +40 -116
- package/src/sap/m/messagebundle.properties +22 -10
- package/src/sap/m/messagebundle_ar.properties +20 -6
- package/src/sap/m/messagebundle_bg.properties +19 -5
- package/src/sap/m/messagebundle_ca.properties +19 -5
- package/src/sap/m/messagebundle_cs.properties +30 -16
- package/src/sap/m/messagebundle_cy.properties +19 -5
- package/src/sap/m/messagebundle_da.properties +19 -5
- package/src/sap/m/messagebundle_de.properties +20 -6
- package/src/sap/m/messagebundle_el.properties +19 -5
- package/src/sap/m/messagebundle_en.properties +18 -4
- package/src/sap/m/messagebundle_en_GB.properties +18 -4
- package/src/sap/m/messagebundle_en_US_sappsd.properties +19 -3
- package/src/sap/m/messagebundle_en_US_saprigi.properties +23 -9
- package/src/sap/m/messagebundle_en_US_saptrc.properties +16 -2
- package/src/sap/m/messagebundle_es.properties +19 -5
- package/src/sap/m/messagebundle_es_MX.properties +19 -5
- package/src/sap/m/messagebundle_et.properties +19 -5
- package/src/sap/m/messagebundle_fi.properties +19 -5
- package/src/sap/m/messagebundle_fr.properties +20 -6
- package/src/sap/m/messagebundle_fr_CA.properties +20 -6
- package/src/sap/m/messagebundle_hi.properties +19 -5
- package/src/sap/m/messagebundle_hr.properties +20 -6
- package/src/sap/m/messagebundle_hu.properties +19 -5
- package/src/sap/m/messagebundle_id.properties +19 -5
- package/src/sap/m/messagebundle_it.properties +20 -6
- package/src/sap/m/messagebundle_iw.properties +19 -5
- package/src/sap/m/messagebundle_ja.properties +19 -5
- package/src/sap/m/messagebundle_kk.properties +19 -5
- package/src/sap/m/messagebundle_ko.properties +20 -6
- package/src/sap/m/messagebundle_lt.properties +20 -6
- package/src/sap/m/messagebundle_lv.properties +19 -5
- package/src/sap/m/messagebundle_ms.properties +19 -5
- package/src/sap/m/messagebundle_nl.properties +19 -5
- package/src/sap/m/messagebundle_no.properties +19 -5
- package/src/sap/m/messagebundle_pl.properties +19 -5
- package/src/sap/m/messagebundle_pt.properties +19 -5
- package/src/sap/m/messagebundle_pt_PT.properties +19 -5
- package/src/sap/m/messagebundle_ro.properties +19 -5
- package/src/sap/m/messagebundle_ru.properties +19 -5
- package/src/sap/m/messagebundle_sh.properties +20 -6
- package/src/sap/m/messagebundle_sk.properties +19 -5
- package/src/sap/m/messagebundle_sl.properties +20 -6
- package/src/sap/m/messagebundle_sv.properties +19 -5
- package/src/sap/m/messagebundle_th.properties +19 -5
- package/src/sap/m/messagebundle_tr.properties +19 -5
- package/src/sap/m/messagebundle_uk.properties +19 -5
- package/src/sap/m/messagebundle_vi.properties +19 -5
- package/src/sap/m/messagebundle_zh_CN.properties +19 -5
- package/src/sap/m/messagebundle_zh_TW.properties +19 -5
- package/src/sap/m/p13n/AbstractContainer.js +2 -2
- package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
- package/src/sap/m/p13n/BasePanel.js +21 -7
- package/src/sap/m/p13n/Container.js +1 -1
- package/src/sap/m/p13n/Engine.js +84 -79
- package/src/sap/m/p13n/GroupController.js +3 -4
- package/src/sap/m/p13n/GroupPanel.js +1 -1
- package/src/sap/m/p13n/MetadataHelper.js +8 -0
- package/src/sap/m/p13n/Popup.js +1 -1
- package/src/sap/m/p13n/QueryPanel.js +1 -1
- package/src/sap/m/p13n/SelectionController.js +8 -7
- package/src/sap/m/p13n/SelectionPanel.js +37 -15
- package/src/sap/m/p13n/SortController.js +3 -4
- package/src/sap/m/p13n/SortPanel.js +3 -3
- package/src/sap/m/p13n/modification/FlexModificationHandler.js +1 -1
- package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +1 -1
- package/src/sap/m/p13n/modification/ModificationHandler.js +11 -0
- package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
- package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
- package/src/sap/m/p13n/modules/UIManager.js +1 -1
- package/src/sap/m/plugins/CellSelector.js +459 -76
- package/src/sap/m/plugins/ColumnResizer.js +1 -2
- package/src/sap/m/plugins/DataStateIndicator.js +1 -2
- package/src/sap/m/plugins/PasteProvider.js +1 -2
- package/src/sap/m/plugins/PluginBase.js +1 -2
- 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 -2
- package/src/sap/m/semantic/CancelAction.js +1 -2
- package/src/sap/m/semantic/DeleteAction.js +1 -2
- package/src/sap/m/semantic/DetailPage.js +1 -2
- package/src/sap/m/semantic/DiscussInJamAction.js +1 -2
- package/src/sap/m/semantic/EditAction.js +1 -2
- package/src/sap/m/semantic/FavoriteAction.js +1 -2
- package/src/sap/m/semantic/FilterAction.js +1 -2
- package/src/sap/m/semantic/FilterSelect.js +1 -2
- package/src/sap/m/semantic/FlagAction.js +1 -2
- package/src/sap/m/semantic/ForwardAction.js +1 -2
- package/src/sap/m/semantic/FullscreenPage.js +1 -2
- package/src/sap/m/semantic/GroupAction.js +1 -2
- package/src/sap/m/semantic/GroupSelect.js +1 -2
- package/src/sap/m/semantic/MainAction.js +1 -2
- package/src/sap/m/semantic/MasterPage.js +1 -2
- package/src/sap/m/semantic/MessagesIndicator.js +1 -2
- package/src/sap/m/semantic/MultiSelectAction.js +1 -2
- package/src/sap/m/semantic/NegativeAction.js +1 -2
- package/src/sap/m/semantic/OpenInAction.js +1 -2
- package/src/sap/m/semantic/PositiveAction.js +1 -2
- package/src/sap/m/semantic/PrintAction.js +1 -2
- package/src/sap/m/semantic/SaveAction.js +1 -2
- package/src/sap/m/semantic/Segment.js +1 -2
- package/src/sap/m/semantic/SegmentedContainer.js +1 -1
- package/src/sap/m/semantic/SemanticButton.js +1 -2
- package/src/sap/m/semantic/SemanticConfiguration.js +1 -2
- package/src/sap/m/semantic/SemanticControl.js +1 -2
- package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -2
- package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -2
- package/src/sap/m/semantic/SemanticPage.js +4 -3
- package/src/sap/m/semantic/SemanticSelect.js +1 -2
- package/src/sap/m/semantic/SemanticToggleButton.js +1 -2
- package/src/sap/m/semantic/SendEmailAction.js +1 -2
- package/src/sap/m/semantic/SendMessageAction.js +1 -2
- package/src/sap/m/semantic/ShareInJamAction.js +1 -2
- package/src/sap/m/semantic/ShareMenu.js +1 -2
- package/src/sap/m/semantic/ShareMenuPage.js +1 -2
- package/src/sap/m/semantic/SortAction.js +1 -2
- package/src/sap/m/semantic/SortSelect.js +1 -2
- package/src/sap/m/table/Util.js +17 -5
- 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 +2 -2
- package/src/sap/m/table/columnmenu/ItemContainer.js +1 -1
- package/src/sap/m/table/columnmenu/Menu.js +64 -22
- package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
- package/src/sap/m/table/columnmenu/QuickActionBase.js +19 -4
- package/src/sap/m/table/columnmenu/QuickActionContainer.js +1 -1
- package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
- package/src/sap/m/table/columnmenu/QuickGroup.js +9 -3
- package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
- package/src/sap/m/table/columnmenu/QuickSort.js +6 -4
- package/src/sap/m/table/columnmenu/QuickSortItem.js +11 -12
- package/src/sap/m/table/columnmenu/QuickTotal.js +9 -3
- package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
- package/src/sap/m/themes/base/ActionTile.less +239 -0
- package/src/sap/m/themes/base/Bar.less +6 -0
- package/src/sap/m/themes/base/Carousel.less +8 -8
- package/src/sap/m/themes/base/CellSelector.less +109 -2
- package/src/sap/m/themes/base/DisplayListItem.less +3 -3
- package/src/sap/m/themes/base/GenericTile.less +7 -0
- package/src/sap/m/themes/base/IconTabBar.less +2 -0
- package/src/sap/m/themes/base/Link.less +4 -0
- package/src/sap/m/themes/base/Page.less +2 -1
- package/src/sap/m/themes/base/library.source.less +1 -0
- package/src/sap/m/upload/UploadSet.js +295 -13
- package/src/sap/m/upload/UploadSetItem.js +1 -2
- package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
- package/src/sap/m/upload/Uploader.js +0 -1
- package/src/sap/m/upload/UploaderHttpRequestMethod.js +0 -1
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
@_sap_m_IconTabBar_More_Button_Focus_Offset: 0.125rem;
|
|
17
17
|
@_sap_m_IconTabBar_Arrow_SubItem_Left_Padding: 0.375rem;
|
|
18
18
|
@_sap_m_IconTabBar_More_Button_Border_Radius: inherit;
|
|
19
|
+
@_sap_m_IconTabBar_HeaderMinHeight: 2.75rem;
|
|
19
20
|
|
|
20
21
|
// ==================== Cozy size ====================
|
|
21
22
|
|
|
@@ -1298,6 +1299,7 @@ html[dir=rtl] {
|
|
|
1298
1299
|
|
|
1299
1300
|
box-shadow: @_sap_m_IconTabBar_ShellHeaderShadow;
|
|
1300
1301
|
background-color: @sapUiShellNavigationBackground;
|
|
1302
|
+
min-height: @_sap_m_IconTabBar_HeaderMinHeight;
|
|
1301
1303
|
|
|
1302
1304
|
.sapMITBSelected .sapMITBContentArrow::after {
|
|
1303
1305
|
background: @sapUiShellNavigationSelectedColor;
|
|
@@ -332,7 +332,8 @@ html.sap-desktop .sapUiFioriObjectPage > section {
|
|
|
332
332
|
}
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
&.sapMPageWithHeader.sapMPageWithSubHeader
|
|
335
|
+
&.sapMPage.sapMPageWithHeader.sapMPageWithSubHeader,
|
|
336
|
+
.sapMPage.sapMPageWithHeader.sapMPageWithSubHeader {
|
|
336
337
|
> section {
|
|
337
338
|
top: 4.5rem;
|
|
338
339
|
}
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
@import "ImageContent.less";
|
|
56
56
|
@import "Input.less";
|
|
57
57
|
@import "InputBase.less";
|
|
58
|
+
@import "ActionTile.less";
|
|
58
59
|
|
|
59
60
|
/* note: the following three files are not in alphabetical order and should be imported after InputBase.less */
|
|
60
61
|
@import "ComboBoxTextField.less";
|
|
@@ -29,10 +29,11 @@ sap.ui.define([
|
|
|
29
29
|
"sap/m/upload/UploadSetToolbarPlaceholder",
|
|
30
30
|
"sap/m/IllustratedMessage",
|
|
31
31
|
"sap/m/IllustratedMessageType",
|
|
32
|
-
"sap/m/IllustratedMessageSize"
|
|
32
|
+
"sap/m/IllustratedMessageSize",
|
|
33
|
+
"sap/ui/core/Core"
|
|
33
34
|
], function (Control, KeyCodes, Log, deepEqual, MobileLibrary, Button, Dialog, List, MessageBox, OverflowToolbar,
|
|
34
35
|
StandardListItem, Text, ToolbarSpacer, FileUploader, UploadSetItem, Uploader, Renderer, UploaderHttpRequestMethod,
|
|
35
|
-
DragDropInfo, DropInfo, Library, UploadSetToolbarPlaceholder, IllustratedMessage,IllustratedMessageType, IllustratedMessageSize) {
|
|
36
|
+
DragDropInfo, DropInfo, Library, UploadSetToolbarPlaceholder, IllustratedMessage,IllustratedMessageType, IllustratedMessageSize, Core) {
|
|
36
37
|
"use strict";
|
|
37
38
|
|
|
38
39
|
/**
|
|
@@ -46,12 +47,11 @@ sap.ui.define([
|
|
|
46
47
|
* and requests, unified behavior of instant and deferred uploads, as well as improved progress indication.
|
|
47
48
|
* @extends sap.ui.core.Control
|
|
48
49
|
* @author SAP SE
|
|
49
|
-
* @version 1.
|
|
50
|
+
* @version 1.107.0
|
|
50
51
|
* @constructor
|
|
51
52
|
* @public
|
|
52
53
|
* @since 1.63
|
|
53
54
|
* @alias sap.m.upload.UploadSet
|
|
54
|
-
* @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel.
|
|
55
55
|
*/
|
|
56
56
|
var UploadSet = Control.extend("sap.m.upload.UploadSet", {
|
|
57
57
|
metadata: {
|
|
@@ -144,7 +144,27 @@ sap.ui.define([
|
|
|
144
144
|
* In addition, if instant upload is set to false the mode sap.m.ListMode.MultiSelect is not supported and will be automatically set to sap.m.ListMode.None.
|
|
145
145
|
* @since 1.100.0
|
|
146
146
|
*/
|
|
147
|
-
mode: {type: "sap.m.ListMode", group: "Behavior", defaultValue: Library.ListMode.MultiSelect}
|
|
147
|
+
mode: {type: "sap.m.ListMode", group: "Behavior", defaultValue: Library.ListMode.MultiSelect},
|
|
148
|
+
/**
|
|
149
|
+
* Enables CloudFile picker feature to upload files from cloud.
|
|
150
|
+
* @experimental Since 1.106.
|
|
151
|
+
*/
|
|
152
|
+
cloudFilePickerEnabled: {type: "boolean", group: "Behavior", defaultValue: false},
|
|
153
|
+
/**
|
|
154
|
+
* Url of the FileShare OData V4 service supplied for CloudFile picker control.
|
|
155
|
+
* @experimental Since 1.106.
|
|
156
|
+
*/
|
|
157
|
+
cloudFilePickerServiceUrl: {type: "sap.ui.core.URI", group: "Data", defaultValue: ""},
|
|
158
|
+
/**
|
|
159
|
+
* The text of the CloudFile picker button. The default text is "Upload from cloud" (translated to the respective language).
|
|
160
|
+
* @experimental Since 1.106.
|
|
161
|
+
*/
|
|
162
|
+
cloudFilePickerButtonText: {type: 'string', defaultValue: ""},
|
|
163
|
+
/**
|
|
164
|
+
* Lets the user upload entire files from directories and sub directories.
|
|
165
|
+
* @since 1.107.
|
|
166
|
+
*/
|
|
167
|
+
directory: {type: "boolean", group: "Behavior", defaultValue: false}
|
|
148
168
|
},
|
|
149
169
|
defaultAggregation: "items",
|
|
150
170
|
aggregations: {
|
|
@@ -500,6 +520,7 @@ sap.ui.define([
|
|
|
500
520
|
description: this.getNoDataDescription()
|
|
501
521
|
});
|
|
502
522
|
this.setAggregation("_illustratedMessage", illustratedMessage);
|
|
523
|
+
this._cloudFilePickerControl = null;
|
|
503
524
|
};
|
|
504
525
|
|
|
505
526
|
UploadSet.prototype.exit = function () {
|
|
@@ -602,7 +623,7 @@ sap.ui.define([
|
|
|
602
623
|
this._oToolbar = this.getAggregation("toolbar");
|
|
603
624
|
if (!this._oToolbar) {
|
|
604
625
|
this._oToolbar = new OverflowToolbar(this.getId() + "-toolbar", {
|
|
605
|
-
content: [this._oNumberOfAttachmentsTitle, new ToolbarSpacer(), this.getDefaultFileUploader()]
|
|
626
|
+
content: [this._oNumberOfAttachmentsTitle, new ToolbarSpacer(), this.getDefaultFileUploader(), this._getCloudFilePicker()]
|
|
606
627
|
});
|
|
607
628
|
this._iFileUploaderPH = 2;
|
|
608
629
|
this.addDependent(this._oToolbar);
|
|
@@ -614,6 +635,7 @@ sap.ui.define([
|
|
|
614
635
|
// fallback position to add file uploader control if UploadSetToolbarPlaceHolder instance not found
|
|
615
636
|
this._oToolbar.addContent(this.getDefaultFileUploader());
|
|
616
637
|
}
|
|
638
|
+
this._oToolbar.addContent(this._getCloudFilePicker());
|
|
617
639
|
}
|
|
618
640
|
}
|
|
619
641
|
|
|
@@ -809,6 +831,17 @@ sap.ui.define([
|
|
|
809
831
|
return this;
|
|
810
832
|
};
|
|
811
833
|
|
|
834
|
+
UploadSet.prototype.setDirectory = function (bDirectory) {
|
|
835
|
+
if (this.getDirectory() !== bDirectory) {
|
|
836
|
+
this.setProperty("directory", bDirectory);
|
|
837
|
+
this.getDefaultFileUploader().setDirectory(bDirectory);
|
|
838
|
+
if (bDirectory) {
|
|
839
|
+
this.setProperty("multiple", false); // disable multiple files selection when directory selection is enabled.
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
return this;
|
|
843
|
+
};
|
|
844
|
+
|
|
812
845
|
UploadSet.prototype.setMode = function(sMode) {
|
|
813
846
|
if (sMode === Library.ListMode.Delete) {
|
|
814
847
|
this.setProperty("mode", Library.ListMode.None);
|
|
@@ -861,6 +894,14 @@ sap.ui.define([
|
|
|
861
894
|
return this._oUploadButton;
|
|
862
895
|
};
|
|
863
896
|
|
|
897
|
+
UploadSet.prototype.setUploadUrl = function (sUploadUrl) {
|
|
898
|
+
this.setProperty("uploadUrl", sUploadUrl);
|
|
899
|
+
if (this._oUploader) {
|
|
900
|
+
this._oUploader.setUploadUrl(sUploadUrl);
|
|
901
|
+
}
|
|
902
|
+
return this;
|
|
903
|
+
};
|
|
904
|
+
|
|
864
905
|
/* ============== */
|
|
865
906
|
/* Public methods */
|
|
866
907
|
/* ============== */
|
|
@@ -926,23 +967,101 @@ sap.ui.define([
|
|
|
926
967
|
};
|
|
927
968
|
|
|
928
969
|
UploadSet.prototype._onDropFile = function (oEvent) {
|
|
929
|
-
var oFiles;
|
|
930
970
|
this._oDragIndicator = false;
|
|
931
971
|
this._getIllustratedMessage();
|
|
932
972
|
oEvent.preventDefault();
|
|
933
973
|
if (this.getUploadEnabled()) {
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
974
|
+
var oItems = oEvent.getParameter("browserEvent").dataTransfer.items;
|
|
975
|
+
var aEntryTypes = Array.from(oItems).map(function (oEntry) {
|
|
976
|
+
var oWebKitEntry = oEntry.webkitGetAsEntry();
|
|
977
|
+
return {
|
|
978
|
+
entryType: oWebKitEntry && oWebKitEntry.isFile ? 'File' : 'Directory'
|
|
979
|
+
};
|
|
980
|
+
});
|
|
981
|
+
// handlding multiple property drag & drop scenarios
|
|
982
|
+
if (oItems && oItems.length > 1 && !this.getMultiple() && !this.getDirectory()) {
|
|
983
|
+
// Handling drag and drop of multiple files to upload with multiple property set
|
|
937
984
|
var sMessage = this._oRb.getText("UPLOADCOLLECTION_MULTIPLE_FALSE");
|
|
938
985
|
Log.warning("Multiple files upload is retsricted for this multiple property set");
|
|
939
986
|
MessageBox.error(sMessage);
|
|
940
987
|
return;
|
|
988
|
+
} else if (oItems && oItems.length > 1 && this.getMultiple() && !isFileOrFolderEntry('File', aEntryTypes)) {
|
|
989
|
+
var sMessageDropFilesOnly = this._oRb.getText("UPLOAD_SET_DIRECTORY_FALSE");
|
|
990
|
+
Log.warning("Multiple files upload is retsricted, drag & drop only files");
|
|
991
|
+
MessageBox.error(sMessageDropFilesOnly);
|
|
992
|
+
return;
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
// handling directory property drag & drop scenarios
|
|
996
|
+
if (oItems && !this.getDirectory() && isFileOrFolderEntry('Directory', aEntryTypes)) {
|
|
997
|
+
var sMessageDirectory = this._oRb.getText("UPLOAD_SET_DIRECTORY_FALSE");
|
|
998
|
+
Log.warning("Directory of files upload is retsricted for this directory property set");
|
|
999
|
+
MessageBox.error(sMessageDirectory);
|
|
1000
|
+
return;
|
|
1001
|
+
} else if (oItems && this.getDirectory() && !isFileOrFolderEntry('Directory', aEntryTypes)) {
|
|
1002
|
+
var sMessageDragDropDirectory = this._oRb.getText("UPLOAD_SET_DROP_DIRECTORY");
|
|
1003
|
+
Log.warning("Directory of files upload is retsricted, drag & drop only directories here.");
|
|
1004
|
+
MessageBox.error(sMessageDragDropDirectory);
|
|
1005
|
+
return;
|
|
1006
|
+
}
|
|
1007
|
+
if (oItems && oItems.length) {
|
|
1008
|
+
this._getFilesFromDataTransferItems(oItems).then(function (oFiles) {
|
|
1009
|
+
if (oFiles && oFiles.length) {
|
|
1010
|
+
var oFileUploaderInstance = this.getDefaultFileUploader();
|
|
1011
|
+
if (oFileUploaderInstance && oFileUploaderInstance._areFilesAllowed && oFileUploaderInstance._areFilesAllowed(oFiles)) {
|
|
1012
|
+
this._processNewFileObjects(oFiles);
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
}.bind(this));
|
|
941
1016
|
}
|
|
942
|
-
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
function isFileOrFolderEntry(sType, aEntries) {
|
|
1020
|
+
return aEntries.every(function (oEntry) {
|
|
1021
|
+
return oEntry.entryType === sType;
|
|
1022
|
+
});
|
|
1023
|
+
}
|
|
1024
|
+
};
|
|
1025
|
+
|
|
1026
|
+
UploadSet.prototype._getFilesFromDataTransferItems = function (dataTransferItems) {
|
|
1027
|
+
var aFiles = [];
|
|
1028
|
+
return new Promise(function (resolve, reject) {
|
|
1029
|
+
var aEntriesPromises = [];
|
|
1030
|
+
for (var i = 0; i < dataTransferItems.length; i++) {
|
|
1031
|
+
aEntriesPromises.push(traverseFileTreePromise(dataTransferItems[i].webkitGetAsEntry()));
|
|
1032
|
+
}
|
|
1033
|
+
Promise.all(aEntriesPromises)
|
|
1034
|
+
.then(function (entries) {
|
|
1035
|
+
resolve(aFiles);
|
|
1036
|
+
}, function(err) {
|
|
1037
|
+
reject(err);
|
|
1038
|
+
});
|
|
1039
|
+
});
|
|
1040
|
+
|
|
1041
|
+
function traverseFileTreePromise(item) {
|
|
1042
|
+
return new Promise(function (resolve, reject) {
|
|
1043
|
+
if (item.isFile) {
|
|
1044
|
+
item.file(function (oFile) {
|
|
1045
|
+
aFiles.push(oFile);
|
|
1046
|
+
resolve(oFile);
|
|
1047
|
+
}, function(err){
|
|
1048
|
+
reject(err);
|
|
1049
|
+
});
|
|
1050
|
+
} else if (item.isDirectory) {
|
|
1051
|
+
var dirReader = item.createReader();
|
|
1052
|
+
dirReader.readEntries(function (entries) {
|
|
1053
|
+
var aEntriesPromises = [];
|
|
1054
|
+
for (var i = 0; i < entries.length; i++) {
|
|
1055
|
+
aEntriesPromises.push(traverseFileTreePromise(entries[i]));
|
|
1056
|
+
}
|
|
1057
|
+
resolve(Promise.all(aEntriesPromises));
|
|
1058
|
+
});
|
|
1059
|
+
}
|
|
1060
|
+
});
|
|
943
1061
|
}
|
|
944
1062
|
};
|
|
945
1063
|
|
|
1064
|
+
|
|
946
1065
|
UploadSet.prototype._getDragIndicator = function () {
|
|
947
1066
|
return this._oDragIndicator;
|
|
948
1067
|
};
|
|
@@ -995,7 +1114,7 @@ sap.ui.define([
|
|
|
995
1114
|
mimeType: this.getMediaTypes(),
|
|
996
1115
|
icon: "",
|
|
997
1116
|
iconFirst: false,
|
|
998
|
-
multiple: this.getMultiple(),
|
|
1117
|
+
multiple: this.getDirectory() ? false : this.getMultiple(),
|
|
999
1118
|
style: "Transparent",
|
|
1000
1119
|
name: "uploadSetFileUploader",
|
|
1001
1120
|
sameFilenameAllowed: true,
|
|
@@ -1009,7 +1128,8 @@ sap.ui.define([
|
|
|
1009
1128
|
typeMissmatch: [this._fireFileTypeMismatch, this],
|
|
1010
1129
|
fileSizeExceed: [this._fireFileSizeExceed, this],
|
|
1011
1130
|
filenameLengthExceed: [this._fireFilenameLengthExceed, this],
|
|
1012
|
-
visible: !this.getUploadButtonInvisible()
|
|
1131
|
+
visible: !this.getUploadButtonInvisible(),
|
|
1132
|
+
directory: this.getDirectory()
|
|
1013
1133
|
});
|
|
1014
1134
|
}
|
|
1015
1135
|
|
|
@@ -1723,5 +1843,167 @@ sap.ui.define([
|
|
|
1723
1843
|
this._oToolbar.getContent()[this._iFileUploaderPH].setVisible(false);
|
|
1724
1844
|
this._oToolbar.insertContent(fileUploader, this._iFileUploaderPH);
|
|
1725
1845
|
};
|
|
1846
|
+
|
|
1847
|
+
/**
|
|
1848
|
+
* Returns CloudFile picker button
|
|
1849
|
+
* @return {sap.m.Button} CloudPicker button
|
|
1850
|
+
* @private
|
|
1851
|
+
*/
|
|
1852
|
+
UploadSet.prototype._getCloudFilePicker = function() {
|
|
1853
|
+
if (this.getCloudFilePickerEnabled()) {
|
|
1854
|
+
return new Button({
|
|
1855
|
+
text: this.getCloudFilePickerButtonText() ? this.getCloudFilePickerButtonText() : this._oRb.getText("UPLOAD_SET_DEFAULT_CFP_BUTTON_TEXT"),
|
|
1856
|
+
press: [this._invokeCloudFilePicker, this]
|
|
1857
|
+
});
|
|
1858
|
+
}
|
|
1859
|
+
return null;
|
|
1860
|
+
};
|
|
1861
|
+
|
|
1862
|
+
/**
|
|
1863
|
+
* Creates and invokes CloudFilePicker control instance
|
|
1864
|
+
* @private
|
|
1865
|
+
* @returns {Object} cloudFile picker instance
|
|
1866
|
+
*/
|
|
1867
|
+
UploadSet.prototype._invokeCloudFilePicker = function() {
|
|
1868
|
+
var oCloudFilePickerInstance = null;
|
|
1869
|
+
if (this._cloudFilePickerControl) {
|
|
1870
|
+
oCloudFilePickerInstance = this._getCloudFilePickerInstance();
|
|
1871
|
+
oCloudFilePickerInstance.open();
|
|
1872
|
+
} else {
|
|
1873
|
+
// Dynamically load and cache CloudFilePicker control for first time
|
|
1874
|
+
this._loadCloudFilePickerDependency()
|
|
1875
|
+
.then(function(cloudFilePicker){
|
|
1876
|
+
this._cloudFilePickerControl = cloudFilePicker;
|
|
1877
|
+
oCloudFilePickerInstance = this._getCloudFilePickerInstance();
|
|
1878
|
+
oCloudFilePickerInstance.open();
|
|
1879
|
+
}.bind(this))
|
|
1880
|
+
.catch(function(error) {
|
|
1881
|
+
Log.error(error);
|
|
1882
|
+
});
|
|
1883
|
+
}
|
|
1884
|
+
return oCloudFilePickerInstance;
|
|
1885
|
+
};
|
|
1886
|
+
|
|
1887
|
+
/**
|
|
1888
|
+
* Event handler for CloudFile picker selector
|
|
1889
|
+
* @param {Object} oEvent CloudFile picker file selection DOM change event
|
|
1890
|
+
* @private
|
|
1891
|
+
*/
|
|
1892
|
+
UploadSet.prototype._onCloudPickerFileChange = function(oEvent) {
|
|
1893
|
+
|
|
1894
|
+
var mParameters = oEvent.getParameters();
|
|
1895
|
+
var aFiles = [];
|
|
1896
|
+
if (mParameters && mParameters.selectedFiles) {
|
|
1897
|
+
mParameters.selectedFiles.forEach(function (file) {
|
|
1898
|
+
aFiles.push(this._createFileFromCloudPickerFile(file));
|
|
1899
|
+
}.bind(this));
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
// invoking this method to handle file uploads
|
|
1903
|
+
this._processNewCloudPickerFileObjects(aFiles);
|
|
1904
|
+
};
|
|
1905
|
+
|
|
1906
|
+
/**
|
|
1907
|
+
* Creates file object that is to be uploaded from the CloudFilePicker file object
|
|
1908
|
+
* @param {sap.suite.ui.commons.CloudFileInfo} oCloudFile CloudFilepicker file object
|
|
1909
|
+
* @returns {Object} file metadata with file object and fileshare properties
|
|
1910
|
+
* @private
|
|
1911
|
+
*/
|
|
1912
|
+
UploadSet.prototype._createFileFromCloudPickerFile = function(oCloudFile) {
|
|
1913
|
+
var parts = [new Blob([])];
|
|
1914
|
+
var oFileMetaData = {
|
|
1915
|
+
type: oCloudFile.getFileShareItemContentType(),
|
|
1916
|
+
size: oCloudFile.getFileShareItemContentSize(),
|
|
1917
|
+
webkitRelativePath: '',
|
|
1918
|
+
name: oCloudFile.getFileShareItemName()
|
|
1919
|
+
};
|
|
1920
|
+
var oFile = new File(parts, oCloudFile.getFileShareItemName(), oFileMetaData);
|
|
1921
|
+
return {
|
|
1922
|
+
file: oFile,
|
|
1923
|
+
fileShareProperties: oCloudFile.mProperties
|
|
1924
|
+
};
|
|
1925
|
+
};
|
|
1926
|
+
|
|
1927
|
+
/**
|
|
1928
|
+
* Maps the UploadSetItem with fileShare properties from the CloudFilePicker
|
|
1929
|
+
* @param {sap.m.UploadSetItem} oItem UploadSetItem to be mapped
|
|
1930
|
+
* @param {Object} oFileShareItem fileshare properties used for mapping
|
|
1931
|
+
* @private
|
|
1932
|
+
*/
|
|
1933
|
+
UploadSet.prototype._mapFileShareItemToUploadSetItem = function(oItem, oFileShareItem) {
|
|
1934
|
+
oItem.setFileName(oFileShareItem.fileShareItemName);
|
|
1935
|
+
oItem.setUrl(oFileShareItem.fileShareItemContentLink);
|
|
1936
|
+
};
|
|
1937
|
+
|
|
1938
|
+
/**
|
|
1939
|
+
* Processing and uploading of file objects selected from the CloudFilePicker
|
|
1940
|
+
* @param {Array} oFiles File metadata list containing file to be uploaded and fileshare properties used for mapping
|
|
1941
|
+
* @private
|
|
1942
|
+
*/
|
|
1943
|
+
UploadSet.prototype._processNewCloudPickerFileObjects = function (oFiles) {
|
|
1944
|
+
var oItem;
|
|
1945
|
+
|
|
1946
|
+
oFiles.forEach(function (oFileMetaData) {
|
|
1947
|
+
var oFile = oFileMetaData.file,
|
|
1948
|
+
oFileShareProperties = oFileMetaData.fileShareProperties;
|
|
1949
|
+
oItem = new UploadSetItem({
|
|
1950
|
+
uploadState: UploadState.Ready
|
|
1951
|
+
});
|
|
1952
|
+
if (oFileShareProperties && oFileShareProperties !== null) {
|
|
1953
|
+
// invoked and each selected file to map the fileshare properties to uploadsetItem to be uploaded
|
|
1954
|
+
this._mapFileShareItemToUploadSetItem(oItem, oFileShareProperties);
|
|
1955
|
+
}
|
|
1956
|
+
oItem._setFileObject(oFile);
|
|
1957
|
+
oItem.setFileName(oFile.name);//For handling curly braces in file name we have to use setter.Otherwise it will be treated as binding.
|
|
1958
|
+
|
|
1959
|
+
if (!this.fireBeforeItemAdded({item: oItem})) {
|
|
1960
|
+
return;
|
|
1961
|
+
}
|
|
1962
|
+
this.insertIncompleteItem(oItem);
|
|
1963
|
+
this.fireAfterItemAdded({item: oItem});
|
|
1964
|
+
|
|
1965
|
+
if (this.getInstantUpload()) {
|
|
1966
|
+
this._uploadItemIfGoodToGo(oItem);
|
|
1967
|
+
}
|
|
1968
|
+
}.bind(this));
|
|
1969
|
+
};
|
|
1970
|
+
|
|
1971
|
+
/**
|
|
1972
|
+
* Dynamically require CloudFilePicker Control
|
|
1973
|
+
* @returns {Promise} Promise that resolves on sucessful load of CloudFilePicker control
|
|
1974
|
+
* @private
|
|
1975
|
+
*/
|
|
1976
|
+
UploadSet.prototype._loadCloudFilePickerDependency = function() {
|
|
1977
|
+
return new Promise(function (resolve, reject) {
|
|
1978
|
+
Core.loadLibrary("sap.suite.ui.commons", { async: true })
|
|
1979
|
+
.then(function() {
|
|
1980
|
+
sap.ui.require(["sap/suite/ui/commons/CloudFilePicker"], function(cloudFilePicker) {
|
|
1981
|
+
resolve(cloudFilePicker);
|
|
1982
|
+
}, function (error) {
|
|
1983
|
+
reject(error);
|
|
1984
|
+
});
|
|
1985
|
+
})
|
|
1986
|
+
.catch(function () {
|
|
1987
|
+
reject("CloudFilePicker Control not available.");
|
|
1988
|
+
});
|
|
1989
|
+
});
|
|
1990
|
+
};
|
|
1991
|
+
|
|
1992
|
+
/**
|
|
1993
|
+
* Creates CloudFilePicker Instance
|
|
1994
|
+
* @returns {sap.suite.ui.commons.CloudFilePicker} CloudFilePicker instance
|
|
1995
|
+
* @private
|
|
1996
|
+
*/
|
|
1997
|
+
UploadSet.prototype._getCloudFilePickerInstance = function() {
|
|
1998
|
+
return new this._cloudFilePickerControl({
|
|
1999
|
+
serviceUrl: this.getCloudFilePickerServiceUrl(),
|
|
2000
|
+
confirmButtonText: this._oRb.getText("SELECT_PICKER_TITLE_TEXT"),
|
|
2001
|
+
title: this._oRb.getText("SELECT_PICKER_TITLE_TEXT"),
|
|
2002
|
+
fileNameMandatory: true,
|
|
2003
|
+
enableDuplicateCheck:this.getSameFilenameAllowed(),
|
|
2004
|
+
select: this._onCloudPickerFileChange.bind(this)
|
|
2005
|
+
});
|
|
2006
|
+
};
|
|
2007
|
+
|
|
1726
2008
|
return UploadSet;
|
|
1727
2009
|
});
|
|
@@ -34,12 +34,11 @@ sap.ui.define([
|
|
|
34
34
|
* @class Item that represents one file to be uploaded using the {@link sap.m.upload.UploadSet} control.
|
|
35
35
|
* @extends sap.ui.core.Element
|
|
36
36
|
* @author SAP SE
|
|
37
|
-
* @version 1.
|
|
37
|
+
* @version 1.107.0
|
|
38
38
|
* @constructor
|
|
39
39
|
* @public
|
|
40
40
|
* @since 1.63
|
|
41
41
|
* @alias sap.m.upload.UploadSetItem
|
|
42
|
-
* @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel.
|
|
43
42
|
*/
|
|
44
43
|
var UploadSetItem = Element.extend("sap.m.upload.UploadSetItem", {
|
|
45
44
|
metadata: {
|
|
@@ -27,7 +27,6 @@ sap.ui.define([
|
|
|
27
27
|
* @public
|
|
28
28
|
* @since 1.63
|
|
29
29
|
* @alias sap.m.upload.Uploader
|
|
30
|
-
* @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
|
|
31
30
|
*/
|
|
32
31
|
var Uploader = Element.extend("sap.m.upload.Uploader", {
|
|
33
32
|
metadata: {
|