@openui5/sap.m 1.126.0 → 1.127.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.
Files changed (441) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/m/.library +1 -1
  4. package/src/sap/m/AccButton.js +1 -1
  5. package/src/sap/m/ActionListItem.js +1 -1
  6. package/src/sap/m/ActionSelect.js +1 -1
  7. package/src/sap/m/ActionSheet.js +1 -1
  8. package/src/sap/m/ActionTile.js +1 -1
  9. package/src/sap/m/ActionTileContent.js +1 -1
  10. package/src/sap/m/AdditionalTextButton.js +1 -1
  11. package/src/sap/m/App.js +1 -1
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +1 -1
  14. package/src/sap/m/Bar.js +1 -1
  15. package/src/sap/m/Breadcrumbs.js +7 -13
  16. package/src/sap/m/BusyDialog.js +1 -1
  17. package/src/sap/m/BusyIndicator.js +1 -1
  18. package/src/sap/m/Button.js +1 -1
  19. package/src/sap/m/Carousel.js +3 -2
  20. package/src/sap/m/CarouselLayout.js +1 -1
  21. package/src/sap/m/CheckBox.js +2 -2
  22. package/src/sap/m/ColorPalette.js +1 -1
  23. package/src/sap/m/ColorPalettePopover.js +1 -1
  24. package/src/sap/m/Column.js +4 -3
  25. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  26. package/src/sap/m/ColumnListItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  32. package/src/sap/m/ComboBox.js +1 -1
  33. package/src/sap/m/ComboBoxBase.js +2 -2
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/ContentConfig.js +1 -1
  36. package/src/sap/m/CustomListItem.js +1 -1
  37. package/src/sap/m/CustomTile.js +1 -1
  38. package/src/sap/m/CustomTreeItem.js +1 -1
  39. package/src/sap/m/DatePicker.js +15 -3
  40. package/src/sap/m/DateRangeSelection.js +11 -2
  41. package/src/sap/m/DateTimeField.js +1 -1
  42. package/src/sap/m/DateTimeInput.js +1 -1
  43. package/src/sap/m/DateTimePicker.js +14 -2
  44. package/src/sap/m/Dialog.js +14 -14
  45. package/src/sap/m/DisplayListItem.js +1 -1
  46. package/src/sap/m/DraftIndicator.js +1 -1
  47. package/src/sap/m/DynamicDate.js +1 -1
  48. package/src/sap/m/DynamicDateOption.js +1 -1
  49. package/src/sap/m/DynamicDateRange.js +2 -2
  50. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  51. package/src/sap/m/ExpandableText.js +2 -2
  52. package/src/sap/m/FacetFilter.js +1 -1
  53. package/src/sap/m/FacetFilterItem.js +1 -1
  54. package/src/sap/m/FacetFilterList.js +1 -1
  55. package/src/sap/m/FeedContent.js +1 -1
  56. package/src/sap/m/FeedInput.js +1 -1
  57. package/src/sap/m/FeedListItem.js +1 -1
  58. package/src/sap/m/FeedListItemAction.js +1 -1
  59. package/src/sap/m/Fiori20Adapter.js +39 -18
  60. package/src/sap/m/FlexBox.js +1 -1
  61. package/src/sap/m/FlexItemData.js +1 -1
  62. package/src/sap/m/FormattedText.js +1 -1
  63. package/src/sap/m/GenericTag.js +1 -1
  64. package/src/sap/m/GenericTile.js +1 -2
  65. package/src/sap/m/GroupHeaderListItem.js +1 -1
  66. package/src/sap/m/GrowingList.js +1 -1
  67. package/src/sap/m/HBox.js +1 -1
  68. package/src/sap/m/HeaderContainer.js +1 -1
  69. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  70. package/src/sap/m/IconTabBar.js +1 -1
  71. package/src/sap/m/IconTabBarSelectList.js +1 -1
  72. package/src/sap/m/IconTabFilter.js +1 -1
  73. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  74. package/src/sap/m/IconTabHeader.js +1 -1
  75. package/src/sap/m/IconTabSeparator.js +1 -1
  76. package/src/sap/m/IllustratedMessage.js +1 -1
  77. package/src/sap/m/Illustration.js +1 -1
  78. package/src/sap/m/Image.js +1 -1
  79. package/src/sap/m/ImageContent.js +1 -1
  80. package/src/sap/m/Input.js +14 -7
  81. package/src/sap/m/InputBase.js +1 -1
  82. package/src/sap/m/InputListItem.js +1 -1
  83. package/src/sap/m/Label.js +1 -1
  84. package/src/sap/m/LightBox.js +1 -1
  85. package/src/sap/m/LightBoxItem.js +1 -1
  86. package/src/sap/m/Link.js +1 -1
  87. package/src/sap/m/LinkTileContent.js +1 -1
  88. package/src/sap/m/List.js +1 -1
  89. package/src/sap/m/ListBase.js +53 -12
  90. package/src/sap/m/ListItemBase.js +2 -2
  91. package/src/sap/m/MaskEnabler.js +1 -1
  92. package/src/sap/m/MaskInput.js +1 -1
  93. package/src/sap/m/MaskInputRule.js +1 -1
  94. package/src/sap/m/Menu.js +168 -57
  95. package/src/sap/m/MenuButton.js +1 -1
  96. package/src/sap/m/MenuItem.js +86 -12
  97. package/src/sap/m/MenuItemGroup.js +448 -0
  98. package/src/sap/m/MenuListItem.js +45 -2
  99. package/src/sap/m/MenuListItemRenderer.js +59 -23
  100. package/src/sap/m/MessageItem.js +5 -5
  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 -1
  104. package/src/sap/m/MessagePopoverItem.js +1 -1
  105. package/src/sap/m/MessageStrip.js +2 -2
  106. package/src/sap/m/MessageToast.js +1 -1
  107. package/src/sap/m/MessageView.js +1 -1
  108. package/src/sap/m/MultiComboBox.js +1 -1
  109. package/src/sap/m/MultiEditField.js +1 -1
  110. package/src/sap/m/MultiInput.js +1 -1
  111. package/src/sap/m/NavContainer.js +1 -1
  112. package/src/sap/m/NewsContent.js +24 -1
  113. package/src/sap/m/NewsContentRenderer.js +16 -11
  114. package/src/sap/m/NotificationList.js +1 -1
  115. package/src/sap/m/NotificationListBase.js +2 -2
  116. package/src/sap/m/NotificationListGroup.js +1 -1
  117. package/src/sap/m/NotificationListItem.js +3 -3
  118. package/src/sap/m/NumericContent.js +1 -1
  119. package/src/sap/m/NumericInput.js +1 -1
  120. package/src/sap/m/ObjectAttribute.js +1 -1
  121. package/src/sap/m/ObjectHeader.js +1 -1
  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/ObjectNumberRenderer.js +0 -9
  127. package/src/sap/m/ObjectStatus.js +1 -1
  128. package/src/sap/m/OverflowToolbar.js +44 -6
  129. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  130. package/src/sap/m/OverflowToolbarButton.js +1 -1
  131. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  132. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  133. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  134. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  135. package/src/sap/m/P13nColumnsItem.js +1 -1
  136. package/src/sap/m/P13nColumnsPanel.js +1 -1
  137. package/src/sap/m/P13nConditionPanel.js +1 -1
  138. package/src/sap/m/P13nDialog.js +1 -1
  139. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  140. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  141. package/src/sap/m/P13nFilterItem.js +1 -1
  142. package/src/sap/m/P13nFilterPanel.js +1 -1
  143. package/src/sap/m/P13nGroupItem.js +1 -1
  144. package/src/sap/m/P13nGroupPanel.js +1 -1
  145. package/src/sap/m/P13nItem.js +1 -1
  146. package/src/sap/m/P13nPanel.js +1 -1
  147. package/src/sap/m/P13nSelectionItem.js +1 -1
  148. package/src/sap/m/P13nSelectionPanel.js +1 -1
  149. package/src/sap/m/P13nSortItem.js +1 -1
  150. package/src/sap/m/P13nSortPanel.js +1 -1
  151. package/src/sap/m/PDFViewer.js +1 -1
  152. package/src/sap/m/Page.js +4 -3
  153. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  154. package/src/sap/m/PagingButton.js +1 -1
  155. package/src/sap/m/Panel.js +1 -1
  156. package/src/sap/m/PlanningCalendar.js +10 -1
  157. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  158. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  159. package/src/sap/m/PlanningCalendarRow.js +1 -1
  160. package/src/sap/m/PlanningCalendarView.js +1 -1
  161. package/src/sap/m/Popover.js +11 -2
  162. package/src/sap/m/ProgressIndicator.js +1 -1
  163. package/src/sap/m/PullToRefresh.js +1 -1
  164. package/src/sap/m/QuickView.js +1 -1
  165. package/src/sap/m/QuickViewBase.js +1 -1
  166. package/src/sap/m/QuickViewCard.js +1 -1
  167. package/src/sap/m/QuickViewGroup.js +1 -1
  168. package/src/sap/m/QuickViewGroupElement.js +1 -1
  169. package/src/sap/m/QuickViewPage.js +1 -1
  170. package/src/sap/m/RadioButton.js +1 -1
  171. package/src/sap/m/RadioButtonGroup.js +1 -1
  172. package/src/sap/m/RangeSlider.js +1 -1
  173. package/src/sap/m/RatingIndicator.js +1 -1
  174. package/src/sap/m/RatingIndicatorRenderer.js +1 -2
  175. package/src/sap/m/ResponsivePopover.js +1 -1
  176. package/src/sap/m/ResponsiveScale.js +1 -1
  177. package/src/sap/m/ScrollBar.js +1 -1
  178. package/src/sap/m/ScrollContainer.js +1 -1
  179. package/src/sap/m/SearchField.js +1 -1
  180. package/src/sap/m/SegmentedButton.js +1 -1
  181. package/src/sap/m/SegmentedButtonItem.js +1 -1
  182. package/src/sap/m/Select.js +36 -4
  183. package/src/sap/m/SelectDialog.js +3 -4
  184. package/src/sap/m/SelectDialogBase.js +4 -16
  185. package/src/sap/m/SelectList.js +2 -2
  186. package/src/sap/m/SelectionDetails.js +1 -1
  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 +1 -1
  193. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  194. package/src/sap/m/SinglePlanningCalendarGrid.js +37 -25
  195. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +10 -4
  196. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +4 -5
  197. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +5 -2
  198. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  200. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  202. package/src/sap/m/SlideTile.js +1 -1
  203. package/src/sap/m/SlideTileRenderer.js +3 -0
  204. package/src/sap/m/Slider.js +1 -1
  205. package/src/sap/m/SliderTooltip.js +1 -1
  206. package/src/sap/m/SliderTooltipBase.js +1 -1
  207. package/src/sap/m/SliderTooltipContainer.js +1 -1
  208. package/src/sap/m/SplitApp.js +1 -1
  209. package/src/sap/m/SplitButton.js +1 -1
  210. package/src/sap/m/SplitContainer.js +1 -1
  211. package/src/sap/m/StandardDynamicDateOption.js +3 -3
  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 +1 -1
  218. package/src/sap/m/Switch.js +1 -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 +2 -2
  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 +4 -3
  228. package/src/sap/m/TableSelectDialog.js +3 -5
  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 +1 -1
  233. package/src/sap/m/TileContent.js +1 -1
  234. package/src/sap/m/TileContentRenderer.js +3 -0
  235. package/src/sap/m/TileInfo.js +1 -1
  236. package/src/sap/m/TimePicker.js +18 -2
  237. package/src/sap/m/TimePickerClock.js +1 -1
  238. package/src/sap/m/TimePickerClocks.js +1 -1
  239. package/src/sap/m/TimePickerInputs.js +1 -1
  240. package/src/sap/m/TimePickerInternals.js +1 -1
  241. package/src/sap/m/TimePickerSlider.js +1 -1
  242. package/src/sap/m/TimePickerSliders.js +1 -1
  243. package/src/sap/m/Title.js +1 -1
  244. package/src/sap/m/TitlePropagationSupport.js +1 -1
  245. package/src/sap/m/ToggleButton.js +1 -1
  246. package/src/sap/m/Token.js +3 -3
  247. package/src/sap/m/Tokenizer.js +1 -1
  248. package/src/sap/m/Toolbar.js +6 -2
  249. package/src/sap/m/ToolbarLayoutData.js +1 -1
  250. package/src/sap/m/ToolbarRenderer.js +12 -8
  251. package/src/sap/m/ToolbarSeparator.js +1 -1
  252. package/src/sap/m/ToolbarSpacer.js +1 -1
  253. package/src/sap/m/Tree.js +1 -1
  254. package/src/sap/m/TreeItemBase.js +1 -1
  255. package/src/sap/m/UploadCollection.js +1 -1
  256. package/src/sap/m/UploadCollectionItem.js +1 -1
  257. package/src/sap/m/UploadCollectionParameter.js +1 -1
  258. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  259. package/src/sap/m/VBox.js +1 -1
  260. package/src/sap/m/ValueStateHeader.js +1 -1
  261. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  262. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  263. package/src/sap/m/ViewSettingsDialog.js +1 -1
  264. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  265. package/src/sap/m/ViewSettingsItem.js +1 -1
  266. package/src/sap/m/VisibleItem.js +1 -1
  267. package/src/sap/m/WheelSlider.js +1 -1
  268. package/src/sap/m/WheelSliderContainer.js +1 -1
  269. package/src/sap/m/Wizard.js +1 -1
  270. package/src/sap/m/WizardProgressNavigator.js +1 -1
  271. package/src/sap/m/WizardStep.js +1 -1
  272. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  273. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  274. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  275. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  276. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  277. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  278. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +4 -4
  279. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +91 -91
  280. package/src/sap/m/library.js +19 -4
  281. package/src/sap/m/messagebundle.properties +13 -6
  282. package/src/sap/m/messagebundle_ar.properties +4 -0
  283. package/src/sap/m/messagebundle_bg.properties +4 -0
  284. package/src/sap/m/messagebundle_ca.properties +4 -0
  285. package/src/sap/m/messagebundle_cnr.properties +4 -0
  286. package/src/sap/m/messagebundle_cs.properties +4 -0
  287. package/src/sap/m/messagebundle_cy.properties +4 -0
  288. package/src/sap/m/messagebundle_da.properties +4 -0
  289. package/src/sap/m/messagebundle_de.properties +4 -0
  290. package/src/sap/m/messagebundle_el.properties +4 -0
  291. package/src/sap/m/messagebundle_en.properties +4 -0
  292. package/src/sap/m/messagebundle_en_GB.properties +4 -0
  293. package/src/sap/m/messagebundle_en_US_sappsd.properties +193 -105
  294. package/src/sap/m/messagebundle_en_US_saprigi.properties +4 -0
  295. package/src/sap/m/messagebundle_en_US_saptrc.properties +1226 -1138
  296. package/src/sap/m/messagebundle_es.properties +4 -0
  297. package/src/sap/m/messagebundle_es_MX.properties +4 -0
  298. package/src/sap/m/messagebundle_et.properties +4 -0
  299. package/src/sap/m/messagebundle_fi.properties +4 -0
  300. package/src/sap/m/messagebundle_fr.properties +4 -0
  301. package/src/sap/m/messagebundle_fr_CA.properties +4 -0
  302. package/src/sap/m/messagebundle_hi.properties +4 -0
  303. package/src/sap/m/messagebundle_hr.properties +4 -0
  304. package/src/sap/m/messagebundle_hu.properties +4 -0
  305. package/src/sap/m/messagebundle_id.properties +9 -5
  306. package/src/sap/m/messagebundle_it.properties +4 -0
  307. package/src/sap/m/messagebundle_iw.properties +4 -0
  308. package/src/sap/m/messagebundle_ja.properties +4 -0
  309. package/src/sap/m/messagebundle_kk.properties +4 -0
  310. package/src/sap/m/messagebundle_ko.properties +4 -0
  311. package/src/sap/m/messagebundle_lt.properties +4 -0
  312. package/src/sap/m/messagebundle_lv.properties +4 -0
  313. package/src/sap/m/messagebundle_mk.properties +4 -0
  314. package/src/sap/m/messagebundle_ms.properties +4 -0
  315. package/src/sap/m/messagebundle_nl.properties +4 -0
  316. package/src/sap/m/messagebundle_no.properties +4 -0
  317. package/src/sap/m/messagebundle_pl.properties +4 -0
  318. package/src/sap/m/messagebundle_pt.properties +4 -0
  319. package/src/sap/m/messagebundle_pt_PT.properties +4 -0
  320. package/src/sap/m/messagebundle_ro.properties +4 -0
  321. package/src/sap/m/messagebundle_ru.properties +4 -0
  322. package/src/sap/m/messagebundle_sh.properties +4 -0
  323. package/src/sap/m/messagebundle_sk.properties +4 -0
  324. package/src/sap/m/messagebundle_sl.properties +4 -0
  325. package/src/sap/m/messagebundle_sr.properties +4 -0
  326. package/src/sap/m/messagebundle_sv.properties +4 -0
  327. package/src/sap/m/messagebundle_th.properties +4 -0
  328. package/src/sap/m/messagebundle_tr.properties +4 -0
  329. package/src/sap/m/messagebundle_uk.properties +4 -0
  330. package/src/sap/m/messagebundle_vi.properties +4 -0
  331. package/src/sap/m/messagebundle_zh_CN.properties +4 -0
  332. package/src/sap/m/messagebundle_zh_TW.properties +4 -0
  333. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  334. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  335. package/src/sap/m/p13n/BasePanel.js +1 -1
  336. package/src/sap/m/p13n/Container.js +1 -1
  337. package/src/sap/m/p13n/Engine.js +11 -12
  338. package/src/sap/m/p13n/FilterController.js +1 -1
  339. package/src/sap/m/p13n/FilterPanel.js +1 -1
  340. package/src/sap/m/p13n/GroupController.js +1 -1
  341. package/src/sap/m/p13n/GroupPanel.js +1 -1
  342. package/src/sap/m/p13n/Popup.js +1 -1
  343. package/src/sap/m/p13n/QueryPanel.js +1 -1
  344. package/src/sap/m/p13n/SelectionController.js +1 -1
  345. package/src/sap/m/p13n/SelectionPanel.js +1 -1
  346. package/src/sap/m/p13n/SortController.js +1 -1
  347. package/src/sap/m/p13n/SortPanel.js +1 -1
  348. package/src/sap/m/p13n/handler/xConfigHandler.js +5 -7
  349. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  350. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  351. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  352. package/src/sap/m/plugins/CellSelector.js +2 -2
  353. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  354. package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
  355. package/src/sap/m/plugins/CopyProvider.js +1 -1
  356. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  357. package/src/sap/m/plugins/PasteProvider.js +1 -1
  358. package/src/sap/m/plugins/PluginBase.js +1 -1
  359. package/src/sap/m/plugins/UploadSetwithTable.js +1 -1
  360. package/src/sap/m/semantic/AddAction.js +1 -1
  361. package/src/sap/m/semantic/CancelAction.js +1 -1
  362. package/src/sap/m/semantic/DeleteAction.js +1 -1
  363. package/src/sap/m/semantic/DetailPage.js +1 -1
  364. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  365. package/src/sap/m/semantic/EditAction.js +1 -1
  366. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  367. package/src/sap/m/semantic/FilterAction.js +1 -1
  368. package/src/sap/m/semantic/FilterSelect.js +1 -1
  369. package/src/sap/m/semantic/FlagAction.js +1 -1
  370. package/src/sap/m/semantic/ForwardAction.js +1 -1
  371. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  372. package/src/sap/m/semantic/GroupAction.js +1 -1
  373. package/src/sap/m/semantic/GroupSelect.js +1 -1
  374. package/src/sap/m/semantic/MainAction.js +1 -1
  375. package/src/sap/m/semantic/MasterPage.js +1 -1
  376. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  377. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  378. package/src/sap/m/semantic/NegativeAction.js +1 -1
  379. package/src/sap/m/semantic/OpenInAction.js +1 -1
  380. package/src/sap/m/semantic/PositiveAction.js +1 -1
  381. package/src/sap/m/semantic/PrintAction.js +1 -1
  382. package/src/sap/m/semantic/SaveAction.js +1 -1
  383. package/src/sap/m/semantic/Segment.js +1 -1
  384. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  385. package/src/sap/m/semantic/SemanticButton.js +1 -1
  386. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  387. package/src/sap/m/semantic/SemanticControl.js +1 -1
  388. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  389. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  390. package/src/sap/m/semantic/SemanticPage.js +1 -1
  391. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  392. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  393. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  394. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  395. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  396. package/src/sap/m/semantic/ShareMenu.js +1 -1
  397. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  398. package/src/sap/m/semantic/SortAction.js +1 -1
  399. package/src/sap/m/semantic/SortSelect.js +1 -1
  400. package/src/sap/m/table/ColumnWidthController.js +1 -1
  401. package/src/sap/m/table/Util.js +1 -1
  402. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  403. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  404. package/src/sap/m/table/columnmenu/Item.js +1 -1
  405. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  406. package/src/sap/m/table/columnmenu/Menu.js +1 -1
  407. package/src/sap/m/table/columnmenu/MenuBase.js +1 -1
  408. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  409. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  410. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  411. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  412. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  413. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  414. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  415. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  416. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  417. package/src/sap/m/themes/base/Carousel.less +13 -0
  418. package/src/sap/m/themes/base/Dialog.less +1 -3
  419. package/src/sap/m/themes/base/MenuListItem.less +22 -0
  420. package/src/sap/m/themes/base/NewsContent.less +22 -15
  421. package/src/sap/m/themes/base/ObjectStatus.less +5 -2
  422. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -4
  423. package/src/sap/m/themes/base/TileContent.less +42 -0
  424. package/src/sap/m/upload/ActionsPlaceholder.js +1 -1
  425. package/src/sap/m/upload/Column.js +1 -1
  426. package/src/sap/m/upload/FilePreviewDialog.js +1 -1
  427. package/src/sap/m/upload/UploadItem.js +1 -1
  428. package/src/sap/m/upload/UploadItemConfiguration.js +1 -1
  429. package/src/sap/m/upload/UploadSet.js +3 -3
  430. package/src/sap/m/upload/UploadSetItem.js +1 -1
  431. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  432. package/src/sap/m/upload/UploadSetwithTable.js +1 -1
  433. package/src/sap/m/upload/UploadSetwithTableItem.js +1 -1
  434. package/src/sap/m/upload/UploaderTableItem.js +1 -1
  435. package/src/sap/m/upload/p13n/PersManager.js +1 -1
  436. package/src/sap/m/upload/p13n/mediator/BaseMediator.js +1 -1
  437. package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +1 -1
  438. package/src/sap/m/upload/p13n/mediator/FilterMediator.js +1 -1
  439. package/src/sap/m/upload/p13n/mediator/GroupMediator.js +1 -1
  440. package/src/sap/m/upload/p13n/mediator/SortMediator.js +1 -1
  441. package/src/sap/m/upload/p13n/modules/PersPopupManager.js +1 -1
@@ -78,7 +78,7 @@ function(
78
78
  * @implements sap.ui.core.Label, sap.ui.core.IShrinkable, sap.ui.core.IAccessKeySupport
79
79
  *
80
80
  * @author SAP SE
81
- * @version 1.126.0
81
+ * @version 1.127.0
82
82
  *
83
83
  * @constructor
84
84
  * @public
@@ -96,7 +96,7 @@ sap.ui.define([
96
96
  * @extends sap.ui.core.Control
97
97
  *
98
98
  * @author SAP SE
99
- * @version 1.126.0
99
+ * @version 1.127.0
100
100
  *
101
101
  * @constructor
102
102
  * @public
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @extends sap.ui.core.Element
44
44
  *
45
45
  * @author SAP SE
46
- * @version 1.126.0
46
+ * @version 1.127.0
47
47
  *
48
48
  * @constructor
49
49
  * @public
package/src/sap/m/Link.js CHANGED
@@ -93,7 +93,7 @@ function(
93
93
  * @borrows sap.ui.core.ISemanticFormContent.getFormRenderAsControl as #getFormRenderAsControl
94
94
  *
95
95
  * @author SAP SE
96
- * @version 1.126.0
96
+ * @version 1.127.0
97
97
  *
98
98
  * @constructor
99
99
  * @public
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * @class This element is used within the GenericTile control that generates a combination of an icon and a linkl
19
19
  * @extends sap.ui.core.Element
20
20
  * @author SAP SE
21
- * @version 1.126.0
21
+ * @version 1.127.0
22
22
  * @constructor
23
23
  * @public
24
24
  * @since 1.120
package/src/sap/m/List.js CHANGED
@@ -30,7 +30,7 @@ sap.ui.define(["./library", "./ListBase", "./ListRenderer"],
30
30
  * @extends sap.m.ListBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.126.0
33
+ * @version 1.127.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -103,7 +103,7 @@ function(
103
103
  * @extends sap.ui.core.Control
104
104
  *
105
105
  * @author SAP SE
106
- * @version 1.126.0
106
+ * @version 1.127.0
107
107
  *
108
108
  * @constructor
109
109
  * @public
@@ -628,6 +628,7 @@ function(
628
628
  this._aSelectedPaths = [];
629
629
  this._destroyGrowingDelegate();
630
630
  this._destroyItemNavigation();
631
+ this._oLastFakeFocusedItem = null;
631
632
  };
632
633
 
633
634
  // this gets called only with oData Model when first load or filter/sort
@@ -2127,31 +2128,68 @@ function(
2127
2128
  this.getNavigationRoot().setAttribute("aria-activedescendant", oItemDomRef.id);
2128
2129
  } else {
2129
2130
  // prepare the announcement for the screen reader
2130
- var oAccInfo = oItem.getAccessibilityInfo(),
2131
- oBundle = Library.getResourceBundleFor("sap.m"),
2132
- sDescription = oAccInfo.type ? oAccInfo.type + " . " : "";
2131
+ this.setInvisibleTextAssociation(oItem);
2132
+ }
2133
+ };
2133
2134
 
2134
- if (this.isA("sap.m.Table")) {
2135
- var mPosition = this.getAccessbilityPosition(oItem);
2136
- sDescription += oBundle.getText("LIST_ITEM_POSITION", [mPosition.posinset, mPosition.setsize]) + " . ";
2137
- }
2135
+ /**
2136
+ * For the specified list item it updates the invisible text and sets the aria-labelledby association.
2137
+ *
2138
+ * @param {sap.m.ListItemBase} oItem The list item whose invisible text association should be set
2139
+ * @private
2140
+ */
2141
+ ListBase.prototype.setInvisibleTextAssociation = function(oItem) {
2142
+ var oAccInfo = oItem.getAccessibilityInfo(),
2143
+ oBundle = Library.getResourceBundleFor("sap.m"),
2144
+ sDescription = oAccInfo.type ? oAccInfo.type + " . " : "";
2138
2145
 
2139
- sDescription += oAccInfo.description;
2140
- this.updateInvisibleText(sDescription, oItemDomRef);
2141
- return sDescription;
2146
+ if (this.isA("sap.m.Table")) {
2147
+ var mPosition = this.getAccessbilityPosition(oItem);
2148
+ sDescription += oBundle.getText("LIST_ITEM_POSITION", [mPosition.posinset, mPosition.setsize]) + " . ";
2142
2149
  }
2150
+
2151
+ sDescription += oAccInfo.description;
2152
+ this.updateInvisibleText(sDescription, oItem.getDomRef());
2143
2153
  };
2144
2154
 
2145
2155
  ListBase.prototype.onItemFocusOut = function(oItem) {
2146
2156
  this.removeInvisibleTextAssociation(oItem.getDomRef());
2147
2157
  };
2148
2158
 
2159
+ /**
2160
+ * For the specified <code>HTMLElement</code> it removes the aria-labelledby association to the invisible text.
2161
+ *
2162
+ * @param {HTMLElement} oDomRef The <code>HTMLElement</code> whose invisible text association should be removed
2163
+ * @private
2164
+ */
2149
2165
  ListBase.prototype.removeInvisibleTextAssociation = function(oDomRef) {
2150
2166
  const oInvisibleText = ListBase.getInvisibleText(),
2151
2167
  $FocusedItem = jQuery(oDomRef || document.activeElement);
2152
2168
  $FocusedItem.removeAriaLabelledBy(oInvisibleText.getId());
2153
2169
  };
2154
2170
 
2171
+ /**
2172
+ * It simulates focus by adding the corresponding style classes and updating the invisible text association.
2173
+ * <b>Note</b>: Fake focus is not set when the real focus is inside the list. If the fake focus is set, it gets removed when the real focus lands inside the list.
2174
+ *
2175
+ * @param {sap.m.ListItemBase|null} oItem The list item to receive fake focus, null to remove it
2176
+ * @private
2177
+ * @ui5-restricted sap.m, sap.ui.mdc
2178
+ */
2179
+ ListBase.prototype.setFakeFocus = function(oItem) {
2180
+ if (this._oLastFakeFocusedItem) {
2181
+ this._oLastFakeFocusedItem.removeStyleClass("sapMLIBFocused");
2182
+ this.removeInvisibleTextAssociation(this._oLastFakeFocusedItem.getDomRef());
2183
+ this._oLastFakeFocusedItem = null;
2184
+ }
2185
+
2186
+ if (oItem && !this.getDomRef().contains(document.activeElement)) {
2187
+ this._oLastFakeFocusedItem = oItem;
2188
+ oItem.addStyleClass("sapMLIBFocused");
2189
+ this.setInvisibleTextAssociation(oItem);
2190
+ }
2191
+ };
2192
+
2155
2193
  ListBase.prototype.updateInvisibleText = function(sText, oItemDomRef, bPrepend) {
2156
2194
  var oInvisibleText = ListBase.getInvisibleText(),
2157
2195
  $FocusedItem = jQuery(oItemDomRef || document.activeElement);
@@ -2482,7 +2520,6 @@ function(
2482
2520
 
2483
2521
  // Handles focus to reposition the focus to correct place
2484
2522
  ListBase.prototype.onfocusin = function(oEvent) {
2485
-
2486
2523
  // ignore self focus
2487
2524
  if (this._bIgnoreFocusIn) {
2488
2525
  this._bIgnoreFocusIn = false;
@@ -2495,6 +2532,10 @@ function(
2495
2532
  this._startItemNavigation();
2496
2533
  }
2497
2534
 
2535
+ if (this._oLastFakeFocusedItem) {
2536
+ this.setFakeFocus(null);
2537
+ }
2538
+
2498
2539
  var oTarget = oEvent.target;
2499
2540
  if (oTarget.id == this.getId("nodata")) {
2500
2541
  var vNoData = this.getNoData();
@@ -72,7 +72,7 @@ function(
72
72
  * @extends sap.ui.core.Control
73
73
  *
74
74
  * @author SAP SE
75
- * @version 1.126.0
75
+ * @version 1.127.0
76
76
  *
77
77
  * @constructor
78
78
  * @public
@@ -566,7 +566,7 @@ function(
566
566
  this._oDetailControl, {
567
567
  messageBundleKey: Device.os.macintosh ? "LIST_ITEM_EDIT_SHORTCUT_MAC" : "LIST_ITEM_EDIT_SHORTCUT"
568
568
  },
569
- this);
569
+ this._oDetailControl);
570
570
 
571
571
  this._oDetailControl.useEnabledPropagator(false);
572
572
 
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * Applies mask support for input controls.
29
29
  * It should should be applied to the prototype of a <code>sap.m.InputBase</code>.
30
30
  *
31
- * @version 1.126.0
31
+ * @version 1.127.0
32
32
  * @private
33
33
  * @mixin
34
34
  * @alias sap.m.MaskEnabler
@@ -29,7 +29,7 @@ sap.ui.define(['./InputBase', './MaskEnabler', './MaskInputRenderer'], function(
29
29
  *
30
30
  * @author SAP SE
31
31
  * @extends sap.m.InputBase
32
- * @version 1.126.0
32
+ * @version 1.127.0
33
33
  *
34
34
  * @constructor
35
35
  * @public
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/Element', "sap/base/Log"], function(Element, Log) {
20
20
  *
21
21
  * @author SAP SE
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.126.0
23
+ * @version 1.127.0
24
24
  * @public
25
25
  * @constructor
26
26
  * @since 1.34.0
package/src/sap/m/Menu.js CHANGED
@@ -7,6 +7,7 @@
7
7
  // Provides control sap.m.Menu.
8
8
  sap.ui.define([
9
9
  './library',
10
+ 'sap/ui/core/library',
10
11
  'sap/ui/core/Control',
11
12
  './Button',
12
13
  './Dialog',
@@ -14,9 +15,11 @@ sap.ui.define([
14
15
  './List',
15
16
  './Page',
16
17
  './MenuListItem',
18
+ './MenuItem',
17
19
  "sap/ui/core/Lib",
18
20
  'sap/ui/unified/Menu',
19
21
  'sap/ui/unified/MenuItem',
22
+ 'sap/ui/unified/MenuItemGroup',
20
23
  'sap/ui/Device',
21
24
  'sap/ui/core/EnabledPropagator',
22
25
  "sap/ui/thirdparty/jquery",
@@ -25,6 +28,7 @@ sap.ui.define([
25
28
  ],
26
29
  function(
27
30
  library,
31
+ coreLibrary,
28
32
  Control,
29
33
  Button,
30
34
  Dialog,
@@ -32,9 +36,11 @@ sap.ui.define([
32
36
  List,
33
37
  Page,
34
38
  MenuListItem,
39
+ MenuItem,
35
40
  Library,
36
41
  UfdMenu,
37
42
  UfdMenuItem,
43
+ UfdMenuItemGroup,
38
44
  Device,
39
45
  EnabledPropagator,
40
46
  jQuery,
@@ -52,6 +58,9 @@ sap.ui.define([
52
58
  // shortcut for sap.m.ListMode
53
59
  var ListMode = library.ListMode;
54
60
 
61
+ // shortcut for sap.ui.core.ItemSelectionMode
62
+ var ItemSelectionMode = coreLibrary.ItemSelectionMode;
63
+
55
64
  /**
56
65
  * Constructor for a new Menu.
57
66
  *
@@ -72,7 +81,7 @@ sap.ui.define([
72
81
  * @implements sap.ui.core.IContextMenu
73
82
  *
74
83
  * @author SAP SE
75
- * @version 1.126.0
84
+ * @version 1.127.0
76
85
  *
77
86
  * @constructor
78
87
  * @public
@@ -95,7 +104,7 @@ sap.ui.define([
95
104
  /**
96
105
  * Defines the items contained within this control.
97
106
  */
98
- items: { type: "sap.m.MenuItem", multiple: true, singularName: "item", bindable: "bindable" },
107
+ items: { type: "sap.m.IMenuItem", multiple: true, singularName: "item", bindable: "bindable", defaultClass: MenuItem },
99
108
 
100
109
  /**
101
110
  * Internal aggregation that contains the inner <code>sap.m.Dialog</code> for mobile.
@@ -356,7 +365,11 @@ sap.ui.define([
356
365
  oMenu.mCustomStyleClassMap = this.mCustomStyleClassMap;
357
366
 
358
367
  aItems.forEach(function(oItem) {
359
- this._addVisualMenuItemFromItem(oItem, oMenu);
368
+ if (this._isMenuItemGroup(oItem)) {
369
+ this._addVisualMenuItemGroupFromItemsGroup(oItem, oMenu);
370
+ } else {
371
+ this._addVisualMenuItemFromItem(oItem, oMenu);
372
+ }
360
373
  }.bind(this));
361
374
 
362
375
  if (oParentMenuItem) {
@@ -446,12 +459,18 @@ sap.ui.define([
446
459
  Menu.prototype._handleListItemPress = function(oEvent) {
447
460
  var oListItem = oEvent.getParameter("listItem"),
448
461
  oMenuItem = Element.getElementById(oListItem.getMenuItem()),
449
- pageId = oMenuItem._getVisualChild();
462
+ pageId = oMenuItem._getItems().length ? oMenuItem._getVisualChild() : null,
463
+ bSelected = !oListItem.getProperty("selected");
450
464
 
451
465
  if (pageId) {
452
466
  this._getNavContainer().to(pageId);
453
467
  } else {
454
468
  this._getDialog().close();
469
+ if (oListItem._getItemSelectionMode() !== ItemSelectionMode.None) {
470
+ oListItem.setSelected(bSelected);
471
+ oMenuItem.setSelected(bSelected);
472
+ }
473
+
455
474
  this.fireItemSelected({ item: oMenuItem });
456
475
  }
457
476
  oMenuItem.firePress();
@@ -473,9 +492,20 @@ sap.ui.define([
473
492
  oPage.setNavButtonTooltip(sParentPageTitle);
474
493
  };
475
494
 
495
+ /**
496
+ * Checks if an item is a MenuItemGroup or not.
497
+ * @param {sap.m.IMenuItem} oItem The item to be checked
498
+ * @returns {boolean} Whether the item is a MenuItemGroup or not
499
+ * @private
500
+ */
501
+ Menu.prototype._isMenuItemGroup = function(oItem) {
502
+ return !!oItem.getItemSelectionMode;
503
+ };
504
+
476
505
  Menu.prototype._createMenuListItemFromItem = function(oItem) {
477
506
  var sMenuListItemId = this._generateListItemId(oItem.getId()),
478
- oListItem = Element.getElementById(sMenuListItemId);
507
+ oListItem = Element.getElementById(sMenuListItemId),
508
+ oItemGroup = Element.getElementById(oItem.getAssociation("_group"));
479
509
 
480
510
  if (oListItem) {
481
511
  return oListItem;
@@ -486,6 +516,7 @@ sap.ui.define([
486
516
  type: oItem.getEnabled() ? ListType.Active : ListType.Inactive,
487
517
  icon: oItem.getIcon(),
488
518
  title: oItem.getText(),
519
+ selected: oItem.getSelected(),
489
520
  startsSection: oItem.getStartsSection(),
490
521
  menuItem: oItem,
491
522
  tooltip: oItem.getTooltip(),
@@ -493,6 +524,8 @@ sap.ui.define([
493
524
  enabled: oItem.getEnabled()
494
525
  });
495
526
 
527
+ oListItem.setAssociation("_group", oItemGroup);
528
+
496
529
  oItem.aDelegates.forEach(function(oDelegateObject) {
497
530
  oListItem.addEventDelegate(oDelegateObject.oDelegate, oDelegateObject.vThis);
498
531
  });
@@ -501,18 +534,19 @@ sap.ui.define([
501
534
  };
502
535
 
503
536
  Menu.prototype._createVisualMenuItemFromItem = function(oItem) {
504
- var sUfMenuItemId = this._generateUnifiedMenuItemId(oItem.getId()),
505
- oUfMenuItem = Element.getElementById(sUfMenuItemId),
506
- aCustomData = oItem.getCustomData(), i;
537
+ var sUfdMenuItemId = this._generateUnifiedMenuItemId(oItem.getId()),
538
+ oUfdMenuItem = Element.getElementById(sUfdMenuItemId),
539
+ aCustomData = oItem.getCustomData();
507
540
 
508
- if (oUfMenuItem) {
509
- return oUfMenuItem;
541
+ if (oUfdMenuItem) {
542
+ return oUfdMenuItem;
510
543
  }
511
544
 
512
- oUfMenuItem = new UfdMenuItem({
513
- id: sUfMenuItemId,
545
+ oUfdMenuItem = new UfdMenuItem({
546
+ id: sUfdMenuItemId,
514
547
  icon: oItem.getIcon(),
515
548
  text: oItem.getText(),
549
+ selected: oItem.getSelected(),
516
550
  shortcutText: oItem.getShortcutText(),
517
551
  startsSection: oItem.getStartsSection(),
518
552
  tooltip: oItem.getTooltip(),
@@ -520,45 +554,107 @@ sap.ui.define([
520
554
  enabled: oItem.getEnabled()
521
555
  });
522
556
 
523
- for (i = 0; i < aCustomData.length; i++) {
524
- oItem._addCustomData(oUfMenuItem, aCustomData[i]);
557
+ for (var i = 0; i < aCustomData.length; i++) {
558
+ oItem._addCustomData(oUfdMenuItem, aCustomData[i]);
525
559
  }
526
560
 
527
561
  oItem.aDelegates.forEach(function(oDelegateObject) {
528
- oUfMenuItem.addEventDelegate(oDelegateObject.oDelegate, oDelegateObject.vThis);
562
+ oUfdMenuItem.addEventDelegate(oDelegateObject.oDelegate, oDelegateObject.vThis);
529
563
  });
530
564
 
531
- return oUfMenuItem;
565
+ return oUfdMenuItem;
532
566
  };
533
567
 
534
- Menu.prototype._addVisualMenuItemFromItem = function(oItem, oMenu, iIndex) {
535
- var oMenuItem = this._createVisualMenuItemFromItem(oItem);
568
+ Menu.prototype._addVisualMenuItemFromItem = function(oItem, oMenuOrGroup, iIndex) {
569
+ var oMenuItem = this._createVisualMenuItemFromItem(oItem),
570
+ oMenuParent = this._isMenuItemGroup(oMenuOrGroup) ? oMenuOrGroup.getParent() : oMenuOrGroup,
571
+ aItemItems = oItem.getItems(),
572
+ oFirstItem;
536
573
 
537
- oItem._setVisualParent(oMenu);
574
+ oItem._setVisualParent(oMenuParent);
538
575
  oItem._setVisualControl(oMenuItem);
539
576
 
540
- if (oItem.getItems().length !== 0) {
541
- this._initMenuForItems(oItem.getItems(), oMenuItem);
542
- oItem._setVisualChild(oItem.getItems()[0]._getVisualParent());
577
+ if (aItemItems.length) {
578
+ oFirstItem = aItemItems[0];
579
+ if (this._isMenuItemGroup(oFirstItem)) {
580
+ var aGroupItems = oFirstItem.getItems();
581
+ oFirstItem = aGroupItems.length ? aGroupItems[0] : null;
582
+ }
583
+ this._initMenuForItems(aItemItems, oMenuItem);
584
+ oFirstItem && oItem._setVisualChild(oFirstItem._getVisualParent());
543
585
  }
544
586
 
545
- if (iIndex === undefined) {
546
- oMenu.addItem(oMenuItem);
547
- } else {
548
- oMenu.insertItem(oMenuItem, iIndex);
587
+ iIndex === undefined ? oMenuOrGroup.addItem(oMenuItem) : oMenuOrGroup.insertItem(oMenuItem, iIndex);
588
+ };
589
+
590
+ Menu.prototype._createVisualMenuItemGroupFromItemsGroup = function(oGroup) {
591
+ var sUfdMenuItemGroupId = this._generateUnifiedMenuItemId(oGroup.getId()),
592
+ oUfdMenuItemGroup = Element.getElementById(sUfdMenuItemGroupId),
593
+ aCustomData = oGroup.getCustomData();
594
+
595
+ if (oUfdMenuItemGroup) {
596
+ return oUfdMenuItemGroup;
597
+ }
598
+
599
+ oUfdMenuItemGroup = new UfdMenuItemGroup({
600
+ id: sUfdMenuItemGroupId,
601
+ itemSelectionMode: oGroup.getItemSelectionMode()
602
+ });
603
+
604
+ oGroup._setVisualControl(oUfdMenuItemGroup);
605
+ oGroup._setParentMenu(this);
606
+
607
+ for (var i = 0; i < aCustomData.length; i++) {
608
+ oGroup._addCustomData(oUfdMenuItemGroup, aCustomData[i]);
549
609
  }
610
+
611
+ return oUfdMenuItemGroup;
612
+ };
613
+
614
+ Menu.prototype._addVisualMenuItemGroupFromItemsGroup = function(oGroup, oMenu, iIndex) {
615
+ var oMenuItemGroup = this._createVisualMenuItemGroupFromItemsGroup(oGroup),
616
+ aItems = oGroup.getItems();
617
+
618
+ iIndex === undefined ? oMenu.addItem(oMenuItemGroup) : oMenu.insertItem(oMenuItemGroup, iIndex);
619
+
620
+ for (var i = 0; i < aItems.length; i++) {
621
+ this._addVisualMenuItemFromItem(aItems[i], oMenuItemGroup);
622
+ }
623
+
550
624
  };
551
625
 
552
626
  Menu.prototype._addListItemFromItem = function(oItem, oPage, iIndex) {
627
+ var aItemItems = oItem.getItems(),
628
+ bItemIsGroup = this._isMenuItemGroup(oItem),
629
+ oFirstItem;
630
+
631
+ if (bItemIsGroup) {
632
+ oItem._setParentMenu(this);
633
+ oItem.getItems().forEach((oItem) => {
634
+ this._addListItemFromItem(oItem, oPage, iIndex);
635
+ if (iIndex !== undefined) {
636
+ iIndex++;
637
+ }
638
+ });
639
+ return;
640
+ }
641
+
553
642
  var oMenuListItem = this._createMenuListItemFromItem(oItem),
554
643
  oList = oPage.getContent()[0];
555
644
 
556
645
  oItem._setVisualParent(oPage);
557
646
  oItem._setVisualControl(oMenuListItem);
558
647
 
559
- if (oItem.getItems().length !== 0) {
648
+ if (aItemItems.length) {
560
649
  this._initPageForParent(oItem);
561
- oItem._setVisualChild(oItem.getItems()[0]._getVisualParent());
650
+ oFirstItem = aItemItems[0];
651
+ if (this._isMenuItemGroup(oFirstItem)) {
652
+ aItemItems = oFirstItem.getItems();
653
+ oFirstItem = aItemItems.length ? aItemItems[0] : null;
654
+ }
655
+ if (oFirstItem) {
656
+ oItem._setVisualChild(oFirstItem._getVisualParent());
657
+ }
562
658
  }
563
659
 
564
660
  if (iIndex === undefined) {
@@ -612,6 +708,31 @@ sap.ui.define([
612
708
  }
613
709
  };
614
710
 
711
+ /**
712
+ * Returns list of items stored in <code>items</code> aggregation. If there are group items,
713
+ * the items of the group are returned instead of their group item.
714
+ *
715
+ * @returns {sap.ui.unified.MenuItem} List of all menu items
716
+ * @private
717
+ */
718
+ Menu.prototype._getItems = function() {
719
+ var aItems = [];
720
+
721
+ const findItems = (aItemItems) => {
722
+ aItemItems.forEach((oItem) => {
723
+ if (!this._isMenuItemGroup(oItem)) {
724
+ aItems.push(oItem);
725
+ } else {
726
+ findItems(oItem.getItems());
727
+ }
728
+ });
729
+ };
730
+
731
+ findItems(this.getItems());
732
+
733
+ return aItems;
734
+ };
735
+
615
736
  Menu.prototype._handleMenuItemSelect = function(oEvent) {
616
737
  var oUnfdItem = oEvent.getParameter("item"),
617
738
  oMenuItem;
@@ -622,7 +743,10 @@ sap.ui.define([
622
743
 
623
744
  oMenuItem = this._findMenuItemByUnfdMenuItem(oUnfdItem);
624
745
 
625
- if (oMenuItem && !oMenuItem.getItems().length) {
746
+ oMenuItem.setSelected(oUnfdItem.getSelected());
747
+
748
+
749
+ if (oMenuItem && !oMenuItem._getItems().length) {
626
750
  this.fireItemSelected({item: oMenuItem});
627
751
  }
628
752
  if (oMenuItem) {
@@ -639,33 +763,8 @@ sap.ui.define([
639
763
  };
640
764
 
641
765
  Menu.prototype._findMenuItemByUnfdMenuItem = function(oUnfdMenuItem) {
642
- var aUnfdMenuItemStack = [],
643
- oCurrentUnfdMenuItem = oUnfdMenuItem,
644
- aItems,
645
- iCurrentUnfdMenuItemId,
646
- i;
647
- do {
648
- aUnfdMenuItemStack.push(oCurrentUnfdMenuItem.getId());
649
- oCurrentUnfdMenuItem = oCurrentUnfdMenuItem.getParent().getParent();
650
- } while (oCurrentUnfdMenuItem instanceof UfdMenuItem);
651
-
652
- aItems = this.getItems();
653
- do {
654
- iCurrentUnfdMenuItemId = aUnfdMenuItemStack.pop();
655
-
656
- for (i = 0; i < aItems.length; i++) {
657
- if (aItems[i]._getVisualControl() === iCurrentUnfdMenuItemId) {
658
- if (aUnfdMenuItemStack.length === 0) {
659
- return aItems[i];
660
- } else {
661
- aItems = aItems[i].getItems();
662
- break;
663
- }
664
- }
665
- }
666
- } while (aUnfdMenuItemStack.length);
667
-
668
- return null;
766
+ var sId = oUnfdMenuItem.getId().slice(0, -Menu.UNIFIED_MENU_ITEMS_ID_SUFFIX.length);
767
+ return Element.getElementById(sId);
669
768
  };
670
769
 
671
770
  /**
@@ -931,7 +1030,7 @@ sap.ui.define([
931
1030
  oLI && oLI.invalidate();
932
1031
  } else {
933
1032
  this._initMenuForItems(oParentItem.getItems(), Element.getElementById(oParentItem._getVisualControl()));
934
- oParentItem._setVisualChild(oParentItem.getItems()[0]._getVisualParent());
1033
+ oParentItem._setVisualChild(oParentItem._getItems()[0]._getVisualParent());
935
1034
  }
936
1035
  }
937
1036
  };
@@ -1009,5 +1108,17 @@ sap.ui.define([
1009
1108
  };
1010
1109
  });
1011
1110
 
1111
+ /**
1112
+ * Returns an array containing the selected menu items.
1113
+ * <b>Note:</b> Only items with <code>selected</code> property set that are members of <code>MenuItemGroup</code> with <code>ItemSelectionMode</code> property
1114
+ * set to {@link sap.ui.core.ItemSelectionMode.SingleSelect} or {@link sap.ui.unified.ItemSelectionMode.MultiSelect}> are taken into account.
1115
+ * @since 1.127.0
1116
+ * @public
1117
+ * @returns {Array} Array of all selected items
1118
+ */
1119
+ Menu.prototype.getSelectedItems = function() {
1120
+ return this._getItems().filter((oItem) => oItem.getSelected && oItem.getSelected() && oItem._getItemSelectionMode() !== ItemSelectionMode.None);
1121
+ };
1122
+
1012
1123
  return Menu;
1013
1124
  });
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.core.Control
61
61
  *
62
62
  * @author SAP SE
63
- * @version 1.126.0
63
+ * @version 1.127.0
64
64
  *
65
65
  * @constructor
66
66
  * @public