@openui5/sap.m 1.119.0 → 1.120.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/THIRDPARTY.txt +6 -6
- package/package.json +4 -4
- package/src/sap/m/.library +8 -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/ActionTile.js +1 -1
- package/src/sap/m/ActionTileContent.js +1 -1
- package/src/sap/m/AdditionalTextButton.js +1 -1
- package/src/sap/m/App.js +1 -1
- package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
- package/src/sap/m/Avatar.js +10 -6
- package/src/sap/m/AvatarRenderer.js +10 -3
- package/src/sap/m/Bar.js +1 -1
- package/src/sap/m/Breadcrumbs.js +1 -1
- package/src/sap/m/BusyDialog.js +1 -1
- package/src/sap/m/BusyIndicator.js +1 -1
- package/src/sap/m/Button.js +1 -1
- package/src/sap/m/Carousel.js +1 -1
- package/src/sap/m/CarouselLayout.js +1 -1
- package/src/sap/m/CheckBox.js +1 -1
- package/src/sap/m/ColorPalette.js +1 -1
- package/src/sap/m/ColorPalettePopover.js +1 -1
- package/src/sap/m/Column.js +1 -1
- package/src/sap/m/ColumnHeaderPopover.js +7 -8
- package/src/sap/m/ColumnListItem.js +1 -1
- package/src/sap/m/ColumnPopoverActionItem.js +1 -1
- package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
- package/src/sap/m/ColumnPopoverItem.js +1 -1
- package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
- package/src/sap/m/ColumnPopoverSortItem.js +1 -1
- package/src/sap/m/ComboBox.js +1 -1
- package/src/sap/m/ComboBoxBase.js +20 -3
- package/src/sap/m/ComboBoxTextField.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 +1 -1
- package/src/sap/m/DatePicker.js +1 -1
- package/src/sap/m/DateRangeSelection.js +22 -12
- package/src/sap/m/DateTimeField.js +1 -1
- package/src/sap/m/DateTimeInput.js +1 -1
- package/src/sap/m/DateTimePicker.js +1 -1
- package/src/sap/m/Dialog.js +1 -1
- 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/DynamicDateOption.js +1 -1
- package/src/sap/m/DynamicDateRange.js +10 -2
- package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
- package/src/sap/m/ExpandableText.js +1 -1
- package/src/sap/m/FacetFilter.js +2 -1
- package/src/sap/m/FacetFilterItem.js +1 -1
- package/src/sap/m/FacetFilterList.js +1 -1
- package/src/sap/m/FeedContent.js +1 -1
- package/src/sap/m/FeedInput.js +5 -4
- package/src/sap/m/FeedInputRenderer.js +3 -3
- package/src/sap/m/FeedListItem.js +6 -4
- 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 +58 -23
- package/src/sap/m/GenericTileRenderer.js +11 -0
- package/src/sap/m/GroupHeaderListItem.js +1 -1
- package/src/sap/m/GrowingEnablement.js +2 -3
- package/src/sap/m/GrowingList.js +1 -1
- package/src/sap/m/HBox.js +1 -1
- package/src/sap/m/HeaderContainer.js +6 -4
- package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
- package/src/sap/m/IconTabBar.js +1 -1
- 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 +1 -1
- package/src/sap/m/IconTabSeparator.js +1 -1
- package/src/sap/m/IllustratedMessage.js +1 -1
- package/src/sap/m/Illustration.js +1 -1
- package/src/sap/m/Image.js +1 -1
- package/src/sap/m/ImageContent.js +1 -1
- package/src/sap/m/Input.js +79 -14
- package/src/sap/m/InputBase.js +3 -1
- package/src/sap/m/InputListItem.js +1 -1
- package/src/sap/m/InputRenderer.js +7 -3
- package/src/sap/m/Label.js +1 -1
- package/src/sap/m/LightBox.js +1 -1
- package/src/sap/m/LightBoxItem.js +1 -1
- package/src/sap/m/Link.js +1 -1
- package/src/sap/m/LinkTileContent.js +143 -0
- package/src/sap/m/List.js +1 -1
- package/src/sap/m/ListBase.js +32 -14
- package/src/sap/m/ListItemBase.js +1 -1
- package/src/sap/m/MaskEnabler.js +1 -1
- package/src/sap/m/MaskInput.js +1 -1
- package/src/sap/m/MaskInputRule.js +1 -1
- package/src/sap/m/Menu.js +1 -1
- package/src/sap/m/MenuButton.js +3 -3
- package/src/sap/m/MenuItem.js +1 -1
- package/src/sap/m/MenuListItem.js +1 -1
- package/src/sap/m/MessageItem.js +1 -1
- package/src/sap/m/MessageListItem.js +1 -1
- package/src/sap/m/MessagePage.js +1 -1
- package/src/sap/m/MessagePopover.js +2 -3
- package/src/sap/m/MessagePopoverItem.js +1 -1
- package/src/sap/m/MessageStrip.js +1 -1
- package/src/sap/m/MessageToast.js +5 -19
- package/src/sap/m/MessageView.js +1 -1
- package/src/sap/m/MessageViewRenderer.js +2 -3
- package/src/sap/m/MultiComboBox.js +1 -1
- package/src/sap/m/MultiEditField.js +1 -1
- package/src/sap/m/MultiInput.js +4 -2
- package/src/sap/m/NavContainer.js +4 -3
- package/src/sap/m/NewsContent.js +1 -1
- package/src/sap/m/NotificationList.js +1 -1
- package/src/sap/m/NotificationListBase.js +1 -1
- package/src/sap/m/NotificationListGroup.js +1 -1
- package/src/sap/m/NotificationListItem.js +1 -1
- package/src/sap/m/NumericContent.js +9 -10
- package/src/sap/m/NumericContentRenderer.js +5 -4
- package/src/sap/m/NumericInput.js +1 -1
- package/src/sap/m/ObjectAttribute.js +1 -1
- package/src/sap/m/ObjectHeader.js +1 -1
- package/src/sap/m/ObjectIdentifier.js +1 -1
- package/src/sap/m/ObjectListItem.js +1 -1
- package/src/sap/m/ObjectMarker.js +1 -1
- package/src/sap/m/ObjectNumber.js +1 -1
- package/src/sap/m/ObjectStatus.js +4 -6
- package/src/sap/m/ObjectStatusRenderer.js +3 -1
- package/src/sap/m/OverflowToolbar.js +1 -1
- package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
- package/src/sap/m/OverflowToolbarButton.js +1 -1
- package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
- package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
- package/src/sap/m/OverflowToolbarRenderer.js +8 -1
- package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/P13nAnyFilterItem.js +1 -1
- package/src/sap/m/P13nColumnsItem.js +2 -1
- package/src/sap/m/P13nColumnsPanel.js +1 -1
- package/src/sap/m/P13nConditionPanel.js +1 -1
- package/src/sap/m/P13nDialog.js +1 -1
- package/src/sap/m/P13nDimMeasureItem.js +2 -1
- package/src/sap/m/P13nDimMeasurePanel.js +2 -1
- package/src/sap/m/P13nFilterItem.js +1 -1
- package/src/sap/m/P13nFilterPanel.js +1 -1
- package/src/sap/m/P13nGroupItem.js +2 -1
- package/src/sap/m/P13nGroupPanel.js +1 -1
- package/src/sap/m/P13nItem.js +1 -1
- package/src/sap/m/P13nPanel.js +1 -1
- package/src/sap/m/P13nSelectionItem.js +1 -1
- package/src/sap/m/P13nSelectionPanel.js +1 -1
- package/src/sap/m/P13nSortItem.js +2 -1
- package/src/sap/m/P13nSortPanel.js +1 -1
- package/src/sap/m/PDFViewer.js +20 -8
- package/src/sap/m/PDFViewerRenderManager.js +18 -18
- package/src/sap/m/PDFViewerRenderer.js +1 -1
- package/src/sap/m/Page.js +1 -1
- 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 +37 -12
- package/src/sap/m/PlanningCalendarHeader.js +1 -1
- 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 +5 -4
- package/src/sap/m/ProgressIndicator.js +1 -1
- package/src/sap/m/PullToRefresh.js +1 -1
- package/src/sap/m/QuickView.js +1 -1
- package/src/sap/m/QuickViewBase.js +1 -1
- package/src/sap/m/QuickViewCard.js +1 -1
- package/src/sap/m/QuickViewGroup.js +1 -1
- package/src/sap/m/QuickViewGroupElement.js +1 -1
- package/src/sap/m/QuickViewPage.js +1 -1
- package/src/sap/m/RadioButton.js +3 -3
- package/src/sap/m/RadioButtonGroup.js +1 -1
- package/src/sap/m/RangeSlider.js +1 -1
- package/src/sap/m/RangeSliderRenderer.js +15 -8
- package/src/sap/m/RatingIndicator.js +4 -3
- package/src/sap/m/ResponsivePopover.js +13 -7
- 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/SegmentedButton.js +1 -1
- package/src/sap/m/SegmentedButtonItem.js +1 -1
- package/src/sap/m/Select.js +1 -1
- package/src/sap/m/SelectDialog.js +5 -7
- package/src/sap/m/SelectDialogBase.js +1 -1
- package/src/sap/m/SelectList.js +1 -1
- package/src/sap/m/SelectionDetails.js +1 -1
- 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 +1 -1
- package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarGrid.js +2 -2
- package/src/sap/m/SinglePlanningCalendarMonthGrid.js +3 -2
- package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
- package/src/sap/m/SlideTile.js +7 -9
- package/src/sap/m/Slider.js +1 -1
- package/src/sap/m/SliderTooltip.js +1 -1
- package/src/sap/m/SliderTooltipBase.js +1 -1
- package/src/sap/m/SliderTooltipContainer.js +1 -1
- package/src/sap/m/SplitApp.js +1 -1
- package/src/sap/m/SplitButton.js +1 -1
- package/src/sap/m/SplitContainer.js +4 -2
- package/src/sap/m/StandardDynamicDateOption.js +1 -1
- package/src/sap/m/StandardListItem.js +1 -1
- 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 +5 -5
- package/src/sap/m/Switch.js +1 -1
- package/src/sap/m/TabContainer.js +10 -4
- package/src/sap/m/TabContainerItem.js +1 -1
- package/src/sap/m/TabStrip.js +2 -2
- package/src/sap/m/TabStripItem.js +1 -1
- package/src/sap/m/Table.js +35 -4
- package/src/sap/m/TablePersoController.js +1 -1
- package/src/sap/m/TablePersoDialog.js +1 -1
- package/src/sap/m/TablePersoProvider.js +1 -1
- package/src/sap/m/TableSelectDialog.js +5 -7
- package/src/sap/m/Text.js +1 -1
- package/src/sap/m/TextArea.js +1 -1
- package/src/sap/m/Tile.js +1 -1
- package/src/sap/m/TileContainer.js +1 -1
- package/src/sap/m/TileContent.js +4 -4
- package/src/sap/m/TimePicker.js +1 -1
- package/src/sap/m/TimePickerClock.js +1 -1
- package/src/sap/m/TimePickerClocks.js +1 -1
- package/src/sap/m/TimePickerInputs.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 +1 -1
- package/src/sap/m/Title.js +1 -1
- package/src/sap/m/TitlePropagationSupport.js +1 -1
- package/src/sap/m/ToggleButton.js +1 -1
- package/src/sap/m/Token.js +1 -1
- 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/ToolbarRenderer.js +8 -0
- package/src/sap/m/ToolbarSeparator.js +1 -1
- package/src/sap/m/ToolbarSpacer.js +1 -1
- package/src/sap/m/Tree.js +17 -1
- package/src/sap/m/TreeItemBase.js +1 -1
- package/src/sap/m/UploadCollection.js +1 -1
- 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 +9 -4
- package/src/sap/m/VariantItem.js +99 -27
- package/src/sap/m/VariantManagement.js +196 -90
- package/src/sap/m/ViewSettingsCustomItem.js +1 -1
- package/src/sap/m/ViewSettingsCustomTab.js +1 -1
- package/src/sap/m/ViewSettingsDialog.js +44 -44
- 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 +6 -6
- package/src/sap/m/WizardProgressNavigator.js +1 -1
- package/src/sap/m/WizardStep.js +1 -1
- 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 +1 -1
- 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/designtime/IconTabFilter.designtime.js +1 -1
- package/src/sap/m/designtime/VariantManagement.designtime.js +0 -6
- package/src/sap/m/designtime/messagebundle_mk.properties +182 -0
- package/src/sap/m/designtime/messagebundle_sh.properties +3 -3
- package/src/sap/m/flexibility/EngineFlex.js +5 -0
- package/src/sap/m/inputUtils/highlightItemsWithContains.js +82 -0
- package/src/sap/m/library.js +76 -136
- package/src/sap/m/messagebundle.properties +37 -6
- package/src/sap/m/messagebundle_ar.properties +46 -2
- package/src/sap/m/messagebundle_bg.properties +49 -5
- package/src/sap/m/messagebundle_ca.properties +47 -3
- package/src/sap/m/messagebundle_cs.properties +46 -2
- package/src/sap/m/messagebundle_cy.properties +46 -2
- package/src/sap/m/messagebundle_da.properties +46 -2
- package/src/sap/m/messagebundle_de.properties +46 -2
- package/src/sap/m/messagebundle_el.properties +48 -4
- package/src/sap/m/messagebundle_en.properties +23 -6
- package/src/sap/m/messagebundle_en_GB.properties +46 -2
- package/src/sap/m/messagebundle_es.properties +46 -2
- package/src/sap/m/messagebundle_es_MX.properties +46 -2
- package/src/sap/m/messagebundle_et.properties +44 -0
- package/src/sap/m/messagebundle_fi.properties +46 -2
- package/src/sap/m/messagebundle_fr.properties +46 -2
- package/src/sap/m/messagebundle_fr_CA.properties +46 -2
- package/src/sap/m/messagebundle_hi.properties +48 -4
- package/src/sap/m/messagebundle_hr.properties +46 -2
- package/src/sap/m/messagebundle_hu.properties +51 -7
- package/src/sap/m/messagebundle_id.properties +48 -4
- package/src/sap/m/messagebundle_it.properties +44 -0
- package/src/sap/m/messagebundle_iw.properties +46 -2
- package/src/sap/m/messagebundle_ja.properties +44 -0
- package/src/sap/m/messagebundle_kk.properties +60 -16
- package/src/sap/m/messagebundle_ko.properties +44 -0
- package/src/sap/m/messagebundle_lt.properties +46 -2
- package/src/sap/m/messagebundle_lv.properties +57 -13
- package/src/sap/m/messagebundle_mk.properties +1869 -0
- package/src/sap/m/messagebundle_ms.properties +46 -2
- package/src/sap/m/messagebundle_nl.properties +44 -0
- package/src/sap/m/messagebundle_no.properties +47 -3
- package/src/sap/m/messagebundle_pl.properties +46 -2
- package/src/sap/m/messagebundle_pt.properties +44 -0
- package/src/sap/m/messagebundle_pt_PT.properties +44 -0
- package/src/sap/m/messagebundle_ro.properties +46 -2
- package/src/sap/m/messagebundle_ru.properties +48 -4
- package/src/sap/m/messagebundle_sh.properties +149 -105
- package/src/sap/m/messagebundle_sk.properties +46 -2
- package/src/sap/m/messagebundle_sl.properties +62 -18
- package/src/sap/m/messagebundle_sv.properties +50 -6
- package/src/sap/m/messagebundle_th.properties +44 -0
- package/src/sap/m/messagebundle_tr.properties +49 -5
- package/src/sap/m/messagebundle_uk.properties +59 -15
- package/src/sap/m/messagebundle_vi.properties +46 -2
- package/src/sap/m/messagebundle_zh_CN.properties +44 -0
- package/src/sap/m/messagebundle_zh_TW.properties +46 -2
- 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 +13 -3
- package/src/sap/m/p13n/Container.js +1 -1
- package/src/sap/m/p13n/Engine.js +1 -1
- package/src/sap/m/p13n/FlexUtil.js +0 -41
- package/src/sap/m/p13n/GroupController.js +1 -1
- package/src/sap/m/p13n/GroupPanel.js +1 -1
- package/src/sap/m/p13n/Popup.js +16 -1
- package/src/sap/m/p13n/QueryPanel.js +1 -1
- package/src/sap/m/p13n/SelectionController.js +457 -423
- package/src/sap/m/p13n/SelectionPanel.js +1 -1
- package/src/sap/m/p13n/SortController.js +1 -1
- package/src/sap/m/p13n/SortPanel.js +4 -3
- package/src/sap/m/p13n/handler/xConfigHandler.js +18 -5
- 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/p13n/modules/xConfigAPI.js +1 -1
- package/src/sap/m/plugins/CellSelector.js +172 -153
- package/src/sap/m/plugins/ColumnResizer.js +9 -2
- package/src/sap/m/plugins/CopyProvider.js +21 -10
- package/src/sap/m/plugins/DataStateIndicator.js +1 -1
- package/src/sap/m/plugins/PasteProvider.js +1 -1
- package/src/sap/m/plugins/PluginBase.js +1 -1
- package/src/sap/m/routing/Target.js +3 -3
- package/src/sap/m/routing/Targets.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 +1 -1
- 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 -1
- 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/ColumnWidthController.js +177 -0
- package/src/sap/m/table/Util.js +1 -1
- 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 +17 -13
- package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
- package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
- package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
- package/src/sap/m/table/columnmenu/QuickGroup.js +5 -1
- package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
- package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
- package/src/sap/m/table/columnmenu/QuickSortItem.js +2 -2
- package/src/sap/m/table/columnmenu/QuickTotal.js +5 -1
- package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
- package/src/sap/m/themes/base/Avatar.less +0 -1
- package/src/sap/m/themes/base/BarBase.less +1 -1
- package/src/sap/m/themes/base/BusyIndicator.less +0 -10
- package/src/sap/m/themes/base/ExpandableText.less +6 -0
- package/src/sap/m/themes/base/GenericTile.less +36 -0
- package/src/sap/m/themes/base/LinkTileContent.less +17 -0
- package/src/sap/m/themes/base/MenuButton.less +1 -1
- package/src/sap/m/themes/base/NotificationListBase.less +3 -3
- package/src/sap/m/themes/base/ObjectStatus.less +241 -1
- package/src/sap/m/themes/base/RadioButton.less +1 -1
- package/src/sap/m/themes/base/SearchField.less +2 -1
- package/src/sap/m/themes/base/SplitButton.less +0 -1
- package/src/sap/m/themes/base/Text.less +4 -1
- package/src/sap/m/themes/base/Toolbar.less +7 -14
- package/src/sap/m/themes/base/ValueStateHeader.less +4 -0
- package/src/sap/m/themes/base/library.source.less +1 -0
- package/src/sap/m/upload/ActionsPlaceholder.js +49 -0
- package/src/sap/m/upload/Column.js +58 -0
- package/src/sap/m/upload/FilePreviewDialog.js +22 -3
- package/src/sap/m/upload/FilterPanel.js +280 -0
- package/src/sap/m/upload/UploadSet.js +11 -6
- package/src/sap/m/upload/UploadSetItem.js +6 -5
- package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
- package/src/sap/m/upload/UploadSetwithTable.js +487 -93
- package/src/sap/m/upload/UploadSetwithTableItem.js +26 -11
- package/src/sap/m/upload/Uploader.js +3 -0
- package/src/sap/m/upload/UploaderTableItem.js +4 -1
- package/src/sap/m/upload/p13n/PersManager.js +251 -0
- package/src/sap/m/upload/p13n/flexibility/UploadSetwithTable.flexibility.js +32 -0
- package/src/sap/m/upload/p13n/handlers/BaseConfigHandler.js +44 -0
- package/src/sap/m/upload/p13n/handlers/ChangeHandler.js +98 -0
- package/src/sap/m/upload/p13n/handlers/ColumnConfigHandler.js +57 -0
- package/src/sap/m/upload/p13n/handlers/ColumnsStateChangeHandler.js +43 -0
- package/src/sap/m/upload/p13n/handlers/FilterConfigHandler.js +71 -0
- package/src/sap/m/upload/p13n/handlers/FilterStateChangeHandler.js +65 -0
- package/src/sap/m/upload/p13n/handlers/GroupConfigHandler.js +57 -0
- package/src/sap/m/upload/p13n/handlers/GroupStateChangeHandler.js +46 -0
- package/src/sap/m/upload/p13n/handlers/SortConfigHandler.js +57 -0
- package/src/sap/m/upload/p13n/handlers/SortStateChangeHandler.js +48 -0
- package/src/sap/m/upload/p13n/mediator/BaseMediator.js +183 -0
- package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +210 -0
- package/src/sap/m/upload/p13n/mediator/FilterMediator.js +196 -0
- package/src/sap/m/upload/p13n/mediator/GroupMediator.js +192 -0
- package/src/sap/m/upload/p13n/mediator/SortMediator.js +200 -0
- package/src/sap/m/upload/p13n/modules/CustomDataConfig.js +100 -0
- package/src/sap/m/upload/p13n/modules/PersPopupManager.js +76 -0
|
@@ -5,27 +5,27 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
'sap/base/util/array/diff',
|
|
9
|
+
'sap/ui/base/Object',
|
|
10
|
+
'sap/base/util/merge',
|
|
11
|
+
'sap/base/util/deepEqual',
|
|
12
|
+
'sap/m/p13n/SelectionPanel',
|
|
13
|
+
'sap/m/p13n/modules/xConfigAPI',
|
|
14
|
+
'sap/ui/core/Configuration',
|
|
15
|
+
'sap/ui/core/mvc/View'
|
|
16
16
|
], function (diff, BaseObject, merge, deepEqual, SelectionPanel, xConfigAPI, Configuration, View) {
|
|
17
17
|
"use strict";
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
20
|
* Constructor for a new <code>SelectionController</code>.
|
|
21
21
|
*
|
|
22
22
|
* @param {string} [sId] ID for the new control, generated automatically if no ID is given
|
|
23
23
|
* @param {object} [mSettings] Initial settings for the new control
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
* @param {sap.ui.core.Control} mSettings.control The control instance that is personalized by this controller
|
|
25
|
+
* @param {function} [mSettings.getKeyForItem] By default the SelectionController tries to identify the existing item through the
|
|
26
|
+
* key by checking if there is an existing item with this id. This behaviour can be overruled by implementing this method which will
|
|
27
|
+
* provide the according item of the <code>targetAggregation</code> to return the according key associated to this item.
|
|
28
|
+
* @param {string} mSettings.targetAggregation The name of the aggregation that is now managed by this controller
|
|
29
29
|
*
|
|
30
30
|
* @class
|
|
31
31
|
* The <code>SelectionController</code> entity serves as a base class to create control-specific personalization implementations.
|
|
@@ -33,203 +33,203 @@ sap.ui.define([
|
|
|
33
33
|
* @extends sap.ui.base.Object
|
|
34
34
|
*
|
|
35
35
|
* @author SAP SE
|
|
36
|
-
* @version 1.
|
|
36
|
+
* @version 1.120.0
|
|
37
37
|
*
|
|
38
38
|
* @public
|
|
39
39
|
* @alias sap.m.p13n.SelectionController
|
|
40
40
|
*/
|
|
41
41
|
var SelectionController = BaseObject.extend("sap.m.p13n.SelectionController",{
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
42
|
+
constructor: function(mSettings) {
|
|
43
|
+
BaseObject.call(this);
|
|
44
|
+
|
|
45
|
+
this._oAdaptationControl = mSettings.control;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The 'stableKeys' can be provided in the constructor to exclude the keys from the p13n UI, while still respecting them in the
|
|
49
|
+
* delta logic. For instance by ignoring the first column of a TreeTable in the p13n dialog while still not removing this column
|
|
50
|
+
* on closing the dialog.
|
|
51
|
+
*/
|
|
52
|
+
this._aStableKeys = mSettings.stableKeys || [];
|
|
53
|
+
|
|
54
|
+
if (!this._oAdaptationControl) {
|
|
55
|
+
throw new Error("Always provide atleast a 'control' configuration when creating a new p13n controller!");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
this._sTargetAggregation = mSettings.targetAggregation;
|
|
59
|
+
this._fSelector = mSettings.getKeyForItem;
|
|
60
|
+
|
|
61
|
+
this._oP13nData = null;
|
|
62
|
+
this._bLiveMode = false;
|
|
63
|
+
this._bResetEnabled = false;
|
|
64
|
+
this._bReorderingEnabled = mSettings.hasOwnProperty("enableReorder") ? mSettings.enableReorder : true;
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The control that is being personalized via this controller.
|
|
71
|
+
*
|
|
72
|
+
* @returns {sap.ui.mdc.Control} The control which is being adapted.
|
|
73
|
+
*/
|
|
74
|
+
SelectionController.prototype.getAdaptationControl = function(){
|
|
75
|
+
return this._oAdaptationControl;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
SelectionController.prototype.getTargetAggregation = function(){
|
|
79
|
+
return this._sTargetAggregation;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Defines the available ChangeTypes (should be in sync with 'getDelta').
|
|
85
|
+
*
|
|
86
|
+
* @returns {object} A map of legal change types.
|
|
87
|
+
*/
|
|
88
|
+
SelectionController.prototype.getChangeOperations = function() {
|
|
89
|
+
return {
|
|
90
|
+
add: "addItem",
|
|
91
|
+
remove: "removeItem",
|
|
92
|
+
move: "moveItem"
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Defines which control(s) are considered for the reset.
|
|
98
|
+
*
|
|
99
|
+
* @returns {sap.ui.core.Control | sap.ui.core.Control[]}
|
|
100
|
+
**/
|
|
101
|
+
SelectionController.prototype.getSelectorForReset = function() {
|
|
102
|
+
return this._oAdaptationControl;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
SelectionController.prototype.sanityCheck = function(oState) {
|
|
106
|
+
return oState;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* The actual UI used for personalization.
|
|
111
|
+
*
|
|
112
|
+
* @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The property helper instance
|
|
113
|
+
* @returns {sap.ui.core.Control|string|Promise} The control which is going to be used in the p13n container.
|
|
114
|
+
*/
|
|
115
|
+
SelectionController.prototype.initAdaptationUI = function(oPropertyHelper){
|
|
116
|
+
var oAdaptationData = this.mixInfoAndState(oPropertyHelper);
|
|
117
|
+
this._oPanel = this.createUI(oAdaptationData);
|
|
118
|
+
return Promise.resolve(this._oPanel);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
SelectionController.prototype.createUI = function(oAdaptationData) {
|
|
122
|
+
var oSelectionPanel = new SelectionPanel({
|
|
123
|
+
showHeader: true,
|
|
124
|
+
enableCount: true
|
|
125
|
+
});
|
|
126
|
+
oSelectionPanel.setEnableReorder(this._bReorderingEnabled);
|
|
127
|
+
return oSelectionPanel.setP13nData(oAdaptationData.items);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
var getViewForControl = function(oControl) {
|
|
131
|
+
if (oControl instanceof View) {
|
|
132
|
+
return oControl;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (oControl && typeof oControl.getParent === "function") {
|
|
136
|
+
oControl = oControl.getParent();
|
|
137
|
+
return getViewForControl(oControl);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
SelectionController.prototype.getCurrentState = function(){
|
|
142
|
+
var aState = [], aAggregationItems = this.getAdaptationControl().getAggregation(this.getTargetAggregation()) || [];
|
|
143
|
+
var oView = getViewForControl(this.getAdaptationControl());
|
|
144
|
+
aAggregationItems.forEach(function(oItem, iIndex) {
|
|
145
|
+
var sId = oView ? oView.getLocalId(oItem.getId()) : oItem.getId();
|
|
146
|
+
var vRelevant = this._fSelector ? this._fSelector(oItem) : oItem.getVisible();
|
|
147
|
+
if (vRelevant) {
|
|
148
|
+
aState.push({
|
|
149
|
+
key: typeof vRelevant === "boolean" ? sId : vRelevant
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
152
|
}.bind(this));
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
154
|
+
var oXConfig = xConfigAPI.readConfig(this.getAdaptationControl()) || {};
|
|
155
|
+
var oItemXConfig = oXConfig.hasOwnProperty("aggregations") ? oXConfig.aggregations[this._sTargetAggregation] : {};
|
|
156
|
+
|
|
157
|
+
for (var sKey in oItemXConfig) {
|
|
158
|
+
var aStateKeys = aState.map(function(o){return o.key;});
|
|
159
|
+
var iCurrentIndex = aStateKeys.indexOf(sKey);
|
|
160
|
+
var iNewIndex = oItemXConfig[sKey].position;
|
|
161
|
+
var bVisible = oItemXConfig[sKey].visible !== false;
|
|
162
|
+
var bReordered = iNewIndex !== undefined;
|
|
163
|
+
|
|
164
|
+
if (bVisible && iCurrentIndex === -1) {
|
|
165
|
+
aState.push({
|
|
166
|
+
key: sKey
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (bVisible && bReordered && aState.length > 0) {
|
|
171
|
+
var oItem = aState.splice(iCurrentIndex, 1)[0];
|
|
172
|
+
aState.splice(iNewIndex, 0, oItem);
|
|
173
|
+
iCurrentIndex = iNewIndex;
|
|
174
|
+
}
|
|
175
|
+
if (oItemXConfig[sKey].visible === false && iCurrentIndex > -1) {
|
|
176
|
+
aState.splice(iCurrentIndex, 1);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
}
|
|
180
|
+
return aState;
|
|
181
|
+
};
|
|
182
182
|
|
|
183
183
|
SelectionController.prototype.getStateKey = function(){
|
|
184
184
|
return "items";
|
|
185
185
|
};
|
|
186
186
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
187
|
+
SelectionController.prototype.getDelta = function(mPropertyBag) {
|
|
188
|
+
var sPresenceAttribute = this._getPresenceAttribute(mPropertyBag.externalAppliance);
|
|
189
|
+
var aNewStatePrepared;
|
|
190
|
+
|
|
191
|
+
var fnFilterUnselected = function (oItem) {
|
|
192
|
+
return oItem.hasOwnProperty(sPresenceAttribute) && oItem[sPresenceAttribute] === false ? false : true;
|
|
193
|
+
};
|
|
194
|
+
aNewStatePrepared = mPropertyBag.applyAbsolute
|
|
195
|
+
? mPropertyBag.changedState.filter(fnFilterUnselected) :
|
|
196
|
+
this._getFilledArray(mPropertyBag.existingState, mPropertyBag.changedState, sPresenceAttribute).filter(fnFilterUnselected);
|
|
197
|
+
|
|
198
|
+
this._aStableKeys.forEach(function(sKey, iIndex){
|
|
199
|
+
var mExistingState = this.arrayToMap(this.getCurrentState());
|
|
200
|
+
var mNewState = this.arrayToMap(aNewStatePrepared);
|
|
201
|
+
var iStableIndex = mExistingState[sKey] || (iIndex - 1);
|
|
202
|
+
|
|
203
|
+
if (!mNewState.hasOwnProperty(sKey)) {
|
|
204
|
+
aNewStatePrepared.splice(iStableIndex, 0,mExistingState[sKey]);
|
|
205
|
+
}
|
|
206
|
+
}.bind(this));
|
|
207
|
+
mPropertyBag.changedState = aNewStatePrepared;
|
|
208
|
+
|
|
209
|
+
//Example: Dialog Ok --> don't trigger unnecessary flex change processing
|
|
210
|
+
if (deepEqual(mPropertyBag.existingState, aNewStatePrepared)){
|
|
211
|
+
return [];
|
|
212
|
+
} else {
|
|
213
|
+
return this.getArrayDeltaChanges(mPropertyBag);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Generates a set of changes based on the given arrays for a specified control
|
|
220
|
+
*
|
|
221
|
+
* @param {object} mDeltaInfo Map containing the necessary information to calculate the diff as change objects
|
|
222
|
+
* @param {array} mDeltaInfo.existingState An array describing the control state before a adaptation
|
|
223
|
+
* @param {array} mDeltaInfo.changedState An array describing the control state after a certain adaptation
|
|
224
|
+
* @param {object} mDeltaInfo.control Control instance which is being used to generate the changes
|
|
225
|
+
* @param {object} mDeltaInfo.changeOperations Map containing the changeOperations for the given Control instance
|
|
226
|
+
* @param {string} mDeltaInfo.changeOperations.add Name of the control specific 'add' changehandler
|
|
227
|
+
* @param {string} mDeltaInfo.changeOperations.remove Name of the control specific 'remove' changehandler
|
|
228
|
+
* @param {string} [mDeltaInfo.changeOperations.move] Name of the control specific 'move' changehandler
|
|
229
|
+
* @param {string} [mDeltaInfo.generator] Name of the change generator (E.g. the namespace of the UI creating the change object)
|
|
230
|
+
*
|
|
231
|
+
* @returns {array} Array containing the delta based created changes
|
|
232
|
+
*/
|
|
233
233
|
SelectionController.prototype.getArrayDeltaChanges = function(mDeltaInfo) {
|
|
234
234
|
var aExistingArray = mDeltaInfo.existingState;
|
|
235
235
|
var aChangedArray = mDeltaInfo.changedState;
|
|
@@ -365,12 +365,12 @@ sap.ui.define([
|
|
|
365
365
|
|
|
366
366
|
return mDeleteInserts;
|
|
367
367
|
};
|
|
368
|
-
|
|
368
|
+
SelectionController.prototype._verifyDeltaAttributes = function (oSource, oTarget, aDeltaAttributes) {
|
|
369
369
|
var bReturn = false;
|
|
370
370
|
|
|
371
371
|
aDeltaAttributes.some(function(sAttr) {
|
|
372
372
|
if (!oSource.hasOwnProperty(sAttr) && oTarget.hasOwnProperty(sAttr) ||
|
|
373
|
-
|
|
373
|
+
oSource.hasOwnProperty(sAttr) && !oTarget.hasOwnProperty(sAttr) ||
|
|
374
374
|
(oSource[sAttr] != oTarget[sAttr]) ) {
|
|
375
375
|
bReturn = true;
|
|
376
376
|
}
|
|
@@ -381,140 +381,143 @@ sap.ui.define([
|
|
|
381
381
|
|
|
382
382
|
};
|
|
383
383
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
384
|
+
/**
|
|
385
|
+
* Method which reduces a propertyinfo map to changecontent relevant attributes.
|
|
386
|
+
* <b>Note:</b> This method determines the attributes stored in the changeContent.
|
|
387
|
+
*
|
|
388
|
+
* @param {object} oProperty Object containing all values prior to change creation
|
|
389
|
+
* @param {array} aDeltaAttributes Array containing all attributes that are necessary for the delta calculation
|
|
390
|
+
*
|
|
391
|
+
* @returns {object} Object containing reduced content
|
|
392
|
+
*/
|
|
393
|
+
SelectionController.prototype._getChangeContent = function (oProperty, aDeltaAttributes) {
|
|
394
|
+
|
|
395
|
+
var oChangeContent = {};
|
|
396
|
+
|
|
397
|
+
// Index
|
|
398
|
+
if (oProperty.hasOwnProperty("index") && oProperty.index >= 0) {
|
|
399
|
+
oChangeContent.index = oProperty.index;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
aDeltaAttributes.forEach(function(sAttribute) {
|
|
403
|
+
if (oProperty.hasOwnProperty(sAttribute)){
|
|
404
|
+
oChangeContent[sAttribute] = oProperty[sAttribute];
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
return oChangeContent;
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
SelectionController.prototype._createAddRemoveChange = function(oControl, sOperation, oContent){
|
|
412
|
+
|
|
413
|
+
var oChangeContent = oContent;
|
|
414
|
+
|
|
415
|
+
if (sOperation.indexOf("set") !== 0) {
|
|
416
|
+
oChangeContent.value = (sOperation == this.getChangeOperations()["add"]);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
oChangeContent.targetAggregation = this.getTargetAggregation();
|
|
420
|
+
|
|
421
|
+
var oAddRemoveChange = {
|
|
422
|
+
selectorElement: oControl,
|
|
423
|
+
changeSpecificData: {
|
|
424
|
+
changeType: sOperation,
|
|
425
|
+
content: oChangeContent
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
return oAddRemoveChange;
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
SelectionController.prototype._createMoveChange = function(sPropertykey, iNewIndex, sMoveOperation, oControl){
|
|
432
|
+
var oMoveChange = {
|
|
433
|
+
selectorElement: oControl,
|
|
434
|
+
changeSpecificData: {
|
|
435
|
+
changeType: sMoveOperation,
|
|
436
|
+
content: {
|
|
437
|
+
key: sPropertykey,
|
|
438
|
+
targetAggregation: this.getTargetAggregation(),
|
|
439
|
+
index: iNewIndex
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
return oMoveChange;
|
|
444
|
+
};
|
|
445
|
+
SelectionController.prototype._getPresenceAttribute = function(bexternalAppliance){
|
|
446
|
+
return "visible";
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Allows calculations prior to applying a set of changes.
|
|
451
|
+
* This can be used to mix additional changes to auto-created changes.
|
|
452
|
+
*
|
|
453
|
+
* @returns {Promise} A Promise that should resolve with an array of additional changes.
|
|
454
|
+
*/
|
|
455
|
+
SelectionController.prototype.getBeforeApply = function(){
|
|
456
|
+
return Promise.resolve();
|
|
457
|
+
};
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Initialized the inner model for the Personalization.
|
|
461
|
+
*
|
|
462
|
+
* @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The propertyhelper that should be utilized for property determination.
|
|
463
|
+
* @returns {object} The personalization model data
|
|
464
|
+
*/
|
|
465
|
+
SelectionController.prototype.mixInfoAndState = function(oPropertyHelper) {
|
|
466
|
+
|
|
467
|
+
var aItemState = this.getCurrentState();
|
|
468
|
+
var mItemState = this.arrayToMap(aItemState);
|
|
469
|
+
|
|
470
|
+
var oP13nData = this.prepareAdaptationData(oPropertyHelper, function(mItem, oProperty){
|
|
471
|
+
var oExisting = mItemState[oProperty.name || oProperty.key];
|
|
472
|
+
mItem.visible = !!oExisting;
|
|
473
|
+
mItem.position = oExisting ? oExisting.position : -1;
|
|
474
|
+
return !(oProperty.visible === false || (this._aStableKeys.indexOf(oProperty.name || oProperty.key) > -1));
|
|
475
|
+
}.bind(this));
|
|
476
|
+
|
|
477
|
+
this.sortP13nData({
|
|
478
|
+
visible: "visible",
|
|
479
|
+
position: "position"
|
|
480
|
+
}, oP13nData.items);
|
|
481
|
+
|
|
482
|
+
oP13nData.items.forEach(function(oItem){delete oItem.position;});
|
|
483
|
+
return oP13nData;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* @returns {object} The personalization data.
|
|
488
|
+
*
|
|
489
|
+
*/
|
|
490
|
+
SelectionController.prototype.getP13nData = function() {
|
|
491
|
+
return this._oPanel ? this._oPanel.getP13nData() : this._oAdaptationModel && this._oAdaptationModel.getProperty("/items");
|
|
492
|
+
};
|
|
493
|
+
|
|
494
|
+
SelectionController.prototype.model2State = false;
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Can be used to trigger update after UI interactions such as "Ok" and "Reset"
|
|
498
|
+
*
|
|
499
|
+
* @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The property helper instance
|
|
500
|
+
*/
|
|
501
|
+
SelectionController.prototype.update = function(oPropertyHelper) {
|
|
502
|
+
if (this._oPanel) {
|
|
500
503
|
if (!this._oPanel.isDestroyed()) {
|
|
501
504
|
var oAdaptationData = this.mixInfoAndState(oPropertyHelper);
|
|
502
505
|
this._oPanel.setP13nData(oAdaptationData.items);
|
|
503
506
|
}
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
507
|
+
} else if (this._oAdaptationModel){
|
|
508
|
+
//'setData' causes unnecessary rerendering in some cases
|
|
509
|
+
var oP13nData = this.mixInfoAndState(oPropertyHelper);
|
|
510
|
+
this._oAdaptationModel.setProperty("/items", oP13nData.items);
|
|
511
|
+
this._oAdaptationModel.setProperty("/itemsGrouped", oP13nData.itemsGrouped);
|
|
512
|
+
}
|
|
513
|
+
};
|
|
514
|
+
|
|
515
|
+
SelectionController.prototype._getFilledArray = function(aPreviousItems, aNewItems, sRemoveProperty) {
|
|
513
516
|
var aNewItemsPrepared = merge([], aPreviousItems);
|
|
514
517
|
var aNewItemState = merge([], aNewItems);
|
|
515
518
|
|
|
516
519
|
aNewItemState.forEach(function (oItem) {
|
|
517
|
-
|
|
520
|
+
var mExistingItems = this.arrayToMap(aNewItemsPrepared);
|
|
518
521
|
var oExistingItem = mExistingItems[oItem.key];
|
|
519
522
|
if (!oItem.hasOwnProperty(sRemoveProperty) || oItem[sRemoveProperty]) {
|
|
520
523
|
var iNewPosition = oItem.position;
|
|
@@ -536,134 +539,165 @@ sap.ui.define([
|
|
|
536
539
|
return aNewItemsPrepared;
|
|
537
540
|
};
|
|
538
541
|
|
|
539
|
-
|
|
542
|
+
SelectionController.prototype.getPropertySetterChanges = function(mDeltaInfo) {
|
|
543
|
+
var oControl = mDeltaInfo.control;
|
|
544
|
+
var aExistingState = mDeltaInfo.existingState;
|
|
545
|
+
var aChangedState = mDeltaInfo.changedState;
|
|
546
|
+
var sOperation = mDeltaInfo.operation;
|
|
547
|
+
var sSetAttribute = mDeltaInfo.deltaAttribute;
|
|
548
|
+
|
|
549
|
+
var aSetterChanges = [];
|
|
550
|
+
|
|
551
|
+
aChangedState.forEach(function(oItem){
|
|
552
|
+
//check if the provided state item holds the value to check for
|
|
553
|
+
if (oItem.hasOwnProperty(sSetAttribute)) {
|
|
554
|
+
var oExistingItem = aExistingState.find(function(oExisting){return oExisting.name == oItem.name;});
|
|
555
|
+
|
|
556
|
+
//compare to identify delta (only create a change if really necessary)
|
|
557
|
+
var vOldValue = oExistingItem && oExistingItem.hasOwnProperty(sSetAttribute) && oExistingItem[sSetAttribute];
|
|
558
|
+
var vNewValue = oItem[sSetAttribute];
|
|
559
|
+
var bValueChanged = vOldValue !== vNewValue;
|
|
560
|
+
if (bValueChanged) {
|
|
561
|
+
aSetterChanges.push(this._createAddRemoveChange(oControl, sOperation, {
|
|
562
|
+
[oItem.hasOwnProperty("key") ? "key" : "name"]: oItem.key || oItem.name,
|
|
563
|
+
targetAggregation: this.getTargetAggregation(),
|
|
564
|
+
value: oItem[sSetAttribute]
|
|
565
|
+
}));
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}.bind(this));
|
|
540
569
|
|
|
541
|
-
|
|
570
|
+
return aSetterChanges;
|
|
571
|
+
};
|
|
572
|
+
|
|
573
|
+
SelectionController.prototype.changesToState = function(aChanges) {
|
|
542
574
|
|
|
543
|
-
|
|
544
|
-
var oStateDiffContent = merge({}, oChange.changeSpecificData.content);
|
|
545
|
-
var iIndex = oStateDiffContent.index;
|
|
546
|
-
delete oStateDiffContent.index;
|
|
575
|
+
var aState = [];
|
|
547
576
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
577
|
+
aChanges.forEach(function(oChange){
|
|
578
|
+
var oStateDiffContent = merge({}, oChange.changeSpecificData.content);
|
|
579
|
+
var iIndex = oStateDiffContent.index;
|
|
580
|
+
delete oStateDiffContent.index;
|
|
581
|
+
|
|
582
|
+
//set the position in case its explicitly provided and different to the current position
|
|
583
|
+
if (iIndex !== undefined) {
|
|
584
|
+
oStateDiffContent.position = iIndex;
|
|
585
|
+
}
|
|
552
586
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
587
|
+
//set the presence attribute to false in case of an explicit remove
|
|
588
|
+
if (oChange.changeSpecificData.changeType === this.getChangeOperations()["remove"]) {
|
|
589
|
+
oStateDiffContent[this._getPresenceAttribute()] = false;
|
|
590
|
+
}
|
|
557
591
|
|
|
558
|
-
|
|
559
|
-
|
|
592
|
+
aState.push(oStateDiffContent);
|
|
593
|
+
}.bind(this));
|
|
560
594
|
|
|
561
|
-
|
|
562
|
-
|
|
595
|
+
return aState;
|
|
596
|
+
};
|
|
563
597
|
|
|
564
|
-
|
|
598
|
+
SelectionController.prototype.prepareAdaptationData = function(oPropertyHelper, fnEnhace, bGroupData) {
|
|
565
599
|
|
|
566
|
-
|
|
567
|
-
|
|
600
|
+
var aItems = [];
|
|
601
|
+
var mItemsGrouped = bGroupData ? {} : null;
|
|
568
602
|
|
|
569
|
-
|
|
603
|
+
var bEnhance = fnEnhace instanceof Function;
|
|
570
604
|
|
|
571
|
-
|
|
605
|
+
oPropertyHelper.getProperties().forEach(function(oProperty) {
|
|
572
606
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
607
|
+
var mItem = {};
|
|
608
|
+
mItem.key = oProperty.name || oProperty.key;
|
|
609
|
+
mItem.name = oProperty.name || oProperty.key;
|
|
576
610
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
611
|
+
if (bEnhance) {
|
|
612
|
+
var bIsValid = fnEnhace(mItem, oProperty);
|
|
613
|
+
if (!bIsValid) {
|
|
614
|
+
return;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
583
617
|
|
|
584
|
-
|
|
585
|
-
|
|
618
|
+
mItem.label = oProperty.label || mItem.key;
|
|
619
|
+
mItem.tooltip = oProperty.tooltip;
|
|
586
620
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
621
|
+
if (mItemsGrouped) {
|
|
622
|
+
mItem.group = oProperty.group ? oProperty.group : "BASIC";
|
|
623
|
+
mItem.groupLabel = oProperty.groupLabel;
|
|
624
|
+
mItemsGrouped[mItem.group] = mItemsGrouped[mItem.group] ? mItemsGrouped[mItem.group] : [];
|
|
625
|
+
mItemsGrouped[mItem.group].push(mItem);
|
|
626
|
+
}
|
|
593
627
|
|
|
594
|
-
|
|
628
|
+
aItems.push(mItem);
|
|
595
629
|
|
|
596
|
-
|
|
630
|
+
});
|
|
597
631
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
632
|
+
var oAdaptationData = {
|
|
633
|
+
items: aItems
|
|
634
|
+
};
|
|
601
635
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
636
|
+
if (mItemsGrouped) {
|
|
637
|
+
oAdaptationData.itemsGrouped = this._buildGroupStructure(mItemsGrouped);
|
|
638
|
+
}
|
|
605
639
|
|
|
606
|
-
|
|
640
|
+
return oAdaptationData;
|
|
607
641
|
|
|
608
|
-
|
|
642
|
+
};
|
|
609
643
|
|
|
610
644
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
645
|
+
SelectionController.prototype._buildGroupStructure = function(mItemsGrouped) {
|
|
646
|
+
var aGroupedItems = [];
|
|
647
|
+
Object.keys(mItemsGrouped).forEach(function(sGroupKey){
|
|
648
|
+
this.sortP13nData("generic", mItemsGrouped[sGroupKey]);
|
|
649
|
+
aGroupedItems.push({
|
|
650
|
+
group: sGroupKey,
|
|
651
|
+
groupLabel: mItemsGrouped[sGroupKey][0].groupLabel || sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("p13n.BASIC_DEFAULT_GROUP"),//Grouplabel might not be necessarily be propagated to every item
|
|
652
|
+
groupVisible: true,
|
|
653
|
+
items: mItemsGrouped[sGroupKey]
|
|
654
|
+
});
|
|
655
|
+
}.bind(this));
|
|
656
|
+
return aGroupedItems;
|
|
623
657
|
|
|
624
|
-
|
|
658
|
+
};
|
|
625
659
|
|
|
626
|
-
|
|
660
|
+
SelectionController.prototype.sortP13nData = function (oSorting, aItems) {
|
|
627
661
|
|
|
628
|
-
|
|
662
|
+
var mP13nTypeSorting = oSorting;
|
|
629
663
|
|
|
630
|
-
|
|
631
|
-
|
|
664
|
+
var sPositionAttribute = mP13nTypeSorting.position;
|
|
665
|
+
var sSelectedAttribute = mP13nTypeSorting.visible;
|
|
632
666
|
|
|
633
|
-
|
|
667
|
+
var sLocale = Configuration.getLocale().toString();
|
|
634
668
|
|
|
635
|
-
|
|
669
|
+
var oCollator = window.Intl.Collator(sLocale, {});
|
|
636
670
|
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
671
|
+
// group selected / unselected --> sort alphabetically in each group
|
|
672
|
+
aItems.sort(function(mField1, mField2) {
|
|
673
|
+
if (mField1[sSelectedAttribute] && mField2[sSelectedAttribute]) {
|
|
674
|
+
return (mField1[sPositionAttribute] || 0) - (mField2[sPositionAttribute] || 0);
|
|
675
|
+
} else if (mField1[sSelectedAttribute]) {
|
|
676
|
+
return -1;
|
|
677
|
+
} else if (mField2[sSelectedAttribute]) {
|
|
678
|
+
return 1;
|
|
679
|
+
} else if (!mField1[sSelectedAttribute] && !mField2[sSelectedAttribute]) {
|
|
680
|
+
return oCollator.compare(mField1.label, mField2.label);
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
};
|
|
650
684
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
685
|
+
SelectionController.prototype.arrayToMap = function(aArray) {
|
|
686
|
+
return aArray.reduce(function(mMap, oProp, iIndex){
|
|
687
|
+
mMap[oProp.key] = oProp;
|
|
688
|
+
mMap[oProp.key].position = iIndex;
|
|
689
|
+
return mMap;
|
|
690
|
+
}, {});
|
|
691
|
+
};
|
|
658
692
|
|
|
659
|
-
|
|
693
|
+
SelectionController.prototype.destroy = function() {
|
|
660
694
|
BaseObject.prototype.destroy.apply(this, arguments);
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
695
|
+
this._oAdaptationControl = null;
|
|
696
|
+
this._bLiveMode = null;
|
|
697
|
+
this._oPanel = null;
|
|
698
|
+
this._bResetEnabled = null;
|
|
699
|
+
this._oAdaptationModel = null;
|
|
700
|
+
};
|
|
667
701
|
|
|
668
702
|
return SelectionController;
|
|
669
703
|
|