@openui5/sap.m 1.92.0 → 1.93.3

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.
Files changed (399) hide show
  1. package/.reuse/dep5 +5 -0
  2. package/THIRDPARTY.txt +10 -1
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +1 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -1
  12. package/src/sap/m/Bar.js +14 -1
  13. package/src/sap/m/Breadcrumbs.js +1 -1
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +9 -6
  17. package/src/sap/m/Carousel.js +1 -1
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +9 -4
  20. package/src/sap/m/CheckBoxRenderer.js +1 -1
  21. package/src/sap/m/ColorPalette.js +1 -1
  22. package/src/sap/m/ColorPalettePopover.js +1 -1
  23. package/src/sap/m/Column.js +9 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +8 -2
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +1 -1
  32. package/src/sap/m/ComboBoxBase.js +1 -1
  33. package/src/sap/m/ComboBoxTextField.js +1 -1
  34. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  35. package/src/sap/m/CustomListItem.js +1 -1
  36. package/src/sap/m/CustomTile.js +1 -1
  37. package/src/sap/m/CustomTreeItem.js +1 -1
  38. package/src/sap/m/DatePicker.js +9 -2
  39. package/src/sap/m/DateRangeSelection.js +2 -2
  40. package/src/sap/m/DateTimeField.js +69 -1
  41. package/src/sap/m/DateTimeInput.js +1 -1
  42. package/src/sap/m/DateTimePicker.js +15 -8
  43. package/src/sap/m/Dialog.js +3 -3
  44. package/src/sap/m/DisplayListItem.js +1 -1
  45. package/src/sap/m/DraftIndicator.js +1 -1
  46. package/src/sap/m/DynamicDate.js +53 -8
  47. package/src/sap/m/DynamicDateFormat.js +12 -1
  48. package/src/sap/m/DynamicDateOption.js +1 -1
  49. package/src/sap/m/DynamicDateRange.js +96 -17
  50. package/src/sap/m/DynamicDateUtil.js +20 -2
  51. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  52. package/src/sap/m/ExpandableText.js +4 -2
  53. package/src/sap/m/FacetFilter.js +1 -1
  54. package/src/sap/m/FacetFilterItem.js +1 -1
  55. package/src/sap/m/FacetFilterList.js +2 -2
  56. package/src/sap/m/FeedContent.js +1 -1
  57. package/src/sap/m/FeedInput.js +5 -2
  58. package/src/sap/m/FeedListItem.js +1 -1
  59. package/src/sap/m/FeedListItemAction.js +1 -1
  60. package/src/sap/m/Fiori20Adapter.js +2 -2
  61. package/src/sap/m/FlexBox.js +32 -67
  62. package/src/sap/m/FlexItemData.js +1 -1
  63. package/src/sap/m/FormattedText.js +1 -1
  64. package/src/sap/m/GenericTag.js +1 -1
  65. package/src/sap/m/GenericTile.js +1 -1
  66. package/src/sap/m/GenericTileRenderer.js +46 -8
  67. package/src/sap/m/GroupHeaderListItem.js +1 -1
  68. package/src/sap/m/GrowingEnablement.js +31 -34
  69. package/src/sap/m/GrowingList.js +1 -1
  70. package/src/sap/m/HBox.js +1 -1
  71. package/src/sap/m/HeaderContainer.js +1 -1
  72. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  73. package/src/sap/m/IconTabBar.js +1 -2
  74. package/src/sap/m/IconTabBarSelectList.js +1 -1
  75. package/src/sap/m/IconTabFilter.js +68 -32
  76. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  77. package/src/sap/m/IconTabHeader.js +18 -7
  78. package/src/sap/m/IconTabHeaderRenderer.js +1 -0
  79. package/src/sap/m/IconTabSeparator.js +1 -1
  80. package/src/sap/m/Image.js +1 -1
  81. package/src/sap/m/ImageContent.js +1 -1
  82. package/src/sap/m/Input.js +23 -15
  83. package/src/sap/m/InputBase.js +4 -2
  84. package/src/sap/m/InputListItem.js +1 -1
  85. package/src/sap/m/Label.js +1 -1
  86. package/src/sap/m/LightBox.js +1 -1
  87. package/src/sap/m/LightBoxItem.js +1 -1
  88. package/src/sap/m/Link.js +2 -2
  89. package/src/sap/m/List.js +1 -1
  90. package/src/sap/m/ListBase.js +50 -20
  91. package/src/sap/m/ListItemBase.js +8 -7
  92. package/src/sap/m/MaskEnabler.js +1 -1
  93. package/src/sap/m/MaskInput.js +1 -1
  94. package/src/sap/m/MaskInputRule.js +1 -1
  95. package/src/sap/m/Menu.js +1 -1
  96. package/src/sap/m/MenuButton.js +2 -2
  97. package/src/sap/m/MenuItem.js +1 -1
  98. package/src/sap/m/MenuListItem.js +1 -1
  99. package/src/sap/m/MessageBox.js +30 -0
  100. package/src/sap/m/MessageItem.js +1 -16
  101. package/src/sap/m/MessageListItem.js +1 -1
  102. package/src/sap/m/MessagePage.js +1 -1
  103. package/src/sap/m/MessagePopover.js +1 -4
  104. package/src/sap/m/MessagePopoverItem.js +1 -1
  105. package/src/sap/m/MessageStrip.js +1 -1
  106. package/src/sap/m/MessageStripUtilities.js +15 -2
  107. package/src/sap/m/MessageToast.js +2 -2
  108. package/src/sap/m/MessageView.js +17 -28
  109. package/src/sap/m/MultiComboBox.js +169 -164
  110. package/src/sap/m/MultiEditField.js +1 -1
  111. package/src/sap/m/MultiInput.js +2 -3
  112. package/src/sap/m/NavContainer.js +9 -7
  113. package/src/sap/m/NewsContent.js +1 -1
  114. package/src/sap/m/NotificationList.js +1 -1
  115. package/src/sap/m/NotificationListBase.js +1 -1
  116. package/src/sap/m/NotificationListGroup.js +1 -1
  117. package/src/sap/m/NotificationListItem.js +1 -1
  118. package/src/sap/m/NumericContent.js +1 -1
  119. package/src/sap/m/ObjectAttribute.js +1 -1
  120. package/src/sap/m/ObjectHeader.js +1 -1
  121. package/src/sap/m/ObjectHeaderRenderer.js +10 -7
  122. package/src/sap/m/ObjectIdentifier.js +1 -1
  123. package/src/sap/m/ObjectListItem.js +1 -1
  124. package/src/sap/m/ObjectMarker.js +1 -1
  125. package/src/sap/m/ObjectNumber.js +1 -1
  126. package/src/sap/m/ObjectStatus.js +1 -1
  127. package/src/sap/m/OverflowToolbar.js +10 -6
  128. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  129. package/src/sap/m/OverflowToolbarButton.js +1 -1
  130. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  131. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  132. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  133. package/src/sap/m/P13nColumnsItem.js +1 -1
  134. package/src/sap/m/P13nColumnsPanel.js +1 -1
  135. package/src/sap/m/P13nConditionPanel.js +1 -1
  136. package/src/sap/m/P13nDialog.js +1 -1
  137. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  138. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  139. package/src/sap/m/P13nFilterItem.js +1 -1
  140. package/src/sap/m/P13nFilterPanel.js +1 -1
  141. package/src/sap/m/P13nGroupItem.js +1 -1
  142. package/src/sap/m/P13nGroupPanel.js +1 -1
  143. package/src/sap/m/P13nItem.js +1 -1
  144. package/src/sap/m/P13nPanel.js +1 -1
  145. package/src/sap/m/P13nSelectionItem.js +1 -1
  146. package/src/sap/m/P13nSelectionPanel.js +1 -1
  147. package/src/sap/m/P13nSortItem.js +1 -1
  148. package/src/sap/m/P13nSortPanel.js +1 -1
  149. package/src/sap/m/PDFViewer.js +1 -1
  150. package/src/sap/m/Page.js +1 -1
  151. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  152. package/src/sap/m/PagingButton.js +1 -1
  153. package/src/sap/m/Panel.js +1 -1
  154. package/src/sap/m/PlanningCalendar.js +167 -44
  155. package/src/sap/m/PlanningCalendarHeader.js +36 -5
  156. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  157. package/src/sap/m/PlanningCalendarRow.js +1 -1
  158. package/src/sap/m/PlanningCalendarView.js +26 -2
  159. package/src/sap/m/Popover.js +11 -2
  160. package/src/sap/m/ProgressIndicator.js +1 -1
  161. package/src/sap/m/PullToRefresh.js +1 -1
  162. package/src/sap/m/QuickView.js +1 -1
  163. package/src/sap/m/QuickViewBase.js +1 -1
  164. package/src/sap/m/QuickViewCard.js +1 -1
  165. package/src/sap/m/QuickViewGroup.js +1 -1
  166. package/src/sap/m/QuickViewGroupElement.js +1 -1
  167. package/src/sap/m/QuickViewPage.js +5 -5
  168. package/src/sap/m/RadioButton.js +1 -1
  169. package/src/sap/m/RadioButtonGroup.js +1 -1
  170. package/src/sap/m/RangeSlider.js +1 -1
  171. package/src/sap/m/RatingIndicator.js +69 -29
  172. package/src/sap/m/ResponsivePopover.js +1 -1
  173. package/src/sap/m/ResponsiveScale.js +1 -1
  174. package/src/sap/m/ScrollBar.js +1 -1
  175. package/src/sap/m/ScrollContainer.js +1 -1
  176. package/src/sap/m/SearchField.js +34 -19
  177. package/src/sap/m/SearchFieldRenderer.js +13 -3
  178. package/src/sap/m/SegmentedButton.js +1 -1
  179. package/src/sap/m/SegmentedButtonItem.js +1 -1
  180. package/src/sap/m/SegmentedButtonRenderer.js +6 -0
  181. package/src/sap/m/Select.js +21 -13
  182. package/src/sap/m/SelectDialog.js +21 -49
  183. package/src/sap/m/SelectDialogBase.js +148 -0
  184. package/src/sap/m/SelectList.js +13 -3
  185. package/src/sap/m/SelectRenderer.js +19 -3
  186. package/src/sap/m/SelectionDetails.js +5 -2
  187. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  188. package/src/sap/m/SelectionDetailsItem.js +1 -1
  189. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  190. package/src/sap/m/Shell.js +1 -1
  191. package/src/sap/m/SimpleFixFlex.js +1 -1
  192. package/src/sap/m/SinglePlanningCalendar.js +4 -1
  193. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  194. package/src/sap/m/SinglePlanningCalendarGrid.js +48 -5
  195. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +27 -19
  196. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +11 -1
  197. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  198. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  200. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  201. package/src/sap/m/SlideTile.js +3 -3
  202. package/src/sap/m/Slider.js +1 -1
  203. package/src/sap/m/SliderRenderer.js +2 -2
  204. package/src/sap/m/SliderTooltip.js +1 -1
  205. package/src/sap/m/SliderTooltipBase.js +1 -1
  206. package/src/sap/m/SliderTooltipContainer.js +1 -1
  207. package/src/sap/m/SplitApp.js +1 -1
  208. package/src/sap/m/SplitButton.js +1 -1
  209. package/src/sap/m/SplitButtonRenderer.js +5 -1
  210. package/src/sap/m/SplitContainer.js +1 -1
  211. package/src/sap/m/StandardDynamicDateOption.js +1 -1
  212. package/src/sap/m/StandardListItem.js +1 -1
  213. package/src/sap/m/StandardTile.js +1 -1
  214. package/src/sap/m/StandardTreeItem.js +1 -1
  215. package/src/sap/m/StepInput.js +1 -1
  216. package/src/sap/m/SuggestionItem.js +1 -1
  217. package/src/sap/m/SuggestionsPopover.js +44 -1
  218. package/src/sap/m/Switch.js +9 -1
  219. package/src/sap/m/TabContainer.js +1 -1
  220. package/src/sap/m/TabContainerItem.js +1 -1
  221. package/src/sap/m/TabStrip.js +1 -1
  222. package/src/sap/m/TabStripItem.js +1 -1
  223. package/src/sap/m/Table.js +48 -6
  224. package/src/sap/m/TablePersoController.js +1 -1
  225. package/src/sap/m/TablePersoDialog.js +1 -1
  226. package/src/sap/m/TablePersoProvider.js +1 -1
  227. package/src/sap/m/TableRenderer.js +3 -2
  228. package/src/sap/m/TableSelectDialog.js +21 -46
  229. package/src/sap/m/Text.js +2 -2
  230. package/src/sap/m/TextArea.js +1 -1
  231. package/src/sap/m/Tile.js +1 -1
  232. package/src/sap/m/TileContainer.js +2 -2
  233. package/src/sap/m/TileContent.js +1 -1
  234. package/src/sap/m/TimePicker.js +8 -3
  235. package/src/sap/m/TimePickerClock.js +1 -1
  236. package/src/sap/m/TimePickerClocks.js +3 -1
  237. package/src/sap/m/TimePickerInputs.js +3 -1
  238. package/src/sap/m/TimePickerInternals.js +1 -1
  239. package/src/sap/m/TimePickerSlider.js +1 -1
  240. package/src/sap/m/TimePickerSliders.js +1 -1
  241. package/src/sap/m/TimePickerSlidersRenderer.js +0 -1
  242. package/src/sap/m/Title.js +1 -1
  243. package/src/sap/m/TitlePropagationSupport.js +1 -1
  244. package/src/sap/m/ToggleButton.js +1 -1
  245. package/src/sap/m/Token.js +1 -1
  246. package/src/sap/m/Tokenizer.js +2 -1
  247. package/src/sap/m/TokenizerRenderer.js +1 -0
  248. package/src/sap/m/Toolbar.js +1 -1
  249. package/src/sap/m/ToolbarLayoutData.js +1 -1
  250. package/src/sap/m/ToolbarSeparator.js +1 -1
  251. package/src/sap/m/ToolbarSpacer.js +1 -1
  252. package/src/sap/m/Tree.js +1 -1
  253. package/src/sap/m/TreeItemBase.js +4 -4
  254. package/src/sap/m/UploadCollection.js +1 -1
  255. package/src/sap/m/UploadCollectionItem.js +1 -1
  256. package/src/sap/m/UploadCollectionParameter.js +1 -1
  257. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  258. package/src/sap/m/VBox.js +1 -1
  259. package/src/sap/m/ValueStateHeader.js +1 -1
  260. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  261. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  262. package/src/sap/m/ViewSettingsDialog.js +7 -7
  263. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  264. package/src/sap/m/ViewSettingsItem.js +1 -1
  265. package/src/sap/m/VisibleItem.js +1 -1
  266. package/src/sap/m/WheelSlider.js +1 -1
  267. package/src/sap/m/WheelSliderContainer.js +1 -1
  268. package/src/sap/m/Wizard.js +1 -1
  269. package/src/sap/m/WizardProgressNavigator.js +1 -1
  270. package/src/sap/m/WizardStep.js +1 -1
  271. package/src/sap/m/changeHandler/AddTableColumn.js +76 -44
  272. package/src/sap/m/changeHandler/ChangeLinkTarget.js +18 -23
  273. package/src/sap/m/changeHandler/CombineButtons.js +280 -173
  274. package/src/sap/m/changeHandler/MoveTableColumns.js +143 -111
  275. package/src/sap/m/changeHandler/SplitMenuButton.js +141 -93
  276. package/src/sap/m/inputUtils/calculateSelectionStart.js +1 -1
  277. package/src/sap/m/inputUtils/wordStartsWithValue.js +5 -1
  278. package/src/sap/m/library.js +26 -2
  279. package/src/sap/m/messagebundle.properties +10 -1
  280. package/src/sap/m/messagebundle_ar.properties +7 -0
  281. package/src/sap/m/messagebundle_bg.properties +7 -0
  282. package/src/sap/m/messagebundle_ca.properties +7 -0
  283. package/src/sap/m/messagebundle_cs.properties +7 -0
  284. package/src/sap/m/messagebundle_cy.properties +7 -0
  285. package/src/sap/m/messagebundle_da.properties +7 -0
  286. package/src/sap/m/messagebundle_de.properties +11 -4
  287. package/src/sap/m/messagebundle_el.properties +7 -0
  288. package/src/sap/m/messagebundle_en.properties +7 -0
  289. package/src/sap/m/messagebundle_en_GB.properties +7 -0
  290. package/src/sap/m/messagebundle_en_US_sappsd.properties +6 -0
  291. package/src/sap/m/messagebundle_en_US_saptrc.properties +7 -0
  292. package/src/sap/m/messagebundle_es.properties +7 -0
  293. package/src/sap/m/messagebundle_es_MX.properties +7 -0
  294. package/src/sap/m/messagebundle_et.properties +7 -0
  295. package/src/sap/m/messagebundle_fi.properties +7 -0
  296. package/src/sap/m/messagebundle_fr.properties +7 -0
  297. package/src/sap/m/messagebundle_fr_CA.properties +7 -0
  298. package/src/sap/m/messagebundle_hi.properties +7 -0
  299. package/src/sap/m/messagebundle_hr.properties +7 -0
  300. package/src/sap/m/messagebundle_hu.properties +7 -0
  301. package/src/sap/m/messagebundle_id.properties +7 -0
  302. package/src/sap/m/messagebundle_it.properties +7 -0
  303. package/src/sap/m/messagebundle_iw.properties +7 -0
  304. package/src/sap/m/messagebundle_ja.properties +7 -0
  305. package/src/sap/m/messagebundle_kk.properties +7 -0
  306. package/src/sap/m/messagebundle_ko.properties +7 -0
  307. package/src/sap/m/messagebundle_lt.properties +7 -0
  308. package/src/sap/m/messagebundle_lv.properties +7 -0
  309. package/src/sap/m/messagebundle_ms.properties +7 -0
  310. package/src/sap/m/messagebundle_nl.properties +7 -0
  311. package/src/sap/m/messagebundle_no.properties +7 -0
  312. package/src/sap/m/messagebundle_pl.properties +7 -0
  313. package/src/sap/m/messagebundle_pt.properties +7 -0
  314. package/src/sap/m/messagebundle_pt_PT.properties +7 -0
  315. package/src/sap/m/messagebundle_ro.properties +7 -0
  316. package/src/sap/m/messagebundle_ru.properties +7 -0
  317. package/src/sap/m/messagebundle_sh.properties +7 -0
  318. package/src/sap/m/messagebundle_sk.properties +7 -0
  319. package/src/sap/m/messagebundle_sl.properties +7 -0
  320. package/src/sap/m/messagebundle_sv.properties +7 -0
  321. package/src/sap/m/messagebundle_th.properties +7 -0
  322. package/src/sap/m/messagebundle_tr.properties +7 -0
  323. package/src/sap/m/messagebundle_uk.properties +7 -0
  324. package/src/sap/m/messagebundle_vi.properties +7 -0
  325. package/src/sap/m/messagebundle_zh_CN.properties +7 -0
  326. package/src/sap/m/messagebundle_zh_TW.properties +7 -0
  327. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  328. package/src/sap/m/plugins/DataStateIndicator.js +5 -3
  329. package/src/sap/m/plugins/PasteProvider.js +1 -1
  330. package/src/sap/m/plugins/PluginBase.js +1 -1
  331. package/src/sap/m/semantic/AddAction.js +1 -1
  332. package/src/sap/m/semantic/CancelAction.js +1 -1
  333. package/src/sap/m/semantic/DeleteAction.js +1 -1
  334. package/src/sap/m/semantic/DetailPage.js +1 -1
  335. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  336. package/src/sap/m/semantic/EditAction.js +1 -1
  337. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  338. package/src/sap/m/semantic/FilterAction.js +1 -1
  339. package/src/sap/m/semantic/FilterSelect.js +1 -1
  340. package/src/sap/m/semantic/FlagAction.js +1 -1
  341. package/src/sap/m/semantic/ForwardAction.js +1 -1
  342. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  343. package/src/sap/m/semantic/GroupAction.js +1 -1
  344. package/src/sap/m/semantic/GroupSelect.js +1 -1
  345. package/src/sap/m/semantic/MainAction.js +1 -1
  346. package/src/sap/m/semantic/MasterPage.js +1 -1
  347. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  348. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  349. package/src/sap/m/semantic/NegativeAction.js +1 -1
  350. package/src/sap/m/semantic/OpenInAction.js +1 -1
  351. package/src/sap/m/semantic/PositiveAction.js +1 -1
  352. package/src/sap/m/semantic/PrintAction.js +1 -1
  353. package/src/sap/m/semantic/SaveAction.js +1 -1
  354. package/src/sap/m/semantic/Segment.js +1 -1
  355. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  356. package/src/sap/m/semantic/SemanticButton.js +1 -1
  357. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  358. package/src/sap/m/semantic/SemanticControl.js +1 -1
  359. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  360. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  361. package/src/sap/m/semantic/SemanticPage.js +1 -1
  362. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  363. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  364. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  365. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  366. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  367. package/src/sap/m/semantic/ShareMenu.js +1 -1
  368. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  369. package/src/sap/m/semantic/SortAction.js +1 -1
  370. package/src/sap/m/semantic/SortSelect.js +1 -1
  371. package/src/sap/m/themes/base/Carousel.less +37 -2
  372. package/src/sap/m/themes/base/CheckBox.less +1 -1
  373. package/src/sap/m/themes/base/Dialog.less +11 -5
  374. package/src/sap/m/themes/base/FeedInput.less +5 -6
  375. package/src/sap/m/themes/base/GenericTile.less +130 -7
  376. package/src/sap/m/themes/base/IconTabBar.less +179 -64
  377. package/src/sap/m/themes/base/IconTabBarSelectList.less +12 -2
  378. package/src/sap/m/themes/base/InputBase.less +0 -24
  379. package/src/sap/m/themes/base/Label.less +6 -0
  380. package/src/sap/m/themes/base/ListItemBase.less +4 -2
  381. package/src/sap/m/themes/base/NotificationListBase.less +1 -1
  382. package/src/sap/m/themes/base/ObjectHeader.less +2 -1
  383. package/src/sap/m/themes/base/ObjectStatus.less +9 -2
  384. package/src/sap/m/themes/base/PlanningCalendar.less +23 -7
  385. package/src/sap/m/themes/base/Popover.less +1 -1
  386. package/src/sap/m/themes/base/ProgressIndicator.less +7 -6
  387. package/src/sap/m/themes/base/RadioButton.less +3 -0
  388. package/src/sap/m/themes/base/SearchField.less +22 -15
  389. package/src/sap/m/themes/base/SegmentedButton.less +1 -1
  390. package/src/sap/m/themes/base/StandardListItem.less +5 -1
  391. package/src/sap/m/themes/base/Table.less +14 -12
  392. package/src/sap/m/themes/base/Text.less +6 -0
  393. package/src/sap/m/themes/base/TimePicker.less +5 -1
  394. package/src/sap/m/themes/base/TimePickerSliders.less +1 -5
  395. package/src/sap/m/themes/base/Toolbar.less +6 -0
  396. package/src/sap/m/themes/base/ViewSettingsDialog.less +1 -1
  397. package/src/sap/m/themes/sap_hcb/InputBase.less +25 -0
  398. package/src/sap/m/upload/UploadSet.js +1 -1
  399. package/src/sap/m/upload/UploadSetItem.js +16 -1
@@ -21,11 +21,162 @@ sap.ui.define([
21
21
  *
22
22
  * @alias sap.m.changeHandler.CombineButtons
23
23
  * @author SAP SE
24
- * @version 1.92.0
24
+ * @version 1.93.3
25
25
  * @experimental Since 1.48
26
26
  */
27
27
  var CombineButtons = {};
28
28
 
29
+ function fnHandleMenuItems(aButtons, oModifier, oAppComponent, oMenu, oParent, sParentAggregation, oView, oChangeDefinition, oRevertData) {
30
+ var sPropertyEnabled = "";
31
+ var sPropertyVisible = "";
32
+ var sOR = "";
33
+ var aMenuButtonModels = [];
34
+ var sCombineButtonsModelName = "$sap.m.flexibility.CombineButtonsModel";
35
+ var bIsRtl = sap.ui.getCore().getConfiguration().getRTL();
36
+ var aMenuButtonName = [];
37
+
38
+ return aButtons.reduce(function(oPreviousPromise, oButton, index) {
39
+ var oIdToSave;
40
+ var iIndex = index;
41
+ var oMenuItem;
42
+ var oManagedObjectModel;
43
+ var oSelector = oChangeDefinition.content.buttonsIdForSave[iIndex];
44
+ var sButtonText;
45
+ var sModelName = "$sap.m.flexibility.MenuButtonModel" + iIndex;
46
+ return oPreviousPromise
47
+ .then(oModifier.getProperty.bind(oModifier, oButton, "text"))
48
+ .then(function(sRetrievedButtonText) {
49
+ sButtonText = sRetrievedButtonText;
50
+ return oModifier.createControl("sap.m.MenuItem", oAppComponent, oView, oSelector);
51
+ })
52
+ .then(function(oCreatedMenuItem) {
53
+ oMenuItem = oCreatedMenuItem;
54
+ // Save the original position of the button
55
+ return oModifier.findIndexInParentAggregation(oButton);
56
+ })
57
+ .then(function(iIndexInParentAggregation) {
58
+ oRevertData.insertIndexes[iIndex] = iIndexInParentAggregation;
59
+ return oModifier.attachEvent(
60
+ oMenuItem,
61
+ "press",
62
+ "sap.m.changeHandler.CombineButtons.pressHandler",
63
+ {
64
+ selector: oModifier.getSelector(oButton, oAppComponent),
65
+ appComponentId: oAppComponent.getId()
66
+ }
67
+ );
68
+ })
69
+ .then(function() {
70
+ return oModifier.createControl(
71
+ "sap.ui.fl.util.ManagedObjectModel",
72
+ oAppComponent,
73
+ oView,
74
+ Object.assign({}, oSelector, {
75
+ id: oSelector.id + '-managedObjectModel'
76
+ }),
77
+ {
78
+ object: oButton,
79
+ name: sCombineButtonsModelName
80
+ }
81
+ );
82
+ })
83
+ .then(function(oCreatedManagedObjectModel) {
84
+ oManagedObjectModel = oCreatedManagedObjectModel;
85
+ // ManagedObjectModel should be placed in `dependents` aggregation of MenuItem
86
+ return oModifier.insertAggregation(oMenuItem, "dependents", oManagedObjectModel, 0, oView);
87
+ })
88
+ .then(function () {
89
+ return oModifier.createControl(
90
+ "sap.ui.core.CustomData",
91
+ oAppComponent,
92
+ oView,
93
+ Object.assign({}, oSelector, {
94
+ id: oSelector.id + '-customData'
95
+ }),
96
+ {
97
+ key: "{ path: '" + sCombineButtonsModelName + ">key' }",
98
+ value: "{ path: '" + sCombineButtonsModelName + ">value' }"
99
+ }
100
+ );
101
+ })
102
+ .then(function(oCustomData) {
103
+ oModifier.bindProperty(oMenuItem, "text", sCombineButtonsModelName + ">/text");
104
+ oModifier.bindProperty(oMenuItem, "icon", sCombineButtonsModelName + ">/icon");
105
+ oModifier.bindProperty(oMenuItem, "enabled", sCombineButtonsModelName + ">/enabled");
106
+ oModifier.bindProperty(oMenuItem, "visible", sCombineButtonsModelName + ">/visible");
107
+ return oModifier.bindAggregation(oMenuItem, "customData", {
108
+ path: sCombineButtonsModelName + ">/customData",
109
+ template: oCustomData,
110
+ templateShareable: false
111
+ }, oView);
112
+ })
113
+ .then(function() {
114
+ // FIXME: will not work in XML in case original button has a binding on `text` property
115
+ if (sButtonText) {
116
+ bIsRtl ? aMenuButtonName.unshift(sButtonText) : aMenuButtonName.push(sButtonText);
117
+ }
118
+ // Add suffix to the id, so we can get the original ids of the combined buttons
119
+ // when we want to split the menu. The suffix is used in SplitMenuButton change handler.
120
+ oSelector.id = oSelector.id + "-originalButtonId"; // FIXME: do not mutate original object!
121
+
122
+ // Create CustomData, holding the original ids of the combined buttons
123
+ return oModifier.createControl("sap.ui.core.CustomData", oAppComponent, oView, oSelector);
124
+ })
125
+ .then(function(oRetrievedId) {
126
+ oIdToSave = oRetrievedId;
127
+ oModifier.setProperty(oIdToSave, "key", "originalButtonId");
128
+ oModifier.setProperty(oIdToSave, "value", oModifier.getId(oButton));
129
+ // FIXME: fix implementation of ObjectPageDynamicHeaderTitle and remove next line
130
+ return oModifier.removeAggregation(oParent, sParentAggregation, oButton);
131
+ })
132
+
133
+ // Adding each button control to the container's dependents aggregation
134
+ .then(function() {
135
+ return oModifier.insertAggregation(oParent, "dependents", oButton, 0, oView);
136
+ })
137
+
138
+ // Saving original ID to original button to avoid conflict with aggregation binding for customData aggregation.
139
+ // The new MenuItem will receive this data via ManagedObjectModel synchronization.
140
+ .then(function() {
141
+ oModifier.insertAggregation(oButton, "customData", oIdToSave, 0, oView);
142
+ })
143
+ .then(function() {
144
+ oModifier.insertAggregation(oMenu, "items", oMenuItem, iIndex, oView);
145
+ })
146
+
147
+ // Create ManagedObjectModel for every MenuItem
148
+ // later it will be placed in dependents aggregation of the MenuButton
149
+ // and enabled and visibility properties of each item will be bound to the enabled and visibility property of the MenuButton
150
+ .then(function() {
151
+ return oModifier.createControl(
152
+ "sap.ui.fl.util.ManagedObjectModel",
153
+ oAppComponent,
154
+ oView,
155
+ Object.assign({}, oSelector, {
156
+ id: oSelector.id + '-managedObjectModelMenuItem'
157
+ }),
158
+ {
159
+ object: oMenuItem,
160
+ name: sModelName
161
+ }
162
+ );
163
+ })
164
+ .then(function(oCreatedMenuButtonModel) {
165
+ aMenuButtonModels[iIndex] = oCreatedMenuButtonModel;
166
+ // create binding expression for the visibility and enabled property of the MenuButton
167
+ sPropertyEnabled = sPropertyEnabled + sOR + "${" + sModelName + ">/enabled}";
168
+ sPropertyVisible = sPropertyVisible + sOR + "${" + sModelName + ">/visible}";
169
+ sOR = " || ";
170
+ return {
171
+ menuButtonModels: aMenuButtonModels,
172
+ menuButtonName: aMenuButtonName,
173
+ propertyEnabled: sPropertyEnabled,
174
+ propertyVisible: sPropertyVisible
175
+ };
176
+ });
177
+ }, Promise.resolve());
178
+ }
179
+
29
180
  /**
30
181
  * Combines sap.m.Button(s) into a sap.m.MenuButton
31
182
  *
@@ -33,180 +184,123 @@ sap.ui.define([
33
184
  * @param {sap.m.Bar} oControl - Control containing the buttons
34
185
  * @param {object} mPropertyBag - Map of properties
35
186
  * @param {object} mPropertyBag.modifier - Modifier for the controls
36
- * @return {boolean} true if change could be applied
187
+ * @return {Promise} Promise resolving when the change was applied
37
188
  *
38
189
  * @public
39
190
  */
40
191
  CombineButtons.applyChange = function(oChange, oControl, mPropertyBag) {
41
192
  if (mPropertyBag.modifier.targets !== "jsControlTree") {
42
- throw new Error("Combine buttons change can't be applied on XML tree");
193
+ return Promise.reject(new Error("Combine buttons change can't be applied on XML tree"));
43
194
  }
44
195
 
45
196
  var oChangeDefinition = oChange.getDefinition();
46
197
  var oModifier = mPropertyBag.modifier;
47
198
  var oView = mPropertyBag.view;
48
199
  var oAppComponent = mPropertyBag.appComponent;
49
- var oSourceControl = oModifier.bySelector(oChangeDefinition.content.combineButtonSelectors[0], oAppComponent, oView);
50
- var oParent = oModifier.getParent(oSourceControl); // === oControl
200
+ var oParent;
201
+ var oSourceControl;
51
202
  var iAggregationIndex;
52
203
  var sParentAggregation;
53
204
  var aButtons;
54
- var bIsRtl = sap.ui.getCore().getConfiguration().getRTL();
55
205
  var oMenu;
56
206
  var oMenuButton;
57
- var aMenuButtonName = [];
58
- var sPropertyEnabled = "";
59
- var sPropertyVisible = "";
60
- var sOR = "";
61
207
  var oRevertData = {
62
208
  parentAggregation: "",
63
209
  insertIndexes: []
64
210
  };
65
211
  var aMenuButtonModels = [];
212
+ var aMenuButtonName = [];
66
213
 
67
- aButtons = oChangeDefinition.content.combineButtonSelectors.map(function (oCombineButtonSelector) {
68
- return oModifier.bySelector(oCombineButtonSelector, oAppComponent, oView);
69
- });
70
-
71
- sParentAggregation = oModifier.getParentAggregationName(aButtons[0], oParent);
72
- oRevertData.parentAggregation = sParentAggregation;
73
-
74
- iAggregationIndex = oModifier.findIndexInParentAggregation(oSourceControl);
75
-
76
- oMenu = oModifier.createControl("sap.m.Menu", oAppComponent, oView, oChangeDefinition.content.menuIdSelector);
77
-
78
- aButtons.forEach(function (oButton, iIndex) {
79
- var oIdToSave;
80
- var oMenuItem;
81
- var oSelector = oChangeDefinition.content.buttonsIdForSave[iIndex];
82
- var sButtonText = oModifier.getProperty(oButton, "text");
83
-
84
- oMenuItem = oModifier.createControl("sap.m.MenuItem", oAppComponent, oView, oSelector);
85
-
86
- // Save the original position of the button
87
- oRevertData.insertIndexes[iIndex] = oModifier.findIndexInParentAggregation(oButton);
88
-
89
- oModifier.attachEvent(
90
- oMenuItem,
91
- "press",
92
- "sap.m.changeHandler.CombineButtons.pressHandler",
93
- {
94
- selector: oModifier.getSelector(oButton, oAppComponent),
95
- appComponentId: oAppComponent.getId()
96
- }
97
- );
98
-
99
- var sModelName = "$sap.m.flexibility.CombineButtonsModel";
100
- var oManagedObjectModel = oModifier.createControl(
101
- "sap.ui.fl.util.ManagedObjectModel",
102
- oAppComponent,
103
- oView,
104
- Object.assign({}, oSelector, {
105
- id: oSelector.id + '-managedObjectModel'
106
- }),
107
- {
108
- object: oButton,
109
- name: sModelName
110
- }
111
- );
112
- // ManagedObjectModel should be placed in `dependents` aggregation of MenuItem
113
- oModifier.insertAggregation(oMenuItem, "dependents", oManagedObjectModel, 0, oView);
114
-
115
- oModifier.bindProperty(oMenuItem, "text", sModelName + ">/text");
116
- oModifier.bindProperty(oMenuItem, "icon", sModelName + ">/icon");
117
- oModifier.bindProperty(oMenuItem, "enabled", sModelName + ">/enabled");
118
- oModifier.bindProperty(oMenuItem, "visible", sModelName + ">/visible");
119
- oModifier.bindAggregation(oMenuItem, "customData", {
120
- path: sModelName + ">/customData",
121
- template: oModifier.createControl(
122
- "sap.ui.core.CustomData",
214
+ return Promise.resolve()
215
+ .then(oModifier.bySelector.bind(oModifier, oChangeDefinition.content.combineButtonSelectors[0], oAppComponent, oView))
216
+ .then(function(oReturnedSourceControl) {
217
+ oSourceControl = oReturnedSourceControl;
218
+ oParent = oModifier.getParent(oSourceControl); // === oControl
219
+ var aPromises = [];
220
+ oChangeDefinition.content.combineButtonSelectors.forEach(function(oCombineButtonSelector) {
221
+ var oPromise = Promise.resolve()
222
+ .then(oModifier.bySelector.bind(oModifier, oCombineButtonSelector, oAppComponent, oView));
223
+ aPromises.push(oPromise);
224
+ });
225
+ return Promise.all(aPromises);
226
+ })
227
+ .then(function(aCombineButtons){
228
+ aButtons = aCombineButtons;
229
+ return oModifier.getParentAggregationName(aButtons[0], oParent);
230
+ })
231
+ .then(function(sRetrievedParentAggregation){
232
+ sParentAggregation = sRetrievedParentAggregation;
233
+ oRevertData.parentAggregation = sParentAggregation;
234
+ return oModifier.findIndexInParentAggregation(oSourceControl);
235
+ })
236
+ .then(function(iAggrIndex){
237
+ iAggregationIndex = iAggrIndex;
238
+ return oModifier.createControl("sap.m.Menu", oAppComponent, oView, oChangeDefinition.content.menuIdSelector);
239
+ })
240
+ .then(function(oCreatedMenu){
241
+ oMenu = oCreatedMenu;
242
+ return fnHandleMenuItems(
243
+ aButtons,
244
+ oModifier,
123
245
  oAppComponent,
246
+ oMenu,
247
+ oParent,
248
+ sParentAggregation,
124
249
  oView,
125
- Object.assign({}, oSelector, {
126
- id: oSelector.id + '-customData'
127
- }),
128
- {
129
- key: "{ path: '" + sModelName + ">key' }",
130
- value: "{ path: '" + sModelName + ">value' }"
131
- }
132
- ),
133
- templateShareable: false
134
- }, oView);
135
-
136
- // FIXME: will not work in XML in case original button has a binding on `text` property
137
- if (sButtonText) {
138
- bIsRtl ? aMenuButtonName.unshift(sButtonText) : aMenuButtonName.push(sButtonText);
139
- }
140
-
141
- // Add suffix to the id, so we can get the original ids of the combined buttons
142
- // when we want to split the menu. The suffix is used in SplitMenuButton change handler.
143
- oSelector.id = oSelector.id + "-originalButtonId"; // FIXME: do not mutate original object!
144
-
145
- // Create CustomData, holding the original ids of the combined buttons
146
- oIdToSave = oModifier.createControl("sap.ui.core.CustomData", oAppComponent, oView, oSelector);
147
- oModifier.setProperty(oIdToSave, "key", "originalButtonId");
148
- oModifier.setProperty(oIdToSave, "value", oModifier.getId(oButton));
149
-
150
- // FIXME: fix implementation of ObjectPageDynamicHeaderTitle and remove next line
151
- oModifier.removeAggregation(oParent, sParentAggregation, oButton);
152
-
153
- // Adding each button control to the container's dependents aggregation
154
- oModifier.insertAggregation(oParent, "dependents", oButton, 0, oView);
155
-
156
- // Saving original ID to original button to avoid conflict with aggregation binding for customData aggregation.
157
- // The new MenuItem will receive this data via ManagedObjectModel synchronization.
158
- oModifier.insertAggregation(oButton, "customData", oIdToSave, 0, oView);
159
-
160
- oModifier.insertAggregation(oMenu, "items", oMenuItem, iIndex, oView);
161
-
162
- // Create ManagedObjectModel for every MenuItem
163
- // later it will be placed in dependents aggregation of the MenuButton
164
- // and enabled and visibility properties of each item will be bound to the enabled and visibility property of the MenuButton
165
- var sModelName = "$sap.m.flexibility.MenuButtonModel" + iIndex;
166
- aMenuButtonModels[iIndex] = oModifier.createControl(
167
- "sap.ui.fl.util.ManagedObjectModel",
250
+ oChangeDefinition,
251
+ oRevertData);
252
+ })
253
+ // Create MenuButton
254
+ .then(function(mMenuItemsInfo) {
255
+ aMenuButtonModels = mMenuItemsInfo.menuButtonModels;
256
+ aMenuButtonName = mMenuItemsInfo.menuButtonName;
257
+ var sPropertyVisible = mMenuItemsInfo.propertyVisible;
258
+ var sPropertyEnabled = mMenuItemsInfo.propertyEnabled;
259
+ return oModifier.createControl(
260
+ "sap.m.MenuButton",
168
261
  oAppComponent,
169
262
  oView,
170
- Object.assign({}, oSelector, {
171
- id: oSelector.id + '-managedObjectModelMenuItem'
172
- }),
263
+ oChangeDefinition.content.menuButtonIdSelector,
173
264
  {
174
- object: oMenuItem,
175
- name: sModelName
265
+ visible: "{= " + sPropertyVisible + "}",
266
+ enabled: "{= " + sPropertyEnabled + "}"
176
267
  }
177
268
  );
178
-
179
- // create binding expression for the visibility and enabled property of the MenuButton
180
- sPropertyEnabled = sPropertyEnabled + sOR + "${" + sModelName + ">/enabled}";
181
- sPropertyVisible = sPropertyVisible + sOR + "${" + sModelName + ">/visible}";
182
- sOR = " || ";
183
- });
184
-
185
- // Create MenuButton
186
- oMenuButton = oModifier.createControl(
187
- "sap.m.MenuButton",
188
- oAppComponent,
189
- oView,
190
- oChangeDefinition.content.menuButtonIdSelector,
191
- {
192
- visible: "{= " + sPropertyVisible + "}",
193
- enabled: "{= " + sPropertyEnabled + "}"
194
- }
195
- );
196
-
197
- // ManagedObjectModel should be placed in `dependents` aggregation of the MenuButton
198
- aMenuButtonModels.forEach(function (oModel) {
199
- oModifier.insertAggregation(oMenuButton, "dependents", oModel, 0, oView);
200
- });
201
-
202
- oModifier.setProperty(oMenuButton, "text", aMenuButtonName.join("/"));
203
- oModifier.insertAggregation(oMenuButton, "menu", oMenu, 0, oView);
204
- oModifier.insertAggregation(oParent, sParentAggregation, oMenuButton, iAggregationIndex, oView);
205
- oChange.setRevertData(oRevertData);
206
-
207
- return true;
269
+ })
270
+ .then(function(oCreatedMenuButton){
271
+ oMenuButton = oCreatedMenuButton;
272
+ // ManagedObjectModel should be placed in `dependents` aggregation of the MenuButton
273
+ return aMenuButtonModels.reduce(function (oPreviousPromise, oModel) {
274
+ return oPreviousPromise
275
+ .then(oModifier.insertAggregation.bind(oModifier, oMenuButton, "dependents", oModel, 0, oView));
276
+ }, Promise.resolve());
277
+ })
278
+ .then(function() {
279
+ oModifier.setProperty(oMenuButton, "text", aMenuButtonName.join("/"));
280
+ return Promise.resolve()
281
+ .then(oModifier.insertAggregation.bind(oModifier, oMenuButton, "menu", oMenu, 0, oView))
282
+ .then(oModifier.insertAggregation.bind(oModifier, oParent, sParentAggregation, oMenuButton, iAggregationIndex, oView))
283
+ .then(function(){
284
+ oChange.setRevertData(oRevertData);
285
+ });
286
+ });
208
287
  };
209
288
 
289
+ function fnDestroyControls(aCustomData, oModifier) {
290
+ return aCustomData.reduce(function(oPreviousInnerPromise, oCustomData) {
291
+ return oPreviousInnerPromise
292
+ .then(function(){
293
+ return oModifier.getProperty(oCustomData, "key");
294
+ })
295
+ .then(function(sKey) {
296
+ if (sKey === "originalButtonId"){
297
+ return oModifier.destroy(oCustomData);
298
+ }
299
+ return undefined;
300
+ });
301
+ }, Promise.resolve());
302
+ }
303
+
210
304
  /**
211
305
  * Reverts applied change
212
306
  *
@@ -215,7 +309,7 @@ sap.ui.define([
215
309
  * @param {object} mPropertyBag - Property bag containing the modifier and the view
216
310
  * @param {object} mPropertyBag.modifier - Modifier for the controls
217
311
  * @param {object} mPropertyBag.view - Application view
218
- * @return {boolean} true if successful
312
+ * @return {Promise} Promise resolving when change is reverted
219
313
  * @public
220
314
  */
221
315
  CombineButtons.revertChange = function(oChange, oControl, mPropertyBag) {
@@ -224,32 +318,47 @@ sap.ui.define([
224
318
  var oRevertData = oChange.getRevertData();
225
319
  var oChangeDefinition = oChange.getDefinition();
226
320
  var sParentAggregation = oRevertData.parentAggregation;
227
- var oMenuButton = oModifier.bySelector(oChangeDefinition.content.menuButtonIdSelector, mPropertyBag.appComponent, oView);
228
- var oParent = oModifier.getParent(oMenuButton);
229
- var aButtonsIdsReversed = oChangeDefinition.content.combineButtonSelectors.slice().reverse();
230
- var oButton;
231
-
232
- // FIXME: fix implementation of ObjectPageDynamicHeaderTitle and remove next line
233
- oModifier.removeAggregation(oParent, sParentAggregation, oMenuButton);
234
- oModifier.destroy(oMenuButton);
235
-
236
- for (var i = 0, l = aButtonsIdsReversed.length; i < l; i++) {
237
- oButton = oModifier.bySelector(aButtonsIdsReversed[i], mPropertyBag.appComponent, oView);
238
-
239
- // Custom data clean up
240
- oModifier.getAggregation(oButton, "customData").some(function (oCustomData) { // eslint-disable-line no-loop-func
241
- if (oModifier.getProperty(oCustomData, "key") === "originalButtonId") {
242
- oModifier.destroy(oCustomData);
243
- return true;
244
- }
321
+ var oMenuButton, oParent, aButtonsIdsReversed;
322
+
323
+ return Promise.resolve()
324
+ .then(function(){
325
+ return oModifier.bySelector(oChangeDefinition.content.menuButtonIdSelector, mPropertyBag.appComponent, oView);
326
+ })
327
+ .then(function(oRetrievedButton) {
328
+ oMenuButton = oRetrievedButton;
329
+ oParent = oModifier.getParent(oMenuButton);
330
+ aButtonsIdsReversed = oChangeDefinition.content.combineButtonSelectors.slice().reverse();
331
+ // FIXME: fix implementation of ObjectPageDynamicHeaderTitle and remove next line
332
+ return oModifier.removeAggregation(oParent, sParentAggregation, oMenuButton);
333
+ })
334
+ .then(function(){
335
+ return oModifier.destroy(oMenuButton);
336
+ })
337
+ .then(function() {
338
+ var iLength = aButtonsIdsReversed.length;
339
+ return aButtonsIdsReversed.reduce(function(oPreviousPromise, oButtonIdReversed, index){
340
+ var iIndex = index;
341
+ var oButton;
342
+ return oPreviousPromise
343
+ .then(function() {
344
+ return oModifier.bySelector(oButtonIdReversed, mPropertyBag.appComponent, oView);
345
+ })
346
+ // Custom data clean up
347
+ .then(function(oRetrievedButton) {
348
+ oButton = oRetrievedButton;
349
+ return oModifier.getAggregation(oButton, "customData");
350
+ })
351
+ .then(function(aControls) {
352
+ return fnDestroyControls(aControls, oModifier);
353
+ })
354
+ .then(function() {
355
+ return oModifier.insertAggregation(oParent, sParentAggregation, oButton, oRevertData.insertIndexes[iLength - iIndex - 1], oView);
356
+ });
357
+ }, Promise.resolve())
358
+ .then(function() {
359
+ oChange.resetRevertData();
360
+ });
245
361
  });
246
-
247
- oModifier.insertAggregation(oParent, sParentAggregation, oButton, oRevertData.insertIndexes[l - i - 1], oView);
248
- }
249
-
250
- oChange.resetRevertData();
251
-
252
- return true;
253
362
  };
254
363
 
255
364
  /**
@@ -292,9 +401,7 @@ sap.ui.define([
292
401
  * Callback function which is attached via modifier in applyChange
293
402
  *
294
403
  * @param {sap.ui.base.Event} oEvent - Event object
295
- * @param {object} mSelector - Selector object
296
- * @param {string} mSelector.id - ID used for determination of the flexibility target
297
- * @param {boolean} mSelector.idIsLocal - Flag if the selector.id has to be concatenated with the application component ID
404
+ * @param {object} mParameters - parameters containing the selector and appComponentId
298
405
  * while applying the change.
299
406
  */
300
407
  CombineButtons.pressHandler = function (oEvent, mParameters) {